import { useCanvasStore } from '../../../hooks/useCanvasStore'; import { ExpressionSelector } from './ExpressionSelector'; import { ModelNodeData, SolverNodeData, DesignVarNodeData, AlgorithmNodeData, ObjectiveNodeData, ExtractorNodeData, ConstraintNodeData, SurrogateNodeData } from '../../../lib/canvas/schema'; interface NodeConfigPanelProps { nodeId: string; } // Common input class for dark theme const inputClass = "w-full px-3 py-2 bg-dark-800 border border-dark-600 text-white placeholder-dark-400 rounded-lg focus:border-primary-500 focus:outline-none transition-colors"; const selectClass = "w-full px-3 py-2 bg-dark-800 border border-dark-600 text-white rounded-lg focus:border-primary-500 focus:outline-none transition-colors"; const labelClass = "block text-sm font-medium text-dark-300 mb-1"; export function NodeConfigPanel({ nodeId }: NodeConfigPanelProps) { const { nodes, updateNodeData, deleteSelected } = useCanvasStore(); const node = nodes.find((n) => n.id === nodeId); if (!node) return null; const { data } = node; const handleChange = (field: string, value: unknown) => { updateNodeData(nodeId, { [field]: value, configured: true }); }; return (