import { AlertCircle, Braces, Plus, Trash2, X } from 'lucide-react' import { useI18n } from '../context/I18nContext' import type { BehaviorNode, BehaviorTreeDocument, PortDirection, ValidationIssue } from '../types' interface InspectorProps { document: BehaviorTreeDocument selectedNode: BehaviorNode | null issues: ValidationIssue[] onUpdateDocument: (patch: Partial>) => void onUpdateNode: (nodeId: string, data: Partial) => void onDeleteNode: (nodeId: string) => void onSelectIssue: (nodeId: string) => void } export function Inspector({ document, selectedNode, issues, onUpdateDocument, onUpdateNode, onDeleteNode, onSelectIssue }: InspectorProps) { const { t } = useI18n() const updatePort = (oldKey: string, key: string, value: string) => { if (!selectedNode) return const ports = { ...selectedNode.data.ports } if (oldKey !== key) delete ports[oldKey] ports[key] = value onUpdateNode(selectedNode.id, { ports }) } const updatePortDirection = (key: string, direction: PortDirection | '') => { if (!selectedNode) return const portDirections = { ...(selectedNode.data.portDirections || {}) } if (direction) { portDirections[key] = direction } else { delete portDirections[key] } onUpdateNode(selectedNode.id, { portDirections: Object.keys(portDirections).length > 0 ? portDirections : undefined }) } const removePort = (key: string) => { if (!selectedNode) return const ports = { ...selectedNode.data.ports } delete ports[key] const portDirections = selectedNode.data.portDirections ? { ...selectedNode.data.portDirections } : {} delete portDirections[key] onUpdateNode(selectedNode.id, { ports, portDirections: Object.keys(portDirections).length > 0 ? portDirections : undefined, }) } const addPort = () => { if (!selectedNode) return let key = 'port' let index = 1 while (key in selectedNode.data.ports) key = `port_${index++}` onUpdateNode(selectedNode.id, { ports: { ...selectedNode.data.ports, [key]: '' } }) } const getPortDir = (key: string): PortDirection | '' => { if (!selectedNode?.data.portDirections) return '' return selectedNode.data.portDirections[key] || '' } return (