import { Checkbox } from '../ui/checkbox'; import { PACKET_LEGEND_ITEMS } from '../../utils/visualizerUtils'; import { NODE_LEGEND_ITEMS } from './shared'; interface VisualizerControlsProps { showControls: boolean; setShowControls: (value: boolean) => void; fullScreen?: boolean; onFullScreenChange?: (fullScreen: boolean) => void; showAmbiguousPaths: boolean; setShowAmbiguousPaths: (value: boolean) => void; showAmbiguousNodes: boolean; setShowAmbiguousNodes: (value: boolean) => void; useAdvertPathHints: boolean; setUseAdvertPathHints: (value: boolean) => void; splitAmbiguousByTraffic: boolean; setSplitAmbiguousByTraffic: (value: boolean) => void; observationWindowSec: number; setObservationWindowSec: (value: number) => void; pruneStaleNodes: boolean; setPruneStaleNodes: (value: boolean) => void; pruneStaleMinutes: number; setPruneStaleMinutes: (value: number) => void; letEmDrift: boolean; setLetEmDrift: (value: boolean) => void; autoOrbit: boolean; setAutoOrbit: (value: boolean) => void; chargeStrength: number; setChargeStrength: (value: number) => void; particleSpeedMultiplier: number; setParticleSpeedMultiplier: (value: number) => void; nodeCount: number; linkCount: number; onExpandContract: () => void; onClearAndReset: () => void; } export function VisualizerControls({ showControls, setShowControls, fullScreen, onFullScreenChange, showAmbiguousPaths, setShowAmbiguousPaths, showAmbiguousNodes, setShowAmbiguousNodes, useAdvertPathHints, setUseAdvertPathHints, splitAmbiguousByTraffic, setSplitAmbiguousByTraffic, observationWindowSec, setObservationWindowSec, pruneStaleNodes, setPruneStaleNodes, pruneStaleMinutes, setPruneStaleMinutes, letEmDrift, setLetEmDrift, autoOrbit, setAutoOrbit, chargeStrength, setChargeStrength, particleSpeedMultiplier, setParticleSpeedMultiplier, nodeCount, linkCount, onExpandContract, onClearAndReset, }: VisualizerControlsProps) { return ( <> {showControls && (