import { ReactNode, useState } from 'react'; import { Database } from 'lucide-react'; import { cn } from '@/lib/utils'; import SourceLink, { DataSource } from './SourceLink'; import { DataSourceSelector, DataSourceConfig, DataSourceTrigger } from './DataSourceSelector'; import { Button } from '@/components/ui/button'; interface CyberCardProps { children: ReactNode; className?: string; variant?: 'default' | 'bordered' | 'glowing'; header?: string; source?: DataSource; /** Enable data source switching */ configurable?: boolean; /** Initial data source config */ dataSource?: DataSourceConfig; /** Called when data source changes */ onDataSourceChange?: (source: DataSourceConfig) => void; } const CyberCard = ({ children, className, variant = 'default', header, source, configurable = false, dataSource, onDataSourceChange }: CyberCardProps) => { const [selectedSource, setSelectedSource] = useState(dataSource); const [selectorOpen, setSelectorOpen] = useState(false); const handleSourceChange = (newSource: DataSourceConfig) => { setSelectedSource(newSource); onDataSourceChange?.(newSource); }; return (
{header && (
{header}
{configurable && ( <> setSelectorOpen(true)} /> )} {source && } {new Date().toLocaleTimeString('da-DK', { hour: '2-digit', minute: '2-digit', second: '2-digit' })}
)}
{children}
{/* Corner accents */}
); }; export default CyberCard;