import type { NodeTypeVisibility, NodeTypeSizes, GraphStage } from '../types'; import { NODE_TYPES, NODE_COLORS, NODE_TYPE_LABELS } from '../constants'; interface Props { visibility: NodeTypeVisibility; onToggle: (type: string) => void; nodeSizes: NodeTypeSizes; onNodeSizeChange: (type: string, size: number) => void; showEdges: boolean; onEdgesToggle: () => void; showFloorplan: boolean; onFloorplanToggle: () => void; floorplanOpacity: number; onFloorplanOpacityChange: (v: number) => void; hasFloorplan: boolean; graphStage: GraphStage; onGraphStageChange: (stage: GraphStage) => void; hasPrePruning: boolean; } export default function VisualControls({ visibility, onToggle, nodeSizes, onNodeSizeChange, showEdges, onEdgesToggle, showFloorplan, onFloorplanToggle, floorplanOpacity, onFloorplanOpacityChange, hasFloorplan, graphStage, onGraphStageChange, hasPrePruning, }: Props) { return (

Visual Controls

{hasPrePruning && ( <>

)} {NODE_TYPES.map((type) => (
onNodeSizeChange(type, Number(e.target.value))} /> {nodeSizes[type] || 20}
))}
{hasFloorplan && ( <>
{showFloorplan && (
Opacity onFloorplanOpacityChange(Number(e.target.value) / 100)} /> {Math.round(floorplanOpacity * 100)}%
)} )}
); }