@exulu/frontend 1.10.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 +163 -160
- 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 +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page_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 +2 -2
- 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 +5 -5
- package/dist/.next/server/chunks/2270.js +145 -132
- 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-e3d1b2cccd265190.js → 3750-d0ae5d73288be8de.js} +2 -2
- package/dist/.next/static/chunks/3750-d0ae5d73288be8de.js.map +1 -0
- package/dist/.next/static/chunks/{3832-d7782d6a2771ae6c.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/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-0c7c1b0e1713bf60.js → layout-dfdb5c1cdc7ddefc.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/{layout-0c7c1b0e1713bf60.js.map → layout-dfdb5c1cdc7ddefc.js.map} +1 -1
- 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-3acc39cb8a718331.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/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/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-e3d1b2cccd265190.js.map +0 -1
- package/dist/.next/static/chunks/3832-d7782d6a2771ae6c.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/5825-efd4db1da512bd7f.js.map +0 -1
- package/dist/.next/static/chunks/6280-50b751f993f2fe4f.js +0 -2
- package/dist/.next/static/chunks/6280-50b751f993f2fe4f.js.map +0 -1
- package/dist/.next/static/chunks/6373-aef582adc575d3ca.js +0 -2
- package/dist/.next/static/chunks/6373-aef582adc575d3ca.js.map +0 -1
- package/dist/.next/static/chunks/9105-d8ff41060f7ffc85.js +0 -2
- package/dist/.next/static/chunks/9105-d8ff41060f7ffc85.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-d59534ca19eee51f.js +0 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-d59534ca19eee51f.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-7db6bfbf02606136.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-7db6bfbf02606136.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-e6b1c034c07776e2.js +0 -2
- package/dist/.next/static/chunks/app/(application)/explorer/page-e6b1c034c07776e2.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/token/page-3acc39cb8a718331.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-e38f9456120dab69.js.map +0 -1
- package/dist/.next/static/css/9c08ae5d990a6b14.css +0 -4
- package/dist/.next/static/css/9c08ae5d990a6b14.css.map +0 -1
- /package/dist/.next/static/{3j63p6b3zZZB_v1Hn8Mxp → exslB-IPXi_veOKFA4L1Z}/_buildManifest.js +0 -0
- /package/dist/.next/static/{3j63p6b3zZZB_v1Hn8Mxp → exslB-IPXi_veOKFA4L1Z}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/chunks/2534-3dd7a9fabfbdb9d8.js","mappings":"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","sources":["webpack://_N_E/./app/(application)/evals/cases/components/test-case-modal.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/dialog.tsx","webpack://_N_E/./components/ui/label.tsx","webpack://_N_E/./components/ui/scroll-area.tsx","webpack://_N_E/./components/ui/textarea.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, useEffect, useMemo } from \"react\";\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport { Loader2, Plus, MessageSquare, Info, Sparkles, Settings2, FileText, AlertCircle } from \"lucide-react\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { CREATE_TEST_CASE, UPDATE_TEST_CASE, GET_TOOLS } from \"@/queries/queries\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { TestCase } from \"@/types/models/test-case\";\nimport { Tool } from \"@EXULU_SHARED/models/tool\";\nimport { UIMessage, FileUIPart } from \"ai\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport UppyDashboard, { FileItem, getPresignedUrl } from \"@/components/uppy-dashboard\";\nimport { MessageRenderer } from \"@/components/message-renderer\";\nimport { Conversation, ConversationContent } from \"@/components/ai-elements/conversation\";\n\ninterface TestCaseModalProps {\n open: boolean;\n onClose: () => void;\n onSuccess: () => void;\n testCase?: TestCase | null;\n evalSetId?: string;\n}\n\nexport function TestCaseModal({\n open,\n onClose,\n evalSetId,\n onSuccess,\n testCase,\n}: TestCaseModalProps) {\n const { toast } = useToast();\n const isEditing = !!testCase;\n\n // Fetch tools from server\n const { data: toolsData } = useQuery<{\n tools: {\n items: Tool[]\n }\n }>(GET_TOOLS, {\n variables: { page: 1, limit: 100 },\n });\n\n // Split tools by type\n const { regularTools, agentTools, knowledgeSourceTools } = useMemo(() => {\n const tools = toolsData?.tools?.items || [];\n console.log(\"tools\", tools);\n return {\n regularTools: tools.filter(t => t.type === \"function\"),\n agentTools: tools.filter(t => t.type === \"agent\"),\n knowledgeSourceTools: tools.filter(t => t.type === \"context\"),\n };\n }, [toolsData]);\n\n // Basic fields\n const [name, setName] = useState(\"\");\n const [description, setDescription] = useState(\"\");\n const [expectedOutput, setExpectedOutput] = useState(\"\");\n\n // Conversation inputs (UIMessage array)\n const [inputs, setInputs] = useState<UIMessage[]>([]);\n const [currentInput, setCurrentInput] = useState(\"\");\n const [currentFiles, setCurrentFiles] = useState<string[] | null>(null);\n const [currentFileParts, setCurrentFileParts] = useState<FileUIPart[]>([]);\n\n // Optional expected fields\n const [expectedTools, setExpectedTools] = useState<string[]>([]);\n const [expectedKnowledgeSources, setExpectedKnowledgeSources] = useState<string[]>([]);\n const [expectedAgentTools, setExpectedAgentTools] = useState<string[]>([]);\n\n // Temp selectors\n const [selectedTool, setSelectedTool] = useState<string>(\"\");\n const [selectedContext, setSelectedContext] = useState<string>(\"\");\n const [selectedAgent, setSelectedAgent] = useState<string>(\"\");\n\n useEffect(() => {\n if (testCase && open) {\n setName(testCase.name);\n setDescription(testCase.description || \"\");\n setExpectedOutput(testCase.expected_output);\n setInputs(testCase.inputs || []);\n setExpectedTools(testCase.expected_tools || []);\n setExpectedKnowledgeSources(testCase.expected_knowledge_sources || []);\n setExpectedAgentTools(testCase.expected_agent_tools || []);\n } else if (!open) {\n // Reset when closing\n setName(\"\");\n setDescription(\"\");\n setExpectedOutput(\"\");\n setInputs([]);\n setCurrentInput(\"\");\n setCurrentFiles(null);\n setCurrentFileParts([]);\n setExpectedTools([]);\n setExpectedKnowledgeSources([]);\n setExpectedAgentTools([]);\n setSelectedTool(\"\");\n setSelectedContext(\"\");\n setSelectedAgent(\"\");\n }\n }, [testCase, open]);\n\n // Convert items to FileUIPart when files are selected\n const updateMessageFiles = async (keys: string[]) => {\n const files = await Promise.all(keys.map(async (key) => {\n /* if (!item.s3key) {\n // Take all item fields and turn into a data url\n let content = \"\";\n Object.entries(item).forEach(([key, value]) => {\n content += `${key}: ${value}\\n`\n })\n return {\n type: \"file\" as const,\n mediaType: item.type,\n filename: item.name,\n url: `data:text/plain;base64,${btoa(content)}`\n }\n } */\n\n return {\n type: \"file\" as const,\n mediaType: key.split(\".\").pop() || \"\",\n filename: key,\n url: await getPresignedUrl(key)\n }\n }))\n setCurrentFileParts(files)\n }\n\n useEffect(() => {\n if (!currentFiles || currentFiles.length === 0) {\n setCurrentFileParts([])\n return;\n }\n updateMessageFiles(currentFiles)\n }, [currentFiles])\n\n const [createTestCase, { loading: creating }] = useMutation(CREATE_TEST_CASE, {\n onCompleted: () => {\n toast({\n title: \"Test case created\",\n description: \"The test case has been successfully created.\",\n });\n onSuccess();\n },\n onError: (error) => {\n toast({\n title: \"Failed to create test case\",\n description: error.message,\n variant: \"destructive\",\n });\n },\n });\n\n const [updateTestCase, { loading: updating }] = useMutation(UPDATE_TEST_CASE, {\n onCompleted: () => {\n toast({\n title: \"Test case updated\",\n description: \"The test case has been successfully updated.\",\n });\n onSuccess();\n },\n onError: (error) => {\n toast({\n title: \"Failed to update test case\",\n description: error.message,\n variant: \"destructive\",\n });\n },\n });\n\n const handleAddMessage = () => {\n if (!currentInput.trim() && currentFileParts.length === 0) return;\n\n const parts: any[] = [];\n\n if (currentInput.trim()) {\n parts.push({\n type: \"text\",\n text: currentInput.trim(),\n });\n }\n\n // Add file parts\n if (currentFileParts.length > 0) {\n parts.push(...currentFileParts);\n }\n\n const newMessage: UIMessage = {\n id: `msg-${Date.now()}`,\n role: \"user\",\n parts,\n };\n\n const placeholderMessage: UIMessage = {\n id: `msg-${Date.now()}`,\n role: \"assistant\",\n metadata: {\n type: \"placeholder\",\n },\n parts: [{\n type: \"text\",\n text: \"💬 Placeholder, generated agent response will be added here when the test case is run...\",\n }],\n };\n\n setInputs([...inputs, newMessage, placeholderMessage]);\n setCurrentInput(\"\");\n setCurrentFiles(null);\n setCurrentFileParts([]);\n };\n\n const handleRemoveMessage = (index: number) => {\n setInputs(inputs.filter((_, i) => i !== index));\n };\n\n const handleAddTool = () => {\n console.log(\"selectedTool\", selectedTool);\n console.log(\"expectedTools\", expectedTools);\n if (selectedTool && !expectedTools.includes(selectedTool)) {\n console.log(\"adding tool\", selectedTool);\n console.log(\"new expectedTools\", [...expectedTools, selectedTool]);\n setExpectedTools([...expectedTools, selectedTool]);\n setSelectedTool(\"\");\n }\n };\n\n const handleAddContext = () => {\n console.log(\"selectedContext\", selectedContext);\n console.log(\"expectedKnowledgeSources\", expectedKnowledgeSources);\n if (selectedContext && !expectedKnowledgeSources.includes(selectedContext)) {\n console.log(\"adding context\", selectedContext);\n console.log(\"new expectedKnowledgeSources\", [...expectedKnowledgeSources, selectedContext]);\n setExpectedKnowledgeSources([...expectedKnowledgeSources, selectedContext]);\n setSelectedContext(\"\");\n }\n };\n\n const handleAddAgent = () => {\n console.log(\"selectedAgent\", selectedAgent);\n console.log(\"expectedAgentTools\", expectedAgentTools);\n if (selectedAgent && !expectedAgentTools.includes(selectedAgent)) {\n console.log(\"adding agent\", selectedAgent);\n console.log(\"new expectedAgentTools\", [...expectedAgentTools, selectedAgent]);\n setExpectedAgentTools([...expectedAgentTools, selectedAgent]);\n setSelectedAgent(\"\");\n }\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (!name.trim() || !expectedOutput.trim() || inputs.length === 0) {\n toast({\n title: \"Validation error\",\n description: \"Name, at least one input message, and expected output are required.\",\n variant: \"destructive\",\n });\n return;\n }\n\n const data = {\n name: name.trim(),\n description: description.trim() || null,\n inputs,\n expected_output: expectedOutput.trim(),\n expected_tools: expectedTools.length > 0 ? expectedTools : null,\n expected_knowledge_sources: expectedKnowledgeSources.length > 0 ? expectedKnowledgeSources : null,\n expected_agent_tools: expectedAgentTools.length > 0 ? expectedAgentTools : null,\n ...(evalSetId ? { eval_set_id: evalSetId } : {}),\n };\n\n if (isEditing) {\n updateTestCase({\n variables: {\n id: testCase.id,\n data,\n },\n });\n } else {\n createTestCase({\n variables: {\n data,\n },\n });\n }\n };\n\n const loading = creating || updating;\n\n const getToolName = (id: string) => {\n const tool = regularTools.find(t => t.id === id);\n return tool?.name || id;\n };\n\n const getContextName = (id: string) => {\n const context = knowledgeSourceTools.find(t => t.id === id);\n return context?.name || id;\n };\n\n const getAgentName = (id: string) => {\n const agent = agentTools.find(t => t.id === id);\n return agent?.name || id;\n };\n\n const getFileCount = (message: UIMessage) => {\n return message.parts.filter(part => part.type === \"file\").length;\n };\n\n return (\n <Dialog open={open} onOpenChange={onClose}>\n <DialogContent className=\"max-w-4xl max-h-[90vh] overflow-hidden flex flex-col\">\n <DialogHeader>\n <DialogTitle>{isEditing ? \"Edit Test Case\" : \"Create Test Case\"} {evalSetId ? `for Eval Set: ${evalSetId}` : \"\"}</DialogTitle>\n <DialogDescription>\n {isEditing ? \"Update the test case details.\" : \"Create a new test case with conversation inputs and expected outputs.\"}\n </DialogDescription>\n </DialogHeader>\n\n <form onSubmit={handleSubmit} className=\"flex-1 overflow-hidden flex flex-col\">\n <Tabs defaultValue=\"basic\" className=\"flex-1 overflow-hidden flex flex-col\">\n <TabsList className=\"grid w-full grid-cols-2\">\n <TabsTrigger value=\"basic\" className=\"gap-2\">\n <Info className=\"h-4 w-4\" />\n Basic Info\n </TabsTrigger>\n <TabsTrigger value=\"conversation\" className=\"gap-2\">\n <MessageSquare className=\"h-4 w-4\" />\n Conversation\n </TabsTrigger>\n {/* <TabsTrigger value=\"expected\" className=\"gap-2\">\n <Settings2 className=\"h-4 w-4\" />\n Expected Tools\n </TabsTrigger> */}\n </TabsList>\n\n <ScrollArea className=\"flex-1\">\n <TabsContent value=\"basic\" className=\"space-y-4 p-1 mt-4\">\n <div className=\"grid gap-5\">\n <div className=\"grid gap-2\">\n <Label htmlFor=\"name\">Name *</Label>\n <Input\n id=\"name\"\n placeholder=\"e.g., Customer Support - Refund Request\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n disabled={loading}\n required\n />\n </div>\n <div className=\"grid gap-2\">\n <Label htmlFor=\"description\">Description</Label>\n <Textarea\n id=\"description\"\n placeholder=\"Describe what this test case evaluates...\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n disabled={loading}\n rows={3}\n />\n </div>\n <div className=\"grid gap-2\">\n <Label htmlFor=\"expectedOutput\">Expected Output *</Label>\n <Textarea\n id=\"expectedOutput\"\n placeholder=\"Describe the expected final output (e.g., 'A JSON object containing refund details', 'An empathetic response offering alternatives')\"\n value={expectedOutput}\n onChange={(e) => setExpectedOutput(e.target.value)}\n disabled={loading}\n rows={4}\n required\n />\n <p className=\"text-xs text-muted-foreground\">\n This can be an exact expected response or a description of what the output should contain.\n </p>\n </div>\n </div>\n </TabsContent>\n\n <TabsContent value=\"conversation\" className=\"space-y-4 p-1 mt-4\">\n <Card>\n <CardHeader className=\"pb-3\">\n <div className=\"flex items-start justify-between\">\n <div>\n <CardTitle className=\"text-sm flex items-center gap-2\">\n <MessageSquare className=\"h-4 w-4\" />\n Conversation Flow\n {inputs.length > 0 && (\n <Badge variant=\"secondary\" className=\"ml-2\">\n {inputs.length} {inputs.length === 1 ? 'message' : 'messages'}\n </Badge>\n )}\n </CardTitle>\n <CardDescription className=\"mt-1.5\">\n Add user messages in order. The agent will run through this conversation flow and respond between each message automatically.\n </CardDescription>\n </div>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-6\">\n\n {inputs?.length === 0 ? (\n <div className=\"flex flex-col items-center justify-center py-12 px-4 text-center border-2 border-dashed border-muted rounded-lg\">\n <Sparkles className=\"h-12 w-12 text-muted-foreground/50 mb-4\" />\n <h3 className=\"font-semibold text-lg mb-2\">No messages yet</h3>\n <p className=\"text-sm text-muted-foreground max-w-sm\">\n Start building your test conversation by adding user messages below.\n </p>\n </div>\n ) : (\n /* @ts-ignore */\n <Conversation className=\"max-h-[350px] overflow-y-auto border rounded-lg bg-muted/30 transition-all duration-300 ease-in-out\">\n {/* @ts-ignore */}\n <ConversationContent className=\"px-6 py-4\">\n <div className=\"animate-in fade-in duration-500\">\n <MessageRenderer\n messages={inputs}\n config={{\n marginTopFirstMessage: 'mt-0',\n customAssistantClassnames: 'bg-secondary/50 rounded-lg px-3 py-1 border-l-2 border-primary/30'\n }}\n status={\"ready\"}\n showActions={false}\n writeAccess={false}\n />\n </div>\n </ConversationContent>\n </Conversation>\n )}\n\n <div className=\"space-y-3 pt-2 border-t\">\n <Label htmlFor=\"currentInput\" className=\"text-sm font-semibold\">Add User Message</Label>\n <div className=\"space-y-3\">\n <Textarea\n id=\"currentInput\"\n placeholder=\"Type the user's message...\"\n value={currentInput}\n onChange={(e) => setCurrentInput(e.target.value)}\n disabled={loading}\n rows={2}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n handleAddMessage();\n }\n }}\n />\n\n <div className=\"flex items-center gap-2\">\n <UppyDashboard\n id=\"test-case-files\"\n selectionLimit={10}\n allowedFileTypes={[\n '.png', '.jpg', '.jpeg', '.gif', '.webp',\n '.pdf', '.docx', '.xlsx', '.xls', '.csv', '.pptx', '.ppt',\n '.mp3', '.wav', '.m4a', '.mp4', '.mpeg'\n ]}\n dependencies={[]}\n onConfirm={(items) => {\n setCurrentFiles(items)\n }}\n />\n\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={handleAddMessage}\n disabled={loading || (!currentInput.trim() && currentFileParts.length === 0)}\n className=\"ml-auto\"\n size=\"default\"\n >\n <Plus className=\"h-4 w-4 mr-2\" />\n Add Message\n </Button>\n </div>\n\n {currentFiles && currentFiles.length > 0 && (\n <>\n <div className=\"grid grid-cols-3 gap-2\">\n {currentFiles.map((item) => (\n <FileItem\n s3Key={item}\n disabled={true}\n active={false}\n onRemove={() => {\n setCurrentFiles(currentFiles?.filter((i) => i !== item))\n }}\n />\n ))}\n </div>\n <div className=\"flex items-start gap-2 p-3 bg-amber-500/10 border border-amber-500/20 rounded-lg\">\n <AlertCircle className=\"h-4 w-4 text-amber-600 dark:text-amber-500 mt-0.5 flex-shrink-0\" />\n <p className=\"text-xs text-amber-900 dark:text-amber-200\">\n <strong>Note:</strong> When running this test case, ensure the selected agent supports the file types you've attached here (images, documents, audio, etc.).\n </p>\n </div>\n </>\n )}\n </div>\n <p className=\"text-xs text-muted-foreground\">\n Press Enter to add, Shift+Enter for new line. You can attach files to messages.\n </p>\n </div>\n </CardContent>\n </Card>\n </TabsContent>\n\n {/* <TabsContent value=\"expected\" className=\"space-y-4 p-1 mt-4\">\n <div className=\"grid gap-5\">\n <Card className=\"border-l-2 border-l-blue-500/30\">\n <CardHeader className=\"pb-3\">\n <CardTitle className=\"text-sm flex items-center gap-2\">\n <Settings2 className=\"h-4 w-4\" />\n Expected Tools (Optional)\n {expectedTools.length > 0 && (\n <Badge variant=\"secondary\" className=\"ml-2\">\n {expectedTools.length}\n </Badge>\n )}\n </CardTitle>\n <CardDescription>Regular tools that should be used during the conversation</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n <div className=\"flex gap-2 flex-wrap\">\n {expectedTools.map((toolId, index) => (\n <Badge key={index} variant=\"secondary\">\n {getToolName(toolId)}\n <button\n type=\"button\"\n onClick={() => setExpectedTools(expectedTools.filter((_, i) => i !== index))}\n className=\"ml-2 hover:text-destructive\">\n ×\n </button>\n </Badge>\n ))}\n </div>\n <div className=\"flex gap-2\">\n <Select value={selectedTool} onValueChange={setSelectedTool} disabled={loading}>\n <SelectTrigger className=\"flex-1\">\n <SelectValue placeholder=\"Select a tool to add...\" />\n </SelectTrigger>\n <SelectContent>\n {regularTools.map((tool) => (\n <SelectItem key={tool.id} value={tool.id}>\n {tool.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Button\n type=\"button\"\n onClick={handleAddTool}\n disabled={loading || !selectedTool}\n className=\"gap-1.5\"\n variant={selectedTool ? \"default\" : \"outline\"}\n >\n <Plus className=\"h-4 w-4\" />\n <span className=\"hidden sm:inline\">Add</span>\n </Button>\n </div>\n {!selectedTool && (\n <p className=\"text-xs text-muted-foreground/75 italic\">\n Select a tool from the dropdown, then click Add\n </p>\n )}\n </CardContent>\n </Card>\n\n <Card className=\"border-l-2 border-l-purple-500/30\">\n <CardHeader className=\"pb-3\">\n <CardTitle className=\"text-sm flex items-center gap-2\">\n <FileText className=\"h-4 w-4\" />\n Expected Knowledge Sources (Optional)\n {expectedKnowledgeSources.length > 0 && (\n <Badge variant=\"secondary\" className=\"ml-2\">\n {expectedKnowledgeSources.length}\n </Badge>\n )}\n </CardTitle>\n <CardDescription>Context/knowledge sources that should be used</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n <div className=\"flex gap-2 flex-wrap\">\n {expectedKnowledgeSources.map((contextId, index) => (\n <Badge key={index} variant=\"secondary\">\n {getContextName(contextId)}\n <button\n type=\"button\"\n onClick={() => setExpectedKnowledgeSources(expectedKnowledgeSources.filter((_, i) => i !== index))}\n className=\"ml-2 hover:text-destructive\"\n >\n ×\n </button>\n </Badge>\n ))}\n </div>\n <div className=\"flex gap-2\">\n <Select value={selectedContext} onValueChange={setSelectedContext} disabled={loading}>\n <SelectTrigger className=\"flex-1\">\n <SelectValue placeholder=\"Select a knowledge source to add...\" />\n </SelectTrigger>\n <SelectContent>\n {knowledgeSourceTools.map((context) => (\n <SelectItem key={context.id} value={context.id}>\n {context.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Button\n type=\"button\"\n onClick={handleAddContext}\n disabled={loading || !selectedContext}\n className=\"gap-1.5\"\n variant={selectedContext ? \"default\" : \"outline\"}\n >\n <Plus className=\"h-4 w-4\" />\n <span className=\"hidden sm:inline\">Add</span>\n </Button>\n </div>\n {!selectedContext && (\n <p className=\"text-xs text-muted-foreground/75 italic\">\n Select a knowledge source from the dropdown, then click Add\n </p>\n )}\n </CardContent>\n </Card>\n\n <Card className=\"border-l-2 border-l-green-500/30\">\n <CardHeader className=\"pb-3\">\n <CardTitle className=\"text-sm flex items-center gap-2\">\n <Sparkles className=\"h-4 w-4\" />\n Expected Agent Tools (Optional)\n {expectedAgentTools.length > 0 && (\n <Badge variant=\"secondary\" className=\"ml-2\">\n {expectedAgentTools.length}\n </Badge>\n )}\n </CardTitle>\n <CardDescription>Agents that should be called as tools</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n <div className=\"flex gap-2 flex-wrap\">\n {expectedAgentTools.map((agentId, index) => (\n <Badge key={index} variant=\"secondary\">\n {getAgentName(agentId)}\n <button\n type=\"button\"\n onClick={() => setExpectedAgentTools(expectedAgentTools.filter((_, i) => i !== index))}\n className=\"ml-2 hover:text-destructive\"\n >\n ×\n </button>\n </Badge>\n ))}\n </div>\n <div className=\"flex gap-2\">\n <Select value={selectedAgent} onValueChange={setSelectedAgent} disabled={loading}>\n <SelectTrigger className=\"flex-1\">\n <SelectValue placeholder=\"Select an agent to add...\" />\n </SelectTrigger>\n <SelectContent>\n {agentTools.map((agent) => (\n <SelectItem key={agent.id} value={agent.id}>\n {agent.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Button\n type=\"button\"\n onClick={handleAddAgent}\n disabled={loading || !selectedAgent}\n className=\"gap-1.5\"\n variant={selectedAgent ? \"default\" : \"outline\"}\n >\n <Plus className=\"h-4 w-4\" />\n <span className=\"hidden sm:inline\">Add</span>\n </Button>\n </div>\n {!selectedAgent && (\n <p className=\"text-xs text-muted-foreground/75 italic\">\n Select an agent from the dropdown, then click Add\n </p>\n )}\n </CardContent>\n </Card>\n </div>\n </TabsContent> */}\n </ScrollArea>\n </Tabs>\n\n <DialogFooter className=\"mt-4 gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={onClose}\n disabled={loading}\n >\n Cancel\n </Button>\n <Button\n type=\"submit\"\n disabled={loading || !name.trim() || !expectedOutput.trim() || inputs.length === 0}\n className=\"shadow-sm hover:shadow-md transition-all\"\n >\n {loading && <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />}\n {isEditing ? \"Update Test Case\" : \"Create Test Case\"}\n </Button>\n </DialogFooter>\n </form>\n </DialogContent>\n </Dialog >\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","\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","\"use client\";\n\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","\"use client\";\n\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"size-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","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"],"names":["TestCaseModal","param","open","onClose","evalSetId","onSuccess","testCase","toast","useToast","isEditing","data","toolsData","useQuery","GET_TOOLS","variables","page","limit","regularTools","agentTools","knowledgeSourceTools","useMemo","tools","items","console","log","filter","t","type","name","setName","useState","description","setDescription","expectedOutput","setExpectedOutput","inputs","setInputs","currentInput","setCurrentInput","currentFiles","setCurrentFiles","currentFileParts","setCurrentFileParts","expectedTools","setExpectedTools","expectedKnowledgeSources","setExpectedKnowledgeSources","expectedAgentTools","setExpectedAgentTools","selectedTool","setSelectedTool","selectedContext","setSelectedContext","selectedAgent","setSelectedAgent","useEffect","expected_output","expected_tools","expected_knowledge_sources","expected_agent_tools","updateMessageFiles","keys","Promise","all","map","key","mediaType","split","pop","filename","url","getPresignedUrl","length","createTestCase","loading","creating","useMutation","CREATE_TEST_CASE","onCompleted","title","onError","error","message","variant","updateTestCase","updating","UPDATE_TEST_CASE","handleAddMessage","trim","parts","push","text","id","concat","Date","now","role","metadata","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Dialog","onOpenChange","jsxs","DialogContent","className","DialogHeader","DialogTitle","DialogDescription","form","onSubmit","e","preventDefault","eval_set_id","Tabs","defaultValue","TabsList","TabsTrigger","value","Info","MessageSquare","ScrollArea","TabsContent","div","Label","htmlFor","Input","placeholder","onChange","target","disabled","required","Textarea","rows","p","Card","CardHeader","CardTitle","Badge","CardDescription","CardContent","Sparkles","h3","Conversation","ConversationContent","MessageRenderer","messages","config","marginTopFirstMessage","customAssistantClassnames","status","showActions","writeAccess","onKeyDown","shiftKey","UppyDashboard","selectionLimit","allowedFileTypes","dependencies","onConfirm","Button","onClick","size","Plus","Fragment","FileItem","s3Key","item","active","onRemove","i","AlertCircle","strong","DialogFooter","Loader2","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","props","cn","React","ref","displayName","CardFooter","DialogPrimitive","DialogTrigger","DialogPortal","DialogOverlay","children","X","span","labelVariants","LabelPrimitive","ScrollAreaPrimitive","ScrollBar","orientation","textarea"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2823],{42833:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("ArchiveX",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"m9.5 17 5-5",key:"nakeu6"}],["path",{d:"m9.5 12 5 5",key:"1hccrj"}]])},9334:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]])},32660:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},49277:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("FileStack",[["path",{d:"M16 2v5h5",key:"kt2in0"}],["path",{d:"M21 6v6.5c0 .8-.7 1.5-1.5 1.5h-7c-.8 0-1.5-.7-1.5-1.5v-9c0-.8.7-1.5 1.5-1.5H17l4 4z",key:"1km23n"}],["path",{d:"M7 8v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H15",key:"16874u"}],["path",{d:"M3 12v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H11",key:"k2ox98"}]])},14924:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},41905:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]])},45554:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("ListChecks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]])},15001:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Loader",[["line",{x1:"12",x2:"12",y1:"2",y2:"6",key:"gza1u7"}],["line",{x1:"12",x2:"12",y1:"18",y2:"22",key:"1qhbu9"}],["line",{x1:"4.93",x2:"7.76",y1:"4.93",y2:"7.76",key:"xae44r"}],["line",{x1:"16.24",x2:"19.07",y1:"16.24",y2:"19.07",key:"bxnmvf"}],["line",{x1:"2",x2:"6",y1:"12",y2:"12",key:"89khin"}],["line",{x1:"18",x2:"22",y1:"12",y2:"12",key:"pb8tfm"}],["line",{x1:"4.93",x2:"7.76",y1:"19.07",y2:"16.24",key:"1uxjnu"}],["line",{x1:"16.24",x2:"19.07",y1:"7.76",y2:"4.93",key:"6duxfx"}]])},21563:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("PackageOpen",[["path",{d:"M20.91 8.84 8.56 2.23a1.93 1.93 0 0 0-1.81 0L3.1 4.13a2.12 2.12 0 0 0-.05 3.69l12.22 6.93a2 2 0 0 0 1.94 0L21 12.51a2.12 2.12 0 0 0-.09-3.67Z",key:"1vy178"}],["path",{d:"m3.09 8.84 12.35-6.61a1.93 1.93 0 0 1 1.81 0l3.65 1.9a2.12 2.12 0 0 1 .1 3.69L8.73 14.75a2 2 0 0 1-1.94 0L3 12.51a2.12 2.12 0 0 1 .09-3.67Z",key:"s3bv25"}],["line",{x1:"12",x2:"12",y1:"22",y2:"13",key:"1o4xyi"}],["path",{d:"M20 13.5v3.37a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13.5",key:"1na2nq"}]])},45675:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Pencil",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},99397:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},69493:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("StepForward",[["line",{x1:"6",x2:"6",y1:"4",y2:"20",key:"fy8qot"}],["polygon",{points:"10,4 20,12 10,20",key:"1mc1pf"}]])},23374:function(e,t,n){n.d(t,{OT:function(){return er},eh:function(){return ee},s_:function(){return z}});var r,l=n(2265);let{createElement:a,createContext:i,createRef:u,forwardRef:o,useCallback:c,useContext:d,useEffect:s,useImperativeHandle:f,useLayoutEffect:p,useMemo:h,useRef:y,useState:m}=r||(r=n.t(l,2)),v=(r||(r=n.t(l,2)))["useId".toString()],g=i(null);g.displayName="PanelGroupContext";let b="function"==typeof v?v:()=>null,x=0;function k(e=null){let t=b(),n=y(e||t||null);return null===n.current&&(n.current=""+x++),null!=e?e:n.current}function w({children:e,className:t="",collapsedSize:n,collapsible:r,defaultSize:l,forwardedRef:i,id:u,maxSize:o,minSize:c,onCollapse:s,onExpand:h,onResize:m,order:v,style:b,tagName:x="div",...w}){let z=d(g);if(null===z)throw Error("Panel components must be rendered within a PanelGroup container");let{collapsePanel:M,expandPanel:E,getPanelSize:C,getPanelStyle:I,groupId:A,isPanelCollapsed:S,reevaluatePanelConstraints:L,registerPanel:j,resizePanel:D,unregisterPanel:N}=z,P=k(u),Z=y({callbacks:{onCollapse:s,onExpand:h,onResize:m},constraints:{collapsedSize:n,collapsible:r,defaultSize:l,maxSize:o,minSize:c},id:P,idIsFromProps:void 0!==u,order:v});y({didLogMissingDefaultSizeWarning:!1}),p(()=>{let{callbacks:e,constraints:t}=Z.current,a={...t};Z.current.id=P,Z.current.idIsFromProps=void 0!==u,Z.current.order=v,e.onCollapse=s,e.onExpand=h,e.onResize=m,t.collapsedSize=n,t.collapsible=r,t.defaultSize=l,t.maxSize=o,t.minSize=c,(a.collapsedSize!==t.collapsedSize||a.collapsible!==t.collapsible||a.maxSize!==t.maxSize||a.minSize!==t.minSize)&&L(Z.current,a)}),p(()=>{let e=Z.current;return j(e),()=>{N(e)}},[v,P,j,N]),f(i,()=>({collapse:()=>{M(Z.current)},expand:()=>{E(Z.current)},getId:()=>P,getSize:()=>C(Z.current),isCollapsed:()=>S(Z.current),isExpanded:()=>!S(Z.current),resize:e=>{D(Z.current,e)}}),[M,E,C,S,P,D]);let R=I(Z.current,l);return a(x,{...w,children:e,className:t,style:{...R,...b},"data-panel":"","data-panel-id":P,"data-panel-group-id":A,"data-panel-collapsible":void 0,"data-panel-size":void 0})}let z=o((e,t)=>a(w,{...e,forwardedRef:t}));function M(e,t="Assertion failed!"){if(!e)throw console.error(t),Error(t)}function E(e,t,n=10){let r=(e=parseFloat(e.toFixed(n)))-(t=parseFloat(t.toFixed(n)));return 0===r?0:r>0?1:-1}function C(e,t,n){return 0===E(e,t,n)}function I({panelConstraints:e,panelIndex:t,size:n}){let r=e[t];M(null!=r);let{collapsedSize:l=0,collapsible:a,maxSize:i=100,minSize:u=0}=r;return 0>E(n,u)&&(n=a&&0>E(n,(l+u)/2)?l:u),n=parseFloat((n=Math.min(i,n)).toFixed(10))}function A({delta:e,layout:t,panelConstraints:n,pivotIndices:r,trigger:l}){if(C(e,0))return t;let a=[...t],[i,u]=r;M(null!=i),M(null!=u);let o=0;if("keyboard"===l){{let r=e<0?u:i,l=n[r];if(M(l),l.collapsible){let l=t[r];M(null!=l);let a=n[r];M(a);let{collapsedSize:i=0,minSize:u=0}=a;if(C(l,i)){let t=u-l;E(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let r=e<0?i:u,l=n[r];M(l);let{collapsible:a}=l;if(a){let l=t[r];M(null!=l);let a=n[r];M(a);let{collapsedSize:i=0,minSize:u=0}=a;if(C(l,u)){let t=l-i;E(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let r=e<0?1:-1,l=e<0?u:i,a=0;for(;;){let e=t[l];if(M(null!=e),a+=I({panelConstraints:n,panelIndex:l,size:100})-e,(l+=r)<0||l>=n.length)break}let o=Math.min(Math.abs(e),Math.abs(a));e=e<0?0-o:o}{let r=e<0?i:u;for(;r>=0&&r<n.length;){let l=Math.abs(e)-Math.abs(o),i=t[r];M(null!=i);let u=I({panelConstraints:n,panelIndex:r,size:i-l});if(!C(i,u)&&(o+=i-u,a[r]=u,o.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?r--:r++}}if(C(o,0))return t;{let r=e<0?u:i,l=t[r];M(null!=l);let c=l+o,d=I({panelConstraints:n,panelIndex:r,size:c});if(a[r]=d,!C(d,c)){let t=c-d,r=e<0?u:i;for(;r>=0&&r<n.length;){let l=a[r];M(null!=l);let i=I({panelConstraints:n,panelIndex:r,size:l+t});if(C(l,i)||(t-=i-l,a[r]=i),C(t,0))break;e>0?r--:r++}}}return C(a.reduce((e,t)=>t+e,0),100)?a:t}function S(e,t=document){return Array.from(t.querySelectorAll(`[data-panel-resize-handle-id][data-panel-group-id="${e}"]`))}function L(e,t,n=document){let r=S(e,n).findIndex(e=>e.getAttribute("data-panel-resize-handle-id")===t);return null!=r?r:null}function j(e,t,n){let r=L(e,t,n);return null!=r?[r,r+1]:[-1,-1]}function D(e,t=document){var n;return t instanceof HTMLElement&&(null==t?void 0:null===(n=t.dataset)||void 0===n?void 0:n.panelGroupId)==e?t:t.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`)||null}function N(e,t=document){return t.querySelector(`[data-panel-resize-handle-id="${e}"]`)||null}function P(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Z(e){return"keydown"===e.type}function R(e){return e.type.startsWith("mouse")}function T(e){return e.type.startsWith("touch")}function F(e,t){let n="horizontal"===e;if(R(t))return n?t.clientX:t.clientY;if(T(t)){let e=t.touches[0];return M(e),n?e.screenX:e.screenY}throw Error(`Unsupported event type "${t.type}"`)}function V(e,t,n){t.forEach((t,r)=>{let l=e[r];M(l);let{callbacks:a,constraints:i,id:u}=l,{collapsedSize:o=0,collapsible:c}=i,d=n[u];if(null==d||t!==d){n[u]=t;let{onCollapse:e,onExpand:r,onResize:l}=a;l&&l(t,d),c&&(e||r)&&(r&&(null==d||d===o)&&t!==o&&r(),e&&(null==d||d!==o)&&t===o&&e())}})}function H(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}w.displayName="Panel",z.displayName="forwardRef(Panel)";let W=null,$=null;function O(e){switch(e){case"horizontal":return"ew-resize";case"horizontal-max":return"w-resize";case"horizontal-min":return"e-resize";case"vertical":return"ns-resize";case"vertical-max":return"n-resize";case"vertical-min":return"s-resize"}}function q(e){if(W===e)return;W=e;let t=O(e);null===$&&($=document.createElement("style"),document.head.appendChild($)),$.innerHTML=`*{cursor: ${t}!important;}`}function G(e){try{if("undefined"!=typeof localStorage)e.getItem=e=>localStorage.getItem(e),e.setItem=(e,t)=>{localStorage.setItem(e,t)};else throw Error("localStorage not supported in this environment")}catch(t){console.error(t),e.getItem=()=>null,e.setItem=()=>{}}}function _(e){return`react-resizable-panels:${e}`}function K(e){return e.map(e=>{let{constraints:t,id:n,idIsFromProps:r,order:l}=e;return r?n:l?`${l}:${JSON.stringify(t)}`:JSON.stringify(t)}).sort((e,t)=>e.localeCompare(t)).join(",")}function B(e,t){try{let n=_(e),r=t.getItem(n);if(r){let e=JSON.parse(r);if("object"==typeof e&&null!=e)return e}}catch(e){}return null}function J(e,t,n,r,l){var a;let i=_(e),u=K(t),o=null!==(a=B(e,l))&&void 0!==a?a:{};o[u]={expandToSizes:Object.fromEntries(n.entries()),layout:r};try{l.setItem(i,JSON.stringify(o))}catch(e){console.error(e)}}function U({layout:e,panelConstraints:t}){let n=[...e],r=n.reduce((e,t)=>e+t,0);if(n.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${n.map(e=>`${e}%`).join(", ")}`);if(!C(r,100))for(let e=0;e<t.length;e++){let t=n[e];M(null!=t);let l=100/r*t;n[e]=l}let l=0;for(let e=0;e<t.length;e++){let r=n[e];M(null!=r);let a=I({panelConstraints:t,panelIndex:e,size:r});r!=a&&(l+=r-a,n[e]=a)}if(!C(l,0))for(let e=0;e<t.length;e++){let r=n[e];M(null!=r);let a=I({panelConstraints:t,panelIndex:e,size:r+l});if(r!==a&&(l-=a-r,n[e]=a,C(l,0)))break}return n}let X={getItem:e=>(G(X),X.getItem(e)),setItem:(e,t)=>{G(X),X.setItem(e,t)}},Y={};function Q({autoSaveId:e=null,children:t,className:n="",direction:r,forwardedRef:l,id:i=null,onLayout:u=null,keyboardResizeBy:o=null,storage:d=X,style:v,tagName:b="div",...x}){let w=k(i),z=y(null),[E,I]=m(null),[L,O]=m([]),G=y({}),_=y(new Map),Q=y(0),ee=y({autoSaveId:e,direction:r,dragState:E,id:w,keyboardResizeBy:o,onLayout:u,storage:d}),er=y({layout:L,panelDataArray:[],panelDataArrayChanged:!1});y({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),f(l,()=>({getId:()=>ee.current.id,getLayout:()=>{let{layout:e}=er.current;return e},setLayout:e=>{let{onLayout:t}=ee.current,{layout:n,panelDataArray:r}=er.current,l=U({layout:e,panelConstraints:r.map(e=>e.constraints)});P(n,l)||(O(l),er.current.layout=l,t&&t(l),V(r,l,G.current))}}),[]),p(()=>{ee.current.autoSaveId=e,ee.current.direction=r,ee.current.dragState=E,ee.current.id=w,ee.current.onLayout=u,ee.current.storage=d}),function({committedValuesRef:e,eagerValuesRef:t,groupId:n,layout:r,panelDataArray:l,panelGroupElement:a,setLayout:i}){y({didWarnAboutMissingResizeHandle:!1}),p(()=>{if(!a)return;let e=S(n,a);for(let t=0;t<l.length-1;t++){let{valueMax:n,valueMin:a,valueNow:i}=function({layout:e,panelsArray:t,pivotIndices:n}){let r=0,l=100,a=0,i=0,u=n[0];return M(null!=u),t.forEach((e,t)=>{let{constraints:n}=e,{maxSize:o=100,minSize:c=0}=n;t===u?(r=c,l=o):(a+=c,i+=o)}),{valueMax:Math.min(l,100-a),valueMin:Math.max(r,100-i),valueNow:e[u]}}({layout:r,panelsArray:l,pivotIndices:[t,t+1]}),u=e[t];if(null==u);else{let e=l[t];M(e),u.setAttribute("aria-controls",e.id),u.setAttribute("aria-valuemax",""+Math.round(n)),u.setAttribute("aria-valuemin",""+Math.round(a)),u.setAttribute("aria-valuenow",null!=i?""+Math.round(i):"")}}return()=>{e.forEach((e,t)=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-valuemax"),e.removeAttribute("aria-valuemin"),e.removeAttribute("aria-valuenow")})}},[n,r,l,a]),s(()=>{if(!a)return;let e=t.current;M(e);let{panelDataArray:l}=e;M(null!=D(n,a),`No group found for id "${n}"`);let u=S(n,a);M(u);let o=u.map(e=>{let t=e.getAttribute("data-panel-resize-handle-id");M(t);let[u,o]=function(e,t,n,r=document){var l,a,i,u;let o=N(t,r),c=S(e,r),d=o?c.indexOf(o):-1;return[null!==(l=null===(a=n[d])||void 0===a?void 0:a.id)&&void 0!==l?l:null,null!==(i=null===(u=n[d+1])||void 0===u?void 0:u.id)&&void 0!==i?i:null]}(n,t,l,a);if(null==u||null==o)return()=>{};let c=e=>{if(!e.defaultPrevented&&"Enter"===e.key){e.preventDefault();let o=l.findIndex(e=>e.id===u);if(o>=0){let e=l[o];M(e);let u=r[o],{collapsedSize:c=0,collapsible:d,minSize:s=0}=e.constraints;if(null!=u&&d){let e=A({delta:C(u,c)?s-c:c-u,layout:r,panelConstraints:l.map(e=>e.constraints),pivotIndices:j(n,t,a),trigger:"keyboard"});r!==e&&i(e)}}}};return e.addEventListener("keydown",c),()=>{e.removeEventListener("keydown",c)}});return()=>{o.forEach(e=>e())}},[a,e,t,n,r,l,i])}({committedValuesRef:ee,eagerValuesRef:er,groupId:w,layout:L,panelDataArray:er.current.panelDataArray,setLayout:O,panelGroupElement:z.current}),s(()=>{let{panelDataArray:t}=er.current;if(e){if(0===L.length||L.length!==t.length)return;let n=Y[e];null==n&&(n=function(e,t=10){let n=null;return(...r)=>{null!==n&&clearTimeout(n),n=setTimeout(()=>{e(...r)},t)}}(J,100),Y[e]=n),n(e,[...t],new Map(_.current),L,d)}},[e,L,d]),s(()=>{});let el=c(e=>{let{onLayout:t}=ee.current,{layout:n,panelDataArray:r}=er.current;if(e.constraints.collapsible){let l=r.map(e=>e.constraints),{collapsedSize:a=0,panelSize:i,pivotIndices:u}=en(r,e,n);if(M(null!=i),i!==a){_.current.set(e.id,i);let o=A({delta:et(r,e)===r.length-1?i-a:a-i,layout:n,panelConstraints:l,pivotIndices:u,trigger:"imperative-api"});H(n,o)||(O(o),er.current.layout=o,t&&t(o),V(r,o,G.current))}}},[]),ea=c(e=>{let{onLayout:t}=ee.current,{layout:n,panelDataArray:r}=er.current;if(e.constraints.collapsible){let l=r.map(e=>e.constraints),{collapsedSize:a=0,panelSize:i,minSize:u=0,pivotIndices:o}=en(r,e,n);if(i===a){let a=_.current.get(e.id),c=null!=a&&a>=u?a:u,d=A({delta:et(r,e)===r.length-1?i-c:c-i,layout:n,panelConstraints:l,pivotIndices:o,trigger:"imperative-api"});H(n,d)||(O(d),er.current.layout=d,t&&t(d),V(r,d,G.current))}}},[]),ei=c(e=>{let{layout:t,panelDataArray:n}=er.current,{panelSize:r}=en(n,e,t);return M(null!=r),r},[]),eu=c((e,t)=>{let{panelDataArray:n}=er.current,r=et(n,e);return function({defaultSize:e,dragState:t,layout:n,panelData:r,panelIndex:l,precision:a=3}){let i=n[l];return{flexBasis:0,flexGrow:null==i?null!=e?e:"1":1===r.length?"1":i.toPrecision(a),flexShrink:1,overflow:"hidden",pointerEvents:null!==t?"none":void 0}}({defaultSize:t,dragState:E,layout:L,panelData:n,panelIndex:r})},[E,L]),eo=c(e=>{let{layout:t,panelDataArray:n}=er.current,{collapsedSize:r=0,collapsible:l,panelSize:a}=en(n,e,t);return!0===l&&a===r},[]),ec=c(e=>{let{layout:t,panelDataArray:n}=er.current,{collapsedSize:r=0,collapsible:l,panelSize:a}=en(n,e,t);return M(null!=a),!l||a>r},[]),ed=c(e=>{let{panelDataArray:t}=er.current;t.push(e),t.sort((e,t)=>{let n=e.order,r=t.order;return null==n&&null==r?0:null==n?-1:null==r?1:n-r}),er.current.panelDataArrayChanged=!0},[]);p(()=>{if(er.current.panelDataArrayChanged){er.current.panelDataArrayChanged=!1;let{autoSaveId:n,onLayout:r,storage:l}=ee.current,{layout:a,panelDataArray:i}=er.current,u=null;if(n){var e,t;let r=null!==(t=(null!==(e=B(n,l))&&void 0!==e?e:{})[K(i)])&&void 0!==t?t:null;r&&(_.current=new Map(Object.entries(r.expandToSizes)),u=r.layout)}null==u&&(u=function({panelDataArray:e}){let t=Array(e.length),n=e.map(e=>e.constraints),r=0,l=100;for(let a=0;a<e.length;a++){let e=n[a];M(e);let{defaultSize:i}=e;null!=i&&(r++,t[a]=i,l-=i)}for(let a=0;a<e.length;a++){let i=n[a];M(i);let{defaultSize:u}=i;if(null!=u)continue;let o=l/(e.length-r);r++,t[a]=o,l-=o}return t}({panelDataArray:i}));let o=U({layout:u,panelConstraints:i.map(e=>e.constraints)});P(a,o)||(O(o),er.current.layout=o,r&&r(o),V(i,o,G.current))}});let es=c(e=>function(t){t.preventDefault();let n=z.current;if(!n)return()=>null;let{direction:r,dragState:l,id:a,keyboardResizeBy:i,onLayout:u}=ee.current,{layout:o,panelDataArray:c}=er.current,{initialLayout:d}=null!=l?l:{},s=j(a,e,n),f=function(e,t,n,r,l,a){if(Z(e)){let t="horizontal"===n,r=0;r=e.shiftKey?100:null!=l?l:10;let a=0;switch(e.key){case"ArrowDown":a=t?0:r;break;case"ArrowLeft":a=t?-r:0;break;case"ArrowRight":a=t?r:0;break;case"ArrowUp":a=t?0:-r;break;case"End":a=100;break;case"Home":a=-100}return a}return null==r?0:function(e,t,n,r,l){let a="horizontal"===n,i=N(t,l);M(i);let u=i.getAttribute("data-panel-group-id");M(u);let{initialCursorPosition:o}=r,c=F(n,e),d=D(u,l);M(d);let s=d.getBoundingClientRect();return(c-o)/(a?s.width:s.height)*100}(e,t,n,r,a)}(t,e,r,l,i,n);if(0===f)return;let p="horizontal"===r;"rtl"===document.dir&&p&&(f=-f);let h=A({delta:f,layout:null!=d?d:o,panelConstraints:c.map(e=>e.constraints),pivotIndices:s,trigger:Z(t)?"keyboard":"mouse-or-touch"}),y=!H(o,h);(R(t)||T(t))&&Q.current!=f&&(Q.current=f,y?q(p?"horizontal":"vertical"):p?q(f<0?"horizontal-min":"horizontal-max"):q(f<0?"vertical-min":"vertical-max")),y&&(O(h),er.current.layout=h,u&&u(h),V(c,h,G.current))},[]),ef=c((e,t)=>{let{onLayout:n}=ee.current,{layout:r,panelDataArray:l}=er.current,a=l.map(e=>e.constraints),{panelSize:i,pivotIndices:u}=en(l,e,r);M(null!=i);let o=A({delta:et(l,e)===l.length-1?i-t:t-i,layout:r,panelConstraints:a,pivotIndices:u,trigger:"imperative-api"});H(r,o)||(O(o),er.current.layout=o,n&&n(o),V(l,o,G.current))},[]),ep=c((e,t)=>{let{layout:n,panelDataArray:r}=er.current,{collapsedSize:l=0,collapsible:a}=t,{collapsedSize:i=0,collapsible:u,maxSize:o=100,minSize:c=0}=e.constraints,{panelSize:d}=en(r,e,n);M(null!=d),a&&u&&d===l?l!==i&&ef(e,i):d<c?ef(e,c):d>o&&ef(e,o)},[ef]),eh=c((e,t)=>{let{direction:n}=ee.current,{layout:r}=er.current;if(!z.current)return;let l=N(e,z.current);M(l);let a=F(n,t);I({dragHandleId:e,dragHandleRect:l.getBoundingClientRect(),initialCursorPosition:a,initialLayout:r})},[]),ey=c(()=>{null!==$&&(document.head.removeChild($),W=null,$=null),I(null)},[]),em=c(e=>{let{panelDataArray:t}=er.current,n=et(t,e);n>=0&&(t.splice(n,1),delete G.current[e.id],er.current.panelDataArrayChanged=!0)},[]),ev=h(()=>({collapsePanel:el,direction:r,dragState:E,expandPanel:ea,getPanelSize:ei,getPanelStyle:eu,groupId:w,isPanelCollapsed:eo,isPanelExpanded:ec,reevaluatePanelConstraints:ep,registerPanel:ed,registerResizeHandle:es,resizePanel:ef,startDragging:eh,stopDragging:ey,unregisterPanel:em,panelGroupElement:z.current}),[el,E,r,ea,ei,eu,w,eo,ec,ep,ed,es,ef,eh,ey,em]);return a(g.Provider,{value:ev},a(b,{...x,children:t,className:n,style:{display:"flex",flexDirection:"horizontal"===r?"row":"column",height:"100%",overflow:"hidden",width:"100%",...v},ref:z,"data-panel-group":"","data-panel-group-direction":r,"data-panel-group-id":w}))}let ee=o((e,t)=>a(Q,{...e,forwardedRef:t}));function et(e,t){return e.findIndex(e=>e===t||e.id===t.id)}function en(e,t,n){let r=et(e,t),l=r===e.length-1,a=n[r];return{...t.constraints,panelSize:a,pivotIndices:l?[r-1,r]:[r,r+1]}}function er({children:e=null,className:t="",disabled:n=!1,id:r,onDragging:l,style:i={},tabIndex:u=0,tagName:o="div",...f}){let p=y(null),h=y({onDragging:l});s(()=>{h.current.onDragging=l});let v=d(g);if(null===v)throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");let{direction:b,dragState:x,groupId:w,registerResizeHandle:z,startDragging:E,stopDragging:C,panelGroupElement:I}=v,A=k(r),j=(null==x?void 0:x.dragHandleId)===A,[D,P]=m(!1),[Z,R]=m(null),T=c(()=>{let e=p.current;M(e),e.blur(),C();let{onDragging:t}=h.current;t&&t(!1)},[C]);s(()=>{if(n)R(null);else{let e=z(A);R(()=>e)}},[n,A,z]),s(()=>{if(n||null==Z||!j)return;let e=e=>{Z(e)},t=e=>{Z(e)},r=p.current;M(r);let l=r.ownerDocument;return l.body.addEventListener("contextmenu",T),l.body.addEventListener("mousemove",e),l.body.addEventListener("touchmove",e),l.body.addEventListener("mouseleave",t),window.addEventListener("mouseup",T),window.addEventListener("touchend",T),()=>{l.body.removeEventListener("contextmenu",T),l.body.removeEventListener("mousemove",e),l.body.removeEventListener("touchmove",e),l.body.removeEventListener("mouseleave",t),window.removeEventListener("mouseup",T),window.removeEventListener("touchend",T)}},[b,n,j,Z,T]),function({disabled:e,handleId:t,resizeHandler:n,panelGroupElement:r}){s(()=>{if(e||null==n||null==r)return;let l=N(t,r);if(null==l)return;let a=e=>{if(!e.defaultPrevented)switch(e.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":e.preventDefault(),n(e);break;case"F6":{e.preventDefault();let n=l.getAttribute("data-panel-group-id");M(n);let a=S(n,r),i=L(n,t,r);M(null!==i);let u=e.shiftKey?i>0?i-1:a.length-1:i+1<a.length?i+1:0;a[u].focus()}}};return l.addEventListener("keydown",a),()=>{l.removeEventListener("keydown",a)}},[r,e,t,n])}({disabled:n,handleId:A,resizeHandler:Z,panelGroupElement:I});let F={cursor:O(b),touchAction:"none",userSelect:"none"};return a(o,{...f,children:e,className:t,onBlur:()=>P(!1),onFocus:()=>P(!0),onMouseDown:e=>{E(A,e.nativeEvent);let t=h.current;M(t);let{onDragging:n}=t;n&&n(!0)},onMouseUp:T,onTouchCancel:T,onTouchEnd:T,onTouchStart:e=>{E(A,e.nativeEvent);let t=h.current;M(t);let{onDragging:n}=t;n&&n(!0)},ref:p,role:"separator",style:{...F,...i},tabIndex:u,"data-panel-group-direction":b,"data-panel-group-id":w,"data-resize-handle":"","data-resize-handle-active":j?"pointer":D?"keyboard":void 0,"data-panel-resize-handle-enabled":!n,"data-panel-resize-handle-id":A})}Q.displayName="PanelGroup",ee.displayName="forwardRef(PanelGroup)",er.displayName="PanelResizeHandle"},62484:function(e,t,n){n.d(t,{u:function(){return r}});function r(e,[t,n]){return Math.min(n,Math.max(t,e))}},9270:function(e,t,n){n.d(t,{fC:function(){return k},z$:function(){return z}});var r=n(2265),l=n(98575),a=n(73966),i=n(6741),u=n(80886),o=n(6718),c=n(90420),d=n(71599),s=n(66840),f=n(57437),p="Checkbox",[h,y]=(0,a.b)(p),[m,v]=h(p);function g(e){let{__scopeCheckbox:t,checked:n,children:l,defaultChecked:a,disabled:i,form:o,name:c,onCheckedChange:d,required:s,value:h="on",internal_do_not_use_render:y}=e,[v,g]=(0,u.T)({prop:n,defaultProp:null!=a&&a,onChange:d,caller:p}),[b,x]=r.useState(null),[k,w]=r.useState(null),z=r.useRef(!1),M=!b||!!o||!!b.closest("form"),E={checked:v,disabled:i,setChecked:g,control:b,setControl:x,name:c,form:o,value:h,hasConsumerStoppedPropagationRef:z,required:s,defaultChecked:!C(a)&&a,isFormControl:M,bubbleInput:k,setBubbleInput:w};return(0,f.jsx)(m,{scope:t,...E,children:"function"==typeof y?y(E):l})}var b="CheckboxTrigger",x=r.forwardRef((e,t)=>{let{__scopeCheckbox:n,onKeyDown:a,onClick:u,...o}=e,{control:c,value:d,disabled:p,checked:h,required:y,setControl:m,setChecked:g,hasConsumerStoppedPropagationRef:x,isFormControl:k,bubbleInput:w}=v(b,n),z=(0,l.e)(t,m),M=r.useRef(h);return r.useEffect(()=>{let e=null==c?void 0:c.form;if(e){let t=()=>g(M.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[c,g]),(0,f.jsx)(s.WV.button,{type:"button",role:"checkbox","aria-checked":C(h)?"mixed":h,"aria-required":y,"data-state":I(h),"data-disabled":p?"":void 0,disabled:p,value:d,...o,ref:z,onKeyDown:(0,i.M)(a,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,i.M)(u,e=>{g(e=>!!C(e)||!e),w&&k&&(x.current=e.isPropagationStopped(),x.current||e.stopPropagation())})})});x.displayName=b;var k=r.forwardRef((e,t)=>{let{__scopeCheckbox:n,name:r,checked:l,defaultChecked:a,required:i,disabled:u,value:o,onCheckedChange:c,form:d,...s}=e;return(0,f.jsx)(g,{__scopeCheckbox:n,checked:l,defaultChecked:a,disabled:u,required:i,onCheckedChange:c,name:r,form:d,value:o,internal_do_not_use_render:e=>{let{isFormControl:r}=e;return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(x,{...s,ref:t,__scopeCheckbox:n}),r&&(0,f.jsx)(E,{__scopeCheckbox:n})]})}})});k.displayName=p;var w="CheckboxIndicator",z=r.forwardRef((e,t)=>{let{__scopeCheckbox:n,forceMount:r,...l}=e,a=v(w,n);return(0,f.jsx)(d.z,{present:r||C(a.checked)||!0===a.checked,children:(0,f.jsx)(s.WV.span,{"data-state":I(a.checked),"data-disabled":a.disabled?"":void 0,...l,ref:t,style:{pointerEvents:"none",...e.style}})})});z.displayName=w;var M="CheckboxBubbleInput",E=r.forwardRef((e,t)=>{let{__scopeCheckbox:n,...a}=e,{control:i,hasConsumerStoppedPropagationRef:u,checked:d,defaultChecked:p,required:h,disabled:y,name:m,value:g,form:b,bubbleInput:x,setBubbleInput:k}=v(M,n),w=(0,l.e)(t,k),z=(0,o.D)(d),E=(0,c.t)(i);r.useEffect(()=>{if(!x)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!u.current;if(z!==d&&e){let n=new Event("click",{bubbles:t});x.indeterminate=C(d),e.call(x,!C(d)&&d),x.dispatchEvent(n)}},[x,z,d,u]);let I=r.useRef(!C(d)&&d);return(0,f.jsx)(s.WV.input,{type:"checkbox","aria-hidden":!0,defaultChecked:null!=p?p:I.current,required:h,disabled:y,name:m,value:g,form:b,...a,tabIndex:-1,ref:w,style:{...a.style,...E,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function C(e){return"indeterminate"===e}function I(e){return C(e)?"indeterminate":e?"checked":"unchecked"}E.displayName=M},20271:function(e,t,n){n.d(t,{VY:function(){return j},aV:function(){return S},fC:function(){return A},xz:function(){return L}});var r=n(2265),l=n(6741),a=n(73966),i=n(1353),u=n(71599),o=n(66840),c=n(29114),d=n(80886),s=n(99255),f=n(57437),p="Tabs",[h,y]=(0,a.b)(p,[i.Pc]),m=(0,i.Pc)(),[v,g]=h(p),b=r.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,onValueChange:l,defaultValue:a,orientation:i="horizontal",dir:u,activationMode:h="automatic",...y}=e,m=(0,c.gm)(u),[g,b]=(0,d.T)({prop:r,onChange:l,defaultProp:null!=a?a:"",caller:p});return(0,f.jsx)(v,{scope:n,baseId:(0,s.M)(),value:g,onValueChange:b,orientation:i,dir:m,activationMode:h,children:(0,f.jsx)(o.WV.div,{dir:m,"data-orientation":i,...y,ref:t})})});b.displayName=p;var x="TabsList",k=r.forwardRef((e,t)=>{let{__scopeTabs:n,loop:r=!0,...l}=e,a=g(x,n),u=m(n);return(0,f.jsx)(i.fC,{asChild:!0,...u,orientation:a.orientation,dir:a.dir,loop:r,children:(0,f.jsx)(o.WV.div,{role:"tablist","aria-orientation":a.orientation,...l,ref:t})})});k.displayName=x;var w="TabsTrigger",z=r.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,disabled:a=!1,...u}=e,c=g(w,n),d=m(n),s=C(c.baseId,r),p=I(c.baseId,r),h=r===c.value;return(0,f.jsx)(i.ck,{asChild:!0,...d,focusable:!a,active:h,children:(0,f.jsx)(o.WV.button,{type:"button",role:"tab","aria-selected":h,"aria-controls":p,"data-state":h?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:s,...u,ref:t,onMouseDown:(0,l.M)(e.onMouseDown,e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(r)}),onKeyDown:(0,l.M)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(r)}),onFocus:(0,l.M)(e.onFocus,()=>{let e="manual"!==c.activationMode;h||a||!e||c.onValueChange(r)})})})});z.displayName=w;var M="TabsContent",E=r.forwardRef((e,t)=>{let{__scopeTabs:n,value:l,forceMount:a,children:i,...c}=e,d=g(M,n),s=C(d.baseId,l),p=I(d.baseId,l),h=l===d.value,y=r.useRef(h);return r.useEffect(()=>{let e=requestAnimationFrame(()=>y.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,f.jsx)(u.z,{present:a||h,children:n=>{let{present:r}=n;return(0,f.jsx)(o.WV.div,{"data-state":h?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":s,hidden:!r,id:p,tabIndex:0,...c,ref:t,style:{...e.style,animationDuration:y.current?"0s":void 0},children:r&&i})}})});function C(e,t){return"".concat(e,"-trigger-").concat(t)}function I(e,t){return"".concat(e,"-content-").concat(t)}E.displayName=M;var A=b,S=k,L=z,j=E},6718:function(e,t,n){n.d(t,{D:function(){return l}});var r=n(2265);function l(e){let t=r.useRef({value:e,previous:e});return r.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}}}]);
|
|
2
|
+
//# sourceMappingURL=2823-324b1cd8f15ff9c5.js.map
|