import React from 'react'; import { Activity, MousePointer, CircleDot, GitCommit, Magnet, ArrowRight, Trash2, Table, Layers, Scan, Sliders } from 'lucide-react'; import { type EditMode, type SimulationResult } from './types'; import { type InpNode } from './inpModel'; import { type BottomPanelTab } from './BottomPanel'; export interface ToolRailProps { appMode: 'explore' | 'edit' | 'result'; setAppMode: React.Dispatch>; editMode: EditMode; setEditMode: React.Dispatch>; setNodeCreationType: React.Dispatch>; isNodeTypeMenuOpen: boolean; setIsNodeTypeMenuOpen: React.Dispatch>; boxSelectionEnabled: boolean; setBoxSelectionEnabled: React.Dispatch>; snapEnabled: boolean; setSnapEnabled: React.Dispatch>; showFlowArrows: boolean; setShowFlowArrows: React.Dispatch>; isLayerPanelOpen: boolean; setIsLayerPanelOpen: React.Dispatch>; layerPanelWidth: number; isStyleSettingsOpen: boolean; setIsStyleSettingsOpen: React.Dispatch>; bottomPanelTab: BottomPanelTab | null; toggleBottomPanel: (tab: BottomPanelTab) => void; selectionCounts: { nodes: number; links: number; gisFeatures: number; total: number }; handleDeleteSelected: () => void; wasmResult: SimulationResult | null; } /** Left 44px tool rail: selection/edit tools, snapping, layer/table/style toggles (DESIGN.md § 3.1). */ export const ToolRail: React.FC = ({ appMode, setAppMode, editMode, setEditMode, setNodeCreationType, isNodeTypeMenuOpen, setIsNodeTypeMenuOpen, boxSelectionEnabled, setBoxSelectionEnabled, snapEnabled, setSnapEnabled, showFlowArrows, setShowFlowArrows, isLayerPanelOpen, setIsLayerPanelOpen, layerPanelWidth, isStyleSettingsOpen, setIsStyleSettingsOpen, bottomPanelTab, toggleBottomPanel, selectionCounts, handleDeleteSelected, wasmResult, }) => (