@exulu/frontend 1.9.0 → 1.11.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 +191 -188
- 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_client-reference-manifest.js +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 +7 -7
- 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_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +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 +3 -3
- 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/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_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/prompts/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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-paths-manifest.json +7 -7
- package/dist/.next/server/chunks/2270.js +154 -130
- package/dist/.next/server/chunks/{5084.js → 2587.js} +1 -1
- package/dist/.next/server/chunks/3503.js +1 -1
- package/dist/.next/server/chunks/5485.js +1 -1
- package/dist/.next/server/chunks/5974.js +1 -1
- package/dist/.next/server/chunks/7944.js +1 -1
- package/dist/.next/server/chunks/8286.js +1 -1
- 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/1707-06e693c4a709c147.js +2 -0
- package/dist/.next/static/chunks/1707-06e693c4a709c147.js.map +1 -0
- package/dist/.next/static/chunks/{1957-cf44b1d31a9c7d5c.js → 1957-34f17de1e14e45de.js} +1 -1
- package/dist/.next/static/chunks/{1957-cf44b1d31a9c7d5c.js.map → 1957-34f17de1e14e45de.js.map} +1 -1
- package/dist/.next/static/chunks/{2293-48a95904b834eccc.js → 2293-592e22dde70d632b.js} +1 -1
- package/dist/.next/static/chunks/{2293-48a95904b834eccc.js.map → 2293-592e22dde70d632b.js.map} +1 -1
- package/dist/.next/static/chunks/2534-3dd7a9fabfbdb9d8.js +2 -0
- package/dist/.next/static/chunks/2534-3dd7a9fabfbdb9d8.js.map +1 -0
- package/dist/.next/static/chunks/2823-324b1cd8f15ff9c5.js +2 -0
- package/dist/.next/static/chunks/2823-324b1cd8f15ff9c5.js.map +1 -0
- package/dist/.next/static/chunks/3246-1812de142455a0ac.js +2 -0
- package/dist/.next/static/chunks/3246-1812de142455a0ac.js.map +1 -0
- package/dist/.next/static/chunks/3750-d0ae5d73288be8de.js +2 -0
- package/dist/.next/static/chunks/3750-d0ae5d73288be8de.js.map +1 -0
- package/dist/.next/static/chunks/{3832-417a5eeee712a793.js → 3832-0b8edbcc671f4cc0.js} +2 -2
- package/dist/.next/static/chunks/3832-0b8edbcc671f4cc0.js.map +1 -0
- package/dist/.next/static/chunks/{4386-45b79e656a244d8a.js → 4386-21ac377a719ebdfa.js} +1 -1
- package/dist/.next/static/chunks/{4386-45b79e656a244d8a.js.map → 4386-21ac377a719ebdfa.js.map} +1 -1
- package/dist/.next/static/chunks/4612-da512770f949561a.js +2 -0
- package/dist/.next/static/chunks/4612-da512770f949561a.js.map +1 -0
- package/dist/.next/static/chunks/{5825-efd4db1da512bd7f.js → 4760-d5ceb992b68e35ca.js} +2 -2
- package/dist/.next/static/chunks/4760-d5ceb992b68e35ca.js.map +1 -0
- package/dist/.next/static/chunks/{6367-59655a85d75e19be.js → 6367-aa5020cbea5354e2.js} +1 -1
- package/dist/.next/static/chunks/{6367-59655a85d75e19be.js.map → 6367-aa5020cbea5354e2.js.map} +1 -1
- package/dist/.next/static/chunks/6373-3eee0b6c8b8fd459.js +2 -0
- package/dist/.next/static/chunks/6373-3eee0b6c8b8fd459.js.map +1 -0
- package/dist/.next/static/chunks/{8030-9c926ea4dfd3a54e.js → 8030-5d38a3f1a4ad44cb.js} +1 -1
- package/dist/.next/static/chunks/{8030-9c926ea4dfd3a54e.js.map → 8030-5d38a3f1a4ad44cb.js.map} +1 -1
- package/dist/.next/static/chunks/{8293-0e69d89d2dac7111.js → 8293-ba5cd36594e6fde1.js} +3 -3
- package/dist/.next/static/chunks/8293-ba5cd36594e6fde1.js.map +1 -0
- package/dist/.next/static/chunks/9105-143f12397a76a332.js +2 -0
- package/dist/.next/static/chunks/9105-143f12397a76a332.js.map +1 -0
- package/dist/.next/static/chunks/9877-378934ae38c6760c.js +2 -0
- package/dist/.next/static/chunks/9877-378934ae38c6760c.js.map +1 -0
- package/dist/.next/static/chunks/{9953-95900a236271a222.js → 9953-02d5b52553a5c573.js} +2 -2
- package/dist/.next/static/chunks/{9953-95900a236271a222.js.map → 9953-02d5b52553a5c573.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/{page-e4a4693953329671.js → page-37918149a8e909b0.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/{page-e4a4693953329671.js.map → page-37918149a8e909b0.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/agents/{page-b77c21a993c55901.js → page-9cff3b35b042d46a.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/agents/{page-b77c21a993c55901.js.map → page-9cff3b35b042d46a.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-53a99d8df53380c7.js +2 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-53a99d8df53380c7.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/{layout-093baa26f89338bc.js → layout-ba702af6bb56baa2.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/{layout-093baa26f89338bc.js.map → layout-ba702af6bb56baa2.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/{page-8a1fcfb68cf9c8c0.js → page-8b00a98d285829b1.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/{page-8a1fcfb68cf9c8c0.js.map → page-8b00a98d285829b1.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/configuration/{page-f315ede6d66922e6.js → page-1e978e117d5086a1.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/configuration/{page-f315ede6d66922e6.js.map → page-1e978e117d5086a1.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/{page-4a1956febf5235b6.js → page-c54b4bc8d0ac4ac8.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/{page-4a1956febf5235b6.js.map → page-c54b4bc8d0ac4ac8.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-dfdb5c1cdc7ddefc.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-dfdb5c1cdc7ddefc.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-faaee5fe82b45966.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-faaee5fe82b45966.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-a7728cf9b0524489.js → page-c956d9892676aa4f.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-c956d9892676aa4f.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/cases/page-6b4dde82376e9aac.js +2 -0
- package/dist/.next/static/chunks/app/(application)/evals/cases/page-6b4dde82376e9aac.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/{page-8b38d8d29f275704.js → page-944bfc4f0a001e4c.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/evals/page-944bfc4f0a001e4c.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/explorer/page-07d67145bb176711.js +2 -0
- package/dist/.next/static/chunks/app/(application)/explorer/page-07d67145bb176711.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/keys/{page-afe59c91cc347208.js → page-6c0cd9ef20cd1461.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/keys/{page-afe59c91cc347208.js.map → page-6c0cd9ef20cd1461.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/{page-f04fd5291a1ef7b1.js → page-5e2be54e76b8509c.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/projects/[project]/{page-f04fd5291a1ef7b1.js.map → page-5e2be54e76b8509c.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/{layout-a8e1830ef3faafb9.js → layout-f2e0f42a08c96bb8.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/{layout-a8e1830ef3faafb9.js.map → layout-f2e0f42a08c96bb8.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/prompts/{page-2c500e9898447506.js → page-2c03bbe32800acc3.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/prompts/{page-2c500e9898447506.js.map → page-2c03bbe32800acc3.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/roles/{page-873911198c17d9a7.js → page-b977b5c658004717.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/roles/{page-873911198c17d9a7.js.map → page-b977b5c658004717.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/token/{page-3f74f711f3d04fce.js → page-08596ece49a811b9.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/token/page-08596ece49a811b9.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/users/{page-0d7f0d7e80cd1436.js → page-49212081be40aeca.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/users/{page-0d7f0d7e80cd1436.js.map → page-49212081be40aeca.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-8ebf4e3d4d17443b.js → page-9ce762918374f616.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-8ebf4e3d4d17443b.js.map → page-9ce762918374f616.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-006145e82e054e72.js → page-0e2b7038546d9f7a.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-006145e82e054e72.js.map → page-0e2b7038546d9f7a.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/{page-51a8aeece444d388.js → page-141d5d3f735454fe.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/{page-51a8aeece444d388.js.map → page-141d5d3f735454fe.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-8f5cfc9565fd919a.js → page-fb1bb3ea6f7cae47.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-8f5cfc9565fd919a.js.map → page-fb1bb3ea6f7cae47.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/workflows/{page-e38f9456120dab69.js → page-2b839fdbc55c297b.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/workflows/page-2b839fdbc55c297b.js.map +1 -0
- package/dist/.next/static/chunks/ba12c10f-85ed008ce7746dbe.js +2 -0
- package/dist/.next/static/chunks/ba12c10f-85ed008ce7746dbe.js.map +1 -0
- package/dist/.next/static/css/0f539b50cca35462.css +4 -0
- package/dist/.next/static/css/0f539b50cca35462.css.map +1 -0
- package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js +0 -2
- package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js.map +0 -1
- package/dist/.next/static/chunks/3171-6996819b8863d41f.js +0 -2
- package/dist/.next/static/chunks/3171-6996819b8863d41f.js.map +0 -1
- package/dist/.next/static/chunks/3750-f45c59ef1cc79417.js +0 -2
- package/dist/.next/static/chunks/3750-f45c59ef1cc79417.js.map +0 -1
- package/dist/.next/static/chunks/3832-417a5eeee712a793.js.map +0 -1
- package/dist/.next/static/chunks/4419-b9be79d8cd46a97d.js +0 -2
- package/dist/.next/static/chunks/4419-b9be79d8cd46a97d.js.map +0 -1
- package/dist/.next/static/chunks/5110-098aa924c3108fa4.js +0 -2
- package/dist/.next/static/chunks/5110-098aa924c3108fa4.js.map +0 -1
- package/dist/.next/static/chunks/572-2940a399da1e3a3b.js +0 -2
- package/dist/.next/static/chunks/572-2940a399da1e3a3b.js.map +0 -1
- package/dist/.next/static/chunks/5825-efd4db1da512bd7f.js.map +0 -1
- package/dist/.next/static/chunks/6373-601400fab8a3bb55.js +0 -2
- package/dist/.next/static/chunks/6373-601400fab8a3bb55.js.map +0 -1
- package/dist/.next/static/chunks/8293-0e69d89d2dac7111.js.map +0 -1
- package/dist/.next/static/chunks/9105-dfbce1bad8e3e8dd.js +0 -2
- package/dist/.next/static/chunks/9105-dfbce1bad8e3e8dd.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-7edb1c7c850f982c.js +0 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-7edb1c7c850f982c.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-2d47be0ee80dd89d.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-2d47be0ee80dd89d.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-a7728cf9b0524489.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/cases/page-827f50c6d1f150d0.js +0 -2
- package/dist/.next/static/chunks/app/(application)/evals/cases/page-827f50c6d1f150d0.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/page-8b38d8d29f275704.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/explorer/page-1d676c9dfe3ed58b.js +0 -2
- package/dist/.next/static/chunks/app/(application)/explorer/page-1d676c9dfe3ed58b.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/token/page-3f74f711f3d04fce.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-e38f9456120dab69.js.map +0 -1
- package/dist/.next/static/chunks/ba12c10f-aaafcb074f608624.js +0 -2
- package/dist/.next/static/chunks/ba12c10f-aaafcb074f608624.js.map +0 -1
- package/dist/.next/static/css/6f8c5212af8ef284.css +0 -4
- package/dist/.next/static/css/6f8c5212af8ef284.css.map +0 -1
- /package/dist/.next/static/{ls-syPkq9-MWp-VWWDEZJ → exslB-IPXi_veOKFA4L1Z}/_buildManifest.js +0 -0
- /package/dist/.next/static/{ls-syPkq9-MWp-VWWDEZJ → exslB-IPXi_veOKFA4L1Z}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/chat/page-8a1fcfb68cf9c8c0.js","mappings":"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","sources":["webpack://_N_E/?35ee","webpack://_N_E/./app/(application)/chat/components/chat-empty-state.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./hooks/use-prompts.tsx","webpack://_N_E/./lib/prompts/extract-variables.ts","webpack://_N_E/../../../src/icons/eye.ts","webpack://_N_E/../../../src/icons/thumbs-up.ts","webpack://_N_E/./node_modules/@apollo/client/react/hooks/internal/useIsomorphicLayoutEffect.js","webpack://_N_E/./node_modules/@apollo/client/react/hooks/useMutation.js"],"sourcesContent":["import(/* webpackMode: \"eager\", webpackExports: [\"ChatEmptyState\"] */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/components/chat-empty-state.tsx\");\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useRouter } from \"next/navigation\";\nimport { Bot, Sparkles, Eye, ThumbsUp } from \"lucide-react\";\nimport { usePrompts } from \"@/hooks/use-prompts\";\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport { CREATE_AGENT_SESSION, GET_AGENTS_BY_IDS } from \"@/queries/queries\";\nimport { PromptLibrary } from \"@/types/models/prompt-library\";\nimport { Agent } from \"@/types/models/agent\";\nimport { extractVariables } from \"@/lib/prompts/extract-variables\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { useContext } from \"react\";\n\nexport function ChatEmptyState() {\n\n const router = useRouter();\n const { user } = useContext(UserContext);\n\n const [createAgentSession] = useMutation(\n CREATE_AGENT_SESSION,\n );\n\n // Fetch prompts (limit to top 6 most popular)\n const { data: promptsData, loading: promptsLoading } = usePrompts({\n page: 1,\n limit: 6,\n sort: { field: \"favorite_count\", direction: \"DESC\" },\n });\n\n const prompts = promptsData?.prompt_libraryPagination?.items || [];\n\n // Get all unique agent IDs from prompts\n const allAgentIds = Array.from(\n new Set(\n prompts.flatMap((prompt) => prompt.assigned_agents || [])\n )\n );\n\n // Fetch agents for those IDs\n const { data: agentsData, loading: agentsLoading } = useQuery(GET_AGENTS_BY_IDS, {\n variables: { ids: allAgentIds },\n skip: allAgentIds.length === 0,\n });\n\n const agents: Agent[] = agentsData?.agentByIds || [];\n\n // Create a map of agent ID to agent for quick lookup\n const agentMap = new Map(agents.map((agent) => [agent.id, agent]));\n\n const handleAgentSelect = async (agentId: string, promptId: string) => {\n\n const result = await createAgentSession({\n variables: {\n title: \"New session\",\n user: user.id,\n agent: agentId,\n }\n })\n console.log(\"result\", result)\n const sessionId = result?.data?.agent_sessionsCreateOne?.item?.id\n\n // Navigate to chat with agent and pass prompt template info via query params\n router.push(`/chat/${agentId}/${sessionId}?promptId=${promptId}`);\n };\n\n if (promptsLoading) {\n return (\n <div className=\"m-auto max-w-4xl w-full px-4\">\n <div className=\"flex flex-col gap-6\">\n <div className=\"flex flex-col items-center gap-4 mb-8\">\n <Bot className=\"h-20 w-20 text-muted-foreground\" />\n <h2 className=\"text-2xl font-semibold text-center\">Select an agent</h2>\n <p className=\"text-muted-foreground text-center\">\n Choose a prompt template below to get started\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n {[1, 2, 3, 4].map((i) => (\n <Skeleton key={i} className=\"h-48 w-full\" />\n ))}\n </div>\n </div>\n </div>\n );\n }\n\n if (!prompts.length) {\n return (\n <div className=\"m-auto\">\n <div className=\"flex flex-col\">\n <div className=\"mx-auto\">\n <Bot className=\"h-20 w-20\" />\n </div>\n <h2 className=\"text-center\">Select an agent.</h2>\n <small className=\"text-center\">Bleep bleep bloop...</small>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"m-auto max-w-4xl w-full px-4 py-8\">\n <div className=\"flex flex-col gap-6\">\n {/* Header */}\n <div className=\"flex flex-col items-center gap-4 mb-4\">\n <div className=\"relative\">\n <Bot className=\"h-16 w-16 text-muted-foreground\" />\n <Sparkles className=\"h-6 w-6 text-primary absolute -top-1 -right-1\" />\n </div>\n <div className=\"text-center\">\n <h2 className=\"text-2xl font-semibold mb-2\">Get started with a prompt</h2>\n <p className=\"text-muted-foreground\">\n Select a prompt template and choose which agent to chat with\n </p>\n </div>\n </div>\n\n {/* Prompt Templates Grid */}\n <div className=\"grid gap-4 md:grid-cols-2\">\n {prompts.map((prompt) => {\n const variables = extractVariables(prompt.content);\n const assignedAgentIds = prompt.assigned_agents || [];\n const assignedAgents = assignedAgentIds\n .map((id) => agentMap.get(id))\n .filter((agent): agent is Agent => agent !== undefined);\n\n return (\n <Card key={prompt.id} className=\"flex flex-col\">\n <CardHeader>\n <div className=\"flex items-start justify-between gap-2 mb-2\">\n <CardTitle className=\"text-lg\">{prompt.name}</CardTitle>\n <div className=\"flex items-center gap-3 text-xs text-muted-foreground flex-shrink-0\">\n <div className=\"flex items-center gap-1\">\n <ThumbsUp className=\"h-3 w-3\" />\n <span>{prompt.favorite_count || 0}</span>\n </div>\n <div className=\"flex items-center gap-1\">\n <Eye className=\"h-3 w-3\" />\n <span>{prompt.usage_count || 0}</span>\n </div>\n </div>\n </div>\n {prompt.description && (\n <CardDescription className=\"line-clamp-2\">\n {prompt.description}\n </CardDescription>\n )}\n </CardHeader>\n\n <CardContent className=\"flex-1 flex flex-col gap-4\">\n {/* Tags and Variables */}\n <div className=\"flex flex-wrap gap-1.5\">\n {variables.length > 0 && (\n <Badge variant=\"outline\" className=\"text-xs\">\n {variables.length} variable{variables.length !== 1 ? \"s\" : \"\"}\n </Badge>\n )}\n {prompt.tags?.slice(0, 3).map((tag) => (\n <Badge key={tag} variant=\"secondary\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n {prompt.tags && prompt.tags.length > 3 && (\n <Badge variant=\"secondary\" className=\"text-xs\">\n +{prompt.tags.length - 3}\n </Badge>\n )}\n </div>\n\n {/* Agent Selection CTAs */}\n {assignedAgents.length > 0 ? (\n <div className=\"mt-auto\">\n <p className=\"text-xs text-muted-foreground mb-2\">\n Start chat with:\n </p>\n <div className=\"flex flex-wrap gap-2\">\n {assignedAgents.map((agent) => (\n <Button\n key={agent.id}\n variant=\"default\"\n size=\"sm\"\n onClick={() => handleAgentSelect(agent.id, prompt.id)}\n className=\"flex items-center gap-2\"\n >\n {agent.image && (\n <img\n src={agent.image}\n alt={agent.name}\n className=\"h-4 w-4 rounded-full object-cover\"\n />\n )}\n <span>{agent.name}</span>\n </Button>\n ))}\n </div>\n </div>\n ) : (\n <div className=\"mt-auto\">\n <p className=\"text-xs text-muted-foreground italic\">\n No agents assigned to this prompt\n </p>\n </div>\n )}\n </CardContent>\n </Card>\n );\n })}\n </div>\n\n {/* Footer hint */}\n <div className=\"text-center text-sm text-muted-foreground mt-4\">\n You can also select an agent from the sidebar to start chatting\n </div>\n </div>\n </div>\n );\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","import { useMutation, useQuery } from \"@apollo/client\";\nimport {\n CREATE_PROMPT,\n CREATE_PROMPT_FAVORITE,\n DELETE_PROMPT,\n DELETE_PROMPT_FAVORITE,\n GET_PROMPT_BY_ID,\n GET_PROMPTS,\n GET_USER_PROMPT_FAVORITES,\n INCREMENT_PROMPT_FAVORITES,\n INCREMENT_PROMPT_USAGE,\n UPDATE_PROMPT,\n} from \"@/queries/queries\";\nimport {\n CreatePromptInput,\n PromptFavorite,\n PromptLibrary,\n UpdatePromptInput,\n} from \"@/types/models/prompt-library\";\n\ninterface PromptsData {\n prompt_libraryPagination: {\n pageInfo: {\n pageCount: number;\n itemCount: number;\n currentPage: number;\n hasPreviousPage: boolean;\n hasNextPage: boolean;\n };\n items: PromptLibrary[];\n };\n}\n\ninterface PromptData {\n prompt_library_itemById: PromptLibrary;\n}\n\ninterface PromptFavoritesData {\n prompt_favoritesPagination: {\n items: PromptFavorite[];\n };\n}\n\n/**\n * Hook to fetch paginated prompts with filtering and sorting\n */\nexport const usePrompts = (variables?: {\n page?: number;\n limit?: number;\n filters?: any[];\n sort?: { field: string; direction: \"ASC\" | \"DESC\" };\n}) => {\n return useQuery<PromptsData>(GET_PROMPTS, {\n variables: {\n page: variables?.page ?? 1,\n limit: variables?.limit ?? 20,\n filters: variables?.filters ?? [],\n sort: variables?.sort ?? { field: \"updatedAt\", direction: \"DESC\" },\n },\n });\n};\n\n/**\n * Hook to fetch a single prompt by ID\n */\nexport const usePrompt = (id: string) => {\n return useQuery<PromptData>(GET_PROMPT_BY_ID, {\n variables: { id },\n skip: !id,\n });\n};\n\n/**\n * Hook to create a new prompt\n */\nexport const useCreatePrompt = () => {\n return useMutation<{ prompt_libraryCreateOne: { item: PromptLibrary } }>(\n CREATE_PROMPT,\n {\n refetchQueries: [{ query: GET_PROMPTS, variables: { page: 1, limit: 20 } }],\n }\n );\n};\n\n/**\n * Hook to update an existing prompt\n */\nexport const useUpdatePrompt = () => {\n return useMutation<{ prompt_libraryUpdateOneById: { item: PromptLibrary } }>(\n UPDATE_PROMPT\n );\n};\n\n/**\n * Hook to delete a prompt\n */\nexport const useDeletePrompt = () => {\n return useMutation<{ prompt_libraryRemoveOneById: { id: string } }>(\n DELETE_PROMPT,\n {\n refetchQueries: [{ query: GET_PROMPTS, variables: { page: 1, limit: 20 } }],\n }\n );\n};\n\n/**\n * Hook to increment prompt usage count\n */\nexport const useIncrementPromptUsage = () => {\n return useMutation<{\n prompt_libraryUpdateOneById: { item: Pick<PromptLibrary, \"id\" | \"usage_count\"> };\n }>(INCREMENT_PROMPT_USAGE);\n};\n\n/**\n * Hook to fetch user's favorited prompts\n */\nexport const useUserPromptFavorites = (userId: number) => {\n return useQuery<PromptFavoritesData>(GET_USER_PROMPT_FAVORITES, {\n variables: { user_id: userId },\n skip: !userId,\n });\n};\n\n/**\n * Hook to create a prompt favorite\n */\nexport const useCreatePromptFavorite = () => {\n return useMutation<{ prompt_favoritesCreateOne: { item: PromptFavorite } }>(\n CREATE_PROMPT_FAVORITE\n );\n};\n\n/**\n * Hook to delete a prompt favorite\n */\nexport const useDeletePromptFavorite = () => {\n return useMutation<{ prompt_favoritesRemoveOneById: { id: string } }>(\n DELETE_PROMPT_FAVORITE\n );\n};\n\n/**\n * Hook to toggle favorite status of a prompt\n * Handles both creating and deleting favorites, and updating the favorite count\n */\nexport const useTogglePromptFavorite = () => {\n const [createFavorite] = useCreatePromptFavorite();\n const [deleteFavorite] = useDeletePromptFavorite();\n const [incrementFavorites] = useMutation(INCREMENT_PROMPT_FAVORITES);\n\n const toggleFavorite = async (\n promptId: string,\n userId: number,\n isFavorited: boolean,\n currentFavoriteCount: number,\n favoriteId?: string\n ) => {\n if (isFavorited && favoriteId) {\n // Remove favorite\n await deleteFavorite({ variables: { id: favoriteId } });\n await incrementFavorites({\n variables: {\n id: promptId,\n favorite_count: Math.max(0, currentFavoriteCount - 1),\n },\n });\n } else {\n // Add favorite\n await createFavorite({\n variables: { user_id: userId, prompt_id: promptId },\n });\n await incrementFavorites({\n variables: { id: promptId, favorite_count: currentFavoriteCount + 1 },\n });\n }\n };\n\n return { toggleFavorite };\n};\n","/**\n * Extracts all variable names from a prompt template\n * Variables are in the format {{variable_name}}\n * Only alphanumeric characters and underscores are allowed in variable names\n *\n * @param content - The prompt content to extract variables from\n * @returns Array of unique variable names found in the content\n *\n * @example\n * extractVariables(\"Hello {{name}}, your issue {{issue_id}} is resolved\")\n * // Returns: [\"name\", \"issue_id\"]\n */\nexport function extractVariables(content: string): string[] {\n if (!content) return [];\n\n // Match {{variable_name}} where variable_name contains only alphanumeric and underscore\n const regex = /\\{\\{([a-zA-Z0-9_]+)\\}\\}/g;\n const matches = content.matchAll(regex);\n const variables = new Set<string>();\n\n for (const match of Array.from(matches)) {\n variables.add(match[1]);\n }\n\n return Array.from(variables).sort();\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Eye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Eye = createLucideIcon('Eye', [\n ['path', { d: 'M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z', key: 'rwhkz3' }],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Eye;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ThumbsUp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/thumbs-up\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ThumbsUp = createLucideIcon('ThumbsUp', [\n ['path', { d: 'M7 10v12', key: '1qc93n' }],\n [\n 'path',\n {\n d: 'M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2h0a3.13 3.13 0 0 1 3 3.88Z',\n key: 'y3tblf',\n },\n ],\n]);\n\nexport default ThumbsUp;\n","import * as React from \"rehackt\";\nimport { canUseDOM } from \"../../../utilities/index.js\";\n// use canUseDOM here instead of canUseLayoutEffect because we want to be able\n// to use useLayoutEffect in our jest tests. useLayoutEffect seems to work fine\n// in useSuspenseQuery tests, but to honor the original comment about the\n// warnings for useSyncExternalStore implementation, canUseLayoutEffect is left\n// alone.\nexport var useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { __assign } from \"tslib\";\nimport * as React from \"rehackt\";\nimport { mergeOptions } from \"../../utilities/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { useIsomorphicLayoutEffect } from \"./internal/useIsomorphicLayoutEffect.js\";\n/**\n *\n *\n * > Refer to the [Mutations](https://www.apollographql.com/docs/react/data/mutations/) section for a more in-depth overview of `useMutation`.\n *\n * @example\n * ```jsx\n * import { gql, useMutation } from '@apollo/client';\n *\n * const ADD_TODO = gql`\n * mutation AddTodo($type: String!) {\n * addTodo(type: $type) {\n * id\n * type\n * }\n * }\n * `;\n *\n * function AddTodo() {\n * let input;\n * const [addTodo, { data }] = useMutation(ADD_TODO);\n *\n * return (\n * <div>\n * <form\n * onSubmit={e => {\n * e.preventDefault();\n * addTodo({ variables: { type: input.value } });\n * input.value = '';\n * }}\n * >\n * <input\n * ref={node => {\n * input = node;\n * }}\n * />\n * <button type=\"submit\">Add Todo</button>\n * </form>\n * </div>\n * );\n * }\n * ```\n * @since 3.0.0\n * @param mutation - A GraphQL mutation document parsed into an AST by `gql`.\n * @param options - Options to control how the mutation is executed.\n * @returns A tuple in the form of `[mutate, result]`\n */\nexport function useMutation(mutation, options) {\n var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n var _a = React.useState({\n called: false,\n loading: false,\n client: client,\n }), result = _a[0], setResult = _a[1];\n var ref = React.useRef({\n result: result,\n mutationId: 0,\n isMounted: true,\n client: client,\n mutation: mutation,\n options: options,\n });\n useIsomorphicLayoutEffect(function () {\n Object.assign(ref.current, { client: client, options: options, mutation: mutation });\n });\n var execute = React.useCallback(function (executeOptions) {\n if (executeOptions === void 0) { executeOptions = {}; }\n var _a = ref.current, options = _a.options, mutation = _a.mutation;\n var baseOptions = __assign(__assign({}, options), { mutation: mutation });\n var client = executeOptions.client || ref.current.client;\n if (!ref.current.result.loading &&\n !baseOptions.ignoreResults &&\n ref.current.isMounted) {\n setResult((ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client: client,\n }));\n }\n var mutationId = ++ref.current.mutationId;\n var clientOptions = mergeOptions(baseOptions, executeOptions);\n return client\n .mutate(clientOptions)\n .then(function (response) {\n var _a, _b;\n var data = response.data, errors = response.errors;\n var error = errors && errors.length > 0 ?\n new ApolloError({ graphQLErrors: errors })\n : void 0;\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (error && onError) {\n onError(error, clientOptions);\n }\n if (mutationId === ref.current.mutationId &&\n !clientOptions.ignoreResults) {\n var result_1 = {\n called: true,\n loading: false,\n data: data,\n error: error,\n client: client,\n };\n if (ref.current.isMounted && !equal(ref.current.result, result_1)) {\n setResult((ref.current.result = result_1));\n }\n }\n var onCompleted = executeOptions.onCompleted || ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onCompleted);\n if (!error) {\n onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(response.data, clientOptions);\n }\n return response;\n }, function (error) {\n var _a;\n if (mutationId === ref.current.mutationId &&\n ref.current.isMounted) {\n var result_2 = {\n loading: false,\n error: error,\n data: void 0,\n called: true,\n client: client,\n };\n if (!equal(ref.current.result, result_2)) {\n setResult((ref.current.result = result_2));\n }\n }\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (onError) {\n onError(error, clientOptions);\n // TODO(brian): why are we returning this here???\n return { data: void 0, errors: error };\n }\n throw error;\n });\n }, []);\n var reset = React.useCallback(function () {\n if (ref.current.isMounted) {\n var result_3 = {\n called: false,\n loading: false,\n client: ref.current.client,\n };\n Object.assign(ref.current, { mutationId: 0, result: result_3 });\n setResult(result_3);\n }\n }, []);\n React.useEffect(function () {\n var current = ref.current;\n // eslint-disable-next-line react-compiler/react-compiler\n current.isMounted = true;\n return function () {\n current.isMounted = false;\n };\n }, []);\n return [execute, __assign({ reset: reset }, result)];\n}\n//# sourceMappingURL=useMutation.js.map"],"names":["Promise","resolve","then","__webpack_require__","bind","ChatEmptyState","promptsData","router","useRouter","user","useContext","UserContext","createAgentSession","useMutation","CREATE_AGENT_SESSION","data","loading","promptsLoading","usePrompts","page","limit","sort","field","direction","prompts","prompt_libraryPagination","items","allAgentIds","Array","from","Set","flatMap","prompt","assigned_agents","agentsData","agentsLoading","useQuery","GET_AGENTS_BY_IDS","variables","ids","skip","length","agentMap","Map","agents","agentByIds","map","agent","id","handleAgentSelect","agentId","promptId","result","title","console","log","sessionId","agent_sessionsCreateOne","item","push","concat","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","div","className","jsxs","Bot","h2","p","Skeleton","i","Sparkles","extractVariables","content","assignedAgents","assignedAgentIds","get","filter","undefined","Card","CardHeader","CardTitle","name","ThumbsUp","span","favorite_count","Eye","usage_count","description","CardDescription","CardContent","Badge","variant","tags","slice","tag","Button","size","onClick","image","img","src","alt","small","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","param","props","cn","React","ref","displayName","h3","CardFooter","GET_PROMPTS","filters","useCreatePrompt","CREATE_PROMPT","refetchQueries","query","useUpdatePrompt","UPDATE_PROMPT","useDeletePrompt","DELETE_PROMPT","useIncrementPromptUsage","INCREMENT_PROMPT_USAGE","useCreatePromptFavorite","CREATE_PROMPT_FAVORITE","useDeletePromptFavorite","DELETE_PROMPT_FAVORITE","useTogglePromptFavorite","createFavorite","deleteFavorite","incrementFavorites","INCREMENT_PROMPT_FAVORITES","toggleFavorite","userId","isFavorited","currentFavoriteCount","favoriteId","Math","max","user_id","prompt_id","matches","matchAll","match","add","createLucideIcon","d","key","cx","cy","r","useIsomorphicLayoutEffect","canUse","Nq","rehackt","useLayoutEffect","useEffect","mutation","options","client","useApolloClient","x","parser","Vp","n_","Mutation","_a","useState","called","setResult","useRef","mutationId","isMounted","Object","assign","current","execute","useCallback","executeOptions","baseOptions","tslib_es6","pi","ignoreResults","error","clientOptions","mergeOptions","J","mutate","response","_b","errors","client_errors","cA","graphQLErrors","onError","result_1","lib","D","onCompleted","result_2","reset","result_3"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"static/chunks/app/(application)/chat/page-8b00a98d285829b1.js","mappings":"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","sources":["webpack://_N_E/?35ee","webpack://_N_E/./app/(application)/chat/components/chat-empty-state.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./hooks/use-prompts.tsx","webpack://_N_E/./lib/prompts/extract-variables.ts","webpack://_N_E/../../../src/icons/eye.ts","webpack://_N_E/../../../src/icons/thumbs-up.ts","webpack://_N_E/./node_modules/@apollo/client/react/hooks/internal/useIsomorphicLayoutEffect.js","webpack://_N_E/./node_modules/@apollo/client/react/hooks/useMutation.js"],"sourcesContent":["import(/* webpackMode: \"eager\", webpackExports: [\"ChatEmptyState\"] */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/components/chat-empty-state.tsx\");\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useRouter } from \"next/navigation\";\nimport { Bot, Sparkles, Eye, ThumbsUp } from \"lucide-react\";\nimport { usePrompts } from \"@/hooks/use-prompts\";\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport { CREATE_AGENT_SESSION, GET_AGENTS_BY_IDS } from \"@/queries/queries\";\nimport { PromptLibrary } from \"@/types/models/prompt-library\";\nimport { Agent } from \"@/types/models/agent\";\nimport { extractVariables } from \"@/lib/prompts/extract-variables\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { useContext } from \"react\";\n\nexport function ChatEmptyState() {\n\n const router = useRouter();\n const { user } = useContext(UserContext);\n\n const [createAgentSession] = useMutation(\n CREATE_AGENT_SESSION,\n );\n\n // Fetch prompts (limit to top 6 most popular)\n const { data: promptsData, loading: promptsLoading } = usePrompts({\n page: 1,\n limit: 6,\n sort: { field: \"favorite_count\", direction: \"DESC\" },\n });\n\n const prompts = promptsData?.prompt_libraryPagination?.items || [];\n\n // Get all unique agent IDs from prompts\n const allAgentIds = Array.from(\n new Set(\n prompts.flatMap((prompt) => prompt.assigned_agents || [])\n )\n );\n\n // Fetch agents for those IDs\n const { data: agentsData, loading: agentsLoading } = useQuery(GET_AGENTS_BY_IDS, {\n variables: { ids: allAgentIds },\n skip: allAgentIds.length === 0,\n });\n\n const agents: Agent[] = agentsData?.agentByIds || [];\n\n // Create a map of agent ID to agent for quick lookup\n const agentMap = new Map(agents.map((agent) => [agent.id, agent]));\n\n const handleAgentSelect = async (agentId: string, promptId: string) => {\n\n const result = await createAgentSession({\n variables: {\n title: \"New session\",\n user: user.id,\n agent: agentId,\n }\n })\n console.log(\"result\", result)\n const sessionId = result?.data?.agent_sessionsCreateOne?.item?.id\n\n // Navigate to chat with agent and pass prompt template info via query params\n router.push(`/chat/${agentId}/${sessionId}?promptId=${promptId}`);\n };\n\n if (promptsLoading) {\n return (\n <div className=\"m-auto max-w-4xl w-full px-4\">\n <div className=\"flex flex-col gap-6\">\n <div className=\"flex flex-col items-center gap-4 mb-8\">\n <Bot className=\"h-20 w-20 text-muted-foreground\" />\n <h2 className=\"text-2xl font-semibold text-center\">Select an agent</h2>\n <p className=\"text-muted-foreground text-center\">\n Choose a prompt template below to get started\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n {[1, 2, 3, 4].map((i) => (\n <Skeleton key={i} className=\"h-48 w-full\" />\n ))}\n </div>\n </div>\n </div>\n );\n }\n\n if (!prompts.length) {\n return (\n <div className=\"m-auto\">\n <div className=\"flex flex-col\">\n <div className=\"mx-auto\">\n <Bot className=\"h-20 w-20\" />\n </div>\n <h2 className=\"text-center\">Select an agent.</h2>\n <small className=\"text-center\">Bleep bleep bloop...</small>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"m-auto max-w-4xl w-full px-4 py-8\">\n <div className=\"flex flex-col gap-6\">\n {/* Header */}\n <div className=\"flex flex-col items-center gap-4 mb-4\">\n <div className=\"relative\">\n <Bot className=\"h-16 w-16 text-muted-foreground\" />\n <Sparkles className=\"h-6 w-6 text-primary absolute -top-1 -right-1\" />\n </div>\n <div className=\"text-center\">\n <h2 className=\"text-2xl font-semibold mb-2\">Get started with a prompt</h2>\n <p className=\"text-muted-foreground\">\n Select a prompt template and choose which agent to chat with\n </p>\n </div>\n </div>\n\n {/* Prompt Templates Grid */}\n <div className=\"grid gap-4 md:grid-cols-2\">\n {prompts.map((prompt) => {\n const variables = extractVariables(prompt.content);\n const assignedAgentIds = prompt.assigned_agents || [];\n const assignedAgents = assignedAgentIds\n .map((id) => agentMap.get(id))\n .filter((agent): agent is Agent => agent !== undefined);\n\n return (\n <Card key={prompt.id} className=\"flex flex-col\">\n <CardHeader>\n <div className=\"flex items-start justify-between gap-2 mb-2\">\n <CardTitle className=\"text-lg\">{prompt.name}</CardTitle>\n <div className=\"flex items-center gap-3 text-xs text-muted-foreground flex-shrink-0\">\n <div className=\"flex items-center gap-1\">\n <ThumbsUp className=\"h-3 w-3\" />\n <span>{prompt.favorite_count || 0}</span>\n </div>\n <div className=\"flex items-center gap-1\">\n <Eye className=\"h-3 w-3\" />\n <span>{prompt.usage_count || 0}</span>\n </div>\n </div>\n </div>\n {prompt.description && (\n <CardDescription className=\"line-clamp-2\">\n {prompt.description}\n </CardDescription>\n )}\n </CardHeader>\n\n <CardContent className=\"flex-1 flex flex-col gap-4\">\n {/* Tags and Variables */}\n <div className=\"flex flex-wrap gap-1.5\">\n {variables.length > 0 && (\n <Badge variant=\"outline\" className=\"text-xs\">\n {variables.length} variable{variables.length !== 1 ? \"s\" : \"\"}\n </Badge>\n )}\n {prompt.tags?.slice(0, 3).map((tag) => (\n <Badge key={tag} variant=\"secondary\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n {prompt.tags && prompt.tags.length > 3 && (\n <Badge variant=\"secondary\" className=\"text-xs\">\n +{prompt.tags.length - 3}\n </Badge>\n )}\n </div>\n\n {/* Agent Selection CTAs */}\n {assignedAgents.length > 0 ? (\n <div className=\"mt-auto\">\n <p className=\"text-xs text-muted-foreground mb-2\">\n Start chat with:\n </p>\n <div className=\"flex flex-wrap gap-2\">\n {assignedAgents.map((agent) => (\n <Button\n key={agent.id}\n variant=\"default\"\n size=\"sm\"\n onClick={() => handleAgentSelect(agent.id, prompt.id)}\n className=\"flex items-center gap-2\"\n >\n {agent.image && (\n <img\n src={agent.image}\n alt={agent.name}\n className=\"h-4 w-4 rounded-full object-cover\"\n />\n )}\n <span>{agent.name}</span>\n </Button>\n ))}\n </div>\n </div>\n ) : (\n <div className=\"mt-auto\">\n <p className=\"text-xs text-muted-foreground italic\">\n No agents assigned to this prompt\n </p>\n </div>\n )}\n </CardContent>\n </Card>\n );\n })}\n </div>\n\n {/* Footer hint */}\n <div className=\"text-center text-sm text-muted-foreground mt-4\">\n You can also select an agent from the sidebar to start chatting\n </div>\n </div>\n </div>\n );\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","import { useMutation, useQuery } from \"@apollo/client\";\nimport {\n CREATE_PROMPT,\n CREATE_PROMPT_FAVORITE,\n DELETE_PROMPT,\n DELETE_PROMPT_FAVORITE,\n GET_PROMPT_BY_ID,\n GET_PROMPTS,\n GET_USER_PROMPT_FAVORITES,\n INCREMENT_PROMPT_FAVORITES,\n INCREMENT_PROMPT_USAGE,\n UPDATE_PROMPT,\n} from \"@/queries/queries\";\nimport {\n CreatePromptInput,\n PromptFavorite,\n PromptLibrary,\n UpdatePromptInput,\n} from \"@/types/models/prompt-library\";\n\ninterface PromptsData {\n prompt_libraryPagination: {\n pageInfo: {\n pageCount: number;\n itemCount: number;\n currentPage: number;\n hasPreviousPage: boolean;\n hasNextPage: boolean;\n };\n items: PromptLibrary[];\n };\n}\n\ninterface PromptData {\n prompt_library_itemById: PromptLibrary;\n}\n\ninterface PromptFavoritesData {\n prompt_favoritesPagination: {\n items: PromptFavorite[];\n };\n}\n\n/**\n * Hook to fetch paginated prompts with filtering and sorting\n */\nexport const usePrompts = (variables?: {\n page?: number;\n limit?: number;\n filters?: any[];\n sort?: { field: string; direction: \"ASC\" | \"DESC\" };\n}) => {\n return useQuery<PromptsData>(GET_PROMPTS, {\n variables: {\n page: variables?.page ?? 1,\n limit: variables?.limit ?? 20,\n filters: variables?.filters ?? [],\n sort: variables?.sort ?? { field: \"updatedAt\", direction: \"DESC\" },\n },\n });\n};\n\n/**\n * Hook to fetch a single prompt by ID\n */\nexport const usePrompt = (id: string) => {\n return useQuery<PromptData>(GET_PROMPT_BY_ID, {\n variables: { id },\n skip: !id,\n });\n};\n\n/**\n * Hook to create a new prompt\n */\nexport const useCreatePrompt = () => {\n return useMutation<{ prompt_libraryCreateOne: { item: PromptLibrary } }>(\n CREATE_PROMPT,\n {\n refetchQueries: [{ query: GET_PROMPTS, variables: { page: 1, limit: 20 } }],\n }\n );\n};\n\n/**\n * Hook to update an existing prompt\n */\nexport const useUpdatePrompt = () => {\n return useMutation<{ prompt_libraryUpdateOneById: { item: PromptLibrary } }>(\n UPDATE_PROMPT\n );\n};\n\n/**\n * Hook to delete a prompt\n */\nexport const useDeletePrompt = () => {\n return useMutation<{ prompt_libraryRemoveOneById: { id: string } }>(\n DELETE_PROMPT,\n {\n refetchQueries: [{ query: GET_PROMPTS, variables: { page: 1, limit: 20 } }],\n }\n );\n};\n\n/**\n * Hook to increment prompt usage count\n */\nexport const useIncrementPromptUsage = () => {\n return useMutation<{\n prompt_libraryUpdateOneById: { item: Pick<PromptLibrary, \"id\" | \"usage_count\"> };\n }>(INCREMENT_PROMPT_USAGE);\n};\n\n/**\n * Hook to fetch user's favorited prompts\n */\nexport const useUserPromptFavorites = (userId: number) => {\n return useQuery<PromptFavoritesData>(GET_USER_PROMPT_FAVORITES, {\n variables: { user_id: userId },\n skip: !userId,\n });\n};\n\n/**\n * Hook to create a prompt favorite\n */\nexport const useCreatePromptFavorite = () => {\n return useMutation<{ prompt_favoritesCreateOne: { item: PromptFavorite } }>(\n CREATE_PROMPT_FAVORITE\n );\n};\n\n/**\n * Hook to delete a prompt favorite\n */\nexport const useDeletePromptFavorite = () => {\n return useMutation<{ prompt_favoritesRemoveOneById: { id: string } }>(\n DELETE_PROMPT_FAVORITE\n );\n};\n\n/**\n * Hook to toggle favorite status of a prompt\n * Handles both creating and deleting favorites, and updating the favorite count\n */\nexport const useTogglePromptFavorite = () => {\n const [createFavorite] = useCreatePromptFavorite();\n const [deleteFavorite] = useDeletePromptFavorite();\n const [incrementFavorites] = useMutation(INCREMENT_PROMPT_FAVORITES);\n\n const toggleFavorite = async (\n promptId: string,\n userId: number,\n isFavorited: boolean,\n currentFavoriteCount: number,\n favoriteId?: string\n ) => {\n if (isFavorited && favoriteId) {\n // Remove favorite\n await deleteFavorite({ variables: { id: favoriteId } });\n await incrementFavorites({\n variables: {\n id: promptId,\n favorite_count: Math.max(0, currentFavoriteCount - 1),\n },\n });\n } else {\n // Add favorite\n await createFavorite({\n variables: { user_id: userId, prompt_id: promptId },\n });\n await incrementFavorites({\n variables: { id: promptId, favorite_count: currentFavoriteCount + 1 },\n });\n }\n };\n\n return { toggleFavorite };\n};\n","/**\n * Extracts all variable names from a prompt template\n * Variables are in the format {{variable_name}}\n * Only alphanumeric characters and underscores are allowed in variable names\n *\n * @param content - The prompt content to extract variables from\n * @returns Array of unique variable names found in the content\n *\n * @example\n * extractVariables(\"Hello {{name}}, your issue {{issue_id}} is resolved\")\n * // Returns: [\"name\", \"issue_id\"]\n */\nexport function extractVariables(content: string): string[] {\n if (!content) return [];\n\n // Match {{variable_name}} where variable_name contains only alphanumeric and underscore\n const regex = /\\{\\{([a-zA-Z0-9_]+)\\}\\}/g;\n const matches = content.matchAll(regex);\n const variables = new Set<string>();\n\n for (const match of Array.from(matches)) {\n variables.add(match[1]);\n }\n\n return Array.from(variables).sort();\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Eye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Eye = createLucideIcon('Eye', [\n ['path', { d: 'M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z', key: 'rwhkz3' }],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Eye;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ThumbsUp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/thumbs-up\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ThumbsUp = createLucideIcon('ThumbsUp', [\n ['path', { d: 'M7 10v12', key: '1qc93n' }],\n [\n 'path',\n {\n d: 'M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2h0a3.13 3.13 0 0 1 3 3.88Z',\n key: 'y3tblf',\n },\n ],\n]);\n\nexport default ThumbsUp;\n","import * as React from \"rehackt\";\nimport { canUseDOM } from \"../../../utilities/index.js\";\n// use canUseDOM here instead of canUseLayoutEffect because we want to be able\n// to use useLayoutEffect in our jest tests. useLayoutEffect seems to work fine\n// in useSuspenseQuery tests, but to honor the original comment about the\n// warnings for useSyncExternalStore implementation, canUseLayoutEffect is left\n// alone.\nexport var useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { __assign } from \"tslib\";\nimport * as React from \"rehackt\";\nimport { mergeOptions } from \"../../utilities/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { useIsomorphicLayoutEffect } from \"./internal/useIsomorphicLayoutEffect.js\";\n/**\n *\n *\n * > Refer to the [Mutations](https://www.apollographql.com/docs/react/data/mutations/) section for a more in-depth overview of `useMutation`.\n *\n * @example\n * ```jsx\n * import { gql, useMutation } from '@apollo/client';\n *\n * const ADD_TODO = gql`\n * mutation AddTodo($type: String!) {\n * addTodo(type: $type) {\n * id\n * type\n * }\n * }\n * `;\n *\n * function AddTodo() {\n * let input;\n * const [addTodo, { data }] = useMutation(ADD_TODO);\n *\n * return (\n * <div>\n * <form\n * onSubmit={e => {\n * e.preventDefault();\n * addTodo({ variables: { type: input.value } });\n * input.value = '';\n * }}\n * >\n * <input\n * ref={node => {\n * input = node;\n * }}\n * />\n * <button type=\"submit\">Add Todo</button>\n * </form>\n * </div>\n * );\n * }\n * ```\n * @since 3.0.0\n * @param mutation - A GraphQL mutation document parsed into an AST by `gql`.\n * @param options - Options to control how the mutation is executed.\n * @returns A tuple in the form of `[mutate, result]`\n */\nexport function useMutation(mutation, options) {\n var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n var _a = React.useState({\n called: false,\n loading: false,\n client: client,\n }), result = _a[0], setResult = _a[1];\n var ref = React.useRef({\n result: result,\n mutationId: 0,\n isMounted: true,\n client: client,\n mutation: mutation,\n options: options,\n });\n useIsomorphicLayoutEffect(function () {\n Object.assign(ref.current, { client: client, options: options, mutation: mutation });\n });\n var execute = React.useCallback(function (executeOptions) {\n if (executeOptions === void 0) { executeOptions = {}; }\n var _a = ref.current, options = _a.options, mutation = _a.mutation;\n var baseOptions = __assign(__assign({}, options), { mutation: mutation });\n var client = executeOptions.client || ref.current.client;\n if (!ref.current.result.loading &&\n !baseOptions.ignoreResults &&\n ref.current.isMounted) {\n setResult((ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client: client,\n }));\n }\n var mutationId = ++ref.current.mutationId;\n var clientOptions = mergeOptions(baseOptions, executeOptions);\n return client\n .mutate(clientOptions)\n .then(function (response) {\n var _a, _b;\n var data = response.data, errors = response.errors;\n var error = errors && errors.length > 0 ?\n new ApolloError({ graphQLErrors: errors })\n : void 0;\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (error && onError) {\n onError(error, clientOptions);\n }\n if (mutationId === ref.current.mutationId &&\n !clientOptions.ignoreResults) {\n var result_1 = {\n called: true,\n loading: false,\n data: data,\n error: error,\n client: client,\n };\n if (ref.current.isMounted && !equal(ref.current.result, result_1)) {\n setResult((ref.current.result = result_1));\n }\n }\n var onCompleted = executeOptions.onCompleted || ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onCompleted);\n if (!error) {\n onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(response.data, clientOptions);\n }\n return response;\n }, function (error) {\n var _a;\n if (mutationId === ref.current.mutationId &&\n ref.current.isMounted) {\n var result_2 = {\n loading: false,\n error: error,\n data: void 0,\n called: true,\n client: client,\n };\n if (!equal(ref.current.result, result_2)) {\n setResult((ref.current.result = result_2));\n }\n }\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (onError) {\n onError(error, clientOptions);\n // TODO(brian): why are we returning this here???\n return { data: void 0, errors: error };\n }\n throw error;\n });\n }, []);\n var reset = React.useCallback(function () {\n if (ref.current.isMounted) {\n var result_3 = {\n called: false,\n loading: false,\n client: ref.current.client,\n };\n Object.assign(ref.current, { mutationId: 0, result: result_3 });\n setResult(result_3);\n }\n }, []);\n React.useEffect(function () {\n var current = ref.current;\n // eslint-disable-next-line react-compiler/react-compiler\n current.isMounted = true;\n return function () {\n current.isMounted = false;\n };\n }, []);\n return [execute, __assign({ reset: reset }, result)];\n}\n//# sourceMappingURL=useMutation.js.map"],"names":["Promise","resolve","then","__webpack_require__","bind","ChatEmptyState","promptsData","router","useRouter","user","useContext","UserContext","createAgentSession","useMutation","CREATE_AGENT_SESSION","data","loading","promptsLoading","usePrompts","page","limit","sort","field","direction","prompts","prompt_libraryPagination","items","allAgentIds","Array","from","Set","flatMap","prompt","assigned_agents","agentsData","agentsLoading","useQuery","GET_AGENTS_BY_IDS","variables","ids","skip","length","agentMap","Map","agents","agentByIds","map","agent","id","handleAgentSelect","agentId","promptId","result","title","console","log","sessionId","agent_sessionsCreateOne","item","push","concat","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","div","className","jsxs","Bot","h2","p","Skeleton","i","Sparkles","extractVariables","content","assignedAgents","assignedAgentIds","get","filter","undefined","Card","CardHeader","CardTitle","name","ThumbsUp","span","favorite_count","Eye","usage_count","description","CardDescription","CardContent","Badge","variant","tags","slice","tag","Button","size","onClick","image","img","src","alt","small","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","param","props","cn","React","ref","displayName","h3","CardFooter","GET_PROMPTS","filters","useCreatePrompt","CREATE_PROMPT","refetchQueries","query","useUpdatePrompt","UPDATE_PROMPT","useDeletePrompt","DELETE_PROMPT","useIncrementPromptUsage","INCREMENT_PROMPT_USAGE","useCreatePromptFavorite","CREATE_PROMPT_FAVORITE","useDeletePromptFavorite","DELETE_PROMPT_FAVORITE","useTogglePromptFavorite","createFavorite","deleteFavorite","incrementFavorites","INCREMENT_PROMPT_FAVORITES","toggleFavorite","userId","isFavorited","currentFavoriteCount","favoriteId","Math","max","user_id","prompt_id","matches","matchAll","match","add","createLucideIcon","d","key","cx","cy","r","useIsomorphicLayoutEffect","canUse","Nq","rehackt","useLayoutEffect","useEffect","mutation","options","client","useApolloClient","x","parser","Vp","n_","Mutation","_a","useState","called","setResult","useRef","mutationId","isMounted","Object","assign","current","execute","useCallback","executeOptions","baseOptions","tslib_es6","pi","ignoreResults","error","clientOptions","mergeOptions","J","mutate","response","_b","errors","client_errors","cA","graphQLErrors","onError","result_1","lib","D","onCompleted","result_2","reset","result_3"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1991],{37999:function(e,t,s){Promise.resolve().then(s.bind(s,9402))},9402:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return v}});var r=s(57437),a=s(2265),n=s(66070),i=s(95186),l=s(26815),o=s(62869),c=s(76818),d=s(74928),u=s(69076),f=s(66901),m=s(40875),h=s(77992),p=s(7211),x=s(12199),g=s(27689);function v(){let[e,t]=(0,a.useState)({}),[s,v]=(0,a.useState)({}),[j,b]=(0,a.useState)(""),[y,N]=(0,a.useState)(!1),[S,w]=(0,a.useState)(!1),[k,T]=(0,a.useState)(!1),[_,C]=(0,a.useState)(null),{toast:O}=(0,h.pm)(),{data:E,loading:I,refetch:A}=(0,p.aM)(g.OP),[R]=(0,x.D)(g.Ep),[D]=(0,x.D)(g.fA);(0,a.useEffect)(()=>{var r,a,n;if(null==E?void 0:null===(r=E.platform_configurationsPagination)||void 0===r?void 0:r.items){let r=E.platform_configurationsPagination.items.find(e=>"theme_config"===e.config_key);r&&(C(r.id),(null===(a=r.config_value)||void 0===a?void 0:a.light)&&t({...e,...r.config_value.light}),(null===(n=r.config_value)||void 0===n?void 0:n.dark)&&v({...s,...r.config_value.dark}))}},[E]);let F=(s,r)=>{t({...e,[s]:r})},Z=(e,t)=>{v({...s,[e]:t})},P=e=>{let t={},s={},r=e.match(RegExp(":root\\s*\\{([^}]+)\\}","s"));if(r){let e=r[1].match(/--[\w-]+:\s*[^;]+/g);e&&e.forEach(e=>{let[s,...r]=e.split(":"),a=r.join(":").trim();t[s.trim()]=a})}let a=e.match(RegExp("\\.dark\\s*\\{([^}]+)\\}","s"));if(a){let e=a[1].match(/--[\w-]+:\s*[^;]+/g);e&&e.forEach(e=>{let[t,...r]=e.split(":"),a=r.join(":").trim();s[t.trim()]=a})}return{light:t,dark:s}},M=async()=>{try{let n={config_key:"theme_config",config_value:{light:e,dark:s},description:"Platform theme configuration"};if(_)await D({variables:{id:_,data:n}});else{var t,r,a;let e=await R({variables:{data:n}});C(null===(a=e.data)||void 0===a?void 0:null===(r=a.platform_configurationsCreateOne)||void 0===r?void 0:null===(t=r.item)||void 0===t?void 0:t.id)}await A(),O({title:"Configuration saved",description:"Theme configuration has been saved successfully.",duration:3e3})}catch(e){console.error("Error saving configuration:",e),O({title:"Error",description:"Failed to save configuration. Please try again.",duration:3e3,variant:"destructive"})}};return(0,r.jsxs)("div",{className:"h-full flex-1 flex-col space-y-8 p-8",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between space-y-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-2xl font-bold tracking-tight",children:"Platform theme"}),(0,r.jsx)("p",{className:"text-muted-foreground",children:"Import custom styles to personalize your IMP."})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)(o.z,{onClick:()=>{t({}),v({}),O({title:"Theme reset",description:"Both themes have been reset to default (empty).",duration:3e3})},variant:"outline",children:[(0,r.jsx)(u.Z,{className:"mr-2 h-4 w-4"}),"Reset Theme"]}),(0,r.jsx)(o.z,{onClick:M,children:"Save Configuration"})]})]}),(0,r.jsxs)(n.Zb,{children:[(0,r.jsxs)(n.Ol,{children:[(0,r.jsx)(n.ll,{children:"Import Theme CSS"}),(0,r.jsx)(n.SZ,{children:"Paste your CSS theme code below to automatically populate all fields"})]}),(0,r.jsxs)(n.aY,{className:"space-y-4",children:[(0,r.jsx)(c.g,{placeholder:"Paste your CSS theme here (including :root and .dark blocks)...",value:j,onChange:e=>b(e.target.value),className:"font-mono text-xs min-h-[200px]"}),(0,r.jsx)(o.z,{onClick:()=>{T(!0);let r=P(j);setTimeout(()=>{Object.keys(r.light).length>0&&(t({...e,...r.light}),N(!0)),Object.keys(r.dark).length>0&&(v({...s,...r.dark}),w(!0)),b(""),T(!1),O({title:"Theme imported successfully!",description:"Updated ".concat(Object.keys(r.light).length+Object.keys(r.dark).length," variables."),duration:3e3})},500)},disabled:!j.trim()||k,className:"relative",children:k?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"opacity-0",children:"Import Theme"}),(0,r.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,r.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"})})]}):"Import Theme"})]})]}),(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)(d.zF,{open:y,onOpenChange:N,children:(0,r.jsxs)(n.Zb,{children:[(0,r.jsx)(d.wy,{asChild:!0,children:(0,r.jsx)(n.Ol,{className:"cursor-pointer hover:bg-accent/50 transition-colors",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)(n.ll,{className:"flex items-center gap-2",children:["Light Theme Variables",Object.keys(e).length>0&&(0,r.jsx)(f.Z,{className:"h-4 w-4 text-primary"})]}),(0,r.jsx)(n.SZ,{children:"Configure CSS variables for the light theme"})]}),(0,r.jsx)(m.Z,{className:"h-5 w-5 transition-transform ".concat(y?"rotate-180":"")})]})})}),(0,r.jsx)(d.Fw,{children:(0,r.jsx)(n.aY,{className:"grid gap-4 md:grid-cols-2 pt-0",children:Object.entries(e).map(e=>{let[t,s]=e;return(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l._,{htmlFor:"light-".concat(t),className:"text-xs font-mono",children:t}),(0,r.jsx)(i.I,{id:"light-".concat(t),value:s,onChange:e=>F(t,e.target.value),className:"font-mono text-xs"})]},t)})})})]})}),(0,r.jsx)(d.zF,{open:S,onOpenChange:w,children:(0,r.jsxs)(n.Zb,{children:[(0,r.jsx)(d.wy,{asChild:!0,children:(0,r.jsx)(n.Ol,{className:"cursor-pointer hover:bg-accent/50 transition-colors",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)(n.ll,{className:"flex items-center gap-2",children:["Dark Theme Variables",Object.keys(s).length>0&&(0,r.jsx)(f.Z,{className:"h-4 w-4 text-primary"})]}),(0,r.jsx)(n.SZ,{children:"Configure CSS variables for the dark theme"})]}),(0,r.jsx)(m.Z,{className:"h-5 w-5 transition-transform ".concat(S?"rotate-180":"")})]})})}),(0,r.jsx)(d.Fw,{children:(0,r.jsx)(n.aY,{className:"grid gap-4 md:grid-cols-2 pt-0",children:Object.entries(s).map(e=>{let[t,s]=e;return(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l._,{htmlFor:"dark-".concat(t),className:"text-xs font-mono",children:t}),(0,r.jsx)(i.I,{id:"dark-".concat(t),value:s,onChange:e=>Z(t,e.target.value),className:"font-mono text-xs"})]},t)})})})]})})]})]})}},66070:function(e,t,s){"use strict";s.d(t,{Ol:function(){return l},SZ:function(){return c},Zb:function(){return i},aY:function(){return d},eW:function(){return u},ll:function(){return o}});var r=s(57437),a=s(2265),n=s(94508);let i=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",s),...a})});i.displayName="Card";let l=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",s),...a})});l.displayName="CardHeader";let o=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("h3",{ref:t,className:(0,n.cn)("text-2xl font-semibold leading-none tracking-tight",s),...a})});o.displayName="CardTitle";let c=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",s),...a})});c.displayName="CardDescription";let d=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",s),...a})});d.displayName="CardContent";let u=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",s),...a})});u.displayName="CardFooter"},74928:function(e,t,s){"use strict";s.d(t,{Fw:function(){return i},wy:function(){return n},zF:function(){return a}});var r=s(88985);let a=r.fC,n=r.wy,i=r.Fw},95186:function(e,t,s){"use strict";s.d(t,{I:function(){return i}});var r=s(57437),a=s(2265),n=s(94508);let i=a.forwardRef((e,t)=>{let{className:s,type:a,...i}=e;return(0,r.jsx)("input",{type:a,className:(0,n.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",s),ref:t,...i})});i.displayName="Input"},26815:function(e,t,s){"use strict";s.d(t,{_:function(){return c}});var r=s(57437),a=s(6394),n=s(90535),i=s(2265),l=s(94508);let o=(0,n.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),c=i.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,r.jsx)(a.f,{ref:t,className:(0,l.cn)(o(),s),...n})});c.displayName=a.f.displayName},76818:function(e,t,s){"use strict";s.d(t,{g:function(){return i}});var r=s(57437),a=s(2265),n=s(94508);let i=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("textarea",{className:(0,n.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",s),ref:t,...a})});i.displayName="Textarea"},77992:function(e,t,s){"use strict";s.d(t,{Am:function(){return u},pm:function(){return f}});var r=s(2265);let a=0,n=new Map,i=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),d({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},l=(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:s}=t;return s?i(s):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===s||void 0===s?{...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)}}},o=[],c={toasts:[]};function d(e){c=l(c,e),o.forEach(e=>{e(c)})}function u(e){let{...t}=e,s=(a=(a+1)%Number.MAX_SAFE_INTEGER).toString(),r=()=>d({type:"DISMISS_TOAST",toastId:s});return d({type:"ADD_TOAST",toast:{...t,id:s,open:!0,onOpenChange:e=>{e||r()}}}),{id:s,dismiss:r,update:e=>d({type:"UPDATE_TOAST",toast:{...e,id:s}})}}function f(){let[e,t]=r.useState(c);return r.useEffect(()=>(o.push(t),()=>{let e=o.indexOf(t);e>-1&&o.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>d({type:"DISMISS_TOAST",toastId:e})}}}},function(e){e.O(0,[9851,7629,7093,6148,847,1942,513,6373,2971,2117,1744],function(){return e(e.s=37999)}),_N_E=e.O()}]);
|
|
2
|
-
//# sourceMappingURL=page-
|
|
2
|
+
//# sourceMappingURL=page-1e978e117d5086a1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/configuration/page-f315ede6d66922e6.js","mappings":"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","sources":["webpack://_N_E/?981d","webpack://_N_E/./app/(application)/configuration/page.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/collapsible.tsx","webpack://_N_E/./components/ui/input.tsx","webpack://_N_E/./components/ui/label.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)/configuration/page.tsx\");\n","\"use client\";\n\nimport { useState, useEffect } from \"react\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Button } from \"@/components/ui/button\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"@/components/ui/collapsible\";\nimport { ChevronDown, CheckCircle2, RotateCcw } from \"lucide-react\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport {\n GET_PLATFORM_CONFIGURATIONS,\n CREATE_PLATFORM_CONFIGURATION,\n UPDATE_PLATFORM_CONFIGURATION,\n} from \"@/queries/queries\";\n\nexport default function ConfigurationPage() {\n const [lightTheme, setLightTheme] = useState({});\n const [darkTheme, setDarkTheme] = useState({});\n const [cssInput, setCssInput] = useState(\"\");\n const [lightOpen, setLightOpen] = useState(false);\n const [darkOpen, setDarkOpen] = useState(false);\n const [isImporting, setIsImporting] = useState(false);\n const [configId, setConfigId] = useState<string | null>(null);\n const { toast } = useToast();\n\n // Fetch all platform configurations\n const { data, loading, refetch } = useQuery(GET_PLATFORM_CONFIGURATIONS);\n\n const [createConfig] = useMutation(CREATE_PLATFORM_CONFIGURATION);\n const [updateConfig] = useMutation(UPDATE_PLATFORM_CONFIGURATION);\n\n // Load existing configuration when data is fetched\n useEffect(() => {\n if (data?.platform_configurationsPagination?.items) {\n // Find the theme_config configuration\n const themeConfig = data.platform_configurationsPagination.items.find(\n (config: any) => config.config_key === \"theme_config\"\n );\n\n if (themeConfig) {\n setConfigId(themeConfig.id);\n\n if (themeConfig.config_value?.light) {\n setLightTheme({ ...lightTheme, ...themeConfig.config_value.light });\n }\n if (themeConfig.config_value?.dark) {\n setDarkTheme({ ...darkTheme, ...themeConfig.config_value.dark });\n }\n }\n }\n }, [data]);\n\n const handleLightThemeChange = (key: string, value: string) => {\n setLightTheme({ ...lightTheme, [key]: value });\n };\n\n const handleDarkThemeChange = (key: string, value: string) => {\n setDarkTheme({ ...darkTheme, [key]: value });\n };\n\n const parseCssTheme = (css: string) => {\n const light: Record<string, string> = {};\n const dark: Record<string, string> = {};\n\n // Extract :root block\n const rootMatch = css.match(/:root\\s*\\{([^}]+)\\}/s);\n if (rootMatch) {\n const rootContent = rootMatch[1];\n const variables = rootContent.match(/--[\\w-]+:\\s*[^;]+/g);\n if (variables) {\n variables.forEach((variable) => {\n const [key, ...valueParts] = variable.split(\":\");\n const value = valueParts.join(\":\").trim();\n light[key.trim()] = value;\n });\n }\n }\n\n // Extract .dark block\n const darkMatch = css.match(/\\.dark\\s*\\{([^}]+)\\}/s);\n if (darkMatch) {\n const darkContent = darkMatch[1];\n const variables = darkContent.match(/--[\\w-]+:\\s*[^;]+/g);\n if (variables) {\n variables.forEach((variable) => {\n const [key, ...valueParts] = variable.split(\":\");\n const value = valueParts.join(\":\").trim();\n dark[key.trim()] = value;\n });\n }\n }\n\n return { light, dark };\n };\n\n const handleImportCss = () => {\n setIsImporting(true);\n const parsed = parseCssTheme(cssInput);\n\n setTimeout(() => {\n if (Object.keys(parsed.light).length > 0) {\n setLightTheme({ ...lightTheme, ...parsed.light });\n setLightOpen(true);\n }\n\n if (Object.keys(parsed.dark).length > 0) {\n setDarkTheme({ ...darkTheme, ...parsed.dark });\n setDarkOpen(true);\n }\n\n setCssInput(\"\");\n setIsImporting(false);\n\n toast({\n title: \"Theme imported successfully!\",\n description: `Updated ${Object.keys(parsed.light).length + Object.keys(parsed.dark).length} variables.`,\n duration: 3000,\n });\n }, 500);\n };\n\n const handleReset = () => {\n setLightTheme({});\n setDarkTheme({});\n toast({\n title: \"Theme reset\",\n description: \"Both themes have been reset to default (empty).\",\n duration: 3000,\n });\n };\n\n const handleSave = async () => {\n try {\n const configData = {\n config_key: \"theme_config\",\n config_value: {\n light: lightTheme,\n dark: darkTheme,\n },\n description: \"Platform theme configuration\",\n };\n\n if (configId) {\n // Update existing configuration\n await updateConfig({\n variables: {\n id: configId,\n data: configData,\n },\n });\n } else {\n // Create new configuration\n const result = await createConfig({\n variables: {\n data: configData,\n },\n });\n setConfigId(result.data?.platform_configurationsCreateOne?.item?.id);\n }\n\n await refetch();\n\n toast({\n title: \"Configuration saved\",\n description: \"Theme configuration has been saved successfully.\",\n duration: 3000,\n });\n } catch (error) {\n console.error(\"Error saving configuration:\", error);\n toast({\n title: \"Error\",\n description: \"Failed to save configuration. Please try again.\",\n duration: 3000,\n variant: \"destructive\",\n });\n }\n };\n\n return (\n <div className=\"h-full flex-1 flex-col space-y-8 p-8\">\n <div className=\"flex items-center justify-between space-y-2\">\n <div>\n <h2 className=\"text-2xl font-bold tracking-tight\">Platform theme</h2>\n <p className=\"text-muted-foreground\">\n Import custom styles to personalize your IMP.\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button onClick={handleReset} variant=\"outline\">\n <RotateCcw className=\"mr-2 h-4 w-4\" />\n Reset Theme\n </Button>\n <Button onClick={handleSave}>Save Configuration</Button>\n </div>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Import Theme CSS</CardTitle>\n <CardDescription>\n Paste your CSS theme code below to automatically populate all fields\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <Textarea\n placeholder=\"Paste your CSS theme here (including :root and .dark blocks)...\"\n value={cssInput}\n onChange={(e) => setCssInput(e.target.value)}\n className=\"font-mono text-xs min-h-[200px]\"\n />\n <Button\n onClick={handleImportCss}\n disabled={!cssInput.trim() || isImporting}\n className=\"relative\"\n >\n {isImporting ? (\n <>\n <span className=\"opacity-0\">Import Theme</span>\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n </div>\n </>\n ) : (\n \"Import Theme\"\n )}\n </Button>\n </CardContent>\n </Card>\n\n <div className=\"space-y-4\">\n <Collapsible open={lightOpen} onOpenChange={setLightOpen}>\n <Card>\n <CollapsibleTrigger asChild>\n <CardHeader className=\"cursor-pointer hover:bg-accent/50 transition-colors\">\n <div className=\"flex items-center justify-between\">\n <div>\n <CardTitle className=\"flex items-center gap-2\">\n Light Theme Variables\n {Object.keys(lightTheme).length > 0 && (\n <CheckCircle2 className=\"h-4 w-4 text-primary\" />\n )}\n </CardTitle>\n <CardDescription>\n Configure CSS variables for the light theme\n </CardDescription>\n </div>\n <ChevronDown className={`h-5 w-5 transition-transform ${lightOpen ? 'rotate-180' : ''}`} />\n </div>\n </CardHeader>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <CardContent className=\"grid gap-4 md:grid-cols-2 pt-0\">\n {Object.entries(lightTheme).map(([key, value]) => (\n <div key={key} className=\"space-y-2\">\n <Label htmlFor={`light-${key}`} className=\"text-xs font-mono\">\n {key}\n </Label>\n <Input\n id={`light-${key}`}\n value={value as string}\n onChange={(e) => handleLightThemeChange(key, e.target.value)}\n className=\"font-mono text-xs\"\n />\n </div>\n ))}\n </CardContent>\n </CollapsibleContent>\n </Card>\n </Collapsible>\n\n <Collapsible open={darkOpen} onOpenChange={setDarkOpen}>\n <Card>\n <CollapsibleTrigger asChild>\n <CardHeader className=\"cursor-pointer hover:bg-accent/50 transition-colors\">\n <div className=\"flex items-center justify-between\">\n <div>\n <CardTitle className=\"flex items-center gap-2\">\n Dark Theme Variables\n {Object.keys(darkTheme).length > 0 && (\n <CheckCircle2 className=\"h-4 w-4 text-primary\" />\n )}\n </CardTitle>\n <CardDescription>\n Configure CSS variables for the dark theme\n </CardDescription>\n </div>\n <ChevronDown className={`h-5 w-5 transition-transform ${darkOpen ? 'rotate-180' : ''}`} />\n </div>\n </CardHeader>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <CardContent className=\"grid gap-4 md:grid-cols-2 pt-0\">\n {Object.entries(darkTheme).map(([key, value]) => (\n <div key={key} className=\"space-y-2\">\n <Label htmlFor={`dark-${key}`} className=\"text-xs font-mono\">\n {key}\n </Label>\n <Input\n id={`dark-${key}`}\n value={value as string}\n onChange={(e) => handleDarkThemeChange(key, e.target.value)}\n className=\"font-mono text-xs\"\n />\n </div>\n ))}\n </CardContent>\n </CollapsibleContent>\n </Card>\n </Collapsible>\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\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\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","ConfigurationPage","lightTheme","setLightTheme","useState","darkTheme","setDarkTheme","cssInput","setCssInput","lightOpen","setLightOpen","darkOpen","setDarkOpen","isImporting","setIsImporting","configId","setConfigId","toast","useToast","data","loading","refetch","useQuery","GET_PLATFORM_CONFIGURATIONS","createConfig","useMutation","CREATE_PLATFORM_CONFIGURATION","updateConfig","UPDATE_PLATFORM_CONFIGURATION","useEffect","themeConfig","platform_configurationsPagination","items","find","config","config_key","id","config_value","light","dark","handleLightThemeChange","key","value","handleDarkThemeChange","parseCssTheme","rootMatch","css","match","RegExp","variables","rootContent","forEach","valueParts","variable","split","join","trim","darkMatch","darkContent","handleSave","configData","description","result","platform_configurationsCreateOne","item","title","duration","error","console","variant","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","div","className","jsx","h2","p","Button","onClick","RotateCcw","Card","CardHeader","CardTitle","CardDescription","CardContent","Textarea","placeholder","onChange","e","target","parsed","setTimeout","Object","keys","length","concat","disabled","Fragment","span","Collapsible","open","onOpenChange","CollapsibleTrigger","asChild","CheckCircle2","ChevronDown","CollapsibleContent","entries","map","param","Label","htmlFor","Input","React","ref","props","cn","displayName","h3","CardFooter","CollapsiblePrimitive","type","input","labelVariants","cva","LabelPrimitive","textarea","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","delete","dispatch","set","reducer","state","action","toasts","slice","t","undefined","filter","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","update","setState","push","index","indexOf","splice"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"static/chunks/app/(application)/configuration/page-1e978e117d5086a1.js","mappings":"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","sources":["webpack://_N_E/?981d","webpack://_N_E/./app/(application)/configuration/page.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/collapsible.tsx","webpack://_N_E/./components/ui/input.tsx","webpack://_N_E/./components/ui/label.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)/configuration/page.tsx\");\n","\"use client\";\n\nimport { useState, useEffect } from \"react\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Button } from \"@/components/ui/button\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"@/components/ui/collapsible\";\nimport { ChevronDown, CheckCircle2, RotateCcw } from \"lucide-react\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport {\n GET_PLATFORM_CONFIGURATIONS,\n CREATE_PLATFORM_CONFIGURATION,\n UPDATE_PLATFORM_CONFIGURATION,\n} from \"@/queries/queries\";\n\nexport default function ConfigurationPage() {\n const [lightTheme, setLightTheme] = useState({});\n const [darkTheme, setDarkTheme] = useState({});\n const [cssInput, setCssInput] = useState(\"\");\n const [lightOpen, setLightOpen] = useState(false);\n const [darkOpen, setDarkOpen] = useState(false);\n const [isImporting, setIsImporting] = useState(false);\n const [configId, setConfigId] = useState<string | null>(null);\n const { toast } = useToast();\n\n // Fetch all platform configurations\n const { data, loading, refetch } = useQuery(GET_PLATFORM_CONFIGURATIONS);\n\n const [createConfig] = useMutation(CREATE_PLATFORM_CONFIGURATION);\n const [updateConfig] = useMutation(UPDATE_PLATFORM_CONFIGURATION);\n\n // Load existing configuration when data is fetched\n useEffect(() => {\n if (data?.platform_configurationsPagination?.items) {\n // Find the theme_config configuration\n const themeConfig = data.platform_configurationsPagination.items.find(\n (config: any) => config.config_key === \"theme_config\"\n );\n\n if (themeConfig) {\n setConfigId(themeConfig.id);\n\n if (themeConfig.config_value?.light) {\n setLightTheme({ ...lightTheme, ...themeConfig.config_value.light });\n }\n if (themeConfig.config_value?.dark) {\n setDarkTheme({ ...darkTheme, ...themeConfig.config_value.dark });\n }\n }\n }\n }, [data]);\n\n const handleLightThemeChange = (key: string, value: string) => {\n setLightTheme({ ...lightTheme, [key]: value });\n };\n\n const handleDarkThemeChange = (key: string, value: string) => {\n setDarkTheme({ ...darkTheme, [key]: value });\n };\n\n const parseCssTheme = (css: string) => {\n const light: Record<string, string> = {};\n const dark: Record<string, string> = {};\n\n // Extract :root block\n const rootMatch = css.match(/:root\\s*\\{([^}]+)\\}/s);\n if (rootMatch) {\n const rootContent = rootMatch[1];\n const variables = rootContent.match(/--[\\w-]+:\\s*[^;]+/g);\n if (variables) {\n variables.forEach((variable) => {\n const [key, ...valueParts] = variable.split(\":\");\n const value = valueParts.join(\":\").trim();\n light[key.trim()] = value;\n });\n }\n }\n\n // Extract .dark block\n const darkMatch = css.match(/\\.dark\\s*\\{([^}]+)\\}/s);\n if (darkMatch) {\n const darkContent = darkMatch[1];\n const variables = darkContent.match(/--[\\w-]+:\\s*[^;]+/g);\n if (variables) {\n variables.forEach((variable) => {\n const [key, ...valueParts] = variable.split(\":\");\n const value = valueParts.join(\":\").trim();\n dark[key.trim()] = value;\n });\n }\n }\n\n return { light, dark };\n };\n\n const handleImportCss = () => {\n setIsImporting(true);\n const parsed = parseCssTheme(cssInput);\n\n setTimeout(() => {\n if (Object.keys(parsed.light).length > 0) {\n setLightTheme({ ...lightTheme, ...parsed.light });\n setLightOpen(true);\n }\n\n if (Object.keys(parsed.dark).length > 0) {\n setDarkTheme({ ...darkTheme, ...parsed.dark });\n setDarkOpen(true);\n }\n\n setCssInput(\"\");\n setIsImporting(false);\n\n toast({\n title: \"Theme imported successfully!\",\n description: `Updated ${Object.keys(parsed.light).length + Object.keys(parsed.dark).length} variables.`,\n duration: 3000,\n });\n }, 500);\n };\n\n const handleReset = () => {\n setLightTheme({});\n setDarkTheme({});\n toast({\n title: \"Theme reset\",\n description: \"Both themes have been reset to default (empty).\",\n duration: 3000,\n });\n };\n\n const handleSave = async () => {\n try {\n const configData = {\n config_key: \"theme_config\",\n config_value: {\n light: lightTheme,\n dark: darkTheme,\n },\n description: \"Platform theme configuration\",\n };\n\n if (configId) {\n // Update existing configuration\n await updateConfig({\n variables: {\n id: configId,\n data: configData,\n },\n });\n } else {\n // Create new configuration\n const result = await createConfig({\n variables: {\n data: configData,\n },\n });\n setConfigId(result.data?.platform_configurationsCreateOne?.item?.id);\n }\n\n await refetch();\n\n toast({\n title: \"Configuration saved\",\n description: \"Theme configuration has been saved successfully.\",\n duration: 3000,\n });\n } catch (error) {\n console.error(\"Error saving configuration:\", error);\n toast({\n title: \"Error\",\n description: \"Failed to save configuration. Please try again.\",\n duration: 3000,\n variant: \"destructive\",\n });\n }\n };\n\n return (\n <div className=\"h-full flex-1 flex-col space-y-8 p-8\">\n <div className=\"flex items-center justify-between space-y-2\">\n <div>\n <h2 className=\"text-2xl font-bold tracking-tight\">Platform theme</h2>\n <p className=\"text-muted-foreground\">\n Import custom styles to personalize your IMP.\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button onClick={handleReset} variant=\"outline\">\n <RotateCcw className=\"mr-2 h-4 w-4\" />\n Reset Theme\n </Button>\n <Button onClick={handleSave}>Save Configuration</Button>\n </div>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Import Theme CSS</CardTitle>\n <CardDescription>\n Paste your CSS theme code below to automatically populate all fields\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <Textarea\n placeholder=\"Paste your CSS theme here (including :root and .dark blocks)...\"\n value={cssInput}\n onChange={(e) => setCssInput(e.target.value)}\n className=\"font-mono text-xs min-h-[200px]\"\n />\n <Button\n onClick={handleImportCss}\n disabled={!cssInput.trim() || isImporting}\n className=\"relative\"\n >\n {isImporting ? (\n <>\n <span className=\"opacity-0\">Import Theme</span>\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n </div>\n </>\n ) : (\n \"Import Theme\"\n )}\n </Button>\n </CardContent>\n </Card>\n\n <div className=\"space-y-4\">\n <Collapsible open={lightOpen} onOpenChange={setLightOpen}>\n <Card>\n <CollapsibleTrigger asChild>\n <CardHeader className=\"cursor-pointer hover:bg-accent/50 transition-colors\">\n <div className=\"flex items-center justify-between\">\n <div>\n <CardTitle className=\"flex items-center gap-2\">\n Light Theme Variables\n {Object.keys(lightTheme).length > 0 && (\n <CheckCircle2 className=\"h-4 w-4 text-primary\" />\n )}\n </CardTitle>\n <CardDescription>\n Configure CSS variables for the light theme\n </CardDescription>\n </div>\n <ChevronDown className={`h-5 w-5 transition-transform ${lightOpen ? 'rotate-180' : ''}`} />\n </div>\n </CardHeader>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <CardContent className=\"grid gap-4 md:grid-cols-2 pt-0\">\n {Object.entries(lightTheme).map(([key, value]) => (\n <div key={key} className=\"space-y-2\">\n <Label htmlFor={`light-${key}`} className=\"text-xs font-mono\">\n {key}\n </Label>\n <Input\n id={`light-${key}`}\n value={value as string}\n onChange={(e) => handleLightThemeChange(key, e.target.value)}\n className=\"font-mono text-xs\"\n />\n </div>\n ))}\n </CardContent>\n </CollapsibleContent>\n </Card>\n </Collapsible>\n\n <Collapsible open={darkOpen} onOpenChange={setDarkOpen}>\n <Card>\n <CollapsibleTrigger asChild>\n <CardHeader className=\"cursor-pointer hover:bg-accent/50 transition-colors\">\n <div className=\"flex items-center justify-between\">\n <div>\n <CardTitle className=\"flex items-center gap-2\">\n Dark Theme Variables\n {Object.keys(darkTheme).length > 0 && (\n <CheckCircle2 className=\"h-4 w-4 text-primary\" />\n )}\n </CardTitle>\n <CardDescription>\n Configure CSS variables for the dark theme\n </CardDescription>\n </div>\n <ChevronDown className={`h-5 w-5 transition-transform ${darkOpen ? 'rotate-180' : ''}`} />\n </div>\n </CardHeader>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <CardContent className=\"grid gap-4 md:grid-cols-2 pt-0\">\n {Object.entries(darkTheme).map(([key, value]) => (\n <div key={key} className=\"space-y-2\">\n <Label htmlFor={`dark-${key}`} className=\"text-xs font-mono\">\n {key}\n </Label>\n <Input\n id={`dark-${key}`}\n value={value as string}\n onChange={(e) => handleDarkThemeChange(key, e.target.value)}\n className=\"font-mono text-xs\"\n />\n </div>\n ))}\n </CardContent>\n </CollapsibleContent>\n </Card>\n </Collapsible>\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\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\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","ConfigurationPage","lightTheme","setLightTheme","useState","darkTheme","setDarkTheme","cssInput","setCssInput","lightOpen","setLightOpen","darkOpen","setDarkOpen","isImporting","setIsImporting","configId","setConfigId","toast","useToast","data","loading","refetch","useQuery","GET_PLATFORM_CONFIGURATIONS","createConfig","useMutation","CREATE_PLATFORM_CONFIGURATION","updateConfig","UPDATE_PLATFORM_CONFIGURATION","useEffect","themeConfig","platform_configurationsPagination","items","find","config","config_key","id","config_value","light","dark","handleLightThemeChange","key","value","handleDarkThemeChange","parseCssTheme","rootMatch","css","match","RegExp","variables","rootContent","forEach","valueParts","variable","split","join","trim","darkMatch","darkContent","handleSave","configData","description","result","platform_configurationsCreateOne","item","title","duration","error","console","variant","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","div","className","jsx","h2","p","Button","onClick","RotateCcw","Card","CardHeader","CardTitle","CardDescription","CardContent","Textarea","placeholder","onChange","e","target","parsed","setTimeout","Object","keys","length","concat","disabled","Fragment","span","Collapsible","open","onOpenChange","CollapsibleTrigger","asChild","CheckCircle2","ChevronDown","CollapsibleContent","entries","map","param","Label","htmlFor","Input","React","ref","props","cn","displayName","h3","CardFooter","CollapsiblePrimitive","type","input","labelVariants","cva","LabelPrimitive","textarea","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","delete","dispatch","set","reducer","state","action","toasts","slice","t","undefined","filter","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","update","setState","push","index","indexOf","splice"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4506],{46363:function(e,t,a){Promise.resolve().then(a.bind(a,67797))},67797:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return O},dynamic:function(){return T}});var r=a(57437),s=a(5341),l=a(2265),n=a(91048),o=a(7211),i=a(66070),d=a(93022),c=a(44372),u=a(21047),m=a(70525),f=a(3085);function x(e){let{title:t,currentValue:a,previousValue:s,isLoading:l}=e;if(l)return(0,r.jsxs)(i.Zb,{className:"animate-pulse",children:[(0,r.jsxs)(i.Ol,{className:"flex flex-row items-center justify-between space-y-0 pb-3",children:[(0,r.jsx)(i.ll,{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:t}),(0,r.jsx)("div",{className:"p-2 rounded-full",children:(0,r.jsx)("div",{className:"h-4 w-4 rounded"})})]}),(0,r.jsxs)(i.aY,{children:[(0,r.jsx)(d.O,{className:"h-8 w-24 mb-3"}),(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)(d.O,{className:"h-3 w-28"}),(0,r.jsx)(d.O,{className:"h-3 w-20"})]})]})]});let n=s>0?(a-s)/s*100:0,o=n>0,c=0===n,x=c?u.Z:o?m.Z:f.Z,h=c?"text-muted-foreground":o?"text-green-600":"text-red-600";return(0,r.jsxs)(i.Zb,{className:"hover:shadow-lg transition-all duration-300 hover:-translate-y-1",children:[(0,r.jsxs)(i.Ol,{className:"flex flex-row items-center justify-between space-y-0 pb-3",children:[(0,r.jsx)(i.ll,{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:t}),(0,r.jsx)("div",{className:"p-2 rounded-full ".concat(c?"bg-gray-200 dark:bg-gray-700":o?"bg-green-100 dark:bg-green-900/30":"bg-red-100 dark:bg-red-900/30"),children:(0,r.jsx)(x,{className:"h-4 w-4 ".concat(h)})})]}),(0,r.jsxs)(i.aY,{children:[(0,r.jsx)("div",{className:"text-3xl font-bold bg-gradient-to-r from-slate-900 to-slate-700 dark:from-slate-100 dark:to-slate-300 bg-clip-text text-transparent mb-2",children:a.toLocaleString()}),(0,r.jsxs)("p",{className:"text-xs text-slate-600 dark:text-slate-400",children:[(0,r.jsx)("span",{className:"font-medium ".concat(h),children:c?"No change":"".concat(Math.abs(n).toFixed(1),"% ").concat(o?"increase":"decrease")}),(0,r.jsx)("br",{}),(0,r.jsxs)("span",{className:"text-slate-500 dark:text-slate-500",children:["vs 7-day avg: ",s.toLocaleString()]})]})]})]})}function h(e){let{query:t,entity:a,title:n}=e,i=(0,l.useMemo)(()=>{let e=new Date;return{now:e.toISOString(),twentyFourHoursAgo:(0,c.b)(e,24).toISOString(),sevenDaysAgo:(0,s.k)(e,7).toISOString()}},[]),{data:d,loading:u}=(0,o.aM)(t,{variables:{from:i.twentyFourHoursAgo,to:i.now}}),{data:m,loading:f}=(0,o.aM)(t,{variables:{from:i.sevenDaysAgo,to:i.now}}),h=e=>e&&Array.isArray(e)?e.reduce((e,t)=>e+(t.count||0),0):0,p=h(null==d?void 0:d["".concat(a,"Statistics")]),g=Math.round(h(null==m?void 0:m["".concat(a,"Statistics")])/7);return(0,r.jsx)(x,{title:"".concat(n," (24h)"),currentValue:p,previousValue:g,isLoading:u})}var p=a(21409),g=a(52896),v=a(73450),y=a(49474),j=a(66142),b=a(33327);function N(e){var t;let{title:a,query:s,type:n,dateRange:c,icon:u,subtitle:m,valueLabel:f="calls",emptyMessage:x="No data available",maxEntries:h=10,nameFilter:p,hydrationQuery:g,hydrationField:v}=e,N=(0,l.useMemo)(()=>({from:c.from.toISOString(),to:c.to.toISOString()}),[c]),k=(0,l.useMemo)(()=>{let e={from:N.from,to:N.to};return p?{...e,names:Array.isArray(p)?p:[p]}:n?{...e,type:n}:e},[N.from,N.to,n,p]),{data:w,loading:E}=(0,o.aM)(s,{variables:k}),_=(0,l.useMemo)(()=>(null==w?void 0:w.trackingStatistics)&&g?w.trackingStatistics.filter(e=>(null==e?void 0:e.group)&&(null==e?void 0:e.count)).map(e=>e.group).slice(0,h):[],[w,h,g]);console.log("[EXULU] IDs to hydrate:",_),console.log("[EXULU] Hydration query:",g);let{data:T,loading:O}=(0,o.aM)(g||s,{variables:{ids:_},skip:!g||0===_.length});console.log("[EXULU] Hydration data:",T);let S=(0,l.useMemo)(()=>(null==w?void 0:w.trackingStatistics)?w.trackingStatistics.filter(e=>(null==e?void 0:e.group)&&(null==e?void 0:e.count)).map(e=>{let t=e.group;if(T&&v){var a;let r=null===(a=T[v])||void 0===a?void 0:a.find(t=>(console.log("[EXULU] Hydrated item:",t),console.log("[EXULU] Item group:",e.group),"number"==typeof t.id)?t.id===parseInt(e.group):t.id===e.group);r&&(t=r.name||(r.firstname&&r.lastname?"".concat(r.firstname," ").concat(r.lastname):r.email)||e.group)}return{name:t,value:e.count}}).sort((e,t)=>t.value-e.value).slice(0,h).map((e,t)=>({...e,rank:t+1})):[],[w,T,v,h]),R=e=>{switch(e){case 1:return(0,r.jsx)(y.Z,{className:"h-5 w-5 text-yellow-500"});case 2:return(0,r.jsx)(j.Z,{className:"h-5 w-5 text-gray-400"});case 3:return(0,r.jsx)(b.Z,{className:"h-5 w-5 text-amber-700"});default:return(0,r.jsxs)("span",{className:"text-sm font-semibold text-muted-foreground",children:["#",e]})}},C=e=>{switch(e){case 1:return"bg-gradient-to-r from-yellow-50 to-yellow-100 dark:from-yellow-900/20 dark:to-yellow-800/20 border-yellow-200 dark:border-yellow-800";case 2:return"bg-gradient-to-r from-gray-50 to-gray-100 dark:from-gray-800/20 dark:to-gray-700/20 border-gray-200 dark:border-gray-700";case 3:return"bg-gradient-to-r from-amber-50 to-amber-100 dark:from-amber-900/20 dark:to-amber-800/20 border-amber-200 dark:border-amber-800";default:return"bg-white dark:bg-slate-900 border-slate-200 dark:border-slate-700"}};if(E||g&&O)return(0,r.jsxs)(i.Zb,{className:"h-full flex flex-col",children:[(0,r.jsx)(i.Ol,{className:"flex flex-row items-center justify-between space-y-0 pb-4",children:(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsxs)(i.ll,{className:"text-xl font-bold flex items-center gap-2",children:[u,a]}),m&&(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:m})]})}),(0,r.jsx)(i.aY,{className:"flex-1 space-y-3 overflow-auto",children:[void 0,void 0,void 0,void 0,void 0].map((e,t)=>(0,r.jsx)(d.O,{className:"h-16 w-full"},t))})]});if(!S.length)return(0,r.jsxs)(i.Zb,{className:"h-full flex flex-col",children:[(0,r.jsx)(i.Ol,{className:"flex flex-row items-center justify-between space-y-0 pb-4",children:(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsxs)(i.ll,{className:"text-xl font-bold flex items-center gap-2",children:[u,a]}),m&&(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:m})]})}),(0,r.jsx)(i.aY,{className:"flex-1 flex items-center justify-center",children:(0,r.jsx)("p",{className:"text-muted-foreground text-sm",children:x})})]});let D=(null===(t=S[0])||void 0===t?void 0:t.value)||1;return(0,r.jsxs)(i.Zb,{className:"h-full flex flex-col",children:[(0,r.jsx)(i.Ol,{className:"flex flex-row items-center justify-between space-y-0 pb-4",children:(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsxs)(i.ll,{className:"text-xl font-bold flex items-center gap-2",children:[u,a]}),m&&(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:m})]})}),(0,r.jsx)(i.aY,{className:"flex-1 space-y-2 overflow-auto",children:S.map(e=>{let t=e.value/D*100;return(0,r.jsxs)("div",{className:"relative overflow-hidden rounded-lg border-2 p-3 transition-all duration-300 hover:shadow-md hover:scale-105 ".concat(C(e.rank)),children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-gradient-to-r from-blue-100/50 to-transparent dark:from-blue-900/20 transition-all duration-500",style:{width:"".concat(t,"%")}}),(0,r.jsxs)("div",{className:"relative flex items-center justify-between gap-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[(0,r.jsx)("div",{className:"flex-shrink-0",children:R(e.rank)}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"font-semibold text-sm truncate",title:e.name,children:e.name}),e.rank<=3&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:1===e.rank?"Top performer":2===e.rank?"Runner up":"Third place"})]})]}),(0,r.jsxs)("div",{className:"flex-shrink-0 text-right",children:[(0,r.jsx)("p",{className:"text-lg font-bold text-slate-900 dark:text-slate-100",children:e.value.toLocaleString()}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:f})]})]})]},e.name)})})]})}var k=a(27689),w=a(95805),E=a(28124),_=a(82222);let T="force-dynamic";function O(){let[e,t]=(0,l.useState)({from:(0,s.k)(new Date,14),to:new Date}),[a,o]=(0,l.useState)("AGENT_RUN"),[i,d]=(0,l.useState)("count"),[c,u]=(0,l.useState)("label"),[m,f]=(0,l.useState)("count");return(0,r.jsxs)("div",{className:"flex-1 flex flex-col p-8 pt-6 h-screen",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-8",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("h2",{className:"text-4xl font-bold tracking-tight bg-clip-text",children:"Analytics Dashboard"}),(0,r.jsx)("p",{className:"text-lg",children:"Monitor your AI workflows and performance metrics."})]}),(0,r.jsx)("div",{className:"flex items-center space-x-2",children:(0,r.jsx)(p.z,{dateRange:e,onDateRangeChange:t,maxDays:30})})]}),(0,r.jsx)("div",{className:"mb-8",children:(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-5",children:[(0,r.jsx)(h,{query:k.W6,entity:"agent_sessions",title:"Agent Sessions"}),(0,r.jsx)(h,{query:k.tK,entity:"tracking",title:"Agent Calls"}),(0,r.jsx)(h,{query:k.Hk,entity:"tracking",title:"Token Usage"}),(0,r.jsx)(h,{query:k.Tj,entity:"jobs",title:"Workflow Runs"}),(0,r.jsx)(h,{query:k.kZ,entity:"tracking",title:"Function Calls"})]})}),(0,r.jsxs)("div",{className:"flex-1 grid gap-6 md:grid-cols-3",children:[(0,r.jsx)("div",{className:"rounded-lg border md:col-span-2 p-6 flex flex-col",children:(0,r.jsx)(g.q,{dateRange:e,selectedType:a,onTypeChange:o,onUnitChange:d,unit:i,unitOptions:[{value:"tokens",label:"Tokens"},{value:"count",label:"Count"}],dataTypes:[n.h.CONTEXT_RETRIEVE,n.h.SOURCE_UPDATE,n.h.EMBEDDER_UPSERT,n.h.EMBEDDER_GENERATE,n.h.EMBEDDER_DELETE,n.h.WORKFLOW_RUN,n.h.CONTEXT_UPSERT,n.h.TOOL_CALL,n.h.AGENT_RUN]})}),(0,r.jsx)("div",{className:"rounded-lg border p-6 flex flex-col",children:(0,r.jsx)(v.Y,{groupByOptions:[{value:"label",label:"Label"},{value:"user",label:"User"},{value:"role",label:"Role"}],dateRange:e,selectedType:a,groupBy:c,unit:"count"===m?"count":"tokens",onGroupByChange:u})})]}),(0,r.jsxs)("div",{className:"mt-8 mb-5",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)("h3",{className:"text-2xl font-bold",children:"Leaderboards"}),(0,r.jsxs)("div",{className:"flex items-center gap-2 bg-secondary-foreground/10 dark:bg-secondary-foreground/20 p-1 rounded-lg",children:[(0,r.jsx)("button",{onClick:()=>f("count"),className:"px-4 py-2 rounded-md text-sm font-medium transition-all ".concat("count"===m?"bg-white dark:bg-primary shadow-sm text-secondary":"hover:text-primary dark:hover:text-primary"),children:"Count"}),(0,r.jsx)("button",{onClick:()=>f("tokens"),className:"px-4 py-2 rounded-md text-sm font-medium transition-all ".concat("tokens"===m?"bg-white dark:bg-primary shadow-sm text-secondary":"hover:text-primary dark:hover:text-primary"),children:"Tokens"})]})]}),(0,r.jsxs)("div",{className:"grid gap-6 md:grid-cols-3 mb-5",children:[(0,r.jsx)(N,{title:"Top Users",subtitle:"count"===m?"Most active users by agent calls":"Most active users by token usage",query:k.Au,dateRange:{from:(null==e?void 0:e.from)||(0,s.k)(new Date,14),to:(null==e?void 0:e.to)||new Date},icon:(0,r.jsx)(w.Z,{className:"h-5 w-5 text-blue-500"}),valueLabel:"count"===m?"calls":"tokens",maxEntries:10,nameFilter:"count"===m?["count"]:["inputTokens","outputTokens"],hydrationQuery:k.BK,hydrationField:"userByIds"}),(0,r.jsx)(N,{title:"Top Projects",subtitle:"count"===m?"Most active projects by agent calls":"Most active projects by token usage",query:k.ZA,dateRange:{from:(null==e?void 0:e.from)||(0,s.k)(new Date,14),to:(null==e?void 0:e.to)||new Date},icon:(0,r.jsx)(E.Z,{className:"h-5 w-5 text-purple-500"}),valueLabel:"count"===m?"calls":"tokens",maxEntries:10,nameFilter:"count"===m?["count"]:["inputTokens","outputTokens"],hydrationQuery:k.Ak,hydrationField:"projectByIds"}),(0,r.jsx)(N,{title:"Top Agents",subtitle:"count"===m?"Most used agents by call count":"Most used agents by token usage",query:k.CN,dateRange:{from:(null==e?void 0:e.from)||(0,s.k)(new Date,14),to:(null==e?void 0:e.to)||new Date},icon:(0,r.jsx)(_.Z,{className:"h-5 w-5 text-green-500"}),valueLabel:"count"===m?"calls":"tokens",maxEntries:10,nameFilter:"count"===m?["count"]:["inputTokens","outputTokens"]})]})]})]})}},21409:function(e,t,a){"use strict";a.d(t,{z:function(){return g}});var r=a(57437),s=a(2265),l=a(20653),n=a(31303),o=a(59121),i=a(27107),d=a(94508),c=a(62869),u=a(92451),m=a(10407),f=a(98235);function x(e){let{className:t,classNames:a,showOutsideDays:s=!0,...l}=e;return(0,r.jsx)(f._W,{showOutsideDays:s,className:(0,d.cn)("p-3",t),classNames:{months:"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",month:"space-y-4",caption:"flex justify-center pt-1 relative items-center",caption_label:"text-sm font-medium",nav:"space-x-1 flex items-center",nav_button:(0,d.cn)((0,c.d)({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-y-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:"h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",day:(0,d.cn)((0,c.d)({variant:"ghost"}),"h-9 w-9 p-0 font-normal aria-selected:opacity-100"),day_range_end:"day-range-end",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...a},components:{IconLeft:e=>{let{...t}=e;return(0,r.jsx)(u.Z,{className:"size-4"})},IconRight:e=>{let{...t}=e;return(0,r.jsx)(m.Z,{className:"size-4"})}},...l})}x.displayName="Calendar";var h=a(77992),p=a(57054);function g(e){let{dateRange:t,onDateRangeChange:a,className:u,maxDays:m=30}=e,{toast:f}=(0,h.pm)(),g=s.useMemo(()=>{if(!(null==t?void 0:t.from))return[];let e=t.from;return[{before:(0,o.E)(e,-m)},{after:(0,o.E)(e,m)}]},[null==t?void 0:t.from,m]);return(0,r.jsx)("div",{className:(0,d.cn)("grid gap-2",u),children:(0,r.jsxs)(p.J2,{children:[(0,r.jsx)(p.xo,{asChild:!0,children:(0,r.jsxs)(c.z,{id:"date",variant:"outline",className:(0,d.cn)("w-[260px] justify-start text-left font-normal",!t&&"text-muted-foreground"),children:[(0,r.jsx)(l.Que,{className:"mr-2 h-4 w-4"}),(null==t?void 0:t.from)?t.to?(0,r.jsxs)(r.Fragment,{children:[(0,i.WU)(t.from,"LLL dd, y")," -"," ",(0,i.WU)(t.to,"LLL dd, y")]}):(0,i.WU)(t.from,"LLL dd, y"):(0,r.jsx)("span",{children:"Pick a date range"})]})}),(0,r.jsxs)(p.yk,{className:"w-auto p-0",align:"end",children:[(0,r.jsx)(x,{initialFocus:!0,mode:"range",defaultMonth:null==t?void 0:t.from,selected:t,onSelect:e=>{if((null==e?void 0:e.from)&&(null==e?void 0:e.to)&&(0,n.j)(e.to,e.from)>m){f({title:"Date range too large",description:"Please select a date range of ".concat(m," days or less."),variant:"destructive"});return}a(e)},disabled:g,numberOfMonths:2}),(0,r.jsxs)("div",{className:"p-3 pt-0 text-xs text-muted-foreground border-t",children:["Maximum range: ",m," days"]})]})]})})}},73450:function(e,t,a){"use strict";a.d(t,{Y:function(){return x}});var r=a(57437),s=a(2265),l=a(7211),n=a(53647),o=a(93022),i=a(27689),d=a(75169),c=a(3574),u=a(20407),m=a(57969);let f=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))","hsl(var(--chart-6))","hsl(var(--chart-7))","hsl(var(--chart-8))","hsl(var(--chart-9))","hsl(var(--chart-10))"];function x(e){var t,a;let{groupByOptions:x,dateRange:h,selectedType:p,groupBy:g,onGroupByChange:v,unit:y}=e,{data:j,loading:b,error:N}=(0,l.aM)(i.YH,{variables:{type:p,groupBy:g,from:null==h?void 0:null===(t=h.from)||void 0===t?void 0:t.toISOString(),to:null==h?void 0:null===(a=h.to)||void 0===a?void 0:a.toISOString(),names:"tokens"===y?["inputTokens","outputTokens"]:["count"]},skip:!(null==h?void 0:h.from)||!(null==h?void 0:h.to)}),{chartData:k,chartConfig:w}=s.useMemo(()=>{if(!(null==j?void 0:j.trackingStatistics))return{chartData:[],chartConfig:{}};let e=j.trackingStatistics.map((e,t)=>{var a;return{name:(a=null==e?void 0:e.group)&&"string"==typeof a?a.replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "):"Unknown",value:null==e?void 0:e.count,fill:f[t%f.length]}}).sort((e,t)=>t.value-e.value),t=e.reduce((e,t,a)=>(e[t.name]={label:t.name,color:f[a%f.length]},e),{});return{chartData:e,chartConfig:t}},[j]);return(0,r.jsxs)("div",{className:"flex flex-col h-full",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold",children:"Distribution"}),x.length>0&&(0,r.jsx)("div",{className:"w-full max-w-[150px]",children:(0,r.jsxs)(n.Ph,{value:g,onValueChange:v,children:[(0,r.jsx)(n.i4,{children:(0,r.jsx)(n.ki,{placeholder:"Group by"})}),(0,r.jsx)(n.Bw,{children:x.map(e=>(0,r.jsx)(n.Ql,{value:e.value,children:e.label},e.value))})]})})]}),(0,r.jsx)("div",{className:"flex-1 min-h-0",children:b?(0,r.jsx)("div",{className:"space-y-4 h-full",children:(0,r.jsx)(o.O,{className:"h-full w-full"})}):N?(0,r.jsxs)("div",{className:"flex items-center justify-center h-full text-red-500",children:["Error loading distribution data: ",N.message]}):0===k.length?(0,r.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-center",children:"No data available for the selected date range, type, and grouping."}):(0,r.jsx)(m.BO,{config:w,className:"h-full w-full",children:(0,r.jsxs)(d.u,{children:[(0,r.jsx)("defs",{children:k.map((e,t)=>(0,r.jsxs)("radialGradient",{id:"gradient-".concat(e.name.replace(/\s+/g,"-")),cx:"50%",cy:"50%",r:"50%",children:[(0,r.jsx)("stop",{offset:"0%",stopColor:e.fill,stopOpacity:1}),(0,r.jsx)("stop",{offset:"100%",stopColor:e.fill,stopOpacity:.8})]},"gradient-".concat(t)))}),(0,r.jsx)(c.b,{data:k,cx:"50%",cy:"50%",labelLine:!1,label:e=>{let{cx:t,cy:a,midAngle:s,innerRadius:l,outerRadius:n,percent:o,index:i}=e;if(o<.05)return null;let d=Math.PI/180,c=l+(n-l)*.5,u=t+c*Math.cos(-s*d);return(0,r.jsx)("text",{x:u,y:a+c*Math.sin(-s*d),fill:"black",textAnchor:u>t?"start":"end",dominantBaseline:"central",fontSize:"12",fontWeight:"600",paintOrder:"stroke",children:"".concat((100*o).toFixed(0),"%")})},outerRadius:"75%",innerRadius:"45%",dataKey:"value",strokeWidth:3,children:k.map((e,t)=>(0,r.jsx)(u.b,{fill:"url(#gradient-".concat(e.name.replace(/\s+/g,"-"),")")},"cell-".concat(t)))}),(0,r.jsx)(m.h7,{content:(0,r.jsx)(m.dg,{nameKey:"name",hideLabel:!0,formatter:(e,t)=>["number"==typeof e?e.toLocaleString():e," "+String(t)]})})]})})})]})}},52896:function(e,t,a){"use strict";a.d(t,{q:function(){return j}});var r=a(57437),s=a(2265),l=a(7211),n=a(53647),o=a(93022),i=a(27689),d=a(5481),c=a(56940),u=a(97059),m=a(62994),f=a(23263),x=a(57969),h=a(27107),p=a(56942),g=a(54886);function v(e){return e.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ")}let y={count:{label:"Count",color:"hsl(var(--muted-foreground))"}};function j(e){var t,a;let{dataTypes:j,dateRange:b,selectedType:N,onTypeChange:k,onUnitChange:w,unit:E,unitOptions:_}=e,{data:T,loading:O,error:S}=(0,l.aM)(i.j9,{variables:{type:N,name:E,from:null==b?void 0:null===(t=b.from)||void 0===t?void 0:t.toISOString(),to:null==b?void 0:null===(a=b.to)||void 0===a?void 0:a.toISOString(),names:[E]},skip:!(null==b?void 0:b.from)||!(null==b?void 0:b.to)}),R=s.useMemo(()=>{if(!(null==T?void 0:T.trackingStatistics)||!(null==b?void 0:b.from)||!(null==b?void 0:b.to))return[];let e=new Map;return T.trackingStatistics.forEach(t=>{let a=new Date("number"==typeof t.group?t.group:Number(t.group)),r=(0,h.WU)((0,p.b)(a),"yyyy-MM-dd");e.set(r,t.count)}),(0,g.D)({start:(0,p.b)(b.from),end:(0,p.b)(b.to)}).map(t=>{let a=(0,h.WU)(t,"yyyy-MM-dd"),r=e.get(a)||0;return{date:t.getTime(),count:r,formattedDate:(0,h.WU)(t,"MMM dd"),dateObj:t}})},[T,b]);return(0,r.jsxs)("div",{className:"flex flex-col h-full",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold",children:"Time Series Analytics"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"w-[150px]",children:(0,r.jsxs)(n.Ph,{value:N,onValueChange:e=>k(e),children:[(0,r.jsx)(n.i4,{children:(0,r.jsx)(n.ki,{placeholder:"Select data type"})}),(0,r.jsx)(n.Bw,{children:null==j?void 0:j.map(e=>(0,r.jsx)(n.Ql,{value:e,children:v(e)+" "},e))})]})}),(null==_?void 0:_.length)>1&&(0,r.jsx)("div",{className:"w-[150px]",children:(0,r.jsxs)(n.Ph,{value:E,onValueChange:e=>w(e),children:[(0,r.jsx)(n.i4,{children:(0,r.jsx)(n.ki,{placeholder:"Select unit"})}),(0,r.jsx)(n.Bw,{children:null==_?void 0:_.map(e=>(0,r.jsx)(n.Ql,{value:e.value,children:e.label},e.value))})]})})]})]}),(0,r.jsx)("div",{className:"flex-1 min-h-0",children:O?(0,r.jsx)("div",{className:"space-y-4 h-full",children:(0,r.jsx)(o.O,{className:"h-full w-full"})}):S?(0,r.jsxs)("div",{className:"flex items-center justify-center h-full text-red-500",children:["Error loading time series data: ",S.message]}):0===R.length?(0,r.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:"No data available for the selected date range and type"}):(0,r.jsx)(x.BO,{config:y,className:"h-full w-full",children:(0,r.jsxs)(d.T,{data:R,children:[(0,r.jsxs)("defs",{children:[(0,r.jsxs)("linearGradient",{id:"fillCount",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,r.jsx)("stop",{offset:"5%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.3}),(0,r.jsx)("stop",{offset:"95%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.05})]}),(0,r.jsxs)("linearGradient",{id:"strokeCount",x1:"0",y1:"0",x2:"1",y2:"0",children:[(0,r.jsx)("stop",{offset:"0%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.8}),(0,r.jsx)("stop",{offset:"100%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.6})]})]}),(0,r.jsx)(c.q,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground))",strokeOpacity:.3,vertical:!1}),(0,r.jsx)(u.K,{dataKey:"formattedDate",tick:{fontSize:12,fill:"hsl(var(--muted-foreground))"},tickLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5},axisLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5}}),(0,r.jsx)(m.B,{tick:{fontSize:12,fill:"hsl(var(--muted-foreground))"},tickLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5},axisLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5}}),(0,r.jsx)(x.h7,{labelFormatter:(e,t)=>t&&t[0]?(0,h.WU)(t[0].payload.dateObj,"PPP")+" ":e,content:(0,r.jsx)(x.dg,{nameKey:"name",hideLabel:!0,formatter:(e,t)=>["number"==typeof e?e.toLocaleString():e," "+String(t)]})}),(0,r.jsx)(x.Qk,{content:(0,r.jsx)(x.cD,{})}),(0,r.jsx)(f.u,{type:"monotone",dataKey:"count",stroke:"url(#strokeCount)",strokeWidth:3,fill:"url(#fillCount)",fillOpacity:.6,dot:{fill:"hsl(var(--muted-foreground))",strokeWidth:2,r:4,strokeOpacity:.8},activeDot:{r:6,strokeWidth:2,fill:"hsl(var(--background))",stroke:"hsl(var(--muted-foreground))",strokeOpacity:1},name:v(N)})]})})})]})}},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 r=a(57437),s=a(2265),l=a(94508);let n=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)("div",{ref:t,className:(0,l.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",a),...s})});n.displayName="Card";let o=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)("div",{ref:t,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",a),...s})});o.displayName="CardHeader";let i=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)("h3",{ref:t,className:(0,l.cn)("text-2xl font-semibold leading-none tracking-tight",a),...s})});i.displayName="CardTitle";let d=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)("p",{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",a),...s})});d.displayName="CardDescription";let c=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)("div",{ref:t,className:(0,l.cn)("p-6 pt-0",a),...s})});c.displayName="CardContent";let u=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)("div",{ref:t,className:(0,l.cn)("flex items-center p-6 pt-0",a),...s})});u.displayName="CardFooter"},57969:function(e,t,a){"use strict";a.d(t,{BO:function(){return m},Qk:function(){return p},cD:function(){return g},dg:function(){return h},h7:function(){return x}});var r=a(57437),s=a(2265),l=a(47625),n=a(8147),o=a(22190),i=a(94508);let d={light:"",dark:".dark"},c=s.createContext(null);function u(){let e=s.useContext(c);if(!e)throw Error("useChart must be used within a <ChartContainer />");return e}let m=s.forwardRef((e,t)=>{let{id:a,className:n,children:o,config:d,...u}=e,m=s.useId(),x="chart-".concat(a||m.replace(/:/g,""));return(0,r.jsx)(c.Provider,{value:{config:d},children:(0,r.jsxs)("div",{"data-chart":x,ref:t,className:(0,i.cn)("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",n),...u,children:[(0,r.jsx)(f,{id:x,config:d}),(0,r.jsx)(l.h,{children:o})]})})});m.displayName="Chart";let f=e=>{let{id:t,config:a}=e,s=Object.entries(a).filter(e=>{let[,t]=e;return t.theme||t.color});return s.length?(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:Object.entries(d).map(e=>{let[a,r]=e;return"\n".concat(r," [data-chart=").concat(t,"] {\n").concat(s.map(e=>{var t;let[r,s]=e,l=(null===(t=s.theme)||void 0===t?void 0:t[a])||s.color;return l?" --color-".concat(r,": ").concat(l,";"):null}).join("\n"),"\n}\n")}).join("\n")}}):null},x=n.u,h=s.forwardRef((e,t)=>{let{active:a,payload:l,className:n,indicator:o="dot",hideLabel:d=!1,hideIndicator:c=!1,label:m,labelFormatter:f,labelClassName:x,formatter:h,color:p,nameKey:g,labelKey:y}=e,{config:j}=u(),b=s.useMemo(()=>{var e;if(d||!(null==l?void 0:l.length))return null;let[t]=l,a="".concat(y||(null==t?void 0:t.dataKey)||(null==t?void 0:t.name)||"value"),s=v(j,t,a),n=y||"string"!=typeof m?null==s?void 0:s.label:(null===(e=j[m])||void 0===e?void 0:e.label)||m;return f?(0,r.jsx)("div",{className:(0,i.cn)("font-medium",x),children:f(n,l)}):n?(0,r.jsx)("div",{className:(0,i.cn)("font-medium",x),children:n}):null},[m,f,l,d,x,j,y]);if(!a||!(null==l?void 0:l.length))return null;let N=1===l.length&&"dot"!==o;return(0,r.jsxs)("div",{ref:t,className:(0,i.cn)("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[N?null:b,(0,r.jsx)("div",{className:"grid gap-1.5",children:l.map((e,t)=>{let a="".concat(g||e.name||e.dataKey||"value"),s=v(j,e,a),l=p||e.payload.fill||e.color;return(0,r.jsx)("div",{className:(0,i.cn)("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground","dot"===o&&"items-center"),children:h&&(null==e?void 0:e.value)!==void 0&&e.name?h(e.value,e.name,e,t,e.payload):(0,r.jsxs)(r.Fragment,{children:[(null==s?void 0:s.icon)?(0,r.jsx)(s.icon,{}):!c&&(0,r.jsx)("div",{className:(0,i.cn)("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":"dot"===o,"w-1":"line"===o,"w-0 border-[1.5px] border-dashed bg-transparent":"dashed"===o,"my-0.5":N&&"dashed"===o}),style:{"--color-bg":l,"--color-border":l}}),(0,r.jsxs)("div",{className:(0,i.cn)("flex flex-1 justify-between leading-none",N?"items-end":"items-center"),children:[(0,r.jsxs)("div",{className:"grid gap-1.5",children:[N?b:null,(0,r.jsx)("span",{className:"text-muted-foreground",children:(null==s?void 0:s.label)||e.name})]}),e.value&&(0,r.jsx)("span",{className:"font-mono font-medium tabular-nums text-foreground",children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})});h.displayName="ChartTooltip";let p=o.D,g=s.forwardRef((e,t)=>{let{className:a,hideIcon:s=!1,payload:l,verticalAlign:n="bottom",nameKey:o}=e,{config:d}=u();return(null==l?void 0:l.length)?(0,r.jsx)("div",{ref:t,className:(0,i.cn)("flex items-center justify-center gap-4","top"===n?"pb-3":"pt-3",a),children:l.map(e=>{let t="".concat(o||e.dataKey||"value"),a=v(d,e,t);return(0,r.jsxs)("div",{className:(0,i.cn)("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[(null==a?void 0:a.icon)&&!s?(0,r.jsx)(a.icon,{}):(0,r.jsx)("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:e.color}}),null==a?void 0:a.label]},e.value)})}):null});function v(e,t,a){if("object"!=typeof t||null===t)return;let r="payload"in t&&"object"==typeof t.payload&&null!==t.payload?t.payload:void 0,s=a;return a in t&&"string"==typeof t[a]?s=t[a]:r&&a in r&&"string"==typeof r[a]&&(s=r[a]),s in e?e[s]:e[a]}g.displayName="ChartLegend"},57054:function(e,t,a){"use strict";a.d(t,{J2:function(){return o},xo:function(){return i},yk:function(){return d}});var r=a(57437),s=a(27312),l=a(2265),n=a(94508);let o=s.fC,i=s.xz,d=l.forwardRef((e,t)=>{let{className:a,align:l="center",sideOffset:o=4,...i}=e;return(0,r.jsx)(s.h_,{children:(0,r.jsx)(s.VY,{ref:t,align:l,sideOffset:o,className:(0,n.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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",a),...i})})});d.displayName=s.VY.displayName},53647:function(e,t,a){"use strict";a.d(t,{Bw:function(){return h},Ph:function(){return c},Ql:function(){return p},i4:function(){return m},ki:function(){return u}});var r=a(57437),s=a(46943),l=a(40875),n=a(22135),o=a(30401),i=a(2265),d=a(94508);let c=s.fC;s.ZA;let u=s.B4,m=i.forwardRef((e,t)=>{let{className:a,children:n,...o}=e;return(0,r.jsxs)(s.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,r.jsx)(s.JO,{asChild:!0,children:(0,r.jsx)(l.Z,{className:"size-4 opacity-50"})})]})});m.displayName=s.xz.displayName;let f=i.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,r.jsx)(s.u_,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",a),...l,children:(0,r.jsx)(n.Z,{className:"size-4"})})});f.displayName=s.u_.displayName;let x=i.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,r.jsx)(s.$G,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",a),...n,children:(0,r.jsx)(l.Z,{className:"size-4"})})});x.displayName=s.$G.displayName;let h=i.forwardRef((e,t)=>{let{className:a,children:l,position:n="popper",...o}=e;return(0,r.jsx)(s.h_,{children:(0,r.jsxs)(s.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,r.jsx)(f,{}),(0,r.jsx)(s.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:l}),(0,r.jsx)(x,{})]})})});h.displayName=s.VY.displayName,i.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,r.jsx)(s.__,{ref:t,className:(0,d.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",a),...l})}).displayName=s.__.displayName;let p=i.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,r.jsxs)(s.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,r.jsx)("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:(0,r.jsx)(s.wU,{children:(0,r.jsx)(o.Z,{className:"size-4"})})}),(0,r.jsx)(s.eT,{children:l})]})});p.displayName=s.ck.displayName,i.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,r.jsx)(s.Z0,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-muted",a),...l})}).displayName=s.Z0.displayName},93022:function(e,t,a){"use strict";a.d(t,{O:function(){return l}});var r=a(57437),s=a(94508);function l(e){let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,s.cn)("animate-pulse rounded-md bg-muted",t),...a})}},77992:function(e,t,a){"use strict";a.d(t,{Am:function(){return u},pm:function(){return m}});var r=a(2265);let s=0,l=new Map,n=e=>{if(l.has(e))return;let t=setTimeout(()=>{l.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);l.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=(s=(s+1)%Number.MAX_SAFE_INTEGER).toString(),r=()=>c({type:"DISMISS_TOAST",toastId:a});return c({type:"ADD_TOAST",toast:{...t,id:a,open:!0,onOpenChange:e=>{e||r()}}}),{id:a,dismiss:r,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:a}})}}function m(){let[e,t]=r.useState(d);return r.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})}}},91048:function(e,t,a){"use strict";a.d(t,{h:function(){return r}});let r={CONTEXT_RETRIEVE:"CONTEXT_RETRIEVE",SOURCE_UPDATE:"SOURCE_UPDATE",EMBEDDER_UPSERT:"EMBEDDER_UPSERT",EMBEDDER_GENERATE:"EMBEDDER_GENERATE",EMBEDDER_DELETE:"EMBEDDER_DELETE",WORKFLOW_RUN:"WORKFLOW_RUN",CONTEXT_UPSERT:"CONTEXT_UPSERT",TOOL_CALL:"TOOL_CALL",AGENT_RUN:"AGENT_RUN"}}},function(e){e.O(0,[8310,9851,7629,7093,6148,847,1942,7823,8068,5799,3825,1785,7107,6488,3393,6373,2971,2117,1744],function(){return e(e.s=46363)}),_N_E=e.O()}]);
|
|
2
|
-
//# sourceMappingURL=page-
|
|
2
|
+
//# sourceMappingURL=page-c54b4bc8d0ac4ac8.js.map
|