/* Copyright 2026 Marimo. All rights reserved. */ import { useState } from "react"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { ExternalLink } from "@/components/ui/links"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { AddDatabaseForm } from "./database/add-database-form"; import { AddStorageForm } from "./storage/add-storage-form"; type ConnectionTab = "databases" | "storage"; export const AddConnectionDialog: React.FC<{ children: React.ReactNode; defaultTab?: ConnectionTab; }> = ({ children, defaultTab = "databases" }) => { const [open, setOpen] = useState(false); return ( {children} setOpen(false)} /> ); }; export const AddConnectionDialogContent: React.FC<{ defaultTab?: ConnectionTab; onClose: () => void; }> = ({ defaultTab = "databases", onClose }) => { const [activeTab, setActiveTab] = useState(defaultTab); const tabHeader = ( Databases & Catalogs Remote Storages ); const codeSnippetHint = activeTab === "databases" ? ( <> Don't see your database or connection method? A{" "} code snippet {" "} is all you need. ) : ( <> Don't see your storage or connection method? A{" "} code snippet {" "} is all you need. ); return ( Add Connection Connect to a{" "} database, data catalog {" "} or{" "} remote storage {" "} directly from your notebook. {codeSnippetHint} setActiveTab(v as ConnectionTab)} > ); };