// LayoutOptionsPanel - Display 3 layout options with metrics import React from 'react'; import { Download, Check } from 'lucide-react'; import type { LayoutOption } from '../types'; interface LayoutOptionsPanelProps { options: LayoutOption[]; selectedOptionId: number | null; onSelect: (optionId: number) => void; onExport: (optionId: number) => void; loading: boolean; } export const LayoutOptionsPanel: React.FC = ({ options, selectedOptionId, onSelect, onExport, loading, }) => { if (options.length === 0) { return (

Generate layouts to see optimization options

); } return (

Layout Options

{options.map((option) => (
onSelect(option.id)} >
{option.icon}

{option.name}

{selectedOptionId === option.id && ( )}

{option.description}

Plots {option.metrics.total_plots}
Total Area {option.metrics.total_area.toLocaleString()} m²
Avg Size {Math.round(option.metrics.avg_size).toLocaleString()} m²
Fitness {(option.metrics.fitness * 100).toFixed(0)}%
{option.metrics.compliance === 'PASS' ? '✓ Compliant' : '✗ Issues'}
))}
); }; export default LayoutOptionsPanel;