@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/1685-939396dad2f8f1e0.js","mappings":"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","sources":["webpack://_N_E/./app/(application)/evals/cases/components/test-case-modal.tsx","webpack://_N_E/./components/ai-elements/conversation.tsx","webpack://_N_E/./components/ai-elements/message.tsx","webpack://_N_E/./components/ai-elements/actions.tsx","webpack://_N_E/./components/ai-elements/reasoning.tsx","webpack://_N_E/./components/ai-elements/source.tsx","webpack://_N_E/./components/ai-elements/todo-list.tsx","webpack://_N_E/./components/message-renderer.tsx","webpack://_N_E/./components/ui/alert-dialog.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/dialog.tsx","webpack://_N_E/./components/ui/label.tsx","webpack://_N_E/./components/ui/scroll-area.tsx","webpack://_N_E/./components/ui/table.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","'use client';\n\nimport { Button } from '@/components/ui/button';\nimport { cn } from '@/lib/utils';\nimport { ArrowDownIcon } from 'lucide-react';\nimport type { ComponentProps } from 'react';\nimport { useCallback } from 'react';\nimport { StickToBottom, useStickToBottomContext } from 'use-stick-to-bottom';\n\n// @ts-ignore\nexport type ConversationProps = ComponentProps<typeof StickToBottom>;\n\n// @ts-ignore\nexport const Conversation = ({ className, ...props }: ConversationProps) => (\n// @ts-ignore\n <StickToBottom\n className={cn('relative flex-1 overflow-y-auto', className)}\n initial=\"smooth\"\n resize=\"smooth\"\n role=\"log\"\n {...props}\n />\n);\n\nexport type ConversationContentProps = ComponentProps<\n // @ts-ignore\n typeof StickToBottom.Content\n>;\n\nexport const ConversationContent = ({\n // @ts-ignore\n className,\n ...props\n}: ConversationContentProps) => (\n // @ts-ignore\n <StickToBottom.Content className={cn('p-4', className)} {...props} />\n);\n\nexport type ConversationScrollButtonProps = ComponentProps<typeof Button>;\n\nexport const ConversationScrollButton = ({\n className,\n ...props\n}: ConversationScrollButtonProps) => {\n const { isAtBottom, scrollToBottom } = useStickToBottomContext();\n\n const handleScrollToBottom = useCallback(() => {\n scrollToBottom();\n }, [scrollToBottom]);\n\n return (\n !isAtBottom && (\n <Button\n className={cn(\n 'absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full',\n className\n )}\n onClick={handleScrollToBottom}\n size=\"icon\"\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n <ArrowDownIcon className=\"size-4\" />\n </Button>\n )\n );\n};\n","import {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from '@/components/ui/avatar';\nimport { cn } from '@/lib/utils';\nimport type { UIMessage } from 'ai';\nimport type { ComponentProps, HTMLAttributes } from 'react';\n\nexport type MessageProps = HTMLAttributes<HTMLDivElement> & {\n from: UIMessage['role'];\n};\n\nexport const Message = ({ className, from, ...props }: MessageProps) => (\n <div\n className={cn(\n 'group flex w-full items-end justify-end gap-2 py-4',\n from === 'user' ? 'is-user flex-row-reverse justify-end' : 'is-assistant flex-row-reverse justify-end',\n '[&>div]:max-w-[80%]',\n className\n )}\n {...props}\n />\n);\n\nexport type MessageContentProps = HTMLAttributes<HTMLDivElement>;\n\nexport const MessageContent = ({\n children,\n className,\n ...props\n}: MessageContentProps) => (\n <div\n className={cn(\n 'flex flex-col gap-2 overflow-hidden rounded-lg py-3 text-foreground text-sm',\n 'group-[.is-user]:bg-secondary group-[.is-user]:text-primary-foreground group-[.is-user]:px-4',\n 'group-[.is-assistant]:bg-transparent group-[.is-assistant]:text-foreground',\n className\n )}\n {...props}\n >\n <div className=\"is-user:dark\">{children}</div>\n </div>\n);\n\nexport type MessageAvatarProps = ComponentProps<typeof Avatar> & {\n src: string;\n name?: string;\n};\n\nexport const MessageAvatar = ({\n src,\n name,\n className,\n ...props\n}: MessageAvatarProps) => (\n <Avatar\n className={cn('size-8 ring ring-1 ring-border', className)}\n {...props}\n >\n <AvatarImage alt=\"\" className=\"mt-0 mb-0\" src={src} />\n <AvatarFallback>{name?.slice(0, 2) || 'ME'}</AvatarFallback>\n </Avatar>\n);\n","'use client';\n\nimport { Button } from '@/components/ui/button';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from '@/components/ui/tooltip';\nimport { cn } from '@/lib/utils';\nimport type { ComponentProps } from 'react';\n\nexport type ActionsProps = ComponentProps<'div'>;\n\nexport const Actions = ({ className, children, ...props }: ActionsProps) => (\n <div className={cn('flex items-center gap-1', className)} {...props}>\n {children}\n </div>\n);\n\nexport type ActionProps = ComponentProps<typeof Button> & {\n tooltip?: string;\n label?: string;\n};\n\nexport const Action = ({\n tooltip,\n children,\n label,\n className,\n variant = 'ghost',\n size = 'sm',\n ...props\n}: ActionProps) => {\n const button = (\n <Button\n className={cn(\n 'size-9 p-1.5 text-muted-foreground hover:text-foreground',\n className\n )}\n size={size}\n type=\"button\"\n variant={variant}\n {...props}\n >\n {children}\n <span className=\"sr-only\">{label || tooltip}</span>\n </Button>\n );\n\n if (tooltip) {\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent>\n <p>{tooltip}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return button;\n};\n","'use client';\n\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '@/components/ui/collapsible';\nimport { cn } from '@/lib/utils';\nimport { BrainIcon, ChevronDownIcon } from 'lucide-react';\nimport type { ComponentProps } from 'react';\nimport { createContext, memo, useContext, useEffect, useState } from 'react';\nimport { Response } from './response';\n\ntype ReasoningContextValue = {\n isStreaming: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n duration: number;\n};\n\nconst ReasoningContext = createContext<ReasoningContextValue | null>(null);\n\nconst useReasoning = () => {\n const context = useContext(ReasoningContext);\n if (!context) {\n throw new Error('Reasoning components must be used within Reasoning');\n }\n return context;\n};\n\nexport type ReasoningProps = ComponentProps<typeof Collapsible> & {\n isStreaming?: boolean;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n duration?: number;\n};\n\nconst AUTO_CLOSE_DELAY = 1000;\n\nexport const Reasoning = memo(\n ({\n className,\n isStreaming = false,\n open,\n defaultOpen = false,\n onOpenChange,\n duration: durationProp,\n children,\n ...props\n }: ReasoningProps) => {\n const [isOpen, setIsOpen] = useControllableState({\n prop: open,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n const [duration, setDuration] = useControllableState({\n prop: durationProp,\n defaultProp: 0,\n });\n\n const [hasAutoClosedRef, setHasAutoClosedRef] = useState(false);\n const [startTime, setStartTime] = useState<number | null>(null);\n\n // Track duration when streaming starts and ends\n useEffect(() => {\n if (isStreaming) {\n if (startTime === null) {\n setStartTime(Date.now());\n }\n } else if (startTime !== null) {\n setDuration(Math.round((Date.now() - startTime) / 1000));\n setStartTime(null);\n }\n }, [isStreaming, startTime, setDuration]);\n\n // Auto-open when streaming starts, auto-close when streaming ends (once only)\n useEffect(() => {\n if (isStreaming && !isOpen) {\n setIsOpen(true);\n } else if (!isStreaming && isOpen && !defaultOpen && !hasAutoClosedRef) {\n // Add a small delay before closing to allow user to see the content\n const timer = setTimeout(() => {\n setIsOpen(false);\n setHasAutoClosedRef(true);\n }, AUTO_CLOSE_DELAY);\n return () => clearTimeout(timer);\n }\n }, [isStreaming, isOpen, defaultOpen, setIsOpen, hasAutoClosedRef]);\n\n const handleOpenChange = (newOpen: boolean) => {\n setIsOpen(newOpen);\n };\n\n return (\n <ReasoningContext.Provider\n value={{ isStreaming, isOpen, setIsOpen, duration }}\n >\n <Collapsible\n className={cn('not-prose mb-4', className)}\n onOpenChange={handleOpenChange}\n open={isOpen}\n {...props}\n >\n {children}\n </Collapsible>\n </ReasoningContext.Provider>\n );\n }\n);\n\nexport type ReasoningTriggerProps = ComponentProps<\n typeof CollapsibleTrigger\n> & {\n title?: string;\n};\n\nexport const ReasoningTrigger = memo(\n ({\n className,\n title = 'Reasoning',\n children,\n ...props\n }: ReasoningTriggerProps) => {\n const { isStreaming, isOpen, duration } = useReasoning();\n\n return (\n <CollapsibleTrigger\n className={cn(\n 'flex items-center gap-2 text-muted-foreground text-sm',\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n <BrainIcon className=\"size-4\" />\n {isStreaming || duration === 0 ? (\n <p>Thinking...</p>\n ) : (\n <p>Thought for {duration} seconds</p>\n )}\n <ChevronDownIcon\n className={cn(\n 'size-4 text-muted-foreground transition-transform',\n isOpen ? 'rotate-180' : 'rotate-0'\n )}\n />\n </>\n )}\n </CollapsibleTrigger>\n );\n }\n);\n\nexport type ReasoningContentProps = ComponentProps<\n typeof CollapsibleContent\n> & {\n children: string;\n};\n\nexport const ReasoningContent = memo(\n ({ className, children, ...props }: ReasoningContentProps) => (\n <CollapsibleContent\n className={cn(\n 'mt-4 text-sm',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in',\n className\n )}\n {...props}\n >\n <Response className=\"grid gap-2\">{children}</Response>\n </CollapsibleContent>\n )\n);\n\nReasoning.displayName = 'Reasoning';\nReasoningTrigger.displayName = 'ReasoningTrigger';\nReasoningContent.displayName = 'ReasoningContent';\n","'use client';\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '@/components/ui/collapsible';\nimport { cn } from '@/lib/utils';\nimport { BookIcon, ChevronDownIcon } from 'lucide-react';\nimport type { ComponentProps } from 'react';\n\nexport type SourcesProps = ComponentProps<'div'>;\n\nexport const Sources = ({ className, ...props }: SourcesProps) => (\n // @ts-ignore\n <Collapsible\n className={cn('not-prose mb-4 text-primary text-xs', className)}\n {...props}\n />\n);\n\nexport type SourcesTriggerProps = ComponentProps<typeof CollapsibleTrigger> & {\n count: number;\n};\n\nexport const SourcesTrigger = ({\n className,\n count,\n children,\n ...props\n}: SourcesTriggerProps) => (\n <CollapsibleTrigger className=\"flex items-center gap-2\" {...props}>\n {children ?? (\n <>\n <p className=\"font-medium\">Used {count} sources</p>\n <ChevronDownIcon className=\"h-4 w-4\" />\n </>\n )}\n </CollapsibleTrigger>\n);\n\nexport type SourcesContentProps = ComponentProps<typeof CollapsibleContent>;\n\nexport const SourcesContent = ({\n className,\n ...props\n}: SourcesContentProps) => (\n <CollapsibleContent\n className={cn(\n 'mt-3 flex w-fit flex-col gap-2',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 outline-none data-[state=closed]:animate-out data-[state=open]:animate-in',\n className\n )}\n {...props}\n />\n);\n\nexport type SourceProps = ComponentProps<'a'>;\n\nexport const Source = ({ href, title, children, ...props }: SourceProps) => (\n <a\n className=\"flex items-center gap-2\"\n href={href}\n rel=\"noreferrer\"\n target=\"_blank\"\n {...props}\n >\n {children ?? (\n <>\n <BookIcon className=\"h-4 w-4\" />\n <span className=\"block font-medium\">{title}</span>\n </>\n )}\n </a>\n);\n","'use client';\n\nimport { cn } from '@/lib/utils';\nimport { CheckCircle2, Circle, Loader2, XCircle } from 'lucide-react';\nimport type { ComponentProps } from 'react';\n\nexport interface TodoItem {\n content: string;\n status: 'pending' | 'in_progress' | 'completed' | 'cancelled';\n priority: 'high' | 'medium' | 'low';\n id: string;\n}\n\nexport interface TodoListProps extends ComponentProps<'div'> {\n todos: TodoItem[];\n showPriority?: boolean;\n state?: 'input-streaming' | 'input-available' | 'output-available' | 'output-error';\n}\n\nconst statusConfig = {\n pending: {\n icon: Circle,\n label: 'Pending',\n className: 'text-muted-foreground',\n },\n in_progress: {\n icon: Loader2,\n label: 'In Progress',\n className: 'text-blue-500 animate-spin',\n },\n completed: {\n icon: CheckCircle2,\n label: 'Completed',\n className: 'text-green-500',\n },\n cancelled: {\n icon: XCircle,\n label: 'Cancelled',\n className: 'text-red-500',\n },\n};\n\nconst priorityConfig = {\n high: {\n label: 'High',\n className: 'bg-red-500/10 text-red-500 border-red-500/20',\n },\n medium: {\n label: 'Medium',\n className: 'bg-yellow-500/10 text-yellow-500 border-yellow-500/20',\n },\n low: {\n label: 'Low',\n className: 'bg-blue-500/10 text-blue-500 border-blue-500/20',\n },\n};\n\nexport const TodoList = ({\n todos,\n showPriority = false,\n state,\n className,\n ...props\n}: TodoListProps) => {\n\n if (typeof todos === 'string') {\n todos = JSON.parse(todos);\n }\n\n if (!todos || todos.length === 0) {\n return null;\n }\n\n const isStreaming = state === 'input-streaming';\n const hasError = state === 'output-error';\n const completedCount = todos.filter((t) => t.status === 'completed').length;\n const totalCount = todos.length;\n\n return (\n <div\n className={cn(\n 'my-2 space-y-1',\n isStreaming && 'opacity-70',\n className\n )}\n {...props}\n >\n {todos.map((todo, index) => {\n const StatusIcon = statusConfig[todo.status] ? statusConfig[todo.status].icon : statusConfig.pending.icon;\n const statusClass = statusConfig[todo.status] ? statusConfig[todo.status].className : statusConfig.pending.className;\n const priorityClass = priorityConfig[todo.priority] ? priorityConfig[todo.priority].className : priorityConfig.medium.className;\n const isLastInProgress = todo.status === 'in_progress' &&\n index === todos.findIndex(t => t.status === 'in_progress');\n\n return (\n <div\n key={todo.id}\n className={cn(\n 'flex items-start gap-2 py-0.5',\n todo.status === 'cancelled' && 'opacity-50'\n )}\n >\n <div className=\"flex-shrink-0 pt-0.5\">\n <StatusIcon className={cn('size-3.5', statusClass)} />\n </div>\n\n <div className=\"min-w-0 flex-1\">\n <span\n className={cn(\n 'text-sm',\n todo.status === 'completed' && 'text-muted-foreground line-through',\n todo.status === 'cancelled' && 'text-muted-foreground line-through',\n todo.status === 'in_progress' && isLastInProgress && 'font-medium'\n )}\n >\n {todo.content}\n </span>\n\n {showPriority && todo.priority === 'high' && (\n <span className=\"ml-2 text-red-500 text-xs\">(!)</span>\n )}\n </div>\n </div>\n );\n })}\n\n {/* Compact progress indicator */}\n {totalCount > 1 && (\n <div className=\"flex items-center gap-2 pt-1 text-muted-foreground text-xs\">\n <div className=\"h-1 flex-1 overflow-hidden rounded-full bg-secondary\">\n <div\n className=\"h-full bg-primary transition-all duration-300\"\n style={{\n width: `${(completedCount / totalCount) * 100}%`,\n }}\n />\n </div>\n <span className=\"whitespace-nowrap\">\n {completedCount}/{totalCount}\n </span>\n </div>\n )}\n\n {hasError && (\n <div className=\"flex items-center gap-1 pt-1 text-red-500 text-xs\">\n <XCircle className=\"size-3\" />\n <span>Error updating tasks</span>\n </div>\n )}\n </div>\n );\n};\n\nexport type TodoItemProps = ComponentProps<'div'> & {\n todo: TodoItem;\n showPriority?: boolean;\n state?: 'input-streaming' | 'input-available' | 'output-available' | 'output-error';\n};\n\nexport const TodoItemComponent = ({\n todo,\n showPriority = false,\n state,\n className,\n ...props\n}: TodoItemProps) => {\n const StatusIcon = statusConfig[todo.status].icon;\n const statusClass = statusConfig[todo.status].className;\n const isStreaming = state === 'input-streaming';\n\n return (\n <div\n className={cn(\n 'flex items-start gap-2 py-0.5',\n todo.status === 'cancelled' && 'opacity-50',\n isStreaming && 'opacity-70',\n className\n )}\n {...props}\n >\n <div className=\"flex-shrink-0 pt-0.5\">\n <StatusIcon className={cn('size-3.5', statusClass)} />\n </div>\n\n <div className=\"min-w-0 flex-1\">\n <span\n className={cn(\n 'text-sm',\n todo.status === 'completed' && 'text-muted-foreground line-through',\n todo.status === 'cancelled' && 'text-muted-foreground line-through',\n todo.status === 'in_progress' && 'font-medium'\n )}\n >\n {todo.content}\n </span>\n\n {showPriority && todo.priority === 'high' && (\n <span className=\"ml-2 text-red-500 text-xs\">(!)</span>\n )}\n </div>\n </div>\n );\n};\n","\"use client\"\n\nimport { DynamicToolUIPart, UIMessage } from \"ai\"\nimport { Message, MessageContent } from '@/components/ai-elements/message'\nimport { Actions, Action } from '@/components/ai-elements/actions'\nimport { Response } from '@/components/ai-elements/response'\nimport { Reasoning, ReasoningTrigger, ReasoningContent } from \"@/components/ai-elements/reasoning\"\nimport { Source, Sources, SourcesContent, SourcesTrigger } from \"@/components/ai-elements/source\"\nimport { RefreshCcwIcon, CopyIcon } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport Image from \"next/image\"\nimport { useToast } from \"@/components/ui/use-toast\"\nimport { TodoList } from \"./ai-elements/todo-list\"\nimport { FileItem } from \"./uppy-dashboard\"\n\ninterface MessageRendererProps {\n messages: UIMessage[]\n status?: \"streaming\" | \"idle\" | \"error\" | \"submitted\" | \"ready\"\n className?: string\n showActions?: boolean\n onRegenerate?: () => void\n onAddToolResult?: (args: { tool: string; toolCallId: string; output: string }) => void\n UntypedToolPartComponent?: React.ComponentType<{\n untypedToolPart: DynamicToolUIPart\n callId: string\n addToContext: (item: any) => void\n }>\n addToContext?: (item: any) => void\n writeAccess?: boolean\n config?: {\n marginTopFirstMessage?: string\n customAssistantClassnames?: string\n }\n}\n\nexport function MessageRenderer({\n messages,\n status = \"idle\",\n className,\n showActions = true,\n onRegenerate,\n onAddToolResult,\n UntypedToolPartComponent,\n addToContext,\n writeAccess = true,\n config\n}: MessageRendererProps) {\n const { toast } = useToast()\n\n return (\n <>\n {messages?.map((message, messageIndex) => {\n const isFirstMessage = messageIndex === 0\n const messageMetadata = message.metadata as any\n // iterate through all parts and find the ones that have a type of 'text' and contain '<file name=\"', if so\n // extract the filename and content, and return an array of objects with the filename and content\n // Remove the <file name=\"...\">...</file> from the text and return the text without the file parts\n const files: { s3Key: string, content: string }[] = message.parts.filter(\n (part) => part.type === 'text' &&\n part.text?.includes('<file name=\"')\n )?.flatMap((part) => {\n const fileParts = (part as any).text.match(/<file name=\"([^\"]+)\">([^<]+)<\\/file>/g);\n return fileParts?.map((filePart) => {\n console.log(\"filePart\", filePart);\n const s3Key = filePart.match(/<file name=\"([^\"]+)\">/)?.[1] ?? '';\n console.log(\"s3Key\", s3Key);\n const content = filePart.match(/<file name=\"([^\"]+)\">([^<]+)<\\/file>/)?.[2] ?? '';\n return { s3Key, content } as { s3Key: string, content: string };\n }) ?? []\n }) ?? [];\n console.log(\"files\", files);\n return (\n <Message\n className={cn(\n message.role === 'assistant' && (\n config?.customAssistantClassnames ? config?.customAssistantClassnames : ''\n ),\n isFirstMessage && (\n config?.marginTopFirstMessage ? config?.marginTopFirstMessage : 'mt-12'\n ), className\n )}\n from={message.role}\n key={message.id}\n >\n <MessageContent>\n {message.parts.map((part, i) => {\n if (part.type === 'step-start') {\n return null\n }\n\n if (part.type === 'text') {\n let text = part.text.replace(/<file name=\"([^\"]+)\">([^<]+)<\\/file>/g, '');\n return <Response className=\"chat-response-container\" key={`${message.id}-${i}` + \"_response\"}>\n {text}\n </Response>\n }\n\n if (part.type === 'tool-askForConfirmation' && onAddToolResult) {\n const callId = part.toolCallId\n\n switch (part.state) {\n case 'input-streaming':\n return (\n <div key={callId}>Loading confirmation request...</div>\n )\n case 'input-available':\n return (\n <div key={callId}>\n {(part.input as { message: string }).message}\n <div>\n <button\n onClick={() =>\n onAddToolResult({\n tool: 'askForConfirmation',\n toolCallId: callId,\n output: 'Yes, confirmed',\n })\n }\n >\n Yes\n </button>\n <button\n onClick={() =>\n onAddToolResult({\n tool: 'askForConfirmation',\n toolCallId: callId,\n output: 'No, denied',\n })\n }\n >\n No\n </button>\n </div>\n </div>\n )\n case 'output-available':\n return (\n <div key={callId}>\n Tool call allowed: {part.output as string}\n </div>\n )\n case 'output-error':\n return <div key={callId}>Error: {part.errorText}</div>\n }\n }\n\n if (part.type?.toLowerCase().includes('preview_pdf') || part.type?.toLowerCase().includes('pdf_file_in_a_web_view')) {\n const dynamicToolPart = part as any;\n const output = JSON.parse(dynamicToolPart.output?.result ?? '{}') as {\n url: string\n page: number\n };\n if (!output?.url) {\n return <div>No URL provided for PDF preview {JSON.stringify(output)}</div>;\n }\n const pdfUrl = `${output.url}#page=${output.page ?? 1}`;\n return <iframe src={pdfUrl} style={{ width: '100%', height: '100vh' }} title=\"PDF viewer\" />\n }\n\n if (part.type?.toLowerCase() === 'tool-todo_write' || part.type?.toLowerCase() === 'tool-todo_read') {\n const dynamicToolPart = part as any;\n const output = dynamicToolPart.output as {\n result: {\n content: string\n status: \"pending\" | \"in_progress\" | \"completed\" | \"cancelled\"\n priority: \"high\" | \"medium\" | \"low\"\n id: string\n }[]\n };\n if (!output?.result) {\n return null;\n }\n const state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\" = dynamicToolPart.state;\n return (\n <TodoList todos={output.result} showPriority={true} state={state} />\n )\n }\n\n if (\n (part.type.startsWith('tool-') || part.type === 'dynamic-tool') &&\n UntypedToolPartComponent &&\n addToContext\n ) {\n const untypedToolPart = part as DynamicToolUIPart\n const callId = untypedToolPart.toolCallId\n return (\n <UntypedToolPartComponent\n key={callId}\n untypedToolPart={untypedToolPart}\n callId={callId}\n addToContext={addToContext}\n />\n )\n }\n\n if (part.type === 'file') {\n if (part.mediaType?.startsWith('image/')) {\n return (\n <Image\n key={`${message.id}-${i}`}\n src={part.url}\n width={300}\n height={300}\n alt={\"Generated image\"}\n />\n )\n }\n }\n\n if (part.type === 'source-url') {\n return (\n <Sources key={`${message.id}-${i}`}>\n <SourcesTrigger\n count={message.parts.filter(\n (part) => part.type === 'source-url'\n ).length}\n />\n <SourcesContent key={`${message.id}`}>\n {message.parts.map((part, i) => {\n switch (part.type) {\n case 'source-url':\n return (\n <Source\n key={`${message.id}-${i}`}\n href={part.url}\n title={part.title}\n />\n )\n }\n })}\n </SourcesContent>\n </Sources>\n )\n }\n\n if (part.type === 'reasoning') {\n return (\n <Reasoning\n key={`${message.id}-${i}`}\n className=\"w-full\"\n isStreaming={status === 'streaming'}\n >\n <ReasoningTrigger />\n <ReasoningContent>{part.text}</ReasoningContent>\n </Reasoning>\n )\n }\n\n return null\n })}\n\n {files.length > 0 && (\n <div className=\"grid grid-cols-6 min-w-[500px] gap-2 mt-3 mb-3\">\n {files.map((file) => (\n <FileItem key={file.s3Key + \"_file_item_\" + message.id} s3Key={file.s3Key} onRemove={() => { }} active={false} disabled={false} />\n ))}\n </div>\n )}\n\n {showActions && message.role === 'assistant' && (\n <Actions className=\"mt-2\">\n {onRegenerate && (\n <Action\n onClick={() => onRegenerate()}\n label=\"Retry\"\n disabled={!writeAccess}\n >\n <RefreshCcwIcon className=\"size-3\" />\n </Action>\n )}\n <Action\n onClick={() => {\n navigator.clipboard.writeText(\n message.parts.map((part: any) => part?.text || \"\").join('\\n')\n )\n toast({\n title: \"Copied message\",\n description: \"The message was copied to your clipboard.\",\n })\n }}\n label=\"Copy\"\n >\n <CopyIcon className=\"size-3\" />\n </Action>\n {messageMetadata?.totalTokens && (\n <small className=\"text-muted-foreground\">\n {Intl.NumberFormat('en-US').format(messageMetadata?.totalTokens)} tokens\n </small>\n )}\n </Actions>\n )}\n </MessageContent>\n </Message>\n )\n })}\n </>\n )\n}","\"use client\";\n\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\nimport * as React from \"react\";\n\nimport { buttonVariants } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n ref={ref}\n />\n));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","\"use client\";\n\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","\"use client\";\n\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"size-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n));\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]\",\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-4 align-middle [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]\",\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n"],"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","props","StickToBottom","cn","initial","resize","Content","Message","from","jsx_runtime","MessageContent","children","Actions","Action","tooltip","label","button","span","TooltipProvider","Tooltip","TooltipTrigger","asChild","TooltipContent","ReasoningContext","createContext","useReasoning","context","useContext","Reasoning","memo","isStreaming","defaultOpen","duration","durationProp","isOpen","setIsOpen","useControllableState","prop","defaultProp","setDuration","hasAutoClosedRef","setHasAutoClosedRef","startTime","setStartTime","Math","round","timer","setTimeout","clearTimeout","Provider","Collapsible","newOpen","ReasoningTrigger","CollapsibleTrigger","BrainIcon","ChevronDownIcon","ReasoningContent","CollapsibleContent","Response","displayName","Sources","SourcesTrigger","count","SourcesContent","Source","href","a","rel","BookIcon","statusConfig","pending","icon","Circle","in_progress","completed","CheckCircle2","cancelled","XCircle","priorityConfig","high","medium","low","TodoList","todos","showPriority","state","JSON","parse","completedCount","totalCount","todo","index","StatusIcon","statusClass","priority","isLastInProgress","findIndex","content","style","width","hasError","onRegenerate","onAddToolResult","UntypedToolPartComponent","addToContext","messageIndex","messageMetadata","files","part","includes","flatMap","fileParts","match","filePart","isFirstMessage","dynamicToolPart","output","replace","callId","toolCallId","input","tool","errorText","toLowerCase","result","stringify","pdfUrl","iframe","src","height","startsWith","untypedToolPart","Image","alt","file","RefreshCcwIcon","navigator","clipboard","writeText","join","CopyIcon","totalTokens","small","Intl","NumberFormat","format","AlertDialog","AlertDialogPrimitive","AlertDialogPortal","AlertDialogOverlay","React","ref","AlertDialogContent","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","AlertDialogAction","buttonVariants","AlertDialogCancel","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","CardFooter","DialogPrimitive","DialogTrigger","DialogPortal","DialogOverlay","X","labelVariants","LabelPrimitive","ScrollAreaPrimitive","ScrollBar","orientation","Table","table","TableHeader","thead","TableBody","tbody","TableFooter","tfoot","TableRow","tr","TableHead","th","TableCell","td","TableCaption","caption","textarea"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3171],{15863:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},73247:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]])},1119:function(e,t,n){n.d(t,{Z:function(){return r}});function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}},27312:function(e,t,n){n.d(t,{VY:function(){return B},fC:function(){return K},h_:function(){return z},xz:function(){return U}});var r=n(2265),o=n(6741),l=n(98575),u=n(73966),a=n(22308),i=n(86097),c=n(99103),s=n(99255),d=n(49289),f=n(83832),v=n(71599),p=n(66840),m=n(37053),h=n(80886),g=n(5478),E=n(60703),b=n(57437),y="Popover",[w,C]=(0,u.b)(y,[d.D7]),R=(0,d.D7)(),[S,P]=w(y),k=e=>{let{__scopePopover:t,children:n,open:o,defaultOpen:l,onOpenChange:u,modal:a=!1}=e,i=R(t),c=r.useRef(null),[f,v]=r.useState(!1),[p,m]=(0,h.T)({prop:o,defaultProp:null!=l&&l,onChange:u,caller:y});return(0,b.jsx)(d.fC,{...i,children:(0,b.jsx)(S,{scope:t,contentId:(0,s.M)(),triggerRef:c,open:p,onOpenChange:m,onOpenToggle:r.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:f,onCustomAnchorAdd:r.useCallback(()=>v(!0),[]),onCustomAnchorRemove:r.useCallback(()=>v(!1),[]),modal:a,children:n})})};k.displayName=y;var x="PopoverAnchor";r.forwardRef((e,t)=>{let{__scopePopover:n,...o}=e,l=P(x,n),u=R(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:i}=l;return r.useEffect(()=>(a(),()=>i()),[a,i]),(0,b.jsx)(d.ee,{...u,...o,ref:t})}).displayName=x;var O="PopoverTrigger",D=r.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,u=P(O,n),a=R(n),i=(0,l.e)(t,u.triggerRef),c=(0,b.jsx)(p.WV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":u.open,"aria-controls":u.contentId,"data-state":W(u.open),...r,ref:i,onClick:(0,o.M)(e.onClick,u.onOpenToggle)});return u.hasCustomAnchor?c:(0,b.jsx)(d.ee,{asChild:!0,...a,children:c})});D.displayName=O;var N="PopoverPortal",[A,M]=w(N,{forceMount:void 0}),L=e=>{let{__scopePopover:t,forceMount:n,children:r,container:o}=e,l=P(N,t);return(0,b.jsx)(A,{scope:t,forceMount:n,children:(0,b.jsx)(v.z,{present:n||l.open,children:(0,b.jsx)(f.h,{asChild:!0,container:o,children:r})})})};L.displayName=N;var I="PopoverContent",F=r.forwardRef((e,t)=>{let n=M(I,e.__scopePopover),{forceMount:r=n.forceMount,...o}=e,l=P(I,e.__scopePopover);return(0,b.jsx)(v.z,{present:r||l.open,children:l.modal?(0,b.jsx)(T,{...o,ref:t}):(0,b.jsx)(j,{...o,ref:t})})});F.displayName=I;var _=(0,m.Z8)("PopoverContent.RemoveScroll"),T=r.forwardRef((e,t)=>{let n=P(I,e.__scopePopover),u=r.useRef(null),a=(0,l.e)(t,u),i=r.useRef(!1);return r.useEffect(()=>{let e=u.current;if(e)return(0,g.Ry)(e)},[]),(0,b.jsx)(E.Z,{as:_,allowPinchZoom:!0,children:(0,b.jsx)(Z,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.M)(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),i.current||null===(t=n.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:(0,o.M)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;i.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,o.M)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),j=r.forwardRef((e,t)=>{let n=P(I,e.__scopePopover),o=r.useRef(!1),l=r.useRef(!1);return(0,b.jsx)(Z,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var r,u;null===(r=e.onCloseAutoFocus)||void 0===r||r.call(e,t),t.defaultPrevented||(o.current||null===(u=n.triggerRef.current)||void 0===u||u.focus(),t.preventDefault()),o.current=!1,l.current=!1},onInteractOutside:t=>{var r,u;null===(r=e.onInteractOutside)||void 0===r||r.call(e,t),t.defaultPrevented||(o.current=!0,"pointerdown"!==t.detail.originalEvent.type||(l.current=!0));let a=t.target;(null===(u=n.triggerRef.current)||void 0===u?void 0:u.contains(a))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&l.current&&t.preventDefault()}})}),Z=r.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEscapeKeyDown:s,onPointerDownOutside:f,onFocusOutside:v,onInteractOutside:p,...m}=e,h=P(I,n),g=R(n);return(0,i.EW)(),(0,b.jsx)(c.M,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:l,children:(0,b.jsx)(a.XB,{asChild:!0,disableOutsidePointerEvents:u,onInteractOutside:p,onEscapeKeyDown:s,onPointerDownOutside:f,onFocusOutside:v,onDismiss:()=>h.onOpenChange(!1),children:(0,b.jsx)(d.VY,{"data-state":W(h.open),role:"dialog",id:h.contentId,...g,...m,ref:t,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),$="PopoverClose";function W(e){return e?"open":"closed"}r.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,l=P($,n);return(0,b.jsx)(p.WV.button,{type:"button",...r,ref:t,onClick:(0,o.M)(e.onClick,()=>l.onOpenChange(!1))})}).displayName=$,r.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,o=R(n);return(0,b.jsx)(d.Eh,{...o,...r,ref:t})}).displayName="PopoverArrow";var K=k,U=D,z=L,B=F},83918:function(e,t,n){let r,o;n.d(t,{mY:function(){return e3}});var l=/[\\\/_+.#"@\[\(\{&]/,u=/[\\\/_+.#"@\[\(\{&]/g,a=/[\s-]/,i=/[\s-]/g;function c(e){return e.toLowerCase().replace(i," ")}var s=n(1119),d=n(2265),f=n.t(d,2);function v(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(null==e||e(r),!1===n||!r.defaultPrevented)return null==t?void 0:t(r)}}function p(...e){return t=>e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}function m(...e){return(0,d.useCallback)(p(...e),e)}let h=(null==globalThis?void 0:globalThis.document)?d.useLayoutEffect:()=>{},g=f["useId".toString()]||(()=>void 0),E=0;function b(e){let[t,n]=d.useState(g());return h(()=>{e||n(e=>null!=e?e:String(E++))},[e]),e||(t?`radix-${t}`:"")}function y(e){let t=(0,d.useRef)(e);return(0,d.useEffect)(()=>{t.current=e}),(0,d.useMemo)(()=>(...e)=>{var n;return null===(n=t.current)||void 0===n?void 0:n.call(t,...e)},[])}var w=n(54887);let C=(0,d.forwardRef)((e,t)=>{let{children:n,...r}=e,o=d.Children.toArray(n),l=o.find(P);if(l){let e=l.props.children,n=o.map(t=>t!==l?t:d.Children.count(e)>1?d.Children.only(null):(0,d.isValidElement)(e)?e.props.children:null);return(0,d.createElement)(R,(0,s.Z)({},r,{ref:t}),(0,d.isValidElement)(e)?(0,d.cloneElement)(e,void 0,n):null)}return(0,d.createElement)(R,(0,s.Z)({},r,{ref:t}),n)});C.displayName="Slot";let R=(0,d.forwardRef)((e,t)=>{let{children:n,...r}=e;return(0,d.isValidElement)(n)?(0,d.cloneElement)(n,{...function(e,t){let n={...t};for(let r in t){let o=e[r],l=t[r];/^on[A-Z]/.test(r)?n[r]=(...e)=>{null==l||l(...e),null==o||o(...e)}:"style"===r?n[r]={...o,...l}:"className"===r&&(n[r]=[o,l].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props),ref:p(t,n.ref)}):d.Children.count(n)>1?d.Children.only(null):null});R.displayName="SlotClone";let S=({children:e})=>(0,d.createElement)(d.Fragment,null,e);function P(e){return(0,d.isValidElement)(e)&&e.type===S}let k=["a","button","div","h2","h3","img","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let n=(0,d.forwardRef)((e,n)=>{let{asChild:r,...o}=e,l=r?C:t;return(0,d.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,d.createElement)(l,(0,s.Z)({},o,{ref:n}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{}),x="dismissableLayer.update",O=(0,d.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),D=(0,d.forwardRef)((e,t)=>{let{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:a,onDismiss:i,...c}=e,f=(0,d.useContext)(O),[p,h]=(0,d.useState)(null),[,g]=(0,d.useState)({}),E=m(t,e=>h(e)),b=Array.from(f.layers),[w]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),C=b.indexOf(w),R=p?b.indexOf(p):-1,S=f.layersWithOutsidePointerEventsDisabled.size>0,P=R>=C,D=function(e){let t=y(e),n=(0,d.useRef)(!1),r=(0,d.useRef)(()=>{});return(0,d.useEffect)(()=>{let e=e=>{if(e.target&&!n.current){let n={originalEvent:e};function o(){A("dismissableLayer.pointerDownOutside",t,n,{discrete:!0})}"touch"===e.pointerType?(document.removeEventListener("click",r.current),r.current=o,document.addEventListener("click",r.current,{once:!0})):o()}n.current=!1},o=window.setTimeout(()=>{document.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(o),document.removeEventListener("pointerdown",e),document.removeEventListener("click",r.current)}},[t]),{onPointerDownCapture:()=>n.current=!0}}(e=>{let t=e.target,n=[...f.branches].some(e=>e.contains(t));!P||n||(null==l||l(e),null==a||a(e),e.defaultPrevented||null==i||i())}),M=function(e){let t=y(e),n=(0,d.useRef)(!1);return(0,d.useEffect)(()=>{let e=e=>{e.target&&!n.current&&A("dismissableLayer.focusOutside",t,{originalEvent:e},{discrete:!1})};return document.addEventListener("focusin",e),()=>document.removeEventListener("focusin",e)},[t]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}(e=>{let t=e.target;[...f.branches].some(e=>e.contains(t))||(null==u||u(e),null==a||a(e),e.defaultPrevented||null==i||i())});return!function(e){let t=y(e);(0,d.useEffect)(()=>{let e=e=>{"Escape"===e.key&&t(e)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t])}(e=>{R!==f.layers.size-1||(null==o||o(e),!e.defaultPrevented&&i&&(e.preventDefault(),i()))}),(0,d.useEffect)(()=>{if(p)return n&&(0===f.layersWithOutsidePointerEventsDisabled.size&&(r=document.body.style.pointerEvents,document.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(p)),f.layers.add(p),N(),()=>{n&&1===f.layersWithOutsidePointerEventsDisabled.size&&(document.body.style.pointerEvents=r)}},[p,n,f]),(0,d.useEffect)(()=>()=>{p&&(f.layers.delete(p),f.layersWithOutsidePointerEventsDisabled.delete(p),N())},[p,f]),(0,d.useEffect)(()=>{let e=()=>g({});return document.addEventListener(x,e),()=>document.removeEventListener(x,e)},[]),(0,d.createElement)(k.div,(0,s.Z)({},c,{ref:E,style:{pointerEvents:S?P?"auto":"none":void 0,...e.style},onFocusCapture:v(e.onFocusCapture,M.onFocusCapture),onBlurCapture:v(e.onBlurCapture,M.onBlurCapture),onPointerDownCapture:v(e.onPointerDownCapture,D.onPointerDownCapture)}))});function N(){let e=new CustomEvent(x);document.dispatchEvent(e)}function A(e,t,n,{discrete:r}){let o=n.originalEvent.target,l=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});(t&&o.addEventListener(e,t,{once:!0}),r)?o&&(0,w.flushSync)(()=>o.dispatchEvent(l)):o.dispatchEvent(l)}let M="focusScope.autoFocusOnMount",L="focusScope.autoFocusOnUnmount",I={bubbles:!1,cancelable:!0},F=(0,d.forwardRef)((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:l,...u}=e,[a,i]=(0,d.useState)(null),c=y(o),f=y(l),v=(0,d.useRef)(null),p=m(t,e=>i(e)),h=(0,d.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,d.useEffect)(()=>{if(r){function e(e){if(h.paused||!a)return;let t=e.target;a.contains(t)?v.current=t:j(v.current,{select:!0})}function t(e){h.paused||!a||a.contains(e.relatedTarget)||j(v.current,{select:!0})}return document.addEventListener("focusin",e),document.addEventListener("focusout",t),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t)}}},[r,a,h.paused]),(0,d.useEffect)(()=>{if(a){Z.add(h);let e=document.activeElement;if(!a.contains(e)){let t=new CustomEvent(M,I);a.addEventListener(M,c),a.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(j(r,{select:t}),document.activeElement!==n)return}(_(a).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&j(a))}return()=>{a.removeEventListener(M,c),setTimeout(()=>{let t=new CustomEvent(L,I);a.addEventListener(L,f),a.dispatchEvent(t),t.defaultPrevented||j(null!=e?e:document.body,{select:!0}),a.removeEventListener(L,f),Z.remove(h)},0)}}},[a,c,f,h]);let g=(0,d.useCallback)(e=>{if(!n&&!r||h.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){let t=e.currentTarget,[r,l]=function(e){let t=_(e);return[T(t,e),T(t.reverse(),e)]}(t);r&&l?e.shiftKey||o!==l?e.shiftKey&&o===r&&(e.preventDefault(),n&&j(l,{select:!0})):(e.preventDefault(),n&&j(r,{select:!0})):o===t&&e.preventDefault()}},[n,r,h.paused]);return(0,d.createElement)(k.div,(0,s.Z)({tabIndex:-1},u,{ref:p,onKeyDown:g}))});function _(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function T(e,t){for(let n of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(n,{upTo:t}))return n}function j(e,{select:t=!1}={}){if(e&&e.focus){var n;let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&(n=e)instanceof HTMLInputElement&&"select"in n&&t&&e.select()}}let Z=(o=[],{add(e){let t=o[0];e!==t&&(null==t||t.pause()),(o=$(o,e)).unshift(e)},remove(e){var t;null===(t=(o=$(o,e))[0])||void 0===t||t.resume()}});function $(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}let W=(0,d.forwardRef)((e,t)=>{var n;let{container:r=null==globalThis?void 0:null===(n=globalThis.document)||void 0===n?void 0:n.body,...o}=e;return r?w.createPortal((0,d.createElement)(k.div,(0,s.Z)({},o,{ref:t})),r):null}),K=e=>{let{present:t,children:n}=e,r=function(e){var t,n;let[r,o]=(0,d.useState)(),l=(0,d.useRef)({}),u=(0,d.useRef)(e),a=(0,d.useRef)("none"),[i,c]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},(0,d.useReducer)((e,t)=>{let r=n[e][t];return null!=r?r:e},t));return(0,d.useEffect)(()=>{let e=U(l.current);a.current="mounted"===i?e:"none"},[i]),h(()=>{let t=l.current,n=u.current;if(n!==e){let r=a.current,o=U(t);e?c("MOUNT"):"none"===o||(null==t?void 0:t.display)==="none"?c("UNMOUNT"):n&&r!==o?c("ANIMATION_OUT"):c("UNMOUNT"),u.current=e}},[e,c]),h(()=>{if(r){let e=e=>{let t=U(l.current).includes(e.animationName);e.target===r&&t&&(0,w.flushSync)(()=>c("ANIMATION_END"))},t=e=>{e.target===r&&(a.current=U(l.current))};return r.addEventListener("animationstart",t),r.addEventListener("animationcancel",e),r.addEventListener("animationend",e),()=>{r.removeEventListener("animationstart",t),r.removeEventListener("animationcancel",e),r.removeEventListener("animationend",e)}}c("ANIMATION_END")},[r,c]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:(0,d.useCallback)(e=>{e&&(l.current=getComputedStyle(e)),o(e)},[])}}(t),o="function"==typeof n?n({present:r.isPresent}):d.Children.only(n),l=m(r.ref,o.ref);return"function"==typeof n||r.isPresent?(0,d.cloneElement)(o,{ref:l}):null};function U(e){return(null==e?void 0:e.animationName)||"none"}K.displayName="Presence";let z=0;function B(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}var V=n(5853),q=n(85770),Y=n(17325),X=(0,n(31412)._)(),H=function(){},G=d.forwardRef(function(e,t){var n=d.useRef(null),r=d.useState({onScrollCapture:H,onWheelCapture:H,onTouchMoveCapture:H}),o=r[0],l=r[1],u=e.forwardProps,a=e.children,i=e.className,c=e.removeScrollBar,s=e.enabled,f=e.shards,v=e.sideCar,p=e.noIsolation,m=e.inert,h=e.allowPinchZoom,g=e.as,E=(0,V._T)(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),b=(0,Y.q)([n,t]),y=(0,V.pi)((0,V.pi)({},E),o);return d.createElement(d.Fragment,null,s&&d.createElement(v,{sideCar:X,removeScrollBar:c,shards:f,noIsolation:p,inert:m,setCallbacks:l,allowPinchZoom:!!h,lockRef:n}),u?d.cloneElement(d.Children.only(a),(0,V.pi)((0,V.pi)({},y),{ref:b})):d.createElement(void 0===g?"div":g,(0,V.pi)({},y,{className:i,ref:b}),a))});G.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},G.classNames={fullWidth:q.zi,zeroRight:q.pF};var J=n(49085),Q=n(5517),ee=n(18704),et=!1;if("undefined"!=typeof window)try{var en=Object.defineProperty({},"passive",{get:function(){return et=!0,!0}});window.addEventListener("test",en,en),window.removeEventListener("test",en,en)}catch(e){et=!1}var er=!!et&&{passive:!1},eo=function(e){var t=window.getComputedStyle(e);return"hidden"!==t.overflowY&&!(t.overflowY===t.overflowX&&"visible"===t.overflowY)},el=function(e){var t=window.getComputedStyle(e);return"hidden"!==t.overflowX&&!(t.overflowY===t.overflowX&&"visible"===t.overflowX)},eu=function(e,t){var n=t;do{if("undefined"!=typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),ea(e,n)){var r=ei(e,n);if(r[1]>r[2])return!0}n=n.parentNode}while(n&&n!==document.body);return!1},ea=function(e,t){return"v"===e?eo(t):el(t)},ei=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},ec=function(e,t,n,r,o){var l,u=(l=window.getComputedStyle(t).direction,"h"===e&&"rtl"===l?-1:1),a=u*r,i=n.target,c=t.contains(i),s=!1,d=a>0,f=0,v=0;do{var p=ei(e,i),m=p[0],h=p[1]-p[2]-u*m;(m||h)&&ea(e,i)&&(f+=h,v+=m),i=i.parentNode}while(!c&&i!==document.body||c&&(t.contains(i)||t===i));return d&&(o&&0===f||!o&&a>f)?s=!0:!d&&(o&&0===v||!o&&-a>v)&&(s=!0),s},es=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},ed=function(e){return[e.deltaX,e.deltaY]},ef=function(e){return e&&"current"in e?e.current:e},ev=0,ep=[],em=(0,J.L)(X,function(e){var t=d.useRef([]),n=d.useRef([0,0]),r=d.useRef(),o=d.useState(ev++)[0],l=d.useState(function(){return(0,ee.Ws)()})[0],u=d.useRef(e);d.useEffect(function(){u.current=e},[e]),d.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(0,V.ev)([e.lockRef.current],(e.shards||[]).map(ef),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var a=d.useCallback(function(e,t){if("touches"in e&&2===e.touches.length)return!u.current.allowPinchZoom;var o,l=es(e),a=n.current,i="deltaX"in e?e.deltaX:a[0]-l[0],c="deltaY"in e?e.deltaY:a[1]-l[1],s=e.target,d=Math.abs(i)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===d&&"range"===s.type)return!1;var f=eu(d,s);if(!f)return!0;if(f?o=d:(o="v"===d?"h":"v",f=eu(d,s)),!f)return!1;if(!r.current&&"changedTouches"in e&&(i||c)&&(r.current=o),!o)return!0;var v=r.current||o;return ec(v,t,e,"h"===v?i:c,!0)},[]),i=d.useCallback(function(e){if(ep.length&&ep[ep.length-1]===l){var n="deltaY"in e?ed(e):es(e),r=t.current.filter(function(t){var r;return t.name===e.type&&t.target===e.target&&(r=t.delta)[0]===n[0]&&r[1]===n[1]})[0];if(r&&r.should){e.preventDefault();return}if(!r){var o=(u.current.shards||[]).map(ef).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?a(e,o[0]):!u.current.noIsolation)&&e.preventDefault()}}},[]),c=d.useCallback(function(e,n,r,o){var l={name:e,delta:n,target:r,should:o};t.current.push(l),setTimeout(function(){t.current=t.current.filter(function(e){return e!==l})},1)},[]),s=d.useCallback(function(e){n.current=es(e),r.current=void 0},[]),f=d.useCallback(function(t){c(t.type,ed(t),t.target,a(t,e.lockRef.current))},[]),v=d.useCallback(function(t){c(t.type,es(t),t.target,a(t,e.lockRef.current))},[]);d.useEffect(function(){return ep.push(l),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:v}),document.addEventListener("wheel",i,er),document.addEventListener("touchmove",i,er),document.addEventListener("touchstart",s,er),function(){ep=ep.filter(function(e){return e!==l}),document.removeEventListener("wheel",i,er),document.removeEventListener("touchmove",i,er),document.removeEventListener("touchstart",s,er)}},[]);var p=e.removeScrollBar,m=e.inert;return d.createElement(d.Fragment,null,m?d.createElement(l,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,p?d.createElement(Q.jp,{gapMode:"margin"}):null)}),eh=d.forwardRef(function(e,t){return d.createElement(G,(0,V.pi)({},e,{ref:t,sideCar:em}))});eh.classNames=G.classNames;var eg=n(5478);let eE="Dialog",[eb,ey]=function(e,t=[]){let n=[],r=()=>{let t=n.map(e=>(0,d.createContext)(e));return function(n){let r=(null==n?void 0:n[e])||t;return(0,d.useMemo)(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return r.scopeName=e,[function(t,r){let o=(0,d.createContext)(r),l=n.length;function u(t){let{scope:n,children:r,...u}=t,a=(null==n?void 0:n[e][l])||o,i=(0,d.useMemo)(()=>u,Object.values(u));return(0,d.createElement)(a.Provider,{value:i},r)}return n=[...n,r],u.displayName=t+"Provider",[u,function(n,u){let a=(null==u?void 0:u[e][l])||o,i=(0,d.useContext)(a);if(i)return i;if(void 0!==r)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let o=n(e)[`__scope${r}`];return{...t,...o}},{});return(0,d.useMemo)(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}(r,...t)]}(eE),[ew,eC]=eb(eE),eR="DialogPortal",[eS,eP]=eb(eR,{forceMount:void 0}),ek="DialogOverlay",ex=(0,d.forwardRef)((e,t)=>{let n=eP(ek,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,l=eC(ek,e.__scopeDialog);return l.modal?(0,d.createElement)(K,{present:r||l.open},(0,d.createElement)(eO,(0,s.Z)({},o,{ref:t}))):null}),eO=(0,d.forwardRef)((e,t)=>{let{__scopeDialog:n,...r}=e,o=eC(ek,n);return(0,d.createElement)(eh,{as:C,allowPinchZoom:!0,shards:[o.contentRef]},(0,d.createElement)(k.div,(0,s.Z)({"data-state":eI(o.open)},r,{ref:t,style:{pointerEvents:"auto",...r.style}})))}),eD="DialogContent",eN=(0,d.forwardRef)((e,t)=>{let n=eP(eD,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,l=eC(eD,e.__scopeDialog);return(0,d.createElement)(K,{present:r||l.open},l.modal?(0,d.createElement)(eA,(0,s.Z)({},o,{ref:t})):(0,d.createElement)(eM,(0,s.Z)({},o,{ref:t})))}),eA=(0,d.forwardRef)((e,t)=>{let n=eC(eD,e.__scopeDialog),r=(0,d.useRef)(null),o=m(t,n.contentRef,r);return(0,d.useEffect)(()=>{let e=r.current;if(e)return(0,eg.Ry)(e)},[]),(0,d.createElement)(eL,(0,s.Z)({},e,{ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:v(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null===(t=n.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:v(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:v(e.onFocusOutside,e=>e.preventDefault())}))}),eM=(0,d.forwardRef)((e,t)=>{let n=eC(eD,e.__scopeDialog),r=(0,d.useRef)(!1);return(0,d.createElement)(eL,(0,s.Z)({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var o,l;null===(o=e.onCloseAutoFocus)||void 0===o||o.call(e,t),t.defaultPrevented||(r.current||null===(l=n.triggerRef.current)||void 0===l||l.focus(),t.preventDefault()),r.current=!1},onInteractOutside:t=>{var o,l;null===(o=e.onInteractOutside)||void 0===o||o.call(e,t),t.defaultPrevented||(r.current=!0);let u=t.target;(null===(l=n.triggerRef.current)||void 0===l?void 0:l.contains(u))&&t.preventDefault()}}))}),eL=(0,d.forwardRef)((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:l,...u}=e,a=eC(eD,n),i=m(t,(0,d.useRef)(null));return(0,d.useEffect)(()=>{var e,t;let n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",null!==(e=n[0])&&void 0!==e?e:B()),document.body.insertAdjacentElement("beforeend",null!==(t=n[1])&&void 0!==t?t:B()),z++,()=>{1===z&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),z--}},[]),(0,d.createElement)(d.Fragment,null,(0,d.createElement)(F,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:l},(0,d.createElement)(D,(0,s.Z)({role:"dialog",id:a.contentId,"aria-describedby":a.descriptionId,"aria-labelledby":a.titleId,"data-state":eI(a.open)},u,{ref:i,onDismiss:()=>a.onOpenChange(!1)}))),!1)});function eI(e){return e?"open":"closed"}let[eF,e_]=function(e,t){let n=(0,d.createContext)(t);function r(e){let{children:t,...r}=e,o=(0,d.useMemo)(()=>r,Object.values(r));return(0,d.createElement)(n.Provider,{value:o},t)}return r.displayName=e+"Provider",[r,function(r){let o=(0,d.useContext)(n);if(o)return o;if(void 0!==t)return t;throw Error(`\`${r}\` must be used within \`${e}\``)}]}("DialogTitleWarning",{contentName:eD,titleName:"DialogTitle",docsSlug:"dialog"}),eT=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:l,modal:u=!0}=e,a=(0,d.useRef)(null),i=(0,d.useRef)(null),[c=!1,s]=function({prop:e,defaultProp:t,onChange:n=()=>{}}){let[r,o]=function({defaultProp:e,onChange:t}){let n=(0,d.useState)(e),[r]=n,o=(0,d.useRef)(r),l=y(t);return(0,d.useEffect)(()=>{o.current!==r&&(l(r),o.current=r)},[r,o,l]),n}({defaultProp:t,onChange:n}),l=void 0!==e,u=l?e:r,a=y(n);return[u,(0,d.useCallback)(t=>{if(l){let n="function"==typeof t?t(e):t;n!==e&&a(n)}else o(t)},[l,e,o,a])]}({prop:r,defaultProp:o,onChange:l});return(0,d.createElement)(ew,{scope:t,triggerRef:a,contentRef:i,contentId:b(),titleId:b(),descriptionId:b(),open:c,onOpenChange:s,onOpenToggle:(0,d.useCallback)(()=>s(e=>!e),[s]),modal:u},n)},ej=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:o}=e,l=eC(eR,t);return(0,d.createElement)(eS,{scope:t,forceMount:n},d.Children.map(r,e=>(0,d.createElement)(K,{present:n||l.open},(0,d.createElement)(W,{asChild:!0,container:o},e))))};var eZ='[cmdk-group=""]',e$='[cmdk-group-items=""]',eW='[cmdk-item=""]',eK=`${eW}:not([aria-disabled="true"])`,eU="cmdk-item-select",ez="data-value",eB=(e,t)=>(function e(t,n,r,o,c,s,d){if(s===n.length)return c===t.length?1:.99;var f=`${c},${s}`;if(void 0!==d[f])return d[f];for(var v,p,m,h,g=o.charAt(s),E=r.indexOf(g,c),b=0;E>=0;)(v=e(t,n,r,o,E+1,s+1,d))>b&&(E===c?v*=1:l.test(t.charAt(E-1))?(v*=.8,(m=t.slice(c,E-1).match(u))&&c>0&&(v*=Math.pow(.999,m.length))):a.test(t.charAt(E-1))?(v*=.9,(h=t.slice(c,E-1).match(i))&&c>0&&(v*=Math.pow(.999,h.length))):(v*=.17,c>0&&(v*=Math.pow(.999,E-c))),t.charAt(E)!==n.charAt(s)&&(v*=.9999)),(v<.1&&r.charAt(E-1)===o.charAt(s+1)||o.charAt(s+1)===o.charAt(s)&&r.charAt(E-1)!==o.charAt(s))&&.1*(p=e(t,n,r,o,E+1,s+2,d))>v&&(v=.1*p),v>b&&(b=v),E=r.indexOf(g,E+1);return d[f]=b,b})(e,t,c(e),c(t),0,0,{}),eV=d.createContext(void 0),eq=()=>d.useContext(eV),eY=d.createContext(void 0),eX=()=>d.useContext(eY),eH=d.createContext(void 0),eG=d.forwardRef((e,t)=>{let n=d.useRef(null),r=e5(()=>{var t,n,r;return{search:"",value:null!=(r=null!=(n=e.value)?n:null==(t=e.defaultValue)?void 0:t.toLowerCase())?r:"",filtered:{count:0,items:new Map,groups:new Set}}}),o=e5(()=>new Set),l=e5(()=>new Map),u=e5(()=>new Map),a=e5(()=>new Set),i=e7(e),{label:c,children:s,value:f,onValueChange:v,filter:p,shouldFilter:m,vimBindings:h=!0,...g}=e,E=d.useId(),b=d.useId(),y=d.useId(),w=tt();e8(()=>{if(void 0!==f){let e=f.trim().toLowerCase();r.current.value=e,w(6,O),C.emit()}},[f]);let C=d.useMemo(()=>({subscribe:e=>(a.current.add(e),()=>a.current.delete(e)),snapshot:()=>r.current,setState:(e,t,n)=>{var o,l,u;if(!Object.is(r.current[e],t)){if(r.current[e]=t,"search"===e)x(),P(),w(1,k);else if("value"===e){if((null==(o=i.current)?void 0:o.value)!==void 0){null==(u=(l=i.current).onValueChange)||u.call(l,null!=t?t:"");return}n||w(5,O)}C.emit()}},emit:()=>{a.current.forEach(e=>e())}}),[]),R=d.useMemo(()=>({value:(e,t)=>{t!==u.current.get(e)&&(u.current.set(e,t),r.current.filtered.items.set(e,S(t)),w(2,()=>{P(),C.emit()}))},item:(e,t)=>(o.current.add(e),t&&(l.current.has(t)?l.current.get(t).add(e):l.current.set(t,new Set([e]))),w(3,()=>{x(),P(),r.current.value||k(),C.emit()}),()=>{u.current.delete(e),o.current.delete(e),r.current.filtered.items.delete(e);let t=D();w(4,()=>{x(),(null==t?void 0:t.getAttribute("id"))===e&&k(),C.emit()})}),group:e=>(l.current.has(e)||l.current.set(e,new Set),()=>{u.current.delete(e),l.current.delete(e)}),filter:()=>i.current.shouldFilter,label:c||e["aria-label"],commandRef:n,listId:E,inputId:y,labelId:b}),[]);function S(e){var t,n;let o=null!=(n=null==(t=i.current)?void 0:t.filter)?n:eB;return e?o(e,r.current.search):0}function P(){if(!n.current||!r.current.search||!1===i.current.shouldFilter)return;let e=r.current.filtered.items,t=[];r.current.filtered.groups.forEach(n=>{let r=l.current.get(n),o=0;r.forEach(t=>{o=Math.max(e.get(t),o)}),t.push([n,o])});let o=n.current.querySelector('[cmdk-list-sizer=""]');N().sort((t,n)=>{var r,o;let l=t.getAttribute(ez),u=n.getAttribute(ez);return(null!=(r=e.get(u))?r:0)-(null!=(o=e.get(l))?o:0)}).forEach(e=>{let t=e.closest(e$);t?t.appendChild(e.parentElement===t?e:e.closest(`${e$} > *`)):o.appendChild(e.parentElement===o?e:e.closest(`${e$} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=n.current.querySelector(`${eZ}[${ez}="${e[0]}"]`);null==t||t.parentElement.appendChild(t)})}function k(){let e=N().find(e=>!e.ariaDisabled),t=null==e?void 0:e.getAttribute(ez);C.setState("value",t||void 0)}function x(){if(!r.current.search||!1===i.current.shouldFilter){r.current.filtered.count=o.current.size;return}r.current.filtered.groups=new Set;let e=0;for(let t of o.current){let n=S(u.current.get(t));r.current.filtered.items.set(t,n),n>0&&e++}for(let[e,t]of l.current)for(let n of t)if(r.current.filtered.items.get(n)>0){r.current.filtered.groups.add(e);break}r.current.filtered.count=e}function O(){var e,t,n;let r=D();r&&((null==(e=r.parentElement)?void 0:e.firstChild)===r&&(null==(n=null==(t=r.closest(eZ))?void 0:t.querySelector('[cmdk-group-heading=""]'))||n.scrollIntoView({block:"nearest"})),r.scrollIntoView({block:"nearest"}))}function D(){var e;return null==(e=n.current)?void 0:e.querySelector(`${eW}[aria-selected="true"]`)}function N(){return Array.from(n.current.querySelectorAll(eK))}function A(e){let t=N()[e];t&&C.setState("value",t.getAttribute(ez))}function M(e){var t;let n=D(),r=N(),o=r.findIndex(e=>e===n),l=r[o+e];null!=(t=i.current)&&t.loop&&(l=o+e<0?r[r.length-1]:o+e===r.length?r[0]:r[o+e]),l&&C.setState("value",l.getAttribute(ez))}function L(e){let t=D(),n=null==t?void 0:t.closest(eZ),r;for(;n&&!r;)r=null==(n=e>0?function(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}(n,eZ):function(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}(n,eZ))?void 0:n.querySelector(eK);r?C.setState("value",r.getAttribute(ez)):M(e)}let I=()=>A(N().length-1),F=e=>{e.preventDefault(),e.metaKey?I():e.altKey?L(1):M(1)},_=e=>{e.preventDefault(),e.metaKey?A(0):e.altKey?L(-1):M(-1)};return d.createElement("div",{ref:e6([n,t]),...g,"cmdk-root":"",onKeyDown:e=>{var t;if(null==(t=g.onKeyDown)||t.call(g,e),!e.defaultPrevented)switch(e.key){case"n":case"j":h&&e.ctrlKey&&F(e);break;case"ArrowDown":F(e);break;case"p":case"k":h&&e.ctrlKey&&_(e);break;case"ArrowUp":_(e);break;case"Home":e.preventDefault(),A(0);break;case"End":e.preventDefault(),I();break;case"Enter":if(!e.nativeEvent.isComposing){e.preventDefault();let t=D();if(t){let e=new Event(eU);t.dispatchEvent(e)}}}}},d.createElement("label",{"cmdk-label":"",htmlFor:R.inputId,id:R.labelId,style:tn},c),d.createElement(eY.Provider,{value:C},d.createElement(eV.Provider,{value:R},s)))}),eJ=d.forwardRef((e,t)=>{var n,r;let o=d.useId(),l=d.useRef(null),u=d.useContext(eH),a=eq(),i=e7(e),c=null!=(r=null==(n=i.current)?void 0:n.forceMount)?r:null==u?void 0:u.forceMount;e8(()=>a.item(o,null==u?void 0:u.id),[]);let s=te(o,l,[e.value,e.children,l]),f=eX(),v=e4(e=>e.value&&e.value===s.current),p=e4(e=>!!c||!1===a.filter()||!e.search||e.filtered.items.get(o)>0);function m(){var e,t;h(),null==(t=(e=i.current).onSelect)||t.call(e,s.current)}function h(){f.setState("value",s.current,!0)}if(d.useEffect(()=>{let t=l.current;if(!(!t||e.disabled))return t.addEventListener(eU,m),()=>t.removeEventListener(eU,m)},[p,e.onSelect,e.disabled]),!p)return null;let{disabled:g,value:E,onSelect:b,forceMount:y,...w}=e;return d.createElement("div",{ref:e6([l,t]),...w,id:o,"cmdk-item":"",role:"option","aria-disabled":g||void 0,"aria-selected":v||void 0,"data-disabled":g||void 0,"data-selected":v||void 0,onPointerMove:g?void 0:h,onClick:g?void 0:m},e.children)}),eQ=d.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:o,...l}=e,u=d.useId(),a=d.useRef(null),i=d.useRef(null),c=d.useId(),s=eq(),f=e4(e=>!!o||!1===s.filter()||!e.search||e.filtered.groups.has(u));e8(()=>s.group(u),[]),te(u,a,[e.value,e.heading,i]);let v=d.useMemo(()=>({id:u,forceMount:o}),[o]),p=d.createElement(eH.Provider,{value:v},r);return d.createElement("div",{ref:e6([a,t]),...l,"cmdk-group":"",role:"presentation",hidden:!f||void 0},n&&d.createElement("div",{ref:i,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),d.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},p))}),e0=d.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,o=d.useRef(null),l=e4(e=>!e.search);return n||l?d.createElement("div",{ref:e6([o,t]),...r,"cmdk-separator":"",role:"separator"}):null}),e1=d.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,o=null!=e.value,l=eX(),u=e4(e=>e.search),a=e4(e=>e.value),i=eq(),c=d.useMemo(()=>{var e;let t=null==(e=i.commandRef.current)?void 0:e.querySelector(`${eW}[${ez}="${a}"]`);return null==t?void 0:t.getAttribute("id")},[a,i.commandRef]);return d.useEffect(()=>{null!=e.value&&l.setState("search",e.value)},[e.value]),d.createElement("input",{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":i.listId,"aria-labelledby":i.labelId,"aria-activedescendant":c,id:i.inputId,type:"text",value:o?e.value:u,onChange:e=>{o||l.setState("search",e.target.value),null==n||n(e.target.value)}})}),e9=d.forwardRef((e,t)=>{let{children:n,...r}=e,o=d.useRef(null),l=d.useRef(null),u=eq();return d.useEffect(()=>{if(l.current&&o.current){let e=l.current,t=o.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty("--cmdk-list-height",n.toFixed(1)+"px")})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),d.createElement("div",{ref:e6([o,t]),...r,"cmdk-list":"",role:"listbox","aria-label":"Suggestions",id:u.listId,"aria-labelledby":u.inputId},d.createElement("div",{ref:l,"cmdk-list-sizer":""},n))}),e2=d.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:o,contentClassName:l,container:u,...a}=e;return d.createElement(eT,{open:n,onOpenChange:r},d.createElement(ej,{container:u},d.createElement(ex,{"cmdk-overlay":"",className:o}),d.createElement(eN,{"aria-label":e.label,"cmdk-dialog":"",className:l},d.createElement(eG,{ref:t,...a}))))}),e3=Object.assign(eG,{List:e9,Item:eJ,Input:e1,Group:eQ,Separator:e0,Dialog:e2,Empty:d.forwardRef((e,t)=>{let n=d.useRef(!0),r=e4(e=>0===e.filtered.count);return d.useEffect(()=>{n.current=!1},[]),n.current||!r?null:d.createElement("div",{ref:t,...e,"cmdk-empty":"",role:"presentation"})}),Loading:d.forwardRef((e,t)=>{let{progress:n,children:r,...o}=e;return d.createElement("div",{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":"Loading..."},d.createElement("div",{"aria-hidden":!0},r))})});function e7(e){let t=d.useRef(e);return e8(()=>{t.current=e}),t}var e8="undefined"==typeof window?d.useEffect:d.useLayoutEffect;function e5(e){let t=d.useRef();return void 0===t.current&&(t.current=e()),t}function e6(e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}}function e4(e){let t=eX(),n=()=>e(t.snapshot());return d.useSyncExternalStore(t.subscribe,n,n)}function te(e,t,n){let r=d.useRef(),o=eq();return e8(()=>{var l;let u=(()=>{var e;for(let t of n){if("string"==typeof t)return t.trim().toLowerCase();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim().toLowerCase():r.current}})();o.value(e,u),null==(l=t.current)||l.setAttribute(ez,u),r.current=u}),r}var tt=()=>{let[e,t]=d.useState(),n=e5(()=>new Map);return e8(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}},tn={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"}}}]);
|
|
2
|
-
//# sourceMappingURL=3171-6996819b8863d41f.js.map
|