import { Undo2, Trash2, ZoomIn, ZoomOut, Eye, EyeOff, Layers } from "lucide-react"; interface TopToolbarProps { slideName: string; zoomLevel: number; zoomPresets: number[]; onZoomPreset: (level: number) => void; micronsPerPixel?: number | null; showAnnotations: boolean; showHeatmap: boolean; onUndo: () => void; onDelete: () => void; onZoomIn: () => void; onZoomOut: () => void; onToggleAnnotations: () => void; onToggleHeatmap: () => void; canUndo: boolean; canDelete: boolean; } export function TopToolbar({ slideName, zoomLevel, zoomPresets, onZoomPreset, micronsPerPixel, showAnnotations, showHeatmap, onUndo, onDelete, onZoomIn, onZoomOut, onToggleAnnotations, onToggleHeatmap, canUndo, canDelete, }: TopToolbarProps) { const scaleBarPixels = 90; const safeZoom = Math.max(zoomLevel, 0.0001); const microns = micronsPerPixel ? (micronsPerPixel * scaleBarPixels) / safeZoom : null; const micronsLabel = microns ? `${microns >= 100 ? Math.round(microns) : microns.toFixed(1)} µm` : ""; const isActivePreset = (preset: number) => { return Math.abs(zoomLevel - preset) < 0.5; }; return (
{/* Left Section: Slide Info */}

{slideName}

Zoom: {zoomLevel.toFixed(2)}x

{/* Center-Left Section: Annotation Controls */}
{/* Center Section: Zoom Controls */}
{zoomPresets.map((preset) => ( ))}
{/* Right Section: Scale + Toggle Buttons */}
{micronsPerPixel && (
Scale
{micronsLabel}
)}
); }