@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/users/page-7cddc0528218c5c8.js","mappings":"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","sources":["webpack://_N_E/?072c","webpack://_N_E/./app/(application)/users/components/data-table-column-header.tsx","webpack://_N_E/./app/(application)/users/data/schema.ts","webpack://_N_E/./app/(application)/users/components/data-table-row-actions.tsx","webpack://_N_E/./app/(application)/users/components/super-admin-toggle.tsx","webpack://_N_E/./app/(application)/users/components/columns.tsx","webpack://_N_E/./app/(application)/users/components/data-table-view-options.tsx","webpack://_N_E/./app/(application)/users/components/add-user-modal.tsx","webpack://_N_E/./app/(application)/users/components/data-table.tsx","webpack://_N_E/./app/(application)/users/page.tsx","webpack://_N_E/./components/ui/checkbox.tsx","webpack://_N_E/./components/ui/label.tsx","webpack://_N_E/./components/ui/loading.tsx","webpack://_N_E/./components/ui/switch.tsx"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/Users/daniel.claessen/Desktop/Projects/exulu/frontend/app/(application)/users/page.tsx\");\n","import {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretSortIcon,\n EyeNoneIcon,\n} from \"@radix-ui/react-icons\";\nimport { Column } from \"@tanstack/react-table\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { cn } from \"@/lib/utils\";\n\ninterface DataTableColumnHeaderProps<TData, TValue>\n extends React.HTMLAttributes<HTMLDivElement> {\n column: Column<TData, TValue>;\n title: string;\n}\n\nexport function DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return <div className={cn(className)}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center space-x-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"-ml-3 h-8 data-[state=open]:bg-accent\"\n >\n <span>{title}</span>\n {column.getIsSorted() === \"desc\" ? (\n <ArrowDownIcon className=\"ml-2 size-4\" />\n ) : column.getIsSorted() === \"asc\" ? (\n <ArrowUpIcon className=\"ml-2 size-4\" />\n ) : (\n <CaretSortIcon className=\"ml-2 size-4\" />\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem onClick={() => column.toggleSorting(false)}>\n <ArrowUpIcon className=\"mr-2 size-3.5 text-muted-foreground/70\" />\n Asc\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.toggleSorting(true)}>\n <ArrowDownIcon className=\"mr-2 size-3.5 text-muted-foreground/70\" />\n Desc\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={() => column.toggleVisibility(false)}>\n <EyeNoneIcon className=\"mr-2 size-3.5 text-muted-foreground/70\" />\n Hide\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n","import { z } from \"zod\";\n\nexport const userSchema = z.object({\n id: z.number(),\n email: z.string(),\n emailVerified: z.string().nullable().optional(),\n roles: z\n .array(\n z.object({\n id: z.string(),\n role: z.string(),\n }),\n )\n .nullable()\n .optional(),\n});\n\nexport type User = z.infer<typeof userSchema>;\n","\"use client\";\n\nimport { useMutation } from \"@apollo/client\";\nimport { DotsHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { Row } from \"@tanstack/react-table\";\nimport {\n GET_USERS,\n REMOVE_USER_BY_ID,\n RESET_USER_PASSWORD,\n} from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { userSchema } from \"../data/schema\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { useContext, useState } from \"react\";\nimport { Copy, Eye, EyeOff } from \"lucide-react\";\ninterface DataTableRowActionsProps<TData> {\n row: Row<TData>;\n}\n\nexport function DataTableRowActions<TData>({\n row,\n}: DataTableRowActionsProps<TData>) {\n const { user: currentUser } = useContext(UserContext);\n const user = userSchema.parse(row.original);\n\n const { toast } = useToast();\n const [isResetPasswordOpen, setIsResetPasswordOpen] = useState(false);\n const [generatedPassword, setGeneratedPassword] = useState(\"\");\n const [showPassword, setShowPassword] = useState(false);\n const [isResetting, setIsResetting] = useState(false);\n\n const [removeUser, removeUserResult] = useMutation(REMOVE_USER_BY_ID, {\n refetchQueries: [\n GET_USERS, // DocumentNode object parsed with gql\n \"GetUsers\", // Query name\n ],\n });\n\n const [resetPassword] = useMutation(RESET_USER_PASSWORD, {\n refetchQueries: [GET_USERS, \"GetUsers\"],\n });\n\n const generatePassword = () => {\n const length = 12;\n const charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*';\n let password = '';\n for (let i = 0; i < length; i++) {\n password += charset.charAt(Math.floor(Math.random() * charset.length));\n }\n return password;\n };\n\n const handleResetPassword = () => {\n const password = generatePassword();\n setGeneratedPassword(password);\n setIsResetPasswordOpen(true);\n };\n\n const handleConfirmReset = async () => {\n setIsResetting(true);\n try {\n await resetPassword({\n variables: {\n id: user.id,\n password: generatedPassword,\n },\n });\n\n toast({\n title: \"Password reset\",\n description: `Password has been reset for ${user.email}.`,\n });\n\n setIsResetPasswordOpen(false);\n setGeneratedPassword(\"\");\n setShowPassword(false);\n } catch (error) {\n console.error('Error resetting password:', error);\n toast({\n title: 'Error',\n description: 'Failed to reset password. Please try again.',\n variant: 'destructive',\n });\n } finally {\n setIsResetting(false);\n }\n };\n\n const copyToClipboard = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n toast({\n title: 'Copied',\n description: 'Password copied to clipboard',\n });\n } catch (error) {\n toast({\n title: 'Error',\n description: 'Failed to copy to clipboard',\n variant: 'destructive',\n });\n }\n };\n\n return (\n <>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n className=\"flex size-8 p-0 data-[state=open]:bg-muted\"\n >\n <DotsHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">Open menu</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-[160px]\">\n <DropdownMenuItem onClick={handleResetPassword}>\n Reset password\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => {\n if (currentUser.id === user.id) {\n toast({\n title: \"Cannot delete your own user\",\n description: \"You cannot delete your own user, that would be a bad idea.\",\n });\n return;\n }\n const confirm = window.confirm(\"Are you sure you want to delete this user?\");\n if (!confirm) {\n return;\n }\n removeUser({\n variables: {\n id: user.id,\n },\n });\n toast({\n title: \"Deleting user\",\n description: \"We deleted the user.\",\n });\n }}\n >\n Delete user\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n\n <Dialog open={isResetPasswordOpen} onOpenChange={setIsResetPasswordOpen}>\n <DialogContent className=\"max-w-md\">\n <DialogHeader>\n <DialogTitle>Reset Password</DialogTitle>\n <DialogDescription>\n A temporary password has been generated for {user.email}. Copy and send it to the user manually.\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"space-y-4\">\n <div>\n <Label htmlFor=\"password\">Temporary Password</Label>\n <div className=\"relative mt-1\">\n <Input\n id=\"password\"\n type={showPassword ? 'text' : 'password'}\n value={generatedPassword}\n readOnly\n className=\"pr-20\"\n />\n <div className=\"absolute right-1 top-1/2 -translate-y-1/2 flex gap-1\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0\"\n onClick={() => setShowPassword(!showPassword)}\n >\n {showPassword ? (\n <EyeOff className=\"h-4 w-4\" />\n ) : (\n <Eye className=\"h-4 w-4\" />\n )}\n </Button>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0\"\n onClick={() => copyToClipboard(generatedPassword)}\n >\n <Copy className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n <p className=\"text-sm text-muted-foreground mt-2\">\n Please copy this password and send it to {user.email} manually. The user should change it on their first login.\n </p>\n </div>\n </div>\n\n <DialogFooter>\n <Button\n variant=\"outline\"\n onClick={() => {\n setIsResetPasswordOpen(false);\n setGeneratedPassword(\"\");\n setShowPassword(false);\n }}\n >\n Cancel\n </Button>\n <Button onClick={handleConfirmReset} disabled={isResetting}>\n {isResetting ? 'Resetting...' : 'Reset Password'}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </>\n );\n}\n","\"use client\";\n\nimport { useState, useContext } from \"react\";\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport { Switch } from \"@/components/ui/switch\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\nimport { Button } from \"@/components/ui/button\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { AlertTriangle } from \"lucide-react\";\nimport { GET_USERS, UPDATE_USER_BY_ID } from \"@/queries/queries\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\n\ninterface SuperAdminToggleProps {\n user: {\n id: string;\n super_admin?: boolean;\n email: string;\n [key: string]: any;\n };\n}\n\nexport function SuperAdminToggle({ user }: SuperAdminToggleProps) {\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [pendingChange, setPendingChange] = useState<boolean | null>(null);\n const { toast } = useToast();\n const { user: currentUser } = useContext(UserContext);\n const [updateUser] = useMutation(UPDATE_USER_BY_ID, {\n refetchQueries: [\n GET_USERS,\n \"GetUsers\",\n ],\n });\n const isSuperAdmin = Boolean(user.super_admin);\n const isCurrentUser = currentUser?.id === user.id;\n const handleToggleChange = (checked: boolean) => {\n if (isCurrentUser && isSuperAdmin && !checked) {\n toast({\n title: \"Cannot Disable Own Super Admin Rights\",\n description: \"You cannot disable your own super admin privileges for security reasons.\",\n variant: \"destructive\",\n });\n return;\n }\n setPendingChange(checked);\n setIsDialogOpen(true);\n };\n\n const handleConfirm = async () => {\n if (pendingChange === null) return;\n\n setIsLoading(true);\n try {\n await updateUser({\n variables: {\n id: user.id,\n super_admin: pendingChange,\n },\n });\n \n setIsDialogOpen(false);\n setPendingChange(null);\n toast({\n title: pendingChange ? \"Super Admin Enabled\" : \"Super Admin Disabled\",\n description: `Super admin access has been ${pendingChange ? 'granted to' : 'removed from'} ${user.email}.`,\n });\n } catch (error: any) {\n toast({\n title: \"Error\",\n description: error.message || \"Failed to update super admin status.\",\n variant: \"destructive\",\n });\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleCancel = () => {\n setIsDialogOpen(false);\n setPendingChange(null);\n };\n\n return (\n <>\n <div className=\"flex items-center space-x-2\">\n <Switch\n checked={isSuperAdmin}\n onCheckedChange={handleToggleChange}\n disabled={isLoading}\n className=\"data-[state=checked]:bg-red-500 data-[state=checked]:border-red-500\"\n />\n <span className=\"text-sm text-muted-foreground\">\n {isSuperAdmin ? \"Yes\" : \"No\"}\n </span>\n </div>\n\n <Dialog open={isDialogOpen} onOpenChange={setIsDialogOpen}>\n <DialogContent className=\"sm:max-w-[475px]\">\n <DialogHeader>\n <DialogTitle>\n {pendingChange ? \"Grant\" : \"Remove\"} Super Admin Access\n </DialogTitle>\n <DialogDescription>\n {pendingChange \n ? `Are you sure you want to grant super admin access to ${user.email}? This will give them full administrative privileges.`\n : `Are you sure you want to remove super admin access from ${user.email}? They will lose all administrative privileges.`\n }\n {!pendingChange && (\n <div className=\"mt-3 p-3 bg-amber-50 border border-amber-200 rounded-md flex items-start gap-2\">\n <AlertTriangle className=\"h-4 w-4 text-amber-600 mt-0.5 flex-shrink-0\" />\n <p className=\"text-sm text-amber-800\">\n <strong>Warning:</strong> Ensure you are not removing super admin access from the last super administrator. \n This could prevent anyone from managing users and system settings and requiring a technical support intervention\n to set the super admin status again via the database.\n </p>\n </div>\n )}\n </DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button variant=\"outline\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button \n onClick={handleConfirm}\n disabled={isLoading}\n variant={pendingChange ? \"destructive\" : \"default\"}\n className={pendingChange ? \"bg-red-500 hover:bg-red-600\" : \"\"}\n >\n {isLoading ? \"Updating...\" : \"Confirm\"}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </>\n );\n}","\"use client\";\n\nimport { ColumnDef } from \"@tanstack/react-table\";\nimport * as React from \"react\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { User } from \"@EXULU_SHARED/models/user\";\nimport { DataTableColumnHeader } from \"./data-table-column-header\";\nimport { DataTableRowActions } from \"./data-table-row-actions\";\nimport { SuperAdminToggle } from \"./super-admin-toggle\";\nimport { RoleSelector } from \"@/components/ui/role-selector\";\n\nexport const createColumns = (currentUser: any, roleChange: (user: User, role: string) => void): ColumnDef<User>[] => [\n {\n id: \"select\",\n header: ({ table }) => (\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n aria-label=\"Select all\"\n className=\"translate-y-[2px]\"\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label=\"Select row\"\n className=\"translate-y-[2px]\"\n />\n ),\n enableSorting: false,\n enableHiding: false,\n },\n {\n accessorKey: \"email\",\n header: ({ column }) => (\n <DataTableColumnHeader column={column} title=\"Email\" />\n ),\n cell: ({ row }) => {\n /*const label = labels.find((label) => label.value === row.original.label)*/\n\n return (\n <div className=\"flex space-x-2\">\n {/*{label && <Badge variant=\"outline\">{label.label}</Badge>}*/}\n <span className=\"max-w-[300px] truncate font-medium\">\n {row.original.email}\n </span>\n </div>\n );\n },\n },\n {\n accessorKey: \"role\",\n header: ({ column }) => (\n <DataTableColumnHeader column={column} title=\"Role\" />\n ),\n cell: ({ row }) => {\n return (\n <div className=\"gap-x-2 flex\">\n <RoleSelector value={row.original.role} onChange={(role) => {\n // warning modal\n // todo rbac and / or super_admin check\n const confirm = window.confirm(\"Are you sure you want to update the role for this user?\");\n if (!confirm) {\n return;\n }\n roleChange(row.original, role);\n }} />\n </div>\n );\n },\n filterFn: (row, id, value) => {\n return value.includes(row.getValue(id));\n },\n },\n {\n accessorKey: \"status\",\n header: ({ column }) => (\n <DataTableColumnHeader column={column} title=\"Status\" />\n ),\n cell: ({ row }) => {\n return (\n <div className=\"flex w-[100px] items-center\">\n {row.original.emailVerified ? (\n <p className=\"text-primary\">verified</p>\n ) : (\n <p className=\"text-orange-400\">pending</p>\n )}\n </div>\n );\n },\n filterFn: (row, id, value) => {\n return value.includes(row.getValue(id));\n },\n },\n ...(currentUser?.super_admin ? [{\n accessorKey: \"super_admin\",\n header: ({ column }) => (\n <DataTableColumnHeader column={column} title=\"Super Admin\" />\n ),\n cell: ({ row }) => {\n return (\n <SuperAdminToggle user={row.original} />\n );\n },\n enableSorting: false,\n }] : []),\n {\n id: \"actions\",\n cell: ({ row }) => <DataTableRowActions row={row} />,\n },\n];\n","\"use client\";\n\nimport { DropdownMenuTrigger } from \"@radix-ui/react-dropdown-menu\";\nimport { MixerHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { Table } from \"@tanstack/react-table\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n} from \"@/components/ui/dropdown-menu\";\n\ninterface DataTableViewOptionsProps<TData> {\n table: Table<TData>;\n}\n\nexport function DataTableViewOptions<TData>({\n table,\n}: DataTableViewOptionsProps<TData>) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"ml-auto hidden h-8 lg:flex\"\n >\n <MixerHorizontalIcon className=\"mr-2 size-4\" />\n View\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-[150px]\">\n <DropdownMenuLabel>Toggle columns</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter(\n (column) =>\n typeof column.accessorFn !== \"undefined\" && column.getCanHide(),\n )\n .map((column) => {\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(!!value)}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","\"use client\";\n\nimport React, { useState, useContext } from 'react';\nimport { useMutation } from '@apollo/client';\nimport { UserContext } from '@/app/(application)/authenticated';\nimport { ConfigContext } from '@/components/config-context';\nimport { CREATE_USER, GET_USERS } from '@/queries/queries';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/components/ui/dialog';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { useToast } from '@/components/ui/use-toast';\nimport { Copy, Eye, EyeOff } from 'lucide-react';\n\ninterface AddUserModalProps {\n isOpen: boolean;\n onClose: () => void;\n}\n\nexport function AddUserModal({ isOpen, onClose }: AddUserModalProps) {\n const { user } = useContext(UserContext);\n const configContext = useContext(ConfigContext);\n const { toast } = useToast();\n\n const [step, setStep] = useState<'email' | 'password'>('email');\n const [email, setEmail] = useState('');\n const [generatedPassword, setGeneratedPassword] = useState('');\n const [showPassword, setShowPassword] = useState(false);\n const [isCreating, setIsCreating] = useState(false);\n\n const [createUser] = useMutation(CREATE_USER, {\n refetchQueries: [GET_USERS, 'GetUsers'],\n });\n\n const generatePassword = () => {\n const length = 12;\n const charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*';\n let password = '';\n for (let i = 0; i < length; i++) {\n password += charset.charAt(Math.floor(Math.random() * charset.length));\n }\n return password;\n };\n\n const handleEmailSubmit = async () => {\n if (!email.trim()) {\n toast({\n title: 'Error',\n description: 'Please enter an email address',\n variant: 'destructive',\n });\n return;\n }\n\n if (!email.includes('@')) {\n toast({\n title: 'Error',\n description: 'Please enter a valid email address',\n variant: 'destructive',\n });\n return;\n }\n\n if (configContext?.auth_mode === 'password') {\n const password = generatePassword();\n setGeneratedPassword(password);\n setStep('password');\n } else {\n await createUser({\n variables: {\n email: email.trim(),\n password: generatedPassword,\n type: \"user\",\n emailVerified: new Date(),\n },\n });\n \n toast({\n title: 'User created',\n description: `User ${email} has been created successfully.`,\n });\n \n handleClose();\n }\n };\n\n const handlePasswordSubmit = async () => {\n setIsCreating(true);\n \n try {\n await createUser({\n variables: {\n email: email.trim(),\n password: generatedPassword,\n },\n });\n \n toast({\n title: 'User created',\n description: `User ${email} has been created with a temporary password.`,\n });\n \n handleClose();\n } catch (error) {\n console.error('Error creating user:', error);\n toast({\n title: 'Error',\n description: 'Failed to create user. Please try again.',\n variant: 'destructive',\n });\n } finally {\n setIsCreating(false);\n }\n };\n\n const handleClose = () => {\n setStep('email');\n setEmail('');\n setGeneratedPassword('');\n setShowPassword(false);\n setIsCreating(false);\n onClose();\n };\n\n const copyToClipboard = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n toast({\n title: 'Copied',\n description: 'Password copied to clipboard',\n });\n } catch (error) {\n toast({\n title: 'Error',\n description: 'Failed to copy to clipboard',\n variant: 'destructive',\n });\n }\n };\n\n if (!user?.super_admin) {\n return null;\n }\n\n return (\n <Dialog open={isOpen} onOpenChange={handleClose}>\n <DialogContent className=\"max-w-md\">\n <DialogHeader>\n <DialogTitle>\n {step === 'email' ? 'Add New User' : 'Generated Password'}\n </DialogTitle>\n <DialogDescription>\n {step === 'email' \n ? 'Enter the email address for the new user.'\n : 'A temporary password has been generated. Copy and send it to the user manually.'\n }\n </DialogDescription>\n </DialogHeader>\n\n {step === 'email' && (\n <div className=\"space-y-4\">\n <div>\n <Label htmlFor=\"email\">Email Address</Label>\n <Input\n id=\"email\"\n type=\"email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n placeholder=\"user@example.com\"\n className=\"mt-1\"\n autoFocus\n />\n </div>\n </div>\n )}\n\n {step === 'password' && (\n <div className=\"space-y-4\">\n <div>\n <Label htmlFor=\"password\">Temporary Password</Label>\n <div className=\"relative mt-1\">\n <Input\n id=\"password\"\n type={showPassword ? 'text' : 'password'}\n value={generatedPassword}\n readOnly\n className=\"pr-20\"\n />\n <div className=\"absolute right-1 top-1/2 -translate-y-1/2 flex gap-1\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0\"\n onClick={() => setShowPassword(!showPassword)}\n >\n {showPassword ? (\n <EyeOff className=\"h-4 w-4\" />\n ) : (\n <Eye className=\"h-4 w-4\" />\n )}\n </Button>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0\"\n onClick={() => copyToClipboard(generatedPassword)}\n >\n <Copy className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n <p className=\"text-sm text-muted-foreground mt-2\">\n Please copy this password and send it to {email} manually. The user should change it on their first login.\n </p>\n </div>\n </div>\n )}\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={handleClose}>\n Cancel\n </Button>\n {step === 'email' && (\n <Button onClick={handleEmailSubmit} disabled={isCreating}>\n {configContext?.auth_mode === 'password' ? 'Continue' : 'Add User'}\n </Button>\n )}\n {step === 'password' && (\n <Button onClick={handlePasswordSubmit} disabled={isCreating}>\n {isCreating ? 'Creating...' : 'Create User'}\n </Button>\n )}\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}","\"use client\";\n\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n Cross2Icon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n} from \"@radix-ui/react-icons\";\nimport {\n ColumnDef,\n ColumnFiltersState,\n flexRender,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n Row,\n SortingState,\n useReactTable,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport { Trash2 } from \"lucide-react\";\nimport { useRouter } from \"next/navigation\";\nimport { useState } from \"react\";\nimport * as React from \"react\";\nimport {\n GET_USERS,\n REMOVE_USER_BY_ID,\n} from \"@/queries/queries\";\nimport { DataTableViewOptions } from \"@/app/(application)/users/components/data-table-view-options\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Loading } from \"@/components/ui/loading\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { FilterOperator } from \"@/components/custom/recent-jobs\";\nimport { AddUserModal } from \"@/app/(application)/users/components/add-user-modal\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { Plus } from \"lucide-react\";\nexport type UserFilters = {\n firstname?: FilterOperator,\n lastname?: FilterOperator,\n email?: FilterOperator,\n type?: FilterOperator,\n status?: FilterOperator,\n createdAt?: FilterOperator,\n updatedAt?: FilterOperator,\n}\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[];\n}\n\nexport function usePagination() {\n const [pagination, setPagination] = useState({\n pageSize: 5,\n pageIndex: 0,\n });\n const { pageSize, pageIndex } = pagination;\n\n return {\n limit: pageSize,\n onPaginationChange: setPagination,\n pagination,\n skip: pageSize * pageIndex,\n };\n}\n\nexport function DataTable<TData, TValue>({\n columns,\n}: DataTableProps<TData, TValue>) {\n const { toast } = useToast();\n const router = useRouter();\n const { user } = React.useContext(UserContext);\n const [rowSelection, setRowSelection] = React.useState({});\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>({});\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(\n [],\n );\n const [isAddUserModalOpen, setIsAddUserModalOpen] = React.useState(false);\n const [filters, setFilters] = useState<UserFilters[]>([]);\n\n /* todo: get rid of own page state and use the table.currentPage() instead */\n let [page, setPage] = useState(1);\n const [sorting, setSorting] = React.useState<SortingState>([]);\n\n const { loading, error, data, refetch, previousData } = useQuery(GET_USERS, {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: page,\n limit: 10,\n sort: {\n field: \"createdAt\",\n direction: \"DESC\",\n },\n filters: [\n ...filters,\n {\n type: {\n ne: \"api\"\n }\n }\n ],\n },\n pollInterval: 30000, // polls every 30 seconds for updates on users\n });\n\n const defaultData = React.useMemo(() => [], []);\n const { limit, onPaginationChange, skip, pagination } = usePagination();\n\n const [removeUser, removeUserResult] = useMutation(REMOVE_USER_BY_ID, {\n refetchQueries: [\n GET_USERS, // DocumentNode object parsed with gql\n \"GetUsers\", // Query name\n ],\n });\n\n let items;\n let pageCount;\n if (loading && previousData?.usersPagination?.items) {\n items = previousData?.usersPagination?.items;\n pageCount = previousData?.usersPagination?.pageInfo?.pageCount;\n } else if (data?.usersPagination?.items) {\n items = data?.usersPagination?.items;\n pageCount = data?.usersPagination?.pageInfo?.pageCount;\n } else if (previousData?.usersPagination?.items) {\n items = previousData?.usersPagination?.items;\n pageCount = previousData?.usersPagination?.pageInfo?.pageCount;\n }\n\n const table = useReactTable({\n data: items ?? defaultData,\n pageCount: pageCount ?? -1,\n columns,\n state: {\n sorting,\n columnVisibility,\n rowSelection,\n columnFilters,\n },\n enableRowSelection: true,\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n manualPagination: true,\n onPaginationChange,\n });\n\n const search = (value: string) => {\n const copy = [...filters];\n const exists = copy.find((filter) => filter.email);\n if (exists?.email) {\n exists.email.contains = value;\n } else {\n copy.push({\n email: {\n contains: value,\n },\n });\n }\n setFilters(copy);\n refetch();\n };\n\n const isFiltered = filters.length > 0;\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-1 items-center space-x-2\">\n <Input\n placeholder=\"Filter users...\"\n value={filters?.find((filter) => filter.email)?.email?.contains ?? \"\"}\n onChange={(event) => {\n search(event.target.value);\n }}\n className=\"w-[150px] lg:w-[250px]\"\n />\n\n <Button\n variant=\"outline\"\n onClick={() => {\n router.push(\"/roles\");\n }}\n >\n Manage roles\n </Button>\n\n {user?.super_admin && (\n <Button\n onClick={() => setIsAddUserModalOpen(true)}\n className=\"flex items-center gap-2\"\n >\n <Plus className=\"size-4\" />\n Add User\n </Button>\n )}\n\n {table.getIsSomeRowsSelected() || table.getIsAllRowsSelected() ? (\n <div className=\"flex gap-x-2\">\n <Button\n onClick={() => {\n // confirm modal\n const confirm = window.confirm(\"Are you sure you want to remove the selected users?\");\n if (!confirm) {\n return;\n }\n const promises: any[] = [];\n table.getSelectedRowModel().rows.forEach((row: Row<any>) => {\n promises.push(\n removeUser({\n variables: {\n id: row.original.id,\n },\n }),\n );\n });\n Promise.all(promises).then(() => {\n table.resetRowSelection();\n toast({\n title: \"Removed users\",\n description: \"We removed \" + promises.length + \" users.\",\n });\n });\n }}\n variant=\"secondary\"\n disabled={removeUserResult.loading}\n >\n {removeUserResult.loading ? (\n <Loading />\n ) : (\n <Trash2 className=\"size-4\" />\n )}\n <span className=\"ml-2\">Remove selected</span>\n </Button>\n </div>\n ) : null}\n\n {isFiltered && (\n <Button\n variant=\"ghost\"\n onClick={() => {\n const copy = [...filters];\n const emailFilter = copy.find((filter) => filter.email);\n if (emailFilter) {\n copy.splice(copy.indexOf(emailFilter), 1);\n }\n setFilters(copy);\n refetch();\n }}\n >\n Reset\n <Cross2Icon className=\"ml-2 size-4\" />\n </Button>\n )}\n </div>\n <DataTableViewOptions table={table} />\n </div>\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <TableHead key={header.id} colSpan={header.colSpan}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"h-24 text-center\"\n >\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <div className=\"flex items-center justify-between px-2\">\n <div className=\"text-muted-foreground flex-1 text-sm\">\n {table.getFilteredSelectedRowModel().rows.length} of{\" \"}\n {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n {/*<div className=\"flex items-center space-x-2\">\n <p className=\"text-sm font-medium\">Rows per page</p>\n <Select\n value={`${table.getState().pagination.pageSize}`}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"h-8 w-[70px]\">\n <SelectValue\n placeholder={table.getState().pagination.pageSize}\n />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>*/}\n <div className=\"flex w-[100px] items-center justify-center text-sm font-medium\">\n Page {page} of {table.getPageCount()}\n </div>\n <div className=\"flex items-center space-x-2\">\n <Button\n variant=\"outline\"\n className=\"hidden size-8 p-0 lg:flex\"\n onClick={() => {\n table.setPageIndex(0);\n setPage(1);\n refetch();\n }}\n disabled={!data?.usersPagination?.pageInfo.hasPreviousPage}\n >\n <span className=\"sr-only\">Go to first page</span>\n <DoubleArrowLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"size-8 p-0\"\n onClick={() => {\n table.previousPage();\n setPage(page - 1);\n refetch();\n }}\n disabled={!data?.usersPagination?.pageInfo.hasPreviousPage}\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"size-8 p-0\"\n onClick={() => {\n table.nextPage();\n setPage(page + 1);\n refetch();\n }}\n disabled={!data?.usersPagination?.pageInfo.hasNextPage}\n >\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"hidden size-8 p-0 lg:flex\"\n onClick={() => {\n () => {\n table.setPageIndex(table.getPageCount() - 1);\n };\n setPage(table.getPageCount());\n refetch();\n }}\n disabled={!data?.usersPagination?.pageInfo.hasNextPage}\n >\n <span className=\"sr-only\">Go to last page</span>\n <DoubleArrowRightIcon className=\"size-4\" />\n </Button>\n </div>\n </div>\n </div>\n \n <AddUserModal \n isOpen={isAddUserModalOpen} \n onClose={() => setIsAddUserModalOpen(false)} \n />\n </div>\n );\n}\n","\"use client\";\n\nimport { useContext } from \"react\";\nimport { createColumns } from \"./components/columns\";\nimport { DataTable } from \"./components/data-table\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { GET_USERS, UPDATE_USER_BY_ID } from \"@/queries/queries\";\nimport { useMutation } from \"@apollo/client\";\n\nexport const dynamic = \"force-dynamic\";\n\nexport default function UsersPage() {\n const { user: currentUser } = useContext(UserContext);\n const columns = createColumns(currentUser, (user, role) => {\n console.log(\"user\", user);\n console.log(\"role\", role);\n updateUser({\n variables: {\n id: user.id,\n role,\n },\n });\n });\n\n const [updateUser, updateUserResult] = useMutation(UPDATE_USER_BY_ID, {\n refetchQueries: [\n GET_USERS, // DocumentNode object parsed with gql\n \"GetUsers\", // Query name\n ],\n });\n\n return (\n <>\n <div className=\"hidden h-full flex-1 flex-col space-y-8 p-8 md:flex\">\n <div className=\"flex items-center justify-between space-y-2\">\n <div>\n <h2 className=\"text-2xl font-bold tracking-tight\">Users</h2>\n <p className=\"text-muted-foreground\">\n Here's a list of all the users.\n </p>\n </div>\n </div>\n <DataTable columns={columns} />\n </div>\n </>\n );\n}\n","\"use client\";\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"size-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","\"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 { cn } from \"@/lib/utils\";\n\nexport const Loading = ({ className }: { className?: null | string }) => {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\"inline w-4 h-4 text-white animate-spin fill-inherit\", className)}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n className=\"fill-inherit opacity-20\"\n ></path>\n <path\n 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\"\n className=\"fill-inherit\"\n ></path>\n </svg>\n );\n};\n","\"use client\";\n\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"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\",\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n"],"names":["Promise","resolve","then","__webpack_require__","bind","DataTableColumnHeader","param","column","title","className","getCanSort","jsx_runtime","jsx","div","cn","jsxs","DropdownMenu","DropdownMenuTrigger","asChild","Button","variant","size","span","getIsSorted","ArrowDownIcon","ArrowUpIcon","CaretSortIcon","DropdownMenuContent","align","DropdownMenuItem","onClick","toggleSorting","DropdownMenuSeparator","toggleVisibility","EyeNoneIcon","userSchema","z","id","email","emailVerified","nullable","optional","roles","role","DataTableRowActions","row","user","currentUser","useContext","UserContext","parse","original","toast","useToast","isResetPasswordOpen","setIsResetPasswordOpen","useState","generatedPassword","setGeneratedPassword","showPassword","setShowPassword","isResetting","setIsResetting","removeUser","removeUserResult","useMutation","REMOVE_USER_BY_ID","refetchQueries","GET_USERS","resetPassword","RESET_USER_PASSWORD","generatePassword","charset","password","i","charAt","Math","floor","random","length","handleConfirmReset","variables","description","concat","error","console","copyToClipboard","text","navigator","clipboard","writeText","Fragment","DotsHorizontalIcon","window","confirm","Dialog","open","onOpenChange","DialogContent","DialogHeader","DialogTitle","DialogDescription","Label","htmlFor","Input","type","value","readOnly","EyeOff","Eye","Copy","p","DialogFooter","disabled","SuperAdminToggle","isDialogOpen","setIsDialogOpen","isLoading","setIsLoading","pendingChange","setPendingChange","updateUser","UPDATE_USER_BY_ID","isSuperAdmin","Boolean","super_admin","isCurrentUser","handleConfirm","message","Switch","checked","onCheckedChange","AlertTriangle","strong","createColumns","roleChange","header","table","Checkbox","getIsAllPageRowsSelected","getIsSomePageRowsSelected","toggleAllPageRowsSelected","aria-label","cell","getIsSelected","toggleSelected","enableSorting","enableHiding","accessorKey","RoleSelector","onChange","filterFn","includes","getValue","DataTableViewOptions","MixerHorizontalIcon","DropdownMenuLabel","getAllColumns","filter","accessorFn","getCanHide","map","DropdownMenuCheckboxItem","getIsVisible","AddUserModal","isOpen","onClose","configContext","ConfigContext","step","setStep","setEmail","isCreating","setIsCreating","createUser","CREATE_USER","handleEmailSubmit","trim","auth_mode","Date","handleClose","handlePasswordSubmit","e","target","placeholder","autoFocus","DataTable","previousData","data","filters","items","pageCount","columns","router","useRouter","React","rowSelection","setRowSelection","columnVisibility","setColumnVisibility","columnFilters","setColumnFilters","isAddUserModalOpen","setIsAddUserModalOpen","setFilters","page","setPage","sorting","setSorting","loading","refetch","useQuery","fetchPolicy","nextFetchPolicy","limit","sort","field","direction","ne","pollInterval","defaultData","onPaginationChange","skip","pagination","usePagination","setPagination","pageSize","pageIndex","usersPagination","pageInfo","useReactTable","state","enableRowSelection","onRowSelectionChange","onSortingChange","onColumnFiltersChange","onColumnVisibilityChange","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","getFacetedRowModel","getFacetedUniqueValues","manualPagination","search","copy","exists","find","contains","push","isFiltered","event","Plus","getIsSomeRowsSelected","getIsAllRowsSelected","promises","getSelectedRowModel","rows","forEach","all","resetRowSelection","Loading","Trash2","emailFilter","splice","indexOf","Cross2Icon","Table","TableHeader","getHeaderGroups","TableRow","headerGroup","headers","TableHead","colSpan","isPlaceholder","flexRender","columnDef","getContext","TableBody","getRowModel","data-state","getVisibleCells","TableCell","getFilteredSelectedRowModel","getPageCount","setPageIndex","hasPreviousPage","DoubleArrowLeftIcon","previousPage","ChevronLeftIcon","nextPage","hasNextPage","ChevronRightIcon","DoubleArrowRightIcon","dynamic","UsersPage","log","updateUserResult","h2","ref","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","CheckboxPrimitive","Check","displayName","labelVariants","cva","LabelPrimitive","svg","aria-hidden","viewBox","fill","xmlns","path","d","SwitchPrimitives"],"sourceRoot":""}
|
package/dist/.next/static/chunks/app/(application)/variables/create/page-3d0e1788a92cba52.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/variables/create/page-3d0e1788a92cba52.js","mappings":"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","sources":["webpack://_N_E/?8c1e","webpack://_N_E/./app/(application)/variables/create/page.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/input.tsx","webpack://_N_E/./components/ui/label.tsx","webpack://_N_E/./components/ui/loading.tsx","webpack://_N_E/./components/ui/switch.tsx","webpack://_N_E/./components/ui/textarea.tsx","webpack://_N_E/./components/ui/use-toast.ts"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/Users/daniel.claessen/Desktop/Projects/exulu/frontend/app/(application)/variables/create/page.tsx\");\n","\"use client\";\n\nimport { useMutation } from \"@apollo/client\";\nimport { ArrowLeft } from \"lucide-react\";\nimport Link from \"next/link\";\nimport { useRouter } from \"next/navigation\";\nimport { useState } from \"react\";\nimport { CREATE_VARIABLE, GET_VARIABLES } from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { Loading } from \"@/components/ui/loading\";\n\nexport const dynamic = \"force-dynamic\";\n\nexport default function CreateVariablePage() {\n const router = useRouter();\n const { toast } = useToast();\n \n const [formData, setFormData] = useState({\n name: \"\",\n value: \"\",\n encrypted: false,\n });\n\n const [createVariable, { loading }] = useMutation(CREATE_VARIABLE, {\n refetchQueries: [\n GET_VARIABLES,\n \"GetVariables\",\n ],\n });\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n \n if (!formData.name.trim() || !formData.value.trim()) {\n toast({\n title: \"Validation Error\",\n description: \"Name and value are required fields.\",\n variant: \"destructive\",\n });\n return;\n }\n\n try {\n await createVariable({\n variables: {\n name: formData.name.trim(),\n value: formData.value,\n encrypted: formData.encrypted,\n },\n });\n\n toast({\n title: \"Variable Created\",\n description: `Variable \"${formData.name}\" has been created successfully.`,\n });\n\n router.push(\"/variables\");\n } catch (error: any) {\n toast({\n title: \"Error\",\n description: error.message || \"Failed to create variable. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n const handleChange = (field: string, value: any) => {\n setFormData(prev => ({\n ...prev,\n [field]: value,\n }));\n };\n\n return (\n <div className=\"max-w-2xl mx-auto space-y-6 p-8\">\n <div className=\"flex items-center space-x-4\">\n <Link href=\"/variables\">\n <Button variant=\"outline\" size=\"sm\">\n <ArrowLeft className=\"mr-2 h-4 w-4\" />\n Back\n </Button>\n </Link>\n <div>\n <h1 className=\"text-2xl font-bold\">Create Variable</h1>\n <p className=\"text-muted-foreground\">\n Add a new variable to your application\n </p>\n </div>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Variable Details</CardTitle>\n <CardDescription>\n Configure your new variable settings\n </CardDescription>\n </CardHeader>\n <CardContent>\n <form onSubmit={handleSubmit} className=\"space-y-6\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"name\">\n Variable Name <span className=\"text-red-500\">*</span>\n </Label>\n <Input\n id=\"name\"\n type=\"text\"\n placeholder=\"e.g., API_KEY, DATABASE_URL\"\n value={formData.name}\n onChange={(e) => handleChange(\"name\", e.target.value)}\n required\n />\n <p className=\"text-sm text-muted-foreground\">\n A unique identifier for your variable. Use UPPERCASE with underscores for constants.\n </p>\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor=\"value\">\n Variable Value <span className=\"text-red-500\">*</span>\n </Label>\n <Textarea\n id=\"value\"\n placeholder=\"Enter the variable value...\"\n value={formData.value}\n onChange={(e) => handleChange(\"value\", e.target.value)}\n rows={4}\n required\n />\n <p className=\"text-sm text-muted-foreground\">\n The actual value of your variable. This will be {formData.encrypted ? \"encrypted\" : \"stored as plain text\"}.\n </p>\n </div>\n\n <div className=\"flex items-center space-x-2\">\n <Switch\n id=\"encrypted\"\n checked={formData.encrypted}\n onCheckedChange={(checked) => handleChange(\"encrypted\", checked)}\n />\n <Label htmlFor=\"encrypted\" className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n Encrypt this variable\n </Label>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n When enabled, the variable value will be encrypted before storing in the database. \n This is recommended for sensitive data like API keys, passwords, and tokens.\n </p>\n\n <div className=\"flex justify-end space-x-4 pt-6\">\n <Link href=\"/variables\">\n <Button variant=\"outline\" type=\"button\">\n Cancel\n </Button>\n </Link>\n <Button type=\"submit\" disabled={loading}>\n {loading ? (\n <>\n <Loading />\n <span className=\"ml-2\">Creating...</span>\n </>\n ) : (\n \"Create Variable\"\n )}\n </Button>\n </div>\n </form>\n </CardContent>\n </Card>\n </div>\n );\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\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 { cn } from \"@/lib/utils\";\n\nexport const Loading = ({ className }: { className?: null | string }) => {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\"inline w-4 h-4 text-white animate-spin fill-inherit\", className)}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n className=\"fill-inherit opacity-20\"\n ></path>\n <path\n 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\"\n className=\"fill-inherit\"\n ></path>\n </svg>\n );\n};\n","\"use client\";\n\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"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\",\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\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","dynamic","CreateVariablePage","router","useRouter","toast","useToast","formData","setFormData","useState","name","value","encrypted","createVariable","loading","useMutation","CREATE_VARIABLE","refetchQueries","GET_VARIABLES","handleSubmit","e","preventDefault","trim","title","description","variant","variables","concat","push","error","message","handleChange","field","prev","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","div","className","jsx","Link","href","Button","size","ArrowLeft","h1","p","Card","CardHeader","CardTitle","CardDescription","CardContent","form","onSubmit","Label","htmlFor","span","Input","id","type","placeholder","onChange","target","required","Textarea","rows","Switch","checked","onCheckedChange","disabled","Fragment","Loading","React","param","ref","props","cn","displayName","h3","CardFooter","input","labelVariants","cva","LabelPrimitive","svg","aria-hidden","role","viewBox","fill","xmlns","path","d","SwitchPrimitives","textarea","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","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","index","indexOf","splice"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/variables/edit/[variable_id]/page-ad12a1419856c280.js","mappings":"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","sources":["webpack://_N_E/?2d39","webpack://_N_E/./app/(application)/variables/edit/[variable_id]/page.tsx","webpack://_N_E/./components/ui/alert.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/input.tsx","webpack://_N_E/./components/ui/label.tsx","webpack://_N_E/./components/ui/loading.tsx","webpack://_N_E/./components/ui/switch.tsx","webpack://_N_E/./components/ui/textarea.tsx","webpack://_N_E/./components/ui/use-toast.ts"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/Users/daniel.claessen/Desktop/Projects/exulu/frontend/app/(application)/variables/edit/[variable_id]/page.tsx\");\n","\"use client\";\n\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport { ArrowLeft, AlertTriangle } from \"lucide-react\";\nimport Link from \"next/link\";\nimport { useParams, useRouter } from \"next/navigation\";\nimport { useState, useEffect } from \"react\";\nimport { GET_VARIABLE_BY_ID, UPDATE_VARIABLE, GET_VARIABLES } from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { Loading } from \"@/components/ui/loading\";\nimport { Alert, AlertDescription } from \"@/components/ui/alert\";\n\nexport const dynamic = \"force-dynamic\";\n\nexport default function EditVariablePage() {\n const params = useParams();\n const router = useRouter();\n const { toast } = useToast();\n const variableId = params.variable_id as string;\n \n const [formData, setFormData] = useState({\n name: \"\",\n value: \"\",\n encrypted: false,\n });\n\n const { loading: queryLoading, error, data } = useQuery(GET_VARIABLE_BY_ID, {\n variables: { id: variableId },\n skip: !variableId,\n });\n\n const [updateVariable, { loading: updateLoading }] = useMutation(UPDATE_VARIABLE, {\n refetchQueries: [\n GET_VARIABLES,\n \"GetVariables\",\n ],\n });\n\n const variable = data?.variableById;\n const usedByCount = variable?.used_by?.length || 0;\n\n useEffect(() => {\n if (variable) {\n setFormData({\n name: variable.name || \"\",\n value: variable.value || \"\",\n encrypted: variable.encrypted || false,\n });\n }\n }, [variable]);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n \n if (!formData.name.trim() || !formData.value.trim()) {\n toast({\n title: \"Validation Error\",\n description: \"Name and value are required fields.\",\n variant: \"destructive\",\n });\n return;\n }\n\n try {\n await updateVariable({\n variables: {\n id: variableId,\n name: formData.name.trim(),\n value: formData.value,\n encrypted: formData.encrypted,\n },\n });\n\n toast({\n title: \"Variable Updated\",\n description: `Variable \"${formData.name}\" has been updated successfully.`,\n });\n\n router.push(\"/variables\");\n } catch (error: any) {\n toast({\n title: \"Error\",\n description: error.message || \"Failed to update variable. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n const handleChange = (field: string, value: any) => {\n setFormData(prev => ({\n ...prev,\n [field]: value,\n }));\n };\n\n if (queryLoading) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <Loading />\n </div>\n );\n }\n\n if (error || !variable) {\n return (\n <div className=\"flex h-full flex-col items-center justify-center space-y-4\">\n <h1 className=\"text-2xl font-bold\">Variable not found</h1>\n <p className=\"text-muted-foreground\">The requested variable could not be loaded.</p>\n <Link href=\"/variables\">\n <Button>\n <ArrowLeft className=\"mr-2 h-4 w-4\" />\n Back to Variables\n </Button>\n </Link>\n </div>\n );\n }\n\n return (\n <div className=\"max-w-2xl mx-auto space-y-6 p-8\">\n <div className=\"flex items-center space-x-4\">\n <Link href=\"/variables\">\n <Button variant=\"outline\" size=\"sm\">\n <ArrowLeft className=\"mr-2 h-4 w-4\" />\n Back\n </Button>\n </Link>\n <div>\n <h1 className=\"text-2xl font-bold\">Edit Variable</h1>\n <p className=\"text-muted-foreground\">\n Modify variable \"{variable.name}\"\n </p>\n </div>\n </div>\n\n {usedByCount > 0 && (\n <Alert>\n <AlertTriangle className=\"h-4 w-4\" />\n <AlertDescription>\n This variable is currently used by {usedByCount} resource{usedByCount !== 1 ? 's' : ''}. \n Changes may impact those resources.{\" \"}\n <Link href={`/variables/usage/${variableId}`} className=\"underline\">\n View usage details\n </Link>\n </AlertDescription>\n </Alert>\n )}\n\n <Card>\n <CardHeader>\n <CardTitle>Variable Details</CardTitle>\n <CardDescription>\n Update your variable settings\n </CardDescription>\n </CardHeader>\n <CardContent>\n <form onSubmit={handleSubmit} className=\"space-y-6\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"name\">\n Variable Name <span className=\"text-red-500\">*</span>\n </Label>\n <Input\n id=\"name\"\n type=\"text\"\n placeholder=\"e.g., API_KEY, DATABASE_URL\"\n value={formData.name}\n onChange={(e) => handleChange(\"name\", e.target.value)}\n required\n />\n <p className=\"text-sm text-muted-foreground\">\n A unique identifier for your variable. Use UPPERCASE with underscores for constants.\n </p>\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor=\"value\">\n Variable Value <span className=\"text-red-500\">*</span>\n </Label>\n <Textarea\n id=\"value\"\n placeholder=\"Enter the variable value...\"\n value={formData.value}\n onChange={(e) => handleChange(\"value\", e.target.value)}\n rows={4}\n required\n />\n <p className=\"text-sm text-muted-foreground\">\n The actual value of your variable. This will be {formData.encrypted ? \"encrypted\" : \"stored as plain text\"}.\n </p>\n </div>\n\n <div className=\"flex items-center space-x-2\">\n <Switch\n id=\"encrypted\"\n checked={formData.encrypted}\n onCheckedChange={(checked) => handleChange(\"encrypted\", checked)}\n />\n <Label htmlFor=\"encrypted\" className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n Encrypt this variable\n </Label>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n When enabled, the variable value will be encrypted before storing in the database. \n This is recommended for sensitive data like API keys, passwords, and tokens.\n </p>\n\n <div className=\"flex justify-end space-x-4 pt-6\">\n <Link href=\"/variables\">\n <Button variant=\"outline\" type=\"button\">\n Cancel\n </Button>\n </Link>\n <Button type=\"submit\" disabled={updateLoading}>\n {updateLoading ? (\n <>\n <Loading />\n <span className=\"ml-2\">Updating...</span>\n </>\n ) : (\n \"Update Variable\"\n )}\n </Button>\n </div>\n </form>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Variable Information</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n <div>\n <span className=\"font-medium\">Created:</span>{\" \"}\n {new Date(variable.createdAt).toLocaleString()}\n </div>\n <div>\n <span className=\"font-medium\">Last Updated:</span>{\" \"}\n {new Date(variable.updatedAt).toLocaleString()}\n </div>\n <div>\n <span className=\"font-medium\">Used by:</span>{\" \"}\n {usedByCount} resource{usedByCount !== 1 ? 's' : ''}\n </div>\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 alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n info: \"border-info/50 text-info dark:border-info [&>svg]:text-info\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n));\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n","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\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 { cn } from \"@/lib/utils\";\n\nexport const Loading = ({ className }: { className?: null | string }) => {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\"inline w-4 h-4 text-white animate-spin fill-inherit\", className)}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n className=\"fill-inherit opacity-20\"\n ></path>\n <path\n 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\"\n className=\"fill-inherit\"\n ></path>\n </svg>\n );\n};\n","\"use client\";\n\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"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\",\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\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","dynamic","EditVariablePage","variable","params","useParams","router","useRouter","toast","useToast","variableId","variable_id","formData","setFormData","useState","name","value","encrypted","loading","queryLoading","error","data","useQuery","GET_VARIABLE_BY_ID","variables","id","skip","updateVariable","updateLoading","useMutation","UPDATE_VARIABLE","refetchQueries","GET_VARIABLES","variableById","usedByCount","used_by","length","useEffect","handleSubmit","e","preventDefault","trim","title","description","variant","concat","push","message","handleChange","field","prev","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","div","className","Loading","jsxs","h1","p","Link","href","Button","ArrowLeft","size","Alert","AlertTriangle","AlertDescription","Card","CardHeader","CardTitle","CardDescription","CardContent","form","onSubmit","Label","htmlFor","span","Input","type","placeholder","onChange","target","required","Textarea","rows","Switch","checked","onCheckedChange","disabled","Fragment","Date","createdAt","toLocaleString","updatedAt","alertVariants","cva","variants","default","destructive","info","defaultVariants","React","param","ref","props","role","cn","displayName","AlertTitle","h5","h3","CardFooter","input","labelVariants","LabelPrimitive","svg","aria-hidden","viewBox","fill","xmlns","path","d","SwitchPrimitives","textarea","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","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","index","indexOf","splice"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/variables/page-530fff39006ba055.js","mappings":"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","sources":["webpack://_N_E/?8b3e","webpack://_N_E/./app/(application)/variables/components/data-table-column-header.tsx","webpack://_N_E/./app/(application)/variables/components/data-table-row-actions.tsx","webpack://_N_E/./app/(application)/variables/components/columns.tsx","webpack://_N_E/./app/(application)/variables/components/data-table-view-options.tsx","webpack://_N_E/./app/(application)/variables/components/data-table.tsx","webpack://_N_E/./app/(application)/variables/page.tsx","webpack://_N_E/./components/ui/alert-dialog.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/checkbox.tsx","webpack://_N_E/./components/ui/loading.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)/variables/page.tsx\");\n","import {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretSortIcon,\n EyeNoneIcon,\n} from \"@radix-ui/react-icons\";\nimport { Column } from \"@tanstack/react-table\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { cn } from \"@/lib/utils\";\n\ninterface DataTableColumnHeaderProps<TData, TValue>\n extends React.HTMLAttributes<HTMLDivElement> {\n column: Column<TData, TValue>;\n title: string;\n}\n\nexport function DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return <div className={cn(className)}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center space-x-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"-ml-3 h-8 data-[state=open]:bg-accent\"\n >\n <span>{title}</span>\n {column.getIsSorted() === \"desc\" ? (\n <ArrowDownIcon className=\"ml-2 size-4\" />\n ) : column.getIsSorted() === \"asc\" ? (\n <ArrowUpIcon className=\"ml-2 size-4\" />\n ) : (\n <CaretSortIcon className=\"ml-2 size-4\" />\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem onClick={() => column.toggleSorting(false)}>\n <ArrowUpIcon className=\"mr-2 size-3.5 text-muted-foreground/70\" />\n Asc\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.toggleSorting(true)}>\n <ArrowDownIcon className=\"mr-2 size-3.5 text-muted-foreground/70\" />\n Desc\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={() => column.toggleVisibility(false)}>\n <EyeNoneIcon className=\"mr-2 size-3.5 text-muted-foreground/70\" />\n Hide\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}","\"use client\";\n\nimport { useMutation } from \"@apollo/client\";\nimport { DotsHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { Row } from \"@tanstack/react-table\";\nimport Link from \"next/link\";\nimport {\n GET_VARIABLES,\n REMOVE_VARIABLE_BY_ID,\n} from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { useState } from \"react\";\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@/components/ui/alert-dialog\";\nimport { Variable } from \"./columns\";\n\ninterface DataTableRowActionsProps<TData> {\n row: Row<TData>;\n}\n\nexport function DataTableRowActions<TData>({\n row,\n}: DataTableRowActionsProps<TData>) {\n const variable = row.original as Variable;\n const [showDeleteDialog, setShowDeleteDialog] = useState(false);\n\n const { toast } = useToast();\n\n const [removeVariable, removeVariableResult] = useMutation(REMOVE_VARIABLE_BY_ID, {\n refetchQueries: [\n GET_VARIABLES,\n \"GetVariables\",\n ],\n });\n\n const handleDelete = async () => {\n try {\n await removeVariable({\n variables: {\n id: variable.id,\n },\n });\n toast({\n title: \"Variable deleted\",\n description: \"The variable has been successfully deleted.\",\n });\n } catch (error) {\n toast({\n title: \"Error\",\n description: \"Failed to delete the variable. Please try again.\",\n variant: \"destructive\",\n });\n }\n setShowDeleteDialog(false);\n };\n\n const usedByCount = variable.used_by?.length || 0;\n\n return (\n <>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n className=\"flex size-8 p-0 data-[state=open]:bg-muted\"\n >\n <DotsHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">Open menu</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-[160px]\">\n <DropdownMenuItem asChild>\n <Link href={`/variables/edit/${variable.id}`}>\n Edit variable\n </Link>\n </DropdownMenuItem>\n {usedByCount > 0 && (\n <DropdownMenuItem asChild>\n <Link href={`/variables/usage/${variable.id}`}>\n View usage ({usedByCount})\n </Link>\n </DropdownMenuItem>\n )}\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => setShowDeleteDialog(true)}\n className=\"text-red-600\"\n >\n Delete variable\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n\n <AlertDialog open={showDeleteDialog} onOpenChange={setShowDeleteDialog}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Delete Variable</AlertDialogTitle>\n <AlertDialogDescription>\n Are you sure you want to delete the variable \"{variable.name}\"?\n {usedByCount > 0 && (\n <>\n <br />\n <br />\n <strong>Warning:</strong> This variable is currently used by {usedByCount} resource{usedByCount !== 1 ? 's' : ''}. \n Deleting it may impact those resources.\n </>\n )}\n <br />\n <br />\n This action cannot be undone.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction\n onClick={handleDelete}\n className=\"bg-red-600 hover:bg-red-700\"\n >\n Delete\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </>\n );\n}","\"use client\";\n\nimport { ColumnDef } from \"@tanstack/react-table\";\nimport * as React from \"react\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { DataTableColumnHeader } from \"./data-table-column-header\";\nimport { DataTableRowActions } from \"./data-table-row-actions\";\nimport { Eye, EyeOff, Lock, Unlock } from \"lucide-react\";\n\nexport interface Variable {\n id: string;\n name: string;\n value: string;\n encrypted: boolean;\n used_by: string[];\n createdAt: string;\n updatedAt: string;\n}\n\nexport const createColumns = (currentUser: any): ColumnDef<Variable>[] => [\n {\n id: \"select\",\n header: ({ table }) => (\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n aria-label=\"Select all\"\n className=\"translate-y-[2px]\"\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label=\"Select row\"\n className=\"translate-y-[2px]\"\n />\n ),\n enableSorting: false,\n enableHiding: false,\n },\n {\n accessorKey: \"name\",\n header: ({ column }) => (\n <DataTableColumnHeader column={column} title=\"Name\" />\n ),\n cell: ({ row }) => {\n return (\n <div className=\"flex space-x-2\">\n <span className=\"max-w-[200px] truncate font-medium\">\n {row.original.name}\n </span>\n </div>\n );\n },\n },\n {\n accessorKey: \"value\",\n header: ({ column }) => (\n <DataTableColumnHeader column={column} title=\"Value\" />\n ),\n cell: ({ row }) => {\n const [showValue, setShowValue] = React.useState(false);\n const isEncrypted = row.original.encrypted;\n const value = row.original.value;\n \n return (\n <div className=\"flex items-center space-x-2\">\n <span className=\"max-w-[200px] truncate font-mono text-sm\">\n {isEncrypted && !showValue ? \n \"••••••••••••••••\" : \n (showValue ? value : value.substring(0, 20) + (value.length > 20 ? \"...\" : \"\"))\n }\n </span>\n {(isEncrypted || value.length > 20) && (\n <button\n onClick={() => setShowValue(!showValue)}\n className=\"p-1 hover:bg-gray-100 rounded\"\n >\n {showValue ? (\n <EyeOff className=\"h-4 w-4 text-gray-500\" />\n ) : (\n <Eye className=\"h-4 w-4 text-gray-500\" />\n )}\n </button>\n )}\n </div>\n );\n },\n enableSorting: false,\n },\n {\n accessorKey: \"encrypted\",\n header: ({ column }) => (\n <DataTableColumnHeader column={column} title=\"Encryption\" />\n ),\n cell: ({ row }) => {\n const isEncrypted = row.original.encrypted;\n return (\n <div className=\"flex items-center space-x-2\">\n {isEncrypted ? (\n <>\n <Lock className=\"h-4 w-4 text-green-600\" />\n <Badge variant=\"default\" className=\"bg-green-100 text-green-800 border-green-300\">\n Encrypted\n </Badge>\n </>\n ) : (\n <>\n <Unlock className=\"h-4 w-4 text-gray-500\" />\n <Badge variant=\"outline\">\n Plain Text\n </Badge>\n </>\n )}\n </div>\n );\n },\n filterFn: (row, id, value) => {\n return value.includes(row.getValue(id));\n },\n },\n {\n accessorKey: \"used_by\",\n header: ({ column }) => (\n <DataTableColumnHeader column={column} title=\"Used By\" />\n ),\n cell: ({ row }) => {\n // todo query agents and users to check where the variable is used\n // do this by creating a graphql query in graphql.ts that executes\n // a database query on users counting where anthropic_token is the variable id\n // and agents counting where the variable name occurs in their config json column\n const usedBy = row.original.used_by || [];\n return (\n <div className=\"flex items-center space-x-2\">\n <Badge variant=\"secondary\">\n {usedBy.length} resource{usedBy.length !== 1 ? 's' : ''}\n </Badge>\n {usedBy.length > 0 && (\n <span className=\"text-xs text-muted-foreground\">\n {usedBy.slice(0, 2).map(id => {\n const [type] = id.split('/');\n return type;\n }).join(', ')}\n {usedBy.length > 2 && ` +${usedBy.length - 2} more`}\n </span>\n )}\n </div>\n );\n },\n enableSorting: false,\n },\n {\n accessorKey: \"createdAt\",\n header: ({ column }) => (\n <DataTableColumnHeader column={column} title=\"Created\" />\n ),\n cell: ({ row }) => {\n return (\n <div className=\"text-sm text-muted-foreground\">\n {new Date(row.original.createdAt).toLocaleDateString()}\n </div>\n );\n },\n },\n {\n id: \"actions\",\n cell: ({ row }) => <DataTableRowActions row={row} />,\n },\n];","\"use client\";\n\nimport { DropdownMenuTrigger } from \"@radix-ui/react-dropdown-menu\";\nimport { MixerHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { Table } from \"@tanstack/react-table\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n} from \"@/components/ui/dropdown-menu\";\n\ninterface DataTableViewOptionsProps<TData> {\n table: Table<TData>;\n}\n\nexport function DataTableViewOptions<TData>({\n table,\n}: DataTableViewOptionsProps<TData>) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"ml-auto hidden h-8 lg:flex\"\n >\n <MixerHorizontalIcon className=\"mr-2 size-4\" />\n View\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-[150px]\">\n <DropdownMenuLabel>Toggle columns</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter(\n (column) =>\n typeof column.accessorFn !== \"undefined\" && column.getCanHide(),\n )\n .map((column) => {\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(!!value)}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}","\"use client\";\n\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n Cross2Icon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n} from \"@radix-ui/react-icons\";\nimport {\n ColumnDef,\n ColumnFiltersState,\n flexRender,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n Row,\n SortingState,\n useReactTable,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport { Plus, Trash2 } from \"lucide-react\";\nimport { useRouter } from \"next/navigation\";\nimport { useState } from \"react\";\nimport * as React from \"react\";\nimport {\n GET_VARIABLES,\n REMOVE_VARIABLE_BY_ID,\n} from \"@/queries/queries\";\nimport { DataTableViewOptions } from \"./data-table-view-options\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Loading } from \"@/components/ui/loading\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { FilterOperator } from \"@/components/custom/recent-jobs\";\n\nexport type VariableFilters = {\n name?: FilterOperator,\n encrypted?: FilterOperator,\n createdAt?: FilterOperator,\n updatedAt?: FilterOperator,\n}\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[];\n}\n\nexport function usePagination() {\n const [pagination, setPagination] = useState({\n pageSize: 10,\n pageIndex: 0,\n });\n const { pageSize, pageIndex } = pagination;\n\n return {\n limit: pageSize,\n onPaginationChange: setPagination,\n pagination,\n skip: pageSize * pageIndex,\n };\n}\n\nexport function DataTable<TData, TValue>({\n columns,\n}: DataTableProps<TData, TValue>) {\n const { toast } = useToast();\n const router = useRouter();\n const [rowSelection, setRowSelection] = React.useState({});\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>({});\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(\n [],\n );\n\n const [filters, setFilters] = useState<VariableFilters[]>([]);\n\n let [page, setPage] = useState(1);\n const [sorting, setSorting] = React.useState<SortingState>([]);\n\n const { loading, error, data, refetch, previousData } = useQuery(GET_VARIABLES, {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: page,\n limit: 10,\n filters: filters,\n },\n pollInterval: 30000,\n });\n\n const defaultData = React.useMemo(() => [], []);\n const { limit, onPaginationChange, skip, pagination } = usePagination();\n\n const [removeVariable, removeVariableResult] = useMutation(REMOVE_VARIABLE_BY_ID, {\n refetchQueries: [\n GET_VARIABLES,\n \"GetVariables\",\n ],\n });\n\n let items;\n let pageCount;\n if (loading && previousData?.variablesPagination?.items) {\n items = previousData?.variablesPagination?.items;\n pageCount = previousData?.variablesPagination?.pageInfo?.pageCount;\n } else if (data?.variablesPagination?.items) {\n items = data?.variablesPagination?.items;\n pageCount = data?.variablesPagination?.pageInfo?.pageCount;\n } else if (previousData?.variablesPagination?.items) {\n items = previousData?.variablesPagination?.items;\n pageCount = previousData?.variablesPagination?.pageInfo?.pageCount;\n }\n\n const table = useReactTable({\n data: items ?? defaultData,\n pageCount: pageCount ?? -1,\n columns,\n state: {\n sorting,\n columnVisibility,\n rowSelection,\n columnFilters,\n },\n enableRowSelection: true,\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n manualPagination: true,\n onPaginationChange,\n });\n\n const search = (value: string) => {\n const copy = [...filters];\n const exists = copy.find((filter) => filter.name);\n if (exists?.name) {\n exists.name.contains = value;\n } else {\n copy.push({\n name: {\n contains: value,\n },\n });\n }\n setFilters(copy);\n refetch();\n };\n\n const isFiltered = filters.length > 0;\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-1 items-center space-x-2\">\n <Input\n placeholder=\"Filter variables...\"\n value={filters?.find((filter) => filter.name)?.name?.contains ?? \"\"}\n onChange={(event) => {\n search(event.target.value);\n }}\n className=\"w-[150px] lg:w-[250px]\"\n />\n\n <Button\n onClick={() => {\n router.push(\"/variables/create\");\n }}\n >\n <Plus className=\"mr-2 size-4\" />\n Add Variable\n </Button>\n\n {table.getIsSomeRowsSelected() || table.getIsAllRowsSelected() ? (\n <div className=\"flex gap-x-2\">\n <Button\n onClick={() => {\n const promises: any[] = [];\n table.getSelectedRowModel().rows.forEach((row: Row<any>) => {\n promises.push(\n removeVariable({\n variables: {\n id: row.original.id,\n },\n }),\n );\n });\n Promise.all(promises).then(() => {\n table.resetRowSelection();\n toast({\n title: \"Variables deleted\",\n description: \"Successfully deleted \" + promises.length + \" variable(s).\",\n });\n }).catch(() => {\n toast({\n title: \"Error\",\n description: \"Failed to delete some variables. Please try again.\",\n variant: \"destructive\",\n });\n });\n }}\n variant=\"secondary\"\n disabled={removeVariableResult.loading}\n >\n {removeVariableResult.loading ? (\n <Loading />\n ) : (\n <Trash2 className=\"size-4\" />\n )}\n <span className=\"ml-2\">Delete selected</span>\n </Button>\n </div>\n ) : null}\n\n {isFiltered && (\n <Button\n variant=\"ghost\"\n onClick={() => {\n const copy = [...filters];\n const nameFilter = copy.find((filter) => filter.name);\n if (nameFilter) {\n copy.splice(copy.indexOf(nameFilter), 1);\n }\n setFilters(copy);\n refetch();\n }}\n >\n Reset\n <Cross2Icon className=\"ml-2 size-4\" />\n </Button>\n )}\n </div>\n <DataTableViewOptions table={table} />\n </div>\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <TableHead key={header.id} colSpan={header.colSpan}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"h-24 text-center\"\n >\n No variables found.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <div className=\"flex items-center justify-between px-2\">\n <div className=\"text-muted-foreground flex-1 text-sm\">\n {table.getFilteredSelectedRowModel().rows.length} of{\" \"}\n {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n <div className=\"flex w-[100px] items-center justify-center text-sm font-medium\">\n Page {page} of {table.getPageCount()}\n </div>\n <div className=\"flex items-center space-x-2\">\n <Button\n variant=\"outline\"\n className=\"hidden size-8 p-0 lg:flex\"\n onClick={() => {\n table.setPageIndex(0);\n setPage(1);\n refetch();\n }}\n disabled={!data?.variablesPagination?.pageInfo.hasPreviousPage}\n >\n <span className=\"sr-only\">Go to first page</span>\n <DoubleArrowLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"size-8 p-0\"\n onClick={() => {\n table.previousPage();\n setPage(page - 1);\n refetch();\n }}\n disabled={!data?.variablesPagination?.pageInfo.hasPreviousPage}\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"size-8 p-0\"\n onClick={() => {\n table.nextPage();\n setPage(page + 1);\n refetch();\n }}\n disabled={!data?.variablesPagination?.pageInfo.hasNextPage}\n >\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"hidden size-8 p-0 lg:flex\"\n onClick={() => {\n table.setPageIndex(table.getPageCount() - 1);\n setPage(table.getPageCount());\n refetch();\n }}\n disabled={!data?.variablesPagination?.pageInfo.hasNextPage}\n >\n <span className=\"sr-only\">Go to last page</span>\n <DoubleArrowRightIcon className=\"size-4\" />\n </Button>\n </div>\n </div>\n </div>\n </div>\n );\n}","\"use client\";\n\nimport { useContext } from \"react\";\nimport { createColumns } from \"./components/columns\";\nimport { DataTable } from \"./components/data-table\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\n\nexport const dynamic = \"force-dynamic\";\n\nexport default function VariablesPage() {\n const { user } = useContext(UserContext);\n const columns = createColumns(user);\n\n return (\n <>\n <div className=\"hidden h-full flex-1 flex-col space-y-8 p-8 md:flex\">\n <div className=\"flex items-center justify-between space-y-2\">\n <div>\n <h2 className=\"text-2xl font-bold tracking-tight\">Variables</h2>\n <p className=\"text-muted-foreground\">\n Manage your application variables and secrets.\n </p>\n </div>\n </div>\n <DataTable columns={columns} />\n </div>\n </>\n );\n}","\"use client\";\n\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\nimport * as React from \"react\";\n\nimport { buttonVariants } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\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 ref={ref}\n />\n));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.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 </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = ({\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);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\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","\"use client\";\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"size-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import { cn } from \"@/lib/utils\";\n\nexport const Loading = ({ className }: { className?: null | string }) => {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\"inline w-4 h-4 text-white animate-spin fill-inherit\", className)}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n className=\"fill-inherit opacity-20\"\n ></path>\n <path\n 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\"\n className=\"fill-inherit\"\n ></path>\n </svg>\n );\n};\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","DataTableColumnHeader","param","column","title","className","getCanSort","jsx_runtime","jsx","div","cn","jsxs","DropdownMenu","DropdownMenuTrigger","asChild","Button","variant","size","span","getIsSorted","ArrowDownIcon","ArrowUpIcon","CaretSortIcon","DropdownMenuContent","align","DropdownMenuItem","onClick","toggleSorting","DropdownMenuSeparator","toggleVisibility","EyeNoneIcon","DataTableRowActions","variable","row","original","showDeleteDialog","setShowDeleteDialog","useState","toast","useToast","removeVariable","removeVariableResult","useMutation","REMOVE_VARIABLE_BY_ID","refetchQueries","GET_VARIABLES","handleDelete","variables","id","description","error","usedByCount","used_by","length","Fragment","DotsHorizontalIcon","Link","href","concat","AlertDialog","open","onOpenChange","AlertDialogContent","AlertDialogHeader","AlertDialogTitle","AlertDialogDescription","name","br","strong","AlertDialogFooter","AlertDialogCancel","AlertDialogAction","createColumns","header","table","Checkbox","checked","getIsAllPageRowsSelected","getIsSomePageRowsSelected","onCheckedChange","toggleAllPageRowsSelected","value","aria-label","cell","getIsSelected","toggleSelected","enableSorting","enableHiding","accessorKey","showValue","setShowValue","React","isEncrypted","encrypted","substring","button","EyeOff","Eye","Lock","Badge","Unlock","filterFn","includes","getValue","usedBy","slice","map","type","split","join","Date","createdAt","toLocaleDateString","DataTableViewOptions","MixerHorizontalIcon","DropdownMenuLabel","getAllColumns","filter","accessorFn","getCanHide","DropdownMenuCheckboxItem","getIsVisible","DataTable","previousData","data","filters","items","pageCount","columns","router","useRouter","rowSelection","setRowSelection","columnVisibility","setColumnVisibility","columnFilters","setColumnFilters","setFilters","page","setPage","sorting","setSorting","loading","refetch","useQuery","fetchPolicy","nextFetchPolicy","limit","pollInterval","defaultData","onPaginationChange","skip","pagination","usePagination","setPagination","pageSize","pageIndex","variablesPagination","pageInfo","useReactTable","state","enableRowSelection","onRowSelectionChange","onSortingChange","onColumnFiltersChange","onColumnVisibilityChange","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","getFacetedRowModel","getFacetedUniqueValues","manualPagination","search","copy","exists","find","contains","push","isFiltered","Input","placeholder","onChange","event","target","Plus","getIsSomeRowsSelected","getIsAllRowsSelected","promises","getSelectedRowModel","rows","forEach","all","resetRowSelection","catch","disabled","Loading","Trash2","nameFilter","splice","indexOf","Cross2Icon","Table","TableHeader","getHeaderGroups","TableRow","headerGroup","headers","TableHead","colSpan","isPlaceholder","flexRender","columnDef","getContext","TableBody","getRowModel","data-state","getVisibleCells","TableCell","getFilteredSelectedRowModel","getPageCount","setPageIndex","hasPreviousPage","DoubleArrowLeftIcon","previousPage","ChevronLeftIcon","nextPage","hasNextPage","ChevronRightIcon","DoubleArrowRightIcon","dynamic","VariablesPage","user","useContext","UserContext","h2","p","AlertDialogPrimitive","AlertDialogPortal","AlertDialogOverlay","ref","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","displayName","buttonVariants","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","CheckboxPrimitive","Check","svg","aria-hidden","role","viewBox","fill","xmlns","path","d","thead","tbody","TableFooter","tfoot","tr","th","td","TableCaption","caption","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","delete","dispatch","set","reducer","action","toasts","t","undefined","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","update","setState","index"],"sourceRoot":""}
|