@exulu/frontend 1.3.2 → 1.4.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 +185 -174
- package/dist/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/build-manifest.json +2 -2
- package/dist/.next/prerender-manifest.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 +1 -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 +1 -1
- 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 +5 -1
- 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 +5 -1
- 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 +1 -1
- 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_client-reference-manifest.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 +9 -9
- package/dist/.next/server/app-paths-manifest.json +5 -5
- package/dist/.next/server/chunks/1051.js +16 -16
- package/dist/.next/server/chunks/2270.js +188 -100
- package/dist/.next/server/chunks/{8838.js → 2875.js} +1 -1
- package/dist/.next/server/chunks/2916.js +1 -1
- package/dist/.next/server/chunks/3503.js +1 -0
- package/dist/.next/server/chunks/{7544.js → 4552.js} +1 -1
- package/dist/.next/server/chunks/{3393.js → 4739.js} +1 -1
- package/dist/.next/server/chunks/5192.js +1 -1
- package/dist/.next/server/chunks/5999.js +2 -0
- package/dist/.next/server/chunks/6282.js +1 -0
- package/dist/.next/server/chunks/6623.js +1 -0
- package/dist/.next/server/chunks/7721.js +1 -0
- package/dist/.next/server/chunks/7944.js +2 -2
- package/dist/.next/server/chunks/8050.js +1 -0
- package/dist/.next/server/chunks/8206.js +1 -0
- package/dist/.next/server/chunks/8679.js +5 -0
- package/dist/.next/server/middleware-manifest.json +5 -5
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/1294-368dc8ec59054da4.js +2 -0
- package/dist/.next/static/chunks/1294-368dc8ec59054da4.js.map +1 -0
- package/dist/.next/static/chunks/{1645-e5fd10236c0183ce.js → 1645-570e014100772437.js} +1 -1
- package/dist/.next/static/chunks/{1645-e5fd10236c0183ce.js.map → 1645-570e014100772437.js.map} +1 -1
- package/dist/.next/static/chunks/1957-5867716304ecd208.js +2 -0
- package/dist/.next/static/chunks/1957-5867716304ecd208.js.map +1 -0
- package/dist/.next/static/chunks/{2293-59b4bbce0c5bd2f2.js → 2293-1681cdef5b8c0c0b.js} +1 -1
- package/dist/.next/static/chunks/{2293-59b4bbce0c5bd2f2.js.map → 2293-1681cdef5b8c0c0b.js.map} +1 -1
- package/dist/.next/static/chunks/3475-28ce4fce960656bd.js +2 -0
- package/dist/.next/static/chunks/3475-28ce4fce960656bd.js.map +1 -0
- package/dist/.next/static/chunks/3832-a5e8fc6647e2be65.js +2 -0
- package/dist/.next/static/chunks/3832-a5e8fc6647e2be65.js.map +1 -0
- package/dist/.next/static/chunks/{4386-a36fe9c65884f025.js → 4386-c7690667749bff6a.js} +1 -1
- package/dist/.next/static/chunks/{4386-a36fe9c65884f025.js.map → 4386-c7690667749bff6a.js.map} +1 -1
- package/dist/.next/static/chunks/4750-4d5c13bbc96bc19b.js +2 -0
- package/dist/.next/static/chunks/4750-4d5c13bbc96bc19b.js.map +1 -0
- package/dist/.next/static/chunks/5243-1aaa41b2cd0ea87c.js +2 -0
- package/dist/.next/static/chunks/5243-1aaa41b2cd0ea87c.js.map +1 -0
- package/dist/.next/static/chunks/5978-814d6900645d2fcc.js +2 -0
- package/dist/.next/static/chunks/5978-814d6900645d2fcc.js.map +1 -0
- package/dist/.next/static/chunks/6373-651cb258c9e2b57b.js +2 -0
- package/dist/.next/static/chunks/6373-651cb258c9e2b57b.js.map +1 -0
- package/dist/.next/static/chunks/{7564-44a20b31206685e1.js → 6545-5a1d7cf4d5ca770e.js} +21 -21
- package/dist/.next/static/chunks/6545-5a1d7cf4d5ca770e.js.map +1 -0
- package/dist/.next/static/chunks/6839-0f4cfb48058a5ab6.js +2 -0
- package/dist/.next/static/chunks/6839-0f4cfb48058a5ab6.js.map +1 -0
- package/dist/.next/static/chunks/723-94e596796cbf911d.js +2 -0
- package/dist/.next/static/chunks/723-94e596796cbf911d.js.map +1 -0
- package/dist/.next/static/chunks/8202-db2cc384c66bc1be.js +2 -0
- package/dist/.next/static/chunks/8202-db2cc384c66bc1be.js.map +1 -0
- package/dist/.next/static/chunks/8269-37dd07515eb44201.js +2 -0
- package/dist/.next/static/chunks/8269-37dd07515eb44201.js.map +1 -0
- package/dist/.next/static/chunks/8469-ba31cbd7acab5f94.js +2 -0
- package/dist/.next/static/chunks/8469-ba31cbd7acab5f94.js.map +1 -0
- package/dist/.next/static/chunks/8824-20030459012376a3.js +2 -0
- package/dist/.next/static/chunks/8824-20030459012376a3.js.map +1 -0
- package/dist/.next/static/chunks/9105-3800f721d38e2b9a.js +2 -0
- package/dist/.next/static/chunks/9105-3800f721d38e2b9a.js.map +1 -0
- package/dist/.next/static/chunks/9183-a51605ff26b92fed.js +41 -0
- package/dist/.next/static/chunks/9183-a51605ff26b92fed.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-511f168123f85285.js +2 -0
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-511f168123f85285.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/agents/{page-499ac3bd1044306c.js → page-63643deabdaa6b2c.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/agents/{page-499ac3bd1044306c.js.map → page-63643deabdaa6b2c.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/{page-3807a8bc2ae87548.js → page-62c7321ba26632af.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-62c7321ba26632af.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/{layout-53796525bd3e2443.js → layout-5eb1d22ddcbc0b55.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/chat/{layout-53796525bd3e2443.js.map → layout-5eb1d22ddcbc0b55.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/configuration/{page-2d8a0e2664ab9a94.js → page-8f92af5318feb84f.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/configuration/{page-2d8a0e2664ab9a94.js.map → page-8f92af5318feb84f.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/page-00e425d942e0d769.js +2 -0
- package/dist/.next/static/chunks/app/(application)/dashboard/page-00e425d942e0d769.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-a460a56d3efac658.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-a460a56d3efac658.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-bb06a9553c9ed178.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-bb06a9553c9ed178.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-2238f1fb73d93328.js → page-ef82e92ca7d0da6c.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-2238f1fb73d93328.js.map → page-ef82e92ca7d0da6c.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-6622dd1b22a7885d.js +2 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-6622dd1b22a7885d.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-ea5faf58b368feae.js → page-6246be9d6592d1d3.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-ea5faf58b368feae.js.map → page-6246be9d6592d1d3.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/evals/{page-f79e1a90384ba618.js → page-b1e1fd7dba1e675f.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/{page-f79e1a90384ba618.js.map → page-b1e1fd7dba1e675f.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/jobs/{page-e6f02a338bec4806.js → page-a96441a0bc654d68.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/jobs/{page-e6f02a338bec4806.js.map → page-a96441a0bc654d68.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/keys/{page-59ee4e0281131cbc.js → page-163aadfe9ad0d794.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/keys/{page-59ee4e0281131cbc.js.map → page-163aadfe9ad0d794.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/{layout-73d93420d0c6661c.js → layout-694c53aca85ef437.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/{layout-73d93420d0c6661c.js.map → layout-694c53aca85ef437.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-e69828fde85c50af.js +2 -0
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-e69828fde85c50af.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/projects/{layout-f73ad7daf4825f1b.js → layout-d7642b25bf6d33b3.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/projects/{layout-f73ad7daf4825f1b.js.map → layout-d7642b25bf6d33b3.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/roles/page-5d5e5142f0997122.js +2 -0
- package/dist/.next/static/chunks/app/(application)/roles/page-5d5e5142f0997122.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/users/{page-e0a04fda52138aa0.js → page-b862cb199fd72525.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/users/{page-e0a04fda52138aa0.js.map → page-b862cb199fd72525.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-6c6076f3f253190d.js → page-d79d5c1c1ecabdb5.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-6c6076f3f253190d.js.map → page-d79d5c1c1ecabdb5.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-a3fa477fead5609a.js → page-72cf3aa95776ab96.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-a3fa477fead5609a.js.map → page-72cf3aa95776ab96.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/{page-ddeff54a8b19bdbe.js → page-67864b471b48c950.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/variables/{page-ddeff54a8b19bdbe.js.map → page-67864b471b48c950.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-ed6d136e7ee3a591.js → page-208b4c9cc64abf2e.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-ed6d136e7ee3a591.js.map → page-208b4c9cc64abf2e.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-5b1ffc7c5012fdf6.js +2 -0
- package/dist/.next/static/chunks/app/(application)/workflows/page-5b1ffc7c5012fdf6.js.map +1 -0
- package/dist/.next/static/css/006966ab2edd0ebc.css +4 -0
- package/dist/.next/static/css/006966ab2edd0ebc.css.map +1 -0
- package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
- package/dist/package.json +4 -1
- package/package.json +1 -1
- package/dist/.next/server/chunks/3743.js +0 -1
- package/dist/.next/server/chunks/4375.js +0 -1
- package/dist/.next/server/chunks/4680.js +0 -1
- package/dist/.next/server/chunks/7203.js +0 -5
- package/dist/.next/server/chunks/7598.js +0 -5
- package/dist/.next/server/chunks/8806.js +0 -1
- package/dist/.next/static/chunks/1957-670ddf66742d95f2.js +0 -2
- package/dist/.next/static/chunks/1957-670ddf66742d95f2.js.map +0 -1
- package/dist/.next/static/chunks/3397-5a704b2e12e9e883.js +0 -2
- package/dist/.next/static/chunks/3397-5a704b2e12e9e883.js.map +0 -1
- package/dist/.next/static/chunks/3832-10b779e2f89f162f.js +0 -2
- package/dist/.next/static/chunks/3832-10b779e2f89f162f.js.map +0 -1
- package/dist/.next/static/chunks/3998-c1c5bec61ce07357.js +0 -2
- package/dist/.next/static/chunks/3998-c1c5bec61ce07357.js.map +0 -1
- package/dist/.next/static/chunks/428-61741966c36f4f72.js +0 -2
- package/dist/.next/static/chunks/428-61741966c36f4f72.js.map +0 -1
- package/dist/.next/static/chunks/5585-4f0c084850210a82.js +0 -2
- package/dist/.next/static/chunks/5585-4f0c084850210a82.js.map +0 -1
- package/dist/.next/static/chunks/5615-042f927b657e6db1.js +0 -41
- package/dist/.next/static/chunks/5615-042f927b657e6db1.js.map +0 -1
- package/dist/.next/static/chunks/5978-f3b8475a2d9f9299.js +0 -2
- package/dist/.next/static/chunks/5978-f3b8475a2d9f9299.js.map +0 -1
- package/dist/.next/static/chunks/6242-c1c2f1479529e9d4.js +0 -2
- package/dist/.next/static/chunks/6242-c1c2f1479529e9d4.js.map +0 -1
- package/dist/.next/static/chunks/6373-fc4799cc7a13474a.js +0 -2
- package/dist/.next/static/chunks/6373-fc4799cc7a13474a.js.map +0 -1
- package/dist/.next/static/chunks/7398-c6de1642586049cd.js +0 -2
- package/dist/.next/static/chunks/7398-c6de1642586049cd.js.map +0 -1
- package/dist/.next/static/chunks/7564-44a20b31206685e1.js.map +0 -1
- package/dist/.next/static/chunks/79-1d568f3c4cd45bd4.js +0 -2
- package/dist/.next/static/chunks/79-1d568f3c4cd45bd4.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-b66390eb4a95ac1a.js +0 -2
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-b66390eb4a95ac1a.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-3807a8bc2ae87548.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/page-85d3f8d2bd28ae4b.js +0 -2
- package/dist/.next/static/chunks/app/(application)/dashboard/page-85d3f8d2bd28ae4b.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-822dad4cb57f62e2.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-822dad4cb57f62e2.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-3efd7701534078ea.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-3efd7701534078ea.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-b6a3cb8435be3ade.js +0 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-b6a3cb8435be3ade.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js +0 -2
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/roles/page-acd9ef282bc53557.js +0 -2
- package/dist/.next/static/chunks/app/(application)/roles/page-acd9ef282bc53557.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-38488c44d89b32f4.js +0 -2
- package/dist/.next/static/chunks/app/(application)/workflows/page-38488c44d89b32f4.js.map +0 -1
- package/dist/.next/static/css/a7092ddec8ffd4fb.css +0 -4
- package/dist/.next/static/css/a7092ddec8ffd4fb.css.map +0 -1
- /package/dist/.next/static/{HHwzgh0RLIMeodnSs4vIv → soJPoIxCmlpJ75t9n-Q9V}/_buildManifest.js +0 -0
- /package/dist/.next/static/{HHwzgh0RLIMeodnSs4vIv → soJPoIxCmlpJ75t9n-Q9V}/_ssgManifest.js +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4360],{38434:function(e,s,t){Promise.resolve().then(t.bind(t,96126))},96126:function(e,s,t){"use strict";t.r(s),t.d(s,{default:function(){return U}});var a=t(57437),r=t(2265),l=t(32660),n=t(99397),i=t(15863),o=t(88906),d=t(15868),c=t(18930),u=t(62869),f=t(27648),m=t(95186),x=t(27107),p=t(66070),h=t(73578),v=t(26110),g=t(35974),j=t(77992),b=t(7211),N=t(12199),w=t(27689),y=t(82222),k=t(42042),R=t(32790),C=t(95805),S=t(98145),A=t(64972),T=t(26815),Z=t(42325),D=t(40519),E=t(94508);let _=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(Z.fC,{className:(0,E.cn)("grid gap-2",t),...r,ref:s})});_.displayName=Z.fC.displayName;let O=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(Z.ck,{ref:s,className:(0,E.cn)("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),...r,children:(0,a.jsx)(Z.z$,{className:"flex items-center justify-center",children:(0,a.jsx)(D.Z,{className:"size-2.5 fill-current text-current"})})})});O.displayName=Z.ck.displayName;let I=[{value:"",label:"No Access",description:"Cannot access this resource"},{value:"read",label:"Read Only",description:"Can view but not modify"},{value:"write",label:"Read/Write",description:"Full access to create, read, update, and delete"}],z=[{key:"agents",label:"Agents",icon:y.Z,description:"AI agents and their configurations"},{key:"workflows",label:"Workflows",icon:k.Z,description:"Workflow templates and executions"},{key:"variables",label:"Variables",icon:R.Z,description:"Environment variables and secrets"},{key:"users",label:"Users",icon:C.Z,description:"User management and roles"},{key:"api",label:"API",icon:S.Z,description:"API access and management"},{key:"evals",label:"Evals",icon:A.Z,description:"Evaluation sets, test cases, and eval runs"}];function P(e){let{initialData:s,onSubmit:t,loading:l,onCancel:n}=e,[d,c]=(0,r.useState)((null==s?void 0:s.name)||""),[f,x]=(0,r.useState)({agents:(null==s?void 0:s.agents)||"",api:(null==s?void 0:s.api)||"",workflows:(null==s?void 0:s.workflows)||"",variables:(null==s?void 0:s.variables)||"",users:(null==s?void 0:s.users)||"",evals:(null==s?void 0:s.evals)||""});(0,r.useEffect)(()=>{s&&(c(s.name),x({agents:s.agents||"",api:s.api||"",workflows:s.workflows||"",variables:s.variables||"",users:s.users||"",evals:s.evals||""}))},[s]);let h=(e,s)=>{x(t=>({...t,[e]:s}))},v=async e=>{if(e.preventDefault(),!d.trim())return;let s={name:d.trim(),agents:f.agents||null,api:f.api||null,workflows:f.workflows||null,variables:f.variables||null,users:f.users||null,evals:f.evals||null};await t(s)};return(0,a.jsxs)("form",{onSubmit:v,className:"space-y-6",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(T._,{htmlFor:"roleName",children:"Role Name"}),(0,a.jsx)(m.I,{id:"roleName",placeholder:"e.g. Admin, Developer, Viewer",value:d,onChange:e=>c(e.target.value),disabled:l,required:!0})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-lg font-medium",children:"Permissions"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Configure access levels for different areas of the system"})]}),z.map(e=>{let s=e.icon;return(0,a.jsxs)(p.Zb,{children:[(0,a.jsxs)(p.Ol,{className:"pb-3",children:[(0,a.jsxs)(p.ll,{className:"flex items-center gap-2 text-base",children:[(0,a.jsx)(s,{className:"h-4 w-4"}),e.label]}),(0,a.jsx)(p.SZ,{className:"text-sm",children:e.description})]}),(0,a.jsx)(p.aY,{children:(0,a.jsx)(_,{value:f[e.key],onValueChange:s=>h(e.key,s),disabled:l,children:I.map(s=>(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(O,{value:s.value,id:"".concat(e.key,"-").concat(s.value)}),(0,a.jsx)(T._,{htmlFor:"".concat(e.key,"-").concat(s.value),className:"flex-1 cursor-pointer",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-medium",children:s.label}),(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:s.description})]})})]},s.value))})})]},e.key)})]}),(0,a.jsxs)("div",{className:"flex items-center justify-end gap-3 pt-4 border-t",children:[(0,a.jsx)(u.z,{type:"button",variant:"outline",onClick:n,disabled:l,children:"Cancel"}),(0,a.jsx)(u.z,{type:"submit",disabled:l||!d.trim(),children:l?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.Z,{className:"mr-2 h-4 w-4 animate-spin"}),s?"Updating...":"Creating..."]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.Z,{className:"mr-2 h-4 w-4"}),s?"Update Role":"Create Role"]})})]})]})}function U(){var e;let[s,t]=(0,r.useState)(""),[y,k]=(0,r.useState)(!1),[R,C]=(0,r.useState)(!1),[S,A]=(0,r.useState)(!1),[T,Z]=(0,r.useState)(null),{loading:D,error:E,data:_,refetch:O}=(0,b.aM)(w.l1,{variables:{page:1,limit:100},fetchPolicy:"cache-first",nextFetchPolicy:"network-only"}),[I,{loading:z}]=(0,N.D)(w.kH,{refetchQueries:[w.l1,"GetUserRoles"]}),[U,{loading:V}]=(0,N.D)(w.ZX,{refetchQueries:[w.l1,"GetUserRoles"]}),[F,{loading:M}]=(0,N.D)(w.JM,{refetchQueries:[w.l1,"GetUserRoles"]}),W=((null==_?void 0:null===(e=_.rolesPagination)||void 0===e?void 0:e.items)||[]).filter(e=>e.name.toLowerCase().includes(s.toLowerCase())),L=e=>{let s=[];if(e.agents){let t=e.agents.toLowerCase();t.includes("write")||t.includes("create")||t.includes("update")||t.includes("delete")?s.push({name:"Agents",level:"Read/Write"}):(t.includes("read")||t.includes("view"))&&s.push({name:"Agents",level:"Read"})}if(e.workflows){let t=e.workflows.toLowerCase();t.includes("write")||t.includes("create")||t.includes("update")||t.includes("delete")?s.push({name:"Workflows",level:"Read/Write"}):(t.includes("read")||t.includes("view"))&&s.push({name:"Workflows",level:"Read"})}if(e.variables){let t=e.variables.toLowerCase();t.includes("write")||t.includes("create")||t.includes("update")||t.includes("delete")?s.push({name:"Variables",level:"Read/Write"}):(t.includes("read")||t.includes("view"))&&s.push({name:"Variables",level:"Read"})}if(e.users){let t=e.users.toLowerCase();t.includes("write")||t.includes("create")||t.includes("update")||t.includes("delete")?s.push({name:"Users",level:"Read/Write"}):(t.includes("read")||t.includes("view"))&&s.push({name:"Users",level:"Read"})}if(e.api){let t=e.api.toLowerCase();t.includes("write")||t.includes("create")||t.includes("update")||t.includes("delete")?s.push({name:"API",level:"Read/Write"}):(t.includes("read")||t.includes("view"))&&s.push({name:"API",level:"Read"})}return s},q=async e=>{try{await I({variables:{name:e.name,agents:e.agents,api:e.api,workflows:e.workflows,variables:e.variables,users:e.users}}),k(!1),(0,j.Am)({title:"Success",description:"Role created successfully"})}catch(e){(0,j.Am)({title:"Error",description:"Failed to create role",variant:"destructive"})}},B=async e=>{if(T)try{await U({variables:{id:T.id,name:e.name,agents:e.agents,api:e.api,workflows:e.workflows,variables:e.variables,users:e.users}}),C(!1),Z(null),(0,j.Am)({title:"Success",description:"Role updated successfully"})}catch(e){(0,j.Am)({title:"Error",description:"Failed to update role",variant:"destructive"})}},Y=async()=>{if(T)try{await F({variables:{id:T.id}}),A(!1),Z(null),(0,j.Am)({title:"Success",description:"Role deleted successfully"})}catch(e){(0,j.Am)({title:"Error",description:"Failed to delete role",variant:"destructive"})}};return(0,a.jsxs)("div",{className:"container mx-auto py-6 space-y-8 max-w-7xl",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(f.default,{href:"/users",children:(0,a.jsxs)(u.z,{variant:"ghost",size:"sm",className:"mb-2 w-fit",children:[(0,a.jsx)(l.Z,{className:"mr-2 h-4 w-4"}),"Back to Users"]})}),(0,a.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Role Management"}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"Create and manage roles with specific permissions for agents, workflows, variables, the api and users."})]}),(0,a.jsxs)(p.Zb,{children:[(0,a.jsxs)(p.Ol,{children:[(0,a.jsx)(p.ll,{children:"Roles"}),(0,a.jsx)(p.SZ,{children:"Manage system roles and their permissions"})]}),(0,a.jsx)(p.aY,{children:(0,a.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsx)(m.I,{placeholder:"Search roles...",value:s,onChange:e=>t(e.target.value),className:"flex-1 max-w-md"}),(0,a.jsxs)(v.Vq,{open:y,onOpenChange:k,children:[(0,a.jsx)(v.hg,{asChild:!0,children:(0,a.jsxs)(u.z,{children:[(0,a.jsx)(n.Z,{className:"mr-2 h-4 w-4"}),"Create Role"]})}),(0,a.jsxs)(v.cZ,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[(0,a.jsxs)(v.fK,{children:[(0,a.jsx)(v.$N,{children:"Create New Role"}),(0,a.jsx)(v.Be,{children:"Define the role name and permissions for different system areas."})]}),(0,a.jsx)(P,{onSubmit:q,loading:z,onCancel:()=>k(!1)})]})]})]})})]}),(0,a.jsx)(p.Zb,{children:(0,a.jsx)(p.aY,{className:"p-0",children:D?(0,a.jsxs)("div",{className:"text-center py-8",children:[(0,a.jsx)(i.Z,{className:"h-8 w-8 animate-spin mx-auto mb-2"}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"Loading roles..."})]}):0===W.length?(0,a.jsx)("div",{className:"text-center py-8 text-muted-foreground",children:s?"No roles found matching your search.":"No roles created yet. Create your first role above."}):(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)(h.iA,{children:[(0,a.jsx)(h.xD,{children:(0,a.jsxs)(h.SC,{children:[(0,a.jsx)(h.ss,{children:"Role Name"}),(0,a.jsx)(h.ss,{children:"Permissions"}),(0,a.jsx)(h.ss,{children:"Created"}),(0,a.jsx)(h.ss,{children:"Updated"}),(0,a.jsx)(h.ss,{className:"text-right",children:"Actions"})]})}),(0,a.jsx)(h.RM,{children:W.map(e=>(0,a.jsxs)(h.SC,{children:[(0,a.jsx)(h.pj,{children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(o.Z,{className:"h-4 w-4 text-muted-foreground"}),(0,a.jsx)("span",{className:"font-medium",children:e.name})]})}),(0,a.jsx)(h.pj,{children:(0,a.jsxs)("div",{className:"flex flex-wrap gap-1",children:[L(e).map((e,s)=>(0,a.jsxs)(g.C,{variant:"secondary",className:"text-xs",children:[e.name,": ",e.level]},s)),0===L(e).length&&(0,a.jsx)(g.C,{variant:"outline",className:"text-xs",children:"No permissions"})]})}),(0,a.jsx)(h.pj,{children:(0,x.WU)(new Date(e.createdAt||""),"PP hh:mm")}),(0,a.jsx)(h.pj,{children:(0,x.WU)(new Date(e.updatedAt||""),"PP hh:mm")}),(0,a.jsx)(h.pj,{className:"text-right",children:(0,a.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,a.jsxs)(v.Vq,{open:R&&(null==T?void 0:T.id)===e.id,onOpenChange:e=>{C(e),e||Z(null)},children:[(0,a.jsx)(v.hg,{asChild:!0,children:(0,a.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>Z(e),className:"h-8 w-8",children:(0,a.jsx)(d.Z,{className:"h-4 w-4"})})}),(0,a.jsxs)(v.cZ,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[(0,a.jsxs)(v.fK,{children:[(0,a.jsx)(v.$N,{children:"Edit Role"}),(0,a.jsx)(v.Be,{children:"Update the role name and permissions."})]}),(0,a.jsx)(P,{initialData:T,onSubmit:B,loading:V,onCancel:()=>{C(!1),Z(null)}})]})]}),(0,a.jsxs)(v.Vq,{open:S&&(null==T?void 0:T.id)===e.id,onOpenChange:e=>{A(e),e||Z(null)},children:[(0,a.jsx)(v.hg,{asChild:!0,children:(0,a.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>Z(e),className:"h-8 w-8 text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-950",children:(0,a.jsx)(c.Z,{className:"h-4 w-4"})})}),(0,a.jsxs)(v.cZ,{children:[(0,a.jsxs)(v.fK,{children:[(0,a.jsx)(v.$N,{children:"Delete Role"}),(0,a.jsxs)(v.Be,{children:['Are you sure you want to delete the role "',null==T?void 0:T.name,'"? This action cannot be undone.']})]}),(0,a.jsxs)(v.cN,{children:[(0,a.jsx)(u.z,{variant:"outline",onClick:()=>{A(!1),Z(null)},children:"Cancel"}),(0,a.jsx)(u.z,{variant:"destructive",onClick:Y,disabled:M,children:M?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.Z,{className:"mr-2 h-4 w-4 animate-spin"}),"Deleting..."]}):"Delete Role"})]})]})]})]})})]},e.id))})]})})})})]})}},35974:function(e,s,t){"use strict";t.d(s,{C:function(){return i}});var a=t(57437),r=t(90535);t(2265);var l=t(94508);let n=(0,r.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i(e){let{className:s,variant:t,...r}=e;return(0,a.jsx)("div",{className:(0,l.cn)(n({variant:t}),s),...r})}},66070:function(e,s,t){"use strict";t.d(s,{Ol:function(){return i},SZ:function(){return d},Zb:function(){return n},aY:function(){return c},eW:function(){return u},ll:function(){return o}});var a=t(57437),r=t(2265),l=t(94508);let n=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",t),...r})});n.displayName="Card";let i=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",t),...r})});i.displayName="CardHeader";let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("h3",{ref:s,className:(0,l.cn)("text-2xl font-semibold leading-none tracking-tight",t),...r})});o.displayName="CardTitle";let d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("p",{ref:s,className:(0,l.cn)("text-sm text-muted-foreground",t),...r})});d.displayName="CardDescription";let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("p-6 pt-0",t),...r})});c.displayName="CardContent";let u=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("flex items-center p-6 pt-0",t),...r})});u.displayName="CardFooter"},26110:function(e,s,t){"use strict";t.d(s,{$N:function(){return p},Be:function(){return h},Vq:function(){return o},cN:function(){return x},cZ:function(){return f},fK:function(){return m},hg:function(){return d}});var a=t(57437),r=t(34567),l=t(32489),n=t(2265),i=t(94508);let o=r.fC,d=r.xz,c=r.h_;r.x8;let u=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.aV,{ref:s,className:(0,i.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...l})});u.displayName=r.aV.displayName;let f=n.forwardRef((e,s)=>{let{className:t,children:n,...o}=e;return(0,a.jsxs)(c,{children:[(0,a.jsx)(u,{}),(0,a.jsxs)(r.VY,{ref:s,className:(0,i.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...o,children:[n,(0,a.jsxs)(r.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,a.jsx)(l.Z,{className:"size-4"}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});f.displayName=r.VY.displayName;let m=e=>{let{className:s,...t}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",s),...t})};m.displayName="DialogHeader";let x=e=>{let{className:s,...t}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...t})};x.displayName="DialogFooter";let p=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.Dx,{ref:s,className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",t),...l})});p.displayName=r.Dx.displayName;let h=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.dk,{ref:s,className:(0,i.cn)("text-sm text-muted-foreground",t),...l})});h.displayName=r.dk.displayName},95186:function(e,s,t){"use strict";t.d(s,{I:function(){return n}});var a=t(57437),r=t(2265),l=t(94508);let n=r.forwardRef((e,s)=>{let{className:t,type:r,...n}=e;return(0,a.jsx)("input",{type:r,className:(0,l.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),ref:s,...n})});n.displayName="Input"},26815:function(e,s,t){"use strict";t.d(s,{_:function(){return d}});var a=t(57437),r=t(6394),l=t(90535),n=t(2265),i=t(94508);let o=(0,l.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.f,{ref:s,className:(0,i.cn)(o(),t),...l})});d.displayName=r.f.displayName},73578:function(e,s,t){"use strict";t.d(s,{RM:function(){return o},Rn:function(){return f},SC:function(){return d},iA:function(){return n},pj:function(){return u},ss:function(){return c},xD:function(){return i}});var a=t(57437),r=t(2265),l=t(94508);let n=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:"relative w-full overflow-auto",children:(0,a.jsx)("table",{ref:s,className:(0,l.cn)("w-full caption-bottom text-sm",t),...r})})});n.displayName="Table";let i=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("thead",{ref:s,className:(0,l.cn)("[&_tr]:border-b",t),...r})});i.displayName="TableHeader";let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tbody",{ref:s,className:(0,l.cn)("[&_tr:last-child]:border-0",t),...r})});o.displayName="TableBody",r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tfoot",{ref:s,className:(0,l.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t),...r})}).displayName="TableFooter";let d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tr",{ref:s,className:(0,l.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...r})});d.displayName="TableRow";let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("th",{ref:s,className:(0,l.cn)("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]",t),...r})});c.displayName="TableHead";let u=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("td",{ref:s,className:(0,l.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]",t),...r})});u.displayName="TableCell";let f=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("caption",{ref:s,className:(0,l.cn)("mt-4 text-sm text-muted-foreground",t),...r})});f.displayName="TableCaption"},77992:function(e,s,t){"use strict";t.d(s,{Am:function(){return u},pm:function(){return f}});var a=t(2265);let r=0,l=new Map,n=e=>{if(l.has(e))return;let s=setTimeout(()=>{l.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);l.set(e,s)},i=(e,s)=>{switch(s.type){case"ADD_TOAST":return{...e,toasts:[s.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===s.toast.id?{...e,...s.toast}:e)};case"DISMISS_TOAST":{let{toastId:t}=s;return t?n(t):e.toasts.forEach(e=>{n(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===t||void 0===t?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===s.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==s.toastId)}}},o=[],d={toasts:[]};function c(e){d=i(d,e),o.forEach(e=>{e(d)})}function u(e){let{...s}=e,t=(r=(r+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>c({type:"DISMISS_TOAST",toastId:t});return c({type:"ADD_TOAST",toast:{...s,id:t,open:!0,onOpenChange:e=>{e||a()}}}),{id:t,dismiss:a,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:t}})}}function f(){let[e,s]=a.useState(d);return a.useEffect(()=>(o.push(s),()=>{let e=o.indexOf(s);e>-1&&o.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}}},function(e){e.O(0,[9851,7629,7093,6148,847,1942,7648,7823,8068,4567,3825,7107,5436,6373,2971,2117,1744],function(){return e(e.s=38434)}),_N_E=e.O()}]);
|
|
2
|
-
//# sourceMappingURL=page-acd9ef282bc53557.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/roles/page-acd9ef282bc53557.js","mappings":"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","sources":["webpack://_N_E/?f649","webpack://_N_E/./components/ui/radio-group.tsx","webpack://_N_E/./components/role-form.tsx","webpack://_N_E/./app/(application)/roles/page.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/dialog.tsx","webpack://_N_E/./components/ui/input.tsx","webpack://_N_E/./components/ui/label.tsx","webpack://_N_E/./components/ui/table.tsx","webpack://_N_E/./components/ui/use-toast.ts"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/roles/page.tsx\");\n","\"use client\";\n\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { Circle } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"size-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n","\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Loader2, Shield, Users, Workflow, Variable, Bot, CodeSquare, Brain } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui/radio-group\"\nimport { UserRole } from \"@/types/models/user-role\"\n\ninterface RoleFormProps {\n initialData?: UserRole | null\n onSubmit: (roleData: any) => Promise<void>\n loading: boolean\n onCancel: () => void\n}\n\nconst PERMISSION_OPTIONS = [\n { value: \"\", label: \"No Access\", description: \"Cannot access this resource\" },\n { value: \"read\", label: \"Read Only\", description: \"Can view but not modify\" },\n { value: \"write\", label: \"Read/Write\", description: \"Full access to create, read, update, and delete\" },\n]\n\nconst PERMISSION_AREAS = [\n {\n key: \"agents\" as const,\n label: \"Agents\",\n icon: Bot,\n description: \"AI agents and their configurations\"\n },\n {\n key: \"workflows\" as const,\n label: \"Workflows\",\n icon: Workflow,\n description: \"Workflow templates and executions\"\n },\n {\n key: \"variables\" as const,\n label: \"Variables\",\n icon: Variable,\n description: \"Environment variables and secrets\"\n },\n {\n key: \"users\" as const,\n label: \"Users\",\n icon: Users,\n description: \"User management and roles\"\n },\n {\n key: \"api\" as const,\n label: \"API\",\n icon: CodeSquare,\n description: \"API access and management\"\n },\n {\n key: \"evals\" as const,\n label: \"Evals\",\n icon: Brain,\n description: \"Evaluation sets, test cases, and eval runs\"\n }\n]\n\nexport function RoleForm({ initialData, onSubmit, loading, onCancel }: RoleFormProps) {\n const [name, setName] = useState(initialData?.name || \"\")\n const [permissions, setPermissions] = useState({\n agents: initialData?.agents || \"\",\n api: initialData?.api || \"\",\n workflows: initialData?.workflows || \"\",\n variables: initialData?.variables || \"\",\n users: initialData?.users || \"\",\n evals: initialData?.evals || \"\",\n })\n\n useEffect(() => {\n if (initialData) {\n setName(initialData.name)\n setPermissions({\n agents: initialData.agents || \"\",\n api: initialData.api || \"\",\n workflows: initialData.workflows || \"\",\n variables: initialData.variables || \"\",\n users: initialData.users || \"\",\n evals: initialData.evals || \"\"\n })\n }\n }, [initialData])\n\n const handlePermissionChange = (area: keyof typeof permissions, value: string) => {\n setPermissions(prev => ({\n ...prev,\n [area]: value\n }))\n }\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault()\n \n if (!name.trim()) {\n return\n }\n\n const roleData = {\n name: name.trim(),\n agents: permissions.agents || null,\n api: permissions.api || null,\n workflows: permissions.workflows || null,\n variables: permissions.variables || null,\n users: permissions.users || null,\n evals: permissions.evals || null\n }\n\n await onSubmit(roleData)\n }\n\n return (\n <form onSubmit={handleSubmit} className=\"space-y-6\">\n {/* Role Name */}\n <div className=\"space-y-2\">\n <Label htmlFor=\"roleName\">Role Name</Label>\n <Input\n id=\"roleName\"\n placeholder=\"e.g. Admin, Developer, Viewer\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n disabled={loading}\n required\n />\n </div>\n\n {/* Permissions */}\n <div className=\"space-y-4\">\n <div>\n <h3 className=\"text-lg font-medium\">Permissions</h3>\n <p className=\"text-sm text-muted-foreground\">\n Configure access levels for different areas of the system\n </p>\n </div>\n\n {PERMISSION_AREAS.map((area) => {\n const Icon = area.icon\n return (\n <Card key={area.key}>\n <CardHeader className=\"pb-3\">\n <CardTitle className=\"flex items-center gap-2 text-base\">\n <Icon className=\"h-4 w-4\" />\n {area.label}\n </CardTitle>\n <CardDescription className=\"text-sm\">\n {area.description}\n </CardDescription>\n </CardHeader>\n <CardContent>\n <RadioGroup\n value={permissions[area.key]}\n onValueChange={(value) => handlePermissionChange(area.key, value)}\n disabled={loading}\n >\n {PERMISSION_OPTIONS.map((option) => (\n <div key={option.value} className=\"flex items-center space-x-2\">\n <RadioGroupItem value={option.value} id={`${area.key}-${option.value}`} />\n <Label \n htmlFor={`${area.key}-${option.value}`}\n className=\"flex-1 cursor-pointer\"\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"font-medium\">{option.label}</span>\n <span className=\"text-sm text-muted-foreground\">\n {option.description}\n </span>\n </div>\n </Label>\n </div>\n ))}\n </RadioGroup>\n </CardContent>\n </Card>\n )\n })}\n </div>\n\n {/* Actions */}\n <div className=\"flex items-center justify-end gap-3 pt-4 border-t\">\n <Button type=\"button\" variant=\"outline\" onClick={onCancel} disabled={loading}>\n Cancel\n </Button>\n <Button type=\"submit\" disabled={loading || !name.trim()}>\n {loading ? (\n <>\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\n {initialData ? \"Updating...\" : \"Creating...\"}\n </>\n ) : (\n <>\n <Shield className=\"mr-2 h-4 w-4\" />\n {initialData ? \"Update Role\" : \"Create Role\"}\n </>\n )}\n </Button>\n </div>\n </form>\n )\n}","\"use client\"\n\nimport { useState } from \"react\"\nimport { Plus, Trash2, Edit, Shield, Loader2, ArrowLeft } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport Link from \"next/link\"\nimport { Input } from \"@/components/ui/input\"\nimport { format } from \"date-fns\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"@/components/ui/table\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { toast } from \"@/components/ui/use-toast\"\nimport { useMutation, useQuery } from \"@apollo/client\"\nimport { GET_USER_ROLES, CREATE_USER_ROLE, UPDATE_USER_ROLE_BY_ID, REMOVE_USER_ROLE_BY_ID } from \"@/queries/queries\"\nimport { RoleForm } from \"@/components/role-form\"\nimport { UserRole } from \"@/types/models/user-role\"\n\nexport default function RoleManagement() {\n const [searchTerm, setSearchTerm] = useState(\"\")\n const [createDialogOpen, setCreateDialogOpen] = useState(false)\n const [editDialogOpen, setEditDialogOpen] = useState(false)\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false)\n const [selectedRole, setSelectedRole] = useState<UserRole | null>(null)\n\n const { loading, error, data, refetch } = useQuery(GET_USER_ROLES, {\n variables: { page: 1, limit: 100 },\n fetchPolicy: \"cache-first\",\n nextFetchPolicy: \"network-only\",\n })\n\n const [createRole, { loading: createLoading }] = useMutation(CREATE_USER_ROLE, {\n refetchQueries: [GET_USER_ROLES, \"GetUserRoles\"],\n })\n\n const [updateRole, { loading: updateLoading }] = useMutation(UPDATE_USER_ROLE_BY_ID, {\n refetchQueries: [GET_USER_ROLES, \"GetUserRoles\"],\n })\n\n const [deleteRole, { loading: deleteLoading }] = useMutation(REMOVE_USER_ROLE_BY_ID, {\n refetchQueries: [GET_USER_ROLES, \"GetUserRoles\"],\n })\n\n const roles: UserRole[] = data?.rolesPagination?.items || []\n const filteredRoles = roles.filter(role =>\n role.name.toLowerCase().includes(searchTerm.toLowerCase())\n )\n\n const formatPermissions = (role: UserRole) => {\n const permissions: { name: string; level: string }[] = []\n \n if (role.agents) {\n const agentPerms = role.agents.toLowerCase()\n if (agentPerms.includes('write') || agentPerms.includes('create') || agentPerms.includes('update') || agentPerms.includes('delete')) {\n permissions.push({ name: \"Agents\", level: \"Read/Write\" })\n } else if (agentPerms.includes('read') || agentPerms.includes('view')) {\n permissions.push({ name: \"Agents\", level: \"Read\" })\n }\n }\n \n if (role.workflows) {\n const workflowPerms = role.workflows.toLowerCase()\n if (workflowPerms.includes('write') || workflowPerms.includes('create') || workflowPerms.includes('update') || workflowPerms.includes('delete')) {\n permissions.push({ name: \"Workflows\", level: \"Read/Write\" })\n } else if (workflowPerms.includes('read') || workflowPerms.includes('view')) {\n permissions.push({ name: \"Workflows\", level: \"Read\" })\n }\n }\n \n if (role.variables) {\n const variablePerms = role.variables.toLowerCase()\n if (variablePerms.includes('write') || variablePerms.includes('create') || variablePerms.includes('update') || variablePerms.includes('delete')) {\n permissions.push({ name: \"Variables\", level: \"Read/Write\" })\n } else if (variablePerms.includes('read') || variablePerms.includes('view')) {\n permissions.push({ name: \"Variables\", level: \"Read\" })\n }\n }\n \n if (role.users) {\n const userPerms = role.users.toLowerCase()\n if (userPerms.includes('write') || userPerms.includes('create') || userPerms.includes('update') || userPerms.includes('delete')) {\n permissions.push({ name: \"Users\", level: \"Read/Write\" })\n } else if (userPerms.includes('read') || userPerms.includes('view')) {\n permissions.push({ name: \"Users\", level: \"Read\" })\n }\n }\n\n if (role.api) {\n const apiPerms = role.api.toLowerCase()\n if (apiPerms.includes('write') || apiPerms.includes('create') || apiPerms.includes('update') || apiPerms.includes('delete')) {\n permissions.push({ name: \"API\", level: \"Read/Write\" })\n } else if (apiPerms.includes('read') || apiPerms.includes('view')) {\n permissions.push({ name: \"API\", level: \"Read\" })\n }\n }\n\n return permissions\n }\n\n const handleCreateRole = async (roleData: any) => {\n try {\n await createRole({\n variables: {\n name: roleData.name,\n agents: roleData.agents,\n api: roleData.api,\n workflows: roleData.workflows,\n variables: roleData.variables,\n users: roleData.users,\n }\n })\n setCreateDialogOpen(false)\n toast({\n title: \"Success\",\n description: \"Role created successfully\",\n })\n } catch (error) {\n toast({\n title: \"Error\",\n description: \"Failed to create role\",\n variant: \"destructive\",\n })\n }\n }\n\n const handleUpdateRole = async (roleData: any) => {\n if (!selectedRole) return\n \n try {\n await updateRole({\n variables: {\n id: selectedRole.id,\n name: roleData.name,\n agents: roleData.agents,\n api: roleData.api,\n workflows: roleData.workflows,\n variables: roleData.variables,\n users: roleData.users,\n }\n })\n setEditDialogOpen(false)\n setSelectedRole(null)\n toast({\n title: \"Success\",\n description: \"Role updated successfully\",\n })\n } catch (error) {\n toast({\n title: \"Error\",\n description: \"Failed to update role\",\n variant: \"destructive\",\n })\n }\n }\n\n const handleDeleteRole = async () => {\n if (!selectedRole) return\n \n try {\n await deleteRole({\n variables: { id: selectedRole.id }\n })\n setDeleteDialogOpen(false)\n setSelectedRole(null)\n toast({\n title: \"Success\",\n description: \"Role deleted successfully\",\n })\n } catch (error) {\n toast({\n title: \"Error\",\n description: \"Failed to delete role\",\n variant: \"destructive\",\n })\n }\n }\n\n return (\n <div className=\"container mx-auto py-6 space-y-8 max-w-7xl\">\n <div className=\"flex flex-col gap-2\">\n <Link href=\"/users\">\n <Button variant=\"ghost\" size=\"sm\" className=\"mb-2 w-fit\">\n <ArrowLeft className=\"mr-2 h-4 w-4\" />\n Back to Users\n </Button>\n </Link>\n <h1 className=\"text-3xl font-bold tracking-tight\">Role Management</h1>\n <p className=\"text-muted-foreground\">\n Create and manage roles with specific permissions for agents, workflows, variables, the api and users.\n </p>\n </div>\n\n {/* Search and Create */}\n <Card>\n <CardHeader>\n <CardTitle>Roles</CardTitle>\n <CardDescription>\n Manage system roles and their permissions\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <Input\n placeholder=\"Search roles...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n className=\"flex-1 max-w-md\"\n />\n <Dialog open={createDialogOpen} onOpenChange={setCreateDialogOpen}>\n <DialogTrigger asChild>\n <Button>\n <Plus className=\"mr-2 h-4 w-4\" />\n Create Role\n </Button>\n </DialogTrigger>\n <DialogContent className=\"max-w-2xl max-h-[90vh] overflow-y-auto\">\n <DialogHeader>\n <DialogTitle>Create New Role</DialogTitle>\n <DialogDescription>\n Define the role name and permissions for different system areas.\n </DialogDescription>\n </DialogHeader>\n <RoleForm\n onSubmit={handleCreateRole}\n loading={createLoading}\n onCancel={() => setCreateDialogOpen(false)}\n />\n </DialogContent>\n </Dialog>\n </div>\n </CardContent>\n </Card>\n\n {/* Roles List */}\n <Card>\n <CardContent className=\"p-0\">\n {loading ? (\n <div className=\"text-center py-8\">\n <Loader2 className=\"h-8 w-8 animate-spin mx-auto mb-2\" />\n <p className=\"text-muted-foreground\">Loading roles...</p>\n </div>\n ) : filteredRoles.length === 0 ? (\n <div className=\"text-center py-8 text-muted-foreground\">\n {searchTerm ? \"No roles found matching your search.\" : \"No roles created yet. Create your first role above.\"}\n </div>\n ) : (\n <div className=\"overflow-x-auto\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Role Name</TableHead>\n <TableHead>Permissions</TableHead>\n <TableHead>Created</TableHead>\n <TableHead>Updated</TableHead>\n <TableHead className=\"text-right\">Actions</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {filteredRoles.map((role) => (\n <TableRow key={role.id}>\n <TableCell>\n <div className=\"flex items-center gap-2\">\n <Shield className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"font-medium\">{role.name}</span>\n </div>\n </TableCell>\n <TableCell>\n <div className=\"flex flex-wrap gap-1\">\n {formatPermissions(role).map((perm, index) => (\n <Badge \n key={index} \n variant={\"secondary\"}\n className=\"text-xs\"\n >\n {perm.name}: {perm.level}\n </Badge>\n ))}\n {formatPermissions(role).length === 0 && (\n <Badge variant=\"outline\" className=\"text-xs\">\n No permissions\n </Badge>\n )}\n </div>\n </TableCell>\n <TableCell>\n {format(new Date(role.createdAt || \"\"), \"PP hh:mm\")}\n </TableCell>\n <TableCell>\n {format(new Date(role.updatedAt || \"\"), \"PP hh:mm\")}\n </TableCell>\n <TableCell className=\"text-right\">\n <div className=\"flex items-center justify-end gap-2\">\n <Dialog open={editDialogOpen && selectedRole?.id === role.id} onOpenChange={(open) => {\n setEditDialogOpen(open)\n if (!open) setSelectedRole(null)\n }}>\n <DialogTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => setSelectedRole(role)}\n className=\"h-8 w-8\"\n >\n <Edit className=\"h-4 w-4\" />\n </Button>\n </DialogTrigger>\n <DialogContent className=\"max-w-2xl max-h-[90vh] overflow-y-auto\">\n <DialogHeader>\n <DialogTitle>Edit Role</DialogTitle>\n <DialogDescription>\n Update the role name and permissions.\n </DialogDescription>\n </DialogHeader>\n <RoleForm\n initialData={selectedRole}\n onSubmit={handleUpdateRole}\n loading={updateLoading}\n onCancel={() => {\n setEditDialogOpen(false)\n setSelectedRole(null)\n }}\n />\n </DialogContent>\n </Dialog>\n\n <Dialog open={deleteDialogOpen && selectedRole?.id === role.id} onOpenChange={(open) => {\n setDeleteDialogOpen(open)\n if (!open) setSelectedRole(null)\n }}>\n <DialogTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => setSelectedRole(role)}\n className=\"h-8 w-8 text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-950\"\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Delete Role</DialogTitle>\n <DialogDescription>\n Are you sure you want to delete the role \"{selectedRole?.name}\"? This action cannot be undone.\n </DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button \n variant=\"outline\" \n onClick={() => {\n setDeleteDialogOpen(false)\n setSelectedRole(null)\n }}\n >\n Cancel\n </Button>\n <Button \n variant=\"destructive\" \n onClick={handleDeleteRole}\n disabled={deleteLoading}\n >\n {deleteLoading ? (\n <>\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\n Deleting...\n </>\n ) : (\n \"Delete Role\"\n )}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n )}\n </CardContent>\n </Card>\n </div>\n )\n}","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","\"use client\";\n\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n));\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]\",\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-4 align-middle [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]\",\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n"],"names":["Promise","resolve","then","__webpack_require__","bind","RadioGroup","React","param","ref","className","props","jsx_runtime","jsx","RadioGroupPrimitive","cn","displayName","RadioGroupItem","Circle","PERMISSION_OPTIONS","value","label","description","PERMISSION_AREAS","key","icon","Bot","Workflow","Variable","Users","CodeSquare","Brain","RoleForm","initialData","onSubmit","loading","onCancel","name","setName","useState","permissions","setPermissions","agents","api","workflows","variables","users","evals","useEffect","handlePermissionChange","area","prev","handleSubmit","e","preventDefault","trim","roleData","jsxs","form","div","Label","htmlFor","Input","id","placeholder","onChange","target","disabled","required","h3","p","map","Icon","Card","CardHeader","CardTitle","CardDescription","CardContent","onValueChange","option","concat","span","Button","type","variant","onClick","Fragment","Loader2","Shield","RoleManagement","data","searchTerm","setSearchTerm","createDialogOpen","setCreateDialogOpen","editDialogOpen","setEditDialogOpen","deleteDialogOpen","setDeleteDialogOpen","selectedRole","setSelectedRole","error","refetch","useQuery","GET_USER_ROLES","page","limit","fetchPolicy","nextFetchPolicy","createRole","createLoading","useMutation","CREATE_USER_ROLE","refetchQueries","updateRole","updateLoading","UPDATE_USER_ROLE_BY_ID","deleteRole","deleteLoading","REMOVE_USER_ROLE_BY_ID","filteredRoles","roles","rolesPagination","items","filter","role","toLowerCase","includes","formatPermissions","agentPerms","push","level","workflowPerms","variablePerms","userPerms","apiPerms","handleCreateRole","toast","title","handleUpdateRole","handleDeleteRole","Link","href","size","ArrowLeft","h1","Dialog","open","onOpenChange","DialogTrigger","asChild","Plus","DialogContent","DialogHeader","DialogTitle","DialogDescription","length","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","perm","index","Badge","format","Date","createdAt","updatedAt","Edit","Trash2","DialogFooter","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","CardFooter","DialogPrimitive","DialogPortal","DialogOverlay","children","X","input","labelVariants","LabelPrimitive","table","thead","tbody","TableFooter","tfoot","tr","th","td","TableCaption","caption","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","delete","dispatch","set","reducer","state","action","toasts","slice","t","forEach","undefined","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","update","useToast","setState","indexOf","splice"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1929],{33329:function(e,t,a){Promise.resolve().then(a.bind(a,16719))},16719:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return B},dynamic:function(){return F}});var s=a(57437),l=a(2265),r=a(15868),n=a(42208),o=a(33276),i=a(18930),d=a(28842),c=a(62869),u=a(35974),f=a(27699),m=a(7598),x=a(7211),p=a(12199),g=a(27689),h=a(37099),v=a(95186),j=a(26815),N=a(77992);function w(e){let{workflowId:t}=e,{lastRunAt:a,lastRunStatus:l}=function(e){var t,a;let{data:s}=(0,x.aM)(g.Jq,{variables:{page:1,limit:1,filters:[{workflow:{eq:e}}],sort:{field:"createdAt",direction:"DESC"}},pollInterval:5e3}),l=null==s?void 0:null===(a=s.jobsPagination)||void 0===a?void 0:null===(t=a.items)||void 0===t?void 0:t[0];return{lastRunAt:null==l?void 0:l.createdAt,lastRunStatus:null==l?void 0:l.status}}(t);return a?(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("div",{className:"text-sm",children:(0,m.Q)(new Date(a),{addSuffix:!0})}),(0,s.jsx)(u.C,{variant:"outline",className:(e=>{switch(e){case"completed":return"bg-green-100 text-green-800";case"failed":case"stuck":return"bg-red-100 text-red-800";case"active":case"waiting":case"delayed":case"paused":return"bg-blue-100 text-blue-800";default:return"bg-gray-100 text-gray-800"}})(l),children:l})]}):(0,s.jsx)("span",{className:"text-muted-foreground text-sm",children:"Never run"})}function b(e){var t;let{workflow:a,user:d}=e,[u,m]=(0,l.useState)(!1),[x,w]=(0,l.useState)(!1),[b,y]=(0,l.useState)(""),{toast:C}=(0,N.pm)(),k=(()=>{if(a.owner===d.id)return!0;if("public"===a.rights_mode)return!1;if("users"===a.rights_mode&&a.RBAC.users){let e=a.RBAC.users.find(e=>e.id===d.id.toString());return(null==e?void 0:e.rights)==="write"}if("roles"===a.rights_mode&&a.RBAC.roles&&d.role){let e=a.RBAC.roles.find(e=>e.id===d.role);return(null==e?void 0:e.rights)==="write"}return!1})(),[R]=(0,p.D)(g.$6,{refetchQueries:[g.Zy,"GetWorkflowTemplates"]}),S=async()=>{if(b!==a.name){C({title:"Error",description:"Please type the workflow name exactly to confirm deletion.",variant:"destructive"});return}try{await R({variables:{id:a.id}}),C({title:"Workflow deleted",description:'"'.concat(a.name,'" has been successfully deleted.')}),w(!1),y("")}catch(e){C({title:"Error",description:"Failed to delete the workflow. Please try again.",variant:"destructive"})}},_=(null===(t=a.steps_json)||void 0===t?void 0:t.map((e,t)=>({id:e.id||"msg_".concat(t),role:"user"===e.type?"user":"assistant"===e.type?"assistant":"system",content:e.content||e.contentExample||"Tool: ".concat(e.toolName),..."tool"===e.type&&{parts:[{type:"tool-invocation",toolInvocation:{toolName:e.toolName}}]}})))||[];return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(c.z,{variant:"ghost",size:"sm",onClick:()=>m(!0),children:k?(0,s.jsx)(r.Z,{className:"h-4 w-4"}):(0,s.jsx)(n.Z,{className:"h-4 w-4"})}),(0,s.jsx)(c.z,{variant:"ghost",size:"sm",onClick:()=>{console.log("Run workflow:",a.id)},children:(0,s.jsx)(o.Z,{className:"h-4 w-4"})}),k&&(0,s.jsx)(c.z,{variant:"ghost",size:"sm",onClick:()=>w(!0),className:"text-red-600 hover:text-red-700 hover:bg-red-50",children:(0,s.jsx)(i.Z,{className:"h-4 w-4"})})]}),(0,s.jsx)(f.x,{isOpen:u,onClose:()=>m(!1),messages:_,sessionTitle:a.name,existingWorkflow:{id:a.id,name:a.name,description:a.description,rights_mode:a.rights_mode,RBAC:a.RBAC,variables:a.variables,steps_json:a.steps_json},isReadOnly:!k}),(0,s.jsx)(h.aR,{open:x,onOpenChange:w,children:(0,s.jsxs)(h._T,{children:[(0,s.jsxs)(h.fY,{children:[(0,s.jsx)(h.f$,{children:"Delete Workflow"}),(0,s.jsxs)(h.yT,{children:['This action will permanently delete the workflow "',a.name,'" and cannot be undone.',(0,s.jsx)("br",{}),(0,s.jsx)("br",{}),"To confirm, please type the workflow name below:"]})]}),(0,s.jsxs)("div",{className:"py-4",children:[(0,s.jsx)(j._,{htmlFor:"delete-confirmation",className:"text-sm font-medium",children:"Workflow name"}),(0,s.jsx)(v.I,{id:"delete-confirmation",value:b,onChange:e=>y(e.target.value),placeholder:a.name,className:"mt-2"})]}),(0,s.jsxs)(h.xo,{children:[(0,s.jsx)(c.z,{variant:"outline",onClick:()=>{w(!1),y("")},children:"Cancel"}),(0,s.jsx)(c.z,{variant:"destructive",onClick:S,disabled:b!==a.name,children:"Delete Workflow"})]})]})})]})}var y=a(20653),C=a(71594),k=a(24525),R=a(70085),S=a(84190);function _(e){let{table:t}=e;return(0,s.jsxs)(S.h_,{children:[(0,s.jsx)(R.$F,{asChild:!0,children:(0,s.jsxs)(c.z,{variant:"outline",size:"sm",className:"ml-auto hidden h-8 lg:flex",children:[(0,s.jsx)(y.hsZ,{className:"mr-2 size-4"}),"View"]})}),(0,s.jsxs)(S.AW,{align:"end",className:"w-[150px]",children:[(0,s.jsx)(S.Ju,{children:"Toggle columns"}),(0,s.jsx)(S.VD,{}),t.getAllColumns().filter(e=>void 0!==e.accessorFn&&e.getCanHide()).map(e=>(0,s.jsx)(S.bO,{className:"capitalize",checked:e.getIsVisible(),onCheckedChange:t=>e.toggleVisibility(!!t),children:e.id},e.id))]})]})}var z=a(10492),P=a(93022),T=a(73578);function A(e){var t,a,r,n,o,d,u,f,m,h,j,w,b,R,S,A,I,D,Z,O;let M,E,{columns:V}=e,{toast:F}=(0,N.pm)(),[B,G]=l.useState({}),[W,Y]=l.useState({}),[$,J]=l.useState([]),[H,U]=(0,l.useState)([]),[q,Q]=(0,l.useState)(1),[K,L]=l.useState([]),{loading:X,error:ee,data:et,refetch:ea,previousData:es}=(0,x.aM)(g.Zy,{fetchPolicy:"no-cache",nextFetchPolicy:"network-only",variables:{page:q,limit:10,filters:H},pollInterval:3e4}),el=l.useMemo(()=>[],[]),{limit:er,onPaginationChange:en,skip:eo,pagination:ei}=function(){let[e,t]=(0,l.useState)({pageSize:10,pageIndex:0}),{pageSize:a,pageIndex:s}=e;return{limit:a,onPaginationChange:t,pagination:e,skip:a*s}}(),[ed,ec]=(0,p.D)(g.$6,{refetchQueries:[g.Zy,"GetWorkflowTemplates"]});X&&(null==es?void 0:null===(t=es.workflow_templatesPagination)||void 0===t?void 0:t.items)?(M=null==es?void 0:null===(j=es.workflow_templatesPagination)||void 0===j?void 0:j.items,E=null==es?void 0:null===(b=es.workflow_templatesPagination)||void 0===b?void 0:null===(w=b.pageInfo)||void 0===w?void 0:w.pageCount):(null==et?void 0:null===(a=et.workflow_templatesPagination)||void 0===a?void 0:a.items)?(M=null==et?void 0:null===(R=et.workflow_templatesPagination)||void 0===R?void 0:R.items,E=null==et?void 0:null===(A=et.workflow_templatesPagination)||void 0===A?void 0:null===(S=A.pageInfo)||void 0===S?void 0:S.pageCount):(null==es?void 0:null===(r=es.workflow_templatesPagination)||void 0===r?void 0:r.items)&&(M=null==es?void 0:null===(I=es.workflow_templatesPagination)||void 0===I?void 0:I.items,E=null==es?void 0:null===(Z=es.workflow_templatesPagination)||void 0===Z?void 0:null===(D=Z.pageInfo)||void 0===D?void 0:D.pageCount);let eu=(0,C.b7)({data:null!=M?M:el,pageCount:null!=E?E:-1,columns:V,state:{sorting:K,columnVisibility:W,rowSelection:B,columnFilters:$},enableRowSelection:!0,onRowSelectionChange:G,onSortingChange:L,onColumnFiltersChange:J,onColumnVisibilityChange:Y,getCoreRowModel:(0,k.sC)(),getFilteredRowModel:(0,k.vL)(),getPaginationRowModel:(0,k.G_)(),getSortedRowModel:(0,k.tj)(),getFacetedRowModel:(0,k.o6)(),getFacetedUniqueValues:(0,k.JG)(),manualPagination:!0,onPaginationChange:en}),ef=e=>{let t=[...H],a=t.find(e=>e.name);(null==a?void 0:a.name)?a.name.contains=e:t.push({name:{contains:e}}),U(t),ea()},em=H.length>0;return(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"flex flex-1 items-center space-x-2",children:[(0,s.jsx)(v.I,{placeholder:"Search workflows...",value:null!==(O=null==H?void 0:null===(o=H.find(e=>e.name))||void 0===o?void 0:null===(n=o.name)||void 0===n?void 0:n.contains)&&void 0!==O?O:"",onChange:e=>{ef(e.target.value)},className:"w-[150px] lg:w-[250px]"}),eu.getIsSomeRowsSelected()||eu.getIsAllRowsSelected()?(0,s.jsx)("div",{className:"flex gap-x-2",children:(0,s.jsxs)(c.z,{onClick:()=>{let e=[];eu.getSelectedRowModel().rows.forEach(t=>{e.push(ed({variables:{id:t.original.id}}))}),Promise.all(e).then(()=>{eu.resetRowSelection(),F({title:"Workflows deleted",description:"Successfully deleted "+e.length+" workflow(s)."})}).catch(()=>{F({title:"Error",description:"Failed to delete some workflows. Please try again.",variant:"destructive"})})},variant:"secondary",disabled:ec.loading,children:[ec.loading?(0,s.jsx)(z.g,{}):(0,s.jsx)(i.Z,{className:"size-4"}),(0,s.jsx)("span",{className:"ml-2",children:"Delete selected"})]})}):null,em&&(0,s.jsxs)(c.z,{variant:"ghost",onClick:()=>{let e=[...H],t=e.find(e=>e.name);t&&e.splice(e.indexOf(t),1),U(e),ea()},children:["Reset",(0,s.jsx)(y.Pxu,{className:"ml-2 size-4"})]})]}),(0,s.jsx)(_,{table:eu})]}),(0,s.jsx)("div",{className:"rounded-md border",children:(0,s.jsxs)(T.iA,{children:[(0,s.jsx)(T.xD,{children:eu.getHeaderGroups().map(e=>(0,s.jsx)(T.SC,{children:e.headers.map(e=>(0,s.jsx)(T.ss,{colSpan:e.colSpan,children:e.isPlaceholder?null:(0,C.ie)(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,s.jsx)(T.RM,{children:(null===(d=eu.getRowModel().rows)||void 0===d?void 0:d.length)?eu.getRowModel().rows.map(e=>(0,s.jsx)(T.SC,{"data-state":e.getIsSelected()&&"selected",children:e.getVisibleCells().map(e=>(0,s.jsx)(T.pj,{children:(0,C.ie)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):X&&!es?Array.from({length:5}).map((e,t)=>(0,s.jsx)(T.SC,{children:V.map((e,t)=>(0,s.jsx)(T.pj,{children:(0,s.jsx)(P.O,{className:"h-4 w-full"})},t))},t)):(0,s.jsx)(T.SC,{children:(0,s.jsx)(T.pj,{colSpan:V.length,className:"h-24 text-center",children:"No workflows found."})})})]})}),(0,s.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,s.jsxs)("div",{className:"text-muted-foreground flex-1 text-sm",children:[eu.getFilteredSelectedRowModel().rows.length," of"," ",eu.getFilteredRowModel().rows.length," row(s) selected."]}),(0,s.jsxs)("div",{className:"flex items-center space-x-6 lg:space-x-8",children:[(0,s.jsxs)("div",{className:"flex w-[100px] items-center justify-center text-sm font-medium",children:["Page ",q," of ",eu.getPageCount()]}),(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsxs)(c.z,{variant:"outline",className:"hidden size-8 p-0 lg:flex",onClick:()=>{eu.setPageIndex(0),Q(1),ea()},disabled:!(null==et?void 0:null===(u=et.workflow_templatesPagination)||void 0===u?void 0:u.pageInfo.hasPreviousPage),children:[(0,s.jsx)("span",{className:"sr-only",children:"Go to first page"}),(0,s.jsx)(y.kRt,{className:"size-4"})]}),(0,s.jsxs)(c.z,{variant:"outline",className:"size-8 p-0",onClick:()=>{eu.previousPage(),Q(q-1),ea()},disabled:!(null==et?void 0:null===(f=et.workflow_templatesPagination)||void 0===f?void 0:f.pageInfo.hasPreviousPage),children:[(0,s.jsx)("span",{className:"sr-only",children:"Go to previous page"}),(0,s.jsx)(y.wyc,{className:"size-4"})]}),(0,s.jsxs)(c.z,{variant:"outline",className:"size-8 p-0",onClick:()=>{eu.nextPage(),Q(q+1),ea()},disabled:!(null==et?void 0:null===(m=et.workflow_templatesPagination)||void 0===m?void 0:m.pageInfo.hasNextPage),children:[(0,s.jsx)("span",{className:"sr-only",children:"Go to next page"}),(0,s.jsx)(y.XCv,{className:"size-4"})]}),(0,s.jsxs)(c.z,{variant:"outline",className:"hidden size-8 p-0 lg:flex",onClick:()=>{eu.setPageIndex(eu.getPageCount()-1),Q(eu.getPageCount()),ea()},disabled:!(null==et?void 0:null===(h=et.workflow_templatesPagination)||void 0===h?void 0:h.pageInfo.hasNextPage),children:[(0,s.jsx)("span",{className:"sr-only",children:"Go to last page"}),(0,s.jsx)(y.yr4,{className:"size-4"})]})]})]})]})]})}var I=a(91723),D=a(63639),Z=a(65302),O=a(45131),M=a(66070);function E(){let{data:e,loading:t,error:a}=(0,x.aM)(g.kk,{variables:{},pollInterval:2e3,fetchPolicy:"network-only"});if(a)return console.error("Error fetching job statistics:",a),null;let l=(null==e?void 0:e.jobStatistics)||{runningCount:0,erroredCount:0,completedCount:0,failedCount:0,averageDuration:0},r=[{title:"Running Jobs",value:l.runningCount,description:"Currently executing",icon:I.Z,color:"text-blue-600",bgColor:"bg-blue-100"},{title:"Errored Jobs",value:l.erroredCount,description:"Failed or stuck",icon:D.Z,color:"text-red-600",bgColor:"bg-red-100"},{title:"Completed Jobs",value:l.completedCount,description:"Successfully finished",icon:Z.Z,color:"text-green-600",bgColor:"bg-green-100"},{title:"Failed Jobs",value:l.failedCount,description:"Execution failed",icon:O.Z,color:"text-red-500",bgColor:"bg-red-50"}];return(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-4",children:r.map(e=>{let a=e.icon;return(0,s.jsxs)(M.Zb,{children:[(0,s.jsxs)(M.Ol,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[(0,s.jsx)(M.ll,{className:"text-sm font-medium",children:e.title}),(0,s.jsx)("div",{className:"p-2 rounded-full ".concat(e.bgColor),children:(0,s.jsx)(a,{className:"h-4 w-4 ".concat(e.color)})})]}),(0,s.jsxs)(M.aY,{children:[(0,s.jsx)("div",{className:"text-2xl font-bold",children:t?"...":e.value}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:e.description})]})]},e.title)})}),l.completedCount>0&&(0,s.jsxs)(M.Zb,{children:[(0,s.jsx)(M.Ol,{children:(0,s.jsx)(M.ll,{className:"text-sm font-medium",children:"Performance"})}),(0,s.jsx)(M.aY,{children:(0,s.jsxs)("div",{className:"text-sm text-muted-foreground",children:["Average execution time: ",(0,s.jsx)("span",{className:"font-medium text-foreground",children:t?"...":"".concat(Math.round(l.averageDuration)," seconds")})]})})]})]})}var V=a(13832);let F="force-dynamic";function B(){let{user:e}=(0,l.useContext)(V.S),t=[{accessorKey:"name",header:e=>{let{column:t}=e;return(0,s.jsxs)(c.z,{variant:"ghost",onClick:()=>t.toggleSorting("asc"===t.getIsSorted()),children:["Name",(0,s.jsx)(d.Z,{className:"ml-2 h-4 w-4"})]})},cell:e=>{let{row:t}=e,a=t.original;return(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("div",{className:"font-medium",children:a.name}),a.description&&(0,s.jsx)("div",{className:"text-sm text-muted-foreground line-clamp-1",children:a.description})]})}},{accessorKey:"visibility",header:"Visibility",cell:e=>{let{row:t}=e,a=t.original.rights_mode||"private";return(0,s.jsx)(u.C,{variant:"outline",className:(e=>{switch(e){case"private":default:return"bg-gray-100 text-gray-800";case"public":return"bg-green-100 text-green-800";case"users":return"bg-blue-100 text-blue-800";case"roles":return"bg-purple-100 text-purple-800"}})(a),children:(e=>{switch(e){case"private":default:return"Private";case"public":return"Public";case"users":return"Users (".concat(t.original.RBAC.users.length,")");case"roles":return"Roles (".concat(t.original.RBAC.roles.length,")")}})(a)})}},{accessorKey:"createdAt",header:e=>{let{column:t}=e;return(0,s.jsxs)(c.z,{className:"p-0",variant:"ghost",onClick:()=>t.toggleSorting("asc"===t.getIsSorted()),children:["Created",(0,s.jsx)(d.Z,{className:"ml-2 h-4 w-4"})]})},cell:e=>{let{row:t}=e,a=t.getValue("createdAt");return(0,s.jsx)("div",{className:"text-sm",children:(0,m.Q)(new Date(a),{addSuffix:!0})})}},{id:"lastRun",header:"Last Run",cell:e=>{let{row:t}=e;return(0,s.jsx)(w,{workflowId:t.original.id})}},{id:"actions",header:"Actions",cell:t=>{let{row:a}=t;return(0,s.jsx)(b,{workflow:a.original,user:e})}}];return(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)("div",{className:"hidden h-full flex-1 flex-col space-y-8 p-8 md:flex",children:[(0,s.jsx)("div",{className:"flex items-center justify-between space-y-2",children:(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-2xl font-bold tracking-tight",children:"Workflows"}),(0,s.jsx)("p",{className:"text-muted-foreground",children:"Manage your workflow templates and monitor running jobs."})]})}),(0,s.jsx)(E,{}),(0,s.jsx)(A,{columns:t})]})})}},37099:function(e,t,a){"use strict";a.d(t,{OL:function(){return g},_T:function(){return u},aR:function(){return i},f$:function(){return x},fY:function(){return f},le:function(){return h},xo:function(){return m},yT:function(){return p}});var s=a(57437),l=a(23619),r=a(2265),n=a(62869),o=a(94508);let i=l.fC;l.xz;let d=l.h_,c=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.aV,{className:(0,o.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r,ref:t})});c.displayName=l.aV.displayName;let u=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsxs)(d,{children:[(0,s.jsx)(c,{}),(0,s.jsx)(l.VY,{ref:t,className:(0,o.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...r})]})});u.displayName=l.VY.displayName;let f=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col space-y-2 text-center sm:text-left",t),...a})};f.displayName="AlertDialogHeader";let m=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};m.displayName="AlertDialogFooter";let x=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.Dx,{ref:t,className:(0,o.cn)("text-lg font-semibold",a),...r})});x.displayName=l.Dx.displayName;let p=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.dk,{ref:t,className:(0,o.cn)("text-sm text-muted-foreground",a),...r})});p.displayName=l.dk.displayName;let g=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.aU,{ref:t,className:(0,o.cn)((0,n.d)(),a),...r})});g.displayName=l.aU.displayName;let h=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.$j,{ref:t,className:(0,o.cn)((0,n.d)({variant:"outline"}),"mt-2 sm:mt-0",a),...r})});h.displayName=l.$j.displayName},35974:function(e,t,a){"use strict";a.d(t,{C:function(){return o}});var s=a(57437),l=a(90535);a(2265);var r=a(94508);let n=(0,l.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:a,...l}=e;return(0,s.jsx)("div",{className:(0,r.cn)(n({variant:a}),t),...l})}},66070:function(e,t,a){"use strict";a.d(t,{Ol:function(){return o},SZ:function(){return d},Zb:function(){return n},aY:function(){return c},eW:function(){return u},ll:function(){return i}});var s=a(57437),l=a(2265),r=a(94508);let n=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("div",{ref:t,className:(0,r.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",a),...l})});n.displayName="Card";let o=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("div",{ref:t,className:(0,r.cn)("flex flex-col space-y-1.5 p-6",a),...l})});o.displayName="CardHeader";let i=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("h3",{ref:t,className:(0,r.cn)("text-2xl font-semibold leading-none tracking-tight",a),...l})});i.displayName="CardTitle";let d=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("p",{ref:t,className:(0,r.cn)("text-sm text-muted-foreground",a),...l})});d.displayName="CardDescription";let c=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("div",{ref:t,className:(0,r.cn)("p-6 pt-0",a),...l})});c.displayName="CardContent";let u=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("div",{ref:t,className:(0,r.cn)("flex items-center p-6 pt-0",a),...l})});u.displayName="CardFooter"},26110:function(e,t,a){"use strict";a.d(t,{$N:function(){return p},Be:function(){return g},Vq:function(){return i},cN:function(){return x},cZ:function(){return f},fK:function(){return m},hg:function(){return d}});var s=a(57437),l=a(34567),r=a(32489),n=a(2265),o=a(94508);let i=l.fC,d=l.xz,c=l.h_;l.x8;let u=n.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.aV,{ref:t,className:(0,o.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r})});u.displayName=l.aV.displayName;let f=n.forwardRef((e,t)=>{let{className:a,children:n,...i}=e;return(0,s.jsxs)(c,{children:[(0,s.jsx)(u,{}),(0,s.jsxs)(l.VY,{ref:t,className:(0,o.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...i,children:[n,(0,s.jsxs)(l.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,s.jsx)(r.Z,{className:"size-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});f.displayName=l.VY.displayName;let m=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};m.displayName="DialogHeader";let x=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};x.displayName="DialogFooter";let p=n.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.Dx,{ref:t,className:(0,o.cn)("text-lg font-semibold leading-none tracking-tight",a),...r})});p.displayName=l.Dx.displayName;let g=n.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.dk,{ref:t,className:(0,o.cn)("text-sm text-muted-foreground",a),...r})});g.displayName=l.dk.displayName},26815:function(e,t,a){"use strict";a.d(t,{_:function(){return d}});var s=a(57437),l=a(6394),r=a(90535),n=a(2265),o=a(94508);let i=(0,r.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=n.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.f,{ref:t,className:(0,o.cn)(i(),a),...r})});d.displayName=l.f.displayName},19378:function(e,t,a){"use strict";a.d(t,{B:function(){return i},x:function(){return o}});var s=a(57437),l=a(14488),r=a(2265),n=a(94508);let o=r.forwardRef((e,t)=>{let{className:a,children:r,...o}=e;return(0,s.jsxs)(l.fC,{ref:t,className:(0,n.cn)("relative overflow-hidden",a),...o,children:[(0,s.jsx)(l.l_,{className:"size-full rounded-[inherit]",children:r}),(0,s.jsx)(i,{}),(0,s.jsx)(l.Ns,{})]})});o.displayName=l.fC.displayName;let i=r.forwardRef((e,t)=>{let{className:a,orientation:r="vertical",...o}=e;return(0,s.jsx)(l.gb,{ref:t,orientation:r,className:(0,n.cn)("flex touch-none select-none transition-colors","vertical"===r&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===r&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",a),...o,children:(0,s.jsx)(l.q4,{className:"relative flex-1 rounded-full bg-border"})})});i.displayName=l.gb.displayName},53647:function(e,t,a){"use strict";a.d(t,{Bw:function(){return p},Ph:function(){return c},Ql:function(){return g},i4:function(){return f},ki:function(){return u}});var s=a(57437),l=a(46943),r=a(40875),n=a(22135),o=a(30401),i=a(2265),d=a(94508);let c=l.fC;l.ZA;let u=l.B4,f=i.forwardRef((e,t)=>{let{className:a,children:n,...o}=e;return(0,s.jsxs)(l.xz,{ref:t,className:(0,d.cn)("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",a),...o,children:[n,(0,s.jsx)(l.JO,{asChild:!0,children:(0,s.jsx)(r.Z,{className:"size-4 opacity-50"})})]})});f.displayName=l.xz.displayName;let m=i.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.u_,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",a),...r,children:(0,s.jsx)(n.Z,{className:"size-4"})})});m.displayName=l.u_.displayName;let x=i.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(l.$G,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",a),...n,children:(0,s.jsx)(r.Z,{className:"size-4"})})});x.displayName=l.$G.displayName;let p=i.forwardRef((e,t)=>{let{className:a,children:r,position:n="popper",...o}=e;return(0,s.jsx)(l.h_,{children:(0,s.jsxs)(l.VY,{ref:t,className:(0,d.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:n,...o,children:[(0,s.jsx)(m,{}),(0,s.jsx)(l.l_,{className:(0,d.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r}),(0,s.jsx)(x,{})]})})});p.displayName=l.VY.displayName,i.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.__,{ref:t,className:(0,d.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",a),...r})}).displayName=l.__.displayName;let g=i.forwardRef((e,t)=>{let{className:a,children:r,...n}=e;return(0,s.jsxs)(l.ck,{ref:t,className:(0,d.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...n,children:[(0,s.jsx)("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:(0,s.jsx)(l.wU,{children:(0,s.jsx)(o.Z,{className:"size-4"})})}),(0,s.jsx)(l.eT,{children:r})]})});g.displayName=l.ck.displayName,i.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(l.Z0,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-muted",a),...r})}).displayName=l.Z0.displayName},73578:function(e,t,a){"use strict";a.d(t,{RM:function(){return i},Rn:function(){return f},SC:function(){return d},iA:function(){return n},pj:function(){return u},ss:function(){return c},xD:function(){return o}});var s=a(57437),l=a(2265),r=a(94508);let n=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("div",{className:"relative w-full overflow-auto",children:(0,s.jsx)("table",{ref:t,className:(0,r.cn)("w-full caption-bottom text-sm",a),...l})})});n.displayName="Table";let o=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("thead",{ref:t,className:(0,r.cn)("[&_tr]:border-b",a),...l})});o.displayName="TableHeader";let i=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("tbody",{ref:t,className:(0,r.cn)("[&_tr:last-child]:border-0",a),...l})});i.displayName="TableBody",l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("tfoot",{ref:t,className:(0,r.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...l})}).displayName="TableFooter";let d=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("tr",{ref:t,className:(0,r.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",a),...l})});d.displayName="TableRow";let c=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("th",{ref:t,className:(0,r.cn)("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]",a),...l})});c.displayName="TableHead";let u=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("td",{ref:t,className:(0,r.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]",a),...l})});u.displayName="TableCell";let f=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("caption",{ref:t,className:(0,r.cn)("mt-4 text-sm text-muted-foreground",a),...l})});f.displayName="TableCaption"},76818:function(e,t,a){"use strict";a.d(t,{g:function(){return n}});var s=a(57437),l=a(2265),r=a(94508);let n=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("textarea",{className:(0,r.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",a),ref:t,...l})});n.displayName="Textarea"},77992:function(e,t,a){"use strict";a.d(t,{Am:function(){return u},pm:function(){return f}});var s=a(2265);let l=0,r=new Map,n=e=>{if(r.has(e))return;let t=setTimeout(()=>{r.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);r.set(e,t)},o=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:a}=t;return a?n(a):e.toasts.forEach(e=>{n(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===a||void 0===a?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},i=[],d={toasts:[]};function c(e){d=o(d,e),i.forEach(e=>{e(d)})}function u(e){let{...t}=e,a=(l=(l+1)%Number.MAX_SAFE_INTEGER).toString(),s=()=>c({type:"DISMISS_TOAST",toastId:a});return c({type:"ADD_TOAST",toast:{...t,id:a,open:!0,onOpenChange:e=>{e||s()}}}),{id:a,dismiss:s,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:a}})}}function f(){let[e,t]=s.useState(d);return s.useEffect(()=>(i.push(t),()=>{let e=i.indexOf(t);e>-1&&i.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}}},function(e){e.O(0,[329,8310,3954,9851,7629,7093,6148,847,1942,7648,7823,8068,5799,4567,605,85,4957,7398,3825,1785,3702,3397,1594,9141,79,6373,3832,1957,2971,2117,1744],function(){return e(e.s=33329)}),_N_E=e.O()}]);
|
|
2
|
-
//# sourceMappingURL=page-38488c44d89b32f4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/workflows/page-38488c44d89b32f4.js","mappings":"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","sources":["webpack://_N_E/?5da6","webpack://_N_E/./app/(application)/workflows/components/columns.tsx","webpack://_N_E/./app/(application)/workflows/components/data-table-view-options.tsx","webpack://_N_E/./app/(application)/workflows/components/data-table.tsx","webpack://_N_E/./app/(application)/workflows/components/jobs-status-area.tsx","webpack://_N_E/./app/(application)/workflows/page.tsx","webpack://_N_E/./components/ui/alert-dialog.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/dialog.tsx","webpack://_N_E/./components/ui/label.tsx","webpack://_N_E/./components/ui/scroll-area.tsx","webpack://_N_E/./components/ui/select.tsx","webpack://_N_E/./components/ui/table.tsx","webpack://_N_E/./components/ui/textarea.tsx","webpack://_N_E/./components/ui/use-toast.ts"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/workflows/page.tsx\");\n","\"use client\";\n\nimport { ColumnDef } from \"@tanstack/react-table\";\nimport { ArrowUpDown, Edit, Eye, Play, Trash2 } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { SaveWorkflowModal } from \"@/components/save-workflow-modal\";\nimport { formatDistanceToNow } from \"date-fns\";\nimport { useQuery, useMutation } from \"@apollo/client\";\nimport { GET_JOBS, REMOVE_WORKFLOW_TEMPLATE_BY_ID, GET_WORKFLOW_TEMPLATES } from \"@/queries/queries\";\nimport {\n AlertDialog,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@/components/ui/alert-dialog\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { useToast } from \"@/components/ui/use-toast\";\n\nexport type Workflow = {\n id: string;\n name: string;\n description?: string;\n owner: number;\n rights_mode: \"private\" | \"users\" | \"roles\" | \"public\" | \"projects\";\n RBAC: {\n users: Array<{ id: number; rights: \"read\" | \"write\" }>;\n roles: Array<{ id: string; rights: \"read\" | \"write\" }>;\n projects: Array<{ id: string; rights: \"read\" | \"write\" }>;\n };\n variables?: any[];\n steps_json?: any[];\n createdAt: string;\n updatedAt: string;\n};\n\nexport type WorkflowWithLastRun = Workflow & {\n lastRunAt?: string;\n lastRunStatus?: string;\n};\n\nfunction useLastRunForWorkflow(workflowId: string) {\n const { data } = useQuery(GET_JOBS, {\n variables: {\n page: 1,\n limit: 1,\n filters: [\n {\n workflow: { eq: workflowId }\n }\n ],\n sort: { field: \"createdAt\", direction: \"DESC\" }\n },\n pollInterval: 5000 // Poll every 5 seconds for recent runs\n });\n\n const lastJob = data?.jobsPagination?.items?.[0];\n return {\n lastRunAt: lastJob?.createdAt,\n lastRunStatus: lastJob?.status\n };\n}\n\nfunction LastRunCell({ workflowId }: { workflowId: string }) {\n const { lastRunAt, lastRunStatus } = useLastRunForWorkflow(workflowId);\n\n if (!lastRunAt) {\n return <span className=\"text-muted-foreground text-sm\">Never run</span>;\n }\n\n const getStatusColor = (status: string) => {\n switch (status) {\n case 'completed': return 'bg-green-100 text-green-800';\n case 'failed': case 'stuck': return 'bg-red-100 text-red-800';\n case 'active': case 'waiting': case 'delayed': case 'paused': return 'bg-blue-100 text-blue-800';\n default: return 'bg-gray-100 text-gray-800';\n }\n };\n\n return (\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-sm\">\n {formatDistanceToNow(new Date(lastRunAt), { addSuffix: true })}\n </div>\n <Badge variant=\"outline\" className={getStatusColor(lastRunStatus)}>\n {lastRunStatus}\n </Badge>\n </div>\n );\n}\n\nfunction WorkflowActionsCell({ workflow, user }: { workflow: WorkflowWithLastRun; user: any }) {\n const [isEditModalOpen, setIsEditModalOpen] = useState(false);\n const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);\n const [deleteConfirmation, setDeleteConfirmation] = useState('');\n const { toast } = useToast();\n \n // Determine if user has write access\n const hasWriteAccess = (() => {\n if (workflow.owner === user.id) return true;\n if (workflow.rights_mode === 'public') return false; // Public workflows can only be edited by owner\n if (workflow.rights_mode === 'users' && workflow.RBAC.users) {\n const userAccess = workflow.RBAC.users.find(u => u.id === user.id.toString());\n return userAccess?.rights === 'write';\n }\n if (workflow.rights_mode === 'roles' && workflow.RBAC.roles && user.role) {\n const roleAccess = workflow.RBAC.roles.find(r => r.id === user.role);\n return roleAccess?.rights === 'write';\n }\n return false;\n })();\n\n const [removeWorkflow] = useMutation(REMOVE_WORKFLOW_TEMPLATE_BY_ID, {\n refetchQueries: [GET_WORKFLOW_TEMPLATES, \"GetWorkflowTemplates\"],\n });\n\n const handleDelete = async () => {\n if (deleteConfirmation !== workflow.name) {\n toast({\n title: \"Error\",\n description: \"Please type the workflow name exactly to confirm deletion.\",\n variant: \"destructive\",\n });\n return;\n }\n\n try {\n await removeWorkflow({\n variables: { id: workflow.id },\n });\n toast({\n title: \"Workflow deleted\",\n description: `\"${workflow.name}\" has been successfully deleted.`,\n });\n setIsDeleteModalOpen(false);\n setDeleteConfirmation('');\n } catch (error) {\n toast({\n title: \"Error\",\n description: \"Failed to delete the workflow. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n // Transform workflow back to messages format for the modal\n // TODO just keep the workflow messages in the ai-sdk format!!\n const workflowMessages: any[] = workflow.steps_json?.map((step: any, index: number) => ({\n id: step.id || `msg_${index}`,\n role: step.type === 'user' ? 'user' as const : \n step.type === 'assistant' ? 'assistant' as const : \n 'system' as const,\n content: step.content || step.contentExample || `Tool: ${step.toolName}`,\n ...(step.type === 'tool' && {\n parts: [{\n type: 'tool-invocation',\n toolInvocation: {\n toolName: step.toolName\n }\n }]\n })\n })) || [];\n\n return (\n <>\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setIsEditModalOpen(true)}\n >\n {hasWriteAccess ? <Edit className=\"h-4 w-4\" /> : <Eye className=\"h-4 w-4\" />}\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n // TODO: Implement workflow run functionality\n console.log('Run workflow:', workflow.id);\n }}\n >\n <Play className=\"h-4 w-4\" />\n </Button>\n {hasWriteAccess && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setIsDeleteModalOpen(true)}\n className=\"text-red-600 hover:text-red-700 hover:bg-red-50\"\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n )}\n </div>\n \n <SaveWorkflowModal\n isOpen={isEditModalOpen}\n onClose={() => setIsEditModalOpen(false)}\n messages={workflowMessages}\n sessionTitle={workflow.name}\n existingWorkflow={{\n id: workflow.id,\n name: workflow.name,\n description: workflow.description,\n rights_mode: workflow.rights_mode,\n RBAC: workflow.RBAC,\n variables: workflow.variables,\n steps_json: workflow.steps_json\n }}\n isReadOnly={!hasWriteAccess}\n />\n\n <AlertDialog open={isDeleteModalOpen} onOpenChange={setIsDeleteModalOpen}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Delete Workflow</AlertDialogTitle>\n <AlertDialogDescription>\n This action will permanently delete the workflow \"{workflow.name}\" and cannot be undone.\n <br /><br />\n To confirm, please type the workflow name below:\n </AlertDialogDescription>\n </AlertDialogHeader>\n <div className=\"py-4\">\n <Label htmlFor=\"delete-confirmation\" className=\"text-sm font-medium\">\n Workflow name\n </Label>\n <Input\n id=\"delete-confirmation\"\n value={deleteConfirmation}\n onChange={(e) => setDeleteConfirmation(e.target.value)}\n placeholder={workflow.name}\n className=\"mt-2\"\n />\n </div>\n <AlertDialogFooter>\n <Button\n variant=\"outline\"\n onClick={() => {\n setIsDeleteModalOpen(false);\n setDeleteConfirmation('');\n }}\n >\n Cancel\n </Button>\n <Button\n variant=\"destructive\"\n onClick={handleDelete}\n disabled={deleteConfirmation !== workflow.name}\n >\n Delete Workflow\n </Button>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </>\n );\n}\n\nexport function createColumns(user: any): ColumnDef<WorkflowWithLastRun>[] {\n return [\n {\n accessorKey: \"name\",\n header: ({ column }) => {\n return (\n <Button\n variant=\"ghost\"\n onClick={() => column.toggleSorting(column.getIsSorted() === \"asc\")}\n >\n Name\n <ArrowUpDown className=\"ml-2 h-4 w-4\" />\n </Button>\n );\n },\n cell: ({ row }) => {\n const workflow = row.original;\n return (\n <div className=\"flex flex-col gap-1\">\n <div className=\"font-medium\">{workflow.name}</div>\n {workflow.description && (\n <div className=\"text-sm text-muted-foreground line-clamp-1\">\n {workflow.description}\n </div>\n )}\n </div>\n );\n },\n },\n {\n accessorKey: \"visibility\",\n header: \"Visibility\",\n cell: ({ row }) => {\n const visibility = row.original.rights_mode || 'private';\n const getVisibilityColor = (visibility: string) => {\n switch (visibility) {\n case 'private': return 'bg-gray-100 text-gray-800';\n case 'public': return 'bg-green-100 text-green-800';\n case 'users': return 'bg-blue-100 text-blue-800';\n case 'roles': return 'bg-purple-100 text-purple-800';\n default: return 'bg-gray-100 text-gray-800';\n }\n };\n const getVisibilityText = (visibility: string) => { \n switch (visibility) {\n case 'private': return 'Private';\n case 'public': return 'Public';\n case 'users': return `Users (${row.original.RBAC.users.length})`;\n case 'roles': return `Roles (${row.original.RBAC.roles.length})`;\n default: return 'Private';\n }\n };\n return (\n <Badge variant=\"outline\" className={getVisibilityColor(visibility)}>\n {getVisibilityText(visibility)}\n </Badge>\n );\n },\n },\n {\n accessorKey: \"createdAt\",\n header: ({ column }) => {\n return (\n <Button\n className=\"p-0\"\n variant=\"ghost\"\n onClick={() => column.toggleSorting(column.getIsSorted() === \"asc\")}\n >\n Created\n <ArrowUpDown className=\"ml-2 h-4 w-4\" />\n </Button>\n );\n },\n cell: ({ row }) => {\n const createdAt = row.getValue(\"createdAt\") as string;\n return (\n <div className=\"text-sm\">\n {formatDistanceToNow(new Date(createdAt), { addSuffix: true })}\n </div>\n );\n },\n },\n {\n id: \"lastRun\",\n header: \"Last Run\",\n cell: ({ row }) => {\n return <LastRunCell workflowId={row.original.id} />;\n },\n },\n {\n id: \"actions\",\n header: \"Actions\",\n cell: ({ row }) => {\n return <WorkflowActionsCell workflow={row.original} user={user} />;\n },\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}","\"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 { useState } from \"react\";\nimport * as React from \"react\";\nimport {\n GET_WORKFLOW_TEMPLATES,\n REMOVE_WORKFLOW_TEMPLATE_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 { Skeleton } from \"@/components/ui/skeleton\";\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 WorkflowFilters = {\n name?: FilterOperator,\n visibility?: 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 [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<WorkflowFilters[]>([]);\n\n let [page, setPage] = useState(1);\n const [sorting, setSorting] = React.useState<SortingState>([]);\n\n const { loading, error, data, refetch, previousData } = useQuery(GET_WORKFLOW_TEMPLATES, {\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 [removeWorkflow, removeWorkflowResult] = useMutation(REMOVE_WORKFLOW_TEMPLATE_BY_ID, {\n refetchQueries: [\n GET_WORKFLOW_TEMPLATES,\n \"GetWorkflowTemplates\",\n ],\n });\n\n let items;\n let pageCount;\n if (loading && previousData?.workflow_templatesPagination?.items) {\n items = previousData?.workflow_templatesPagination?.items;\n pageCount = previousData?.workflow_templatesPagination?.pageInfo?.pageCount;\n } else if (data?.workflow_templatesPagination?.items) {\n items = data?.workflow_templatesPagination?.items;\n pageCount = data?.workflow_templatesPagination?.pageInfo?.pageCount;\n } else if (previousData?.workflow_templatesPagination?.items) {\n items = previousData?.workflow_templatesPagination?.items;\n pageCount = previousData?.workflow_templatesPagination?.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=\"Search workflows...\"\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 {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 removeWorkflow({\n variables: {\n id: row.original.id,\n },\n }),\n );\n });\n Promise.all(promises).then(() => {\n table.resetRowSelection();\n toast({\n title: \"Workflows deleted\",\n description: \"Successfully deleted \" + promises.length + \" workflow(s).\",\n });\n }).catch(() => {\n toast({\n title: \"Error\",\n description: \"Failed to delete some workflows. Please try again.\",\n variant: \"destructive\",\n });\n });\n }}\n variant=\"secondary\"\n disabled={removeWorkflowResult.loading}\n >\n {removeWorkflowResult.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 ) : loading && !previousData ? (\n Array.from({ length: 5 }).map((_, index) => (\n <TableRow key={index}>\n {columns.map((_, colIndex) => (\n <TableCell key={colIndex}>\n <Skeleton className=\"h-4 w-full\" />\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"h-24 text-center\"\n >\n No workflows 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?.workflow_templatesPagination?.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?.workflow_templatesPagination?.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?.workflow_templatesPagination?.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?.workflow_templatesPagination?.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 { useQuery } from \"@apollo/client\";\nimport { AlertTriangle, Clock, CheckCircle, XCircle } from \"lucide-react\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { GET_JOB_STATISTICS_ENHANCED } from \"@/queries/queries\";\n\nexport function JobsStatusArea() {\n // Poll every 2 seconds for real-time updates\n const { data, loading, error } = useQuery(GET_JOB_STATISTICS_ENHANCED, {\n variables: {\n // Get all jobs for current user - backend will handle access control\n },\n pollInterval: 2000,\n fetchPolicy: \"network-only\" // Always fetch fresh data\n });\n\n if (error) {\n console.error(\"Error fetching job statistics:\", error);\n return null;\n }\n\n const stats = data?.jobStatistics || {\n runningCount: 0,\n erroredCount: 0,\n completedCount: 0,\n failedCount: 0,\n averageDuration: 0\n };\n\n const statusCards = [\n {\n title: \"Running Jobs\",\n value: stats.runningCount,\n description: \"Currently executing\",\n icon: Clock,\n color: \"text-blue-600\",\n bgColor: \"bg-blue-100\",\n },\n {\n title: \"Errored Jobs\", \n value: stats.erroredCount,\n description: \"Failed or stuck\",\n icon: AlertTriangle,\n color: \"text-red-600\",\n bgColor: \"bg-red-100\",\n },\n {\n title: \"Completed Jobs\",\n value: stats.completedCount,\n description: \"Successfully finished\",\n icon: CheckCircle,\n color: \"text-green-600\",\n bgColor: \"bg-green-100\",\n },\n {\n title: \"Failed Jobs\",\n value: stats.failedCount,\n description: \"Execution failed\",\n icon: XCircle,\n color: \"text-red-500\",\n bgColor: \"bg-red-50\",\n }\n ];\n\n return (\n <div className=\"space-y-4\">\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\n {statusCards.map((card) => {\n const Icon = card.icon;\n return (\n <Card key={card.title}>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {card.title}\n </CardTitle>\n <div className={`p-2 rounded-full ${card.bgColor}`}>\n <Icon className={`h-4 w-4 ${card.color}`} />\n </div>\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {loading ? \"...\" : card.value}\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {card.description}\n </p>\n </CardContent>\n </Card>\n );\n })}\n </div>\n \n {stats.completedCount > 0 && (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm font-medium\">Performance</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"text-sm text-muted-foreground\">\n Average execution time: <span className=\"font-medium text-foreground\">\n {loading ? \"...\" : `${Math.round(stats.averageDuration)} seconds`}\n </span>\n </div>\n </CardContent>\n </Card>\n )}\n </div>\n );\n}","\"use client\";\n\nimport { useContext } from \"react\";\nimport { createColumns } from \"./components/columns\";\nimport { DataTable } from \"./components/data-table\";\nimport { JobsStatusArea } from \"./components/jobs-status-area\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\n\nexport const dynamic = \"force-dynamic\";\n\nexport default function WorkflowsPage() {\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\">Workflows</h2>\n <p className=\"text-muted-foreground\">\n Manage your workflow templates and monitor running jobs.\n </p>\n </div>\n </div>\n \n {/* Jobs Status Area */}\n <JobsStatusArea />\n \n {/* Workflows Table */}\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","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","\"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","\"use client\";\n\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"size-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","\"use client\";\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUp className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDown className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\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","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","LastRunCell","param","workflowId","lastRunAt","lastRunStatus","useLastRunForWorkflow","data","useQuery","GET_JOBS","variables","page","limit","filters","workflow","eq","sort","field","direction","pollInterval","lastJob","jobsPagination","items","createdAt","status","jsx_runtime","jsxs","div","className","jsx","formatDistanceToNow","Date","addSuffix","Badge","variant","getStatusColor","span","WorkflowActionsCell","user","isEditModalOpen","setIsEditModalOpen","useState","isDeleteModalOpen","setIsDeleteModalOpen","deleteConfirmation","setDeleteConfirmation","toast","useToast","hasWriteAccess","owner","id","rights_mode","RBAC","users","userAccess","find","u","toString","rights","roles","role","roleAccess","r","removeWorkflow","useMutation","REMOVE_WORKFLOW_TEMPLATE_BY_ID","refetchQueries","GET_WORKFLOW_TEMPLATES","handleDelete","name","title","description","concat","error","workflowMessages","steps_json","map","step","index","type","content","contentExample","toolName","parts","toolInvocation","Fragment","Button","size","onClick","Edit","Eye","console","log","Play","Trash2","SaveWorkflowModal","isOpen","onClose","messages","sessionTitle","existingWorkflow","isReadOnly","AlertDialog","open","onOpenChange","AlertDialogContent","AlertDialogHeader","AlertDialogTitle","AlertDialogDescription","br","Label","htmlFor","Input","value","onChange","e","target","placeholder","AlertDialogFooter","disabled","DataTableViewOptions","table","DropdownMenu","DropdownMenuTrigger","asChild","MixerHorizontalIcon","DropdownMenuContent","align","DropdownMenuLabel","DropdownMenuSeparator","getAllColumns","filter","column","accessorFn","getCanHide","DropdownMenuCheckboxItem","checked","getIsVisible","onCheckedChange","toggleVisibility","DataTable","previousData","pageCount","columns","rowSelection","setRowSelection","React","columnVisibility","setColumnVisibility","columnFilters","setColumnFilters","setFilters","setPage","sorting","setSorting","loading","refetch","fetchPolicy","nextFetchPolicy","defaultData","onPaginationChange","skip","pagination","usePagination","setPagination","pageSize","pageIndex","removeWorkflowResult","workflow_templatesPagination","pageInfo","useReactTable","state","enableRowSelection","onRowSelectionChange","onSortingChange","onColumnFiltersChange","onColumnVisibilityChange","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","getFacetedRowModel","getFacetedUniqueValues","manualPagination","search","copy","exists","contains","push","isFiltered","length","event","getIsSomeRowsSelected","getIsAllRowsSelected","promises","getSelectedRowModel","rows","forEach","row","original","all","resetRowSelection","catch","Loading","nameFilter","splice","indexOf","Cross2Icon","Table","TableHeader","getHeaderGroups","TableRow","headerGroup","headers","TableHead","colSpan","header","isPlaceholder","flexRender","columnDef","getContext","TableBody","getRowModel","data-state","getIsSelected","getVisibleCells","TableCell","cell","Array","from","_","colIndex","Skeleton","getFilteredSelectedRowModel","getPageCount","setPageIndex","hasPreviousPage","DoubleArrowLeftIcon","previousPage","ChevronLeftIcon","nextPage","hasNextPage","ChevronRightIcon","DoubleArrowRightIcon","JobsStatusArea","GET_JOB_STATISTICS_ENHANCED","stats","jobStatistics","runningCount","erroredCount","completedCount","failedCount","averageDuration","statusCards","icon","Clock","color","bgColor","AlertTriangle","CheckCircle","XCircle","Icon","card","Card","CardHeader","CardTitle","CardContent","p","Math","round","dynamic","WorkflowsPage","useContext","UserContext","accessorKey","toggleSorting","getIsSorted","ArrowUpDown","visibility","getVisibilityColor","getVisibilityText","getValue","h2","AlertDialogPrimitive","AlertDialogPortal","AlertDialogOverlay","ref","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","cn","displayName","AlertDialogAction","buttonVariants","AlertDialogCancel","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","h3","CardDescription","CardFooter","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogOverlay","DialogContent","children","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription","labelVariants","LabelPrimitive","ScrollArea","ScrollAreaPrimitive","ScrollBar","orientation","Select","SelectPrimitive","SelectValue","SelectTrigger","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator","thead","tbody","TableFooter","tfoot","tr","th","td","TableCaption","caption","Textarea","textarea","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","delete","dispatch","set","reducer","action","toasts","slice","t","undefined","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","dismiss","update","setState"],"sourceRoot":""}
|