/* Copyright 2026 Marimo. All rights reserved. */ import { PlusIcon, SparklesIcon } from "lucide-react"; import { useId } from "react"; import { Tooltip, TooltipProvider } from "@/components/ui/tooltip"; import type { DataSourceDiscoveryGroup, DetectedDataSource, } from "@/core/datasets/data-source-discovery"; import { useDetectedDataSources } from "@/hooks/useDataSourceDiscovery"; import { useAddDetectedDataSource } from "./components"; import { cn } from "@/utils/cn"; export const QuickAddDataSources: React.FC<{ className?: string; sources: DetectedDataSource[]; onAdd: (source: DetectedDataSource) => void; }> = ({ className, sources, onAdd }) => { const titleId = useId(); if (sources.length === 0) { return null; } return (

Quick add

{sources.map((source) => ( } > ))}
); }; const DetectedDataSourceDetails: React.FC<{ source: DetectedDataSource; }> = ({ source }) => (
{source.displayName}
Detected from{" "} {source.origins.map((origin) => origin.label).join(" and ")}
{source.configuration.map((item) => (
{item.field}
{item.value.kind === "environment-variable" ? `os.environ["${item.value.name}"]` : item.value.value}
))}
Click to add a configured cell.
); export const AutoDiscoveredDataSources: React.FC<{ onSubmit?: () => void; className?: string; group?: DataSourceDiscoveryGroup; }> = ({ onSubmit, className, group }) => { const addDetectedDataSource = useAddDetectedDataSource(onSubmit); const sources = useDetectedDataSources(group); return ( ); };