import { Accordion, AccordionDetails, AccordionSummary, Box, Checkbox, FormControlLabel, MenuItem, Switch, TextField, Typography } from '@mui/material' import { ChevronDown } from 'lucide-react' import type { ParsedNeedCriteria } from '../../domain/needBuilder' interface Props { criteria: ParsedNeedCriteria onChange: (c: ParsedNeedCriteria) => void } export function NeedExtendedRequirements({ criteria: c, onChange: set }: Props) { return ( } sx={{ minHeight: 36, px: 1.5, '& .MuiAccordionSummary-content': { my: 0.5 } }}> Erweiterte Anforderungen set({ ...c, requireGroundFloor: e.target.checked || undefined })} />} label={Erdgeschoss erforderlich} /> set({ ...c, requireAirConditioning: e.target.checked || undefined })} />} label={Klimaanlage erforderlich} /> set({ ...c, requireLoadingDock: e.target.checked || undefined })} />} label={Laderampe erforderlich} /> set({ ...c, requireBarrierFree: e.target.checked || undefined })} />} label={Barrierefrei erforderlich} /> Mindest-Parkplätze set({ ...c, requiredParkingMin: parseInt(e.target.value) || undefined })} slotProps={{ htmlInput: { min: 0, max: 100 } }} /> Mindest-Ausbaustandard set({ ...c, requiredFitOut: (e.target.value as 'BASIC' | 'FULL' | 'PREMIUM') || undefined })} > Kein Mindeststandard Basisausbau Vollausbau Premiumausbau Mindest-Deckenhöhe (m) set({ ...c, minCeilingHeightM: parseFloat(e.target.value) || undefined })} slotProps={{ htmlInput: { min: 2, max: 20, step: 0.5 } }} /> Mindest-Vertragslaufzeit (Monate) set({ ...c, minContractDurationMonths: parseInt(e.target.value) || undefined })} slotProps={{ htmlInput: { min: 0, max: 360, step: 12 } }} /> Eigenes Ausbaubudget (max. CHF/m²) set({ ...c, fitOutBudgetMaxPerSqm: parseInt(e.target.value) || undefined })} slotProps={{ htmlInput: { min: 0, max: 5000, step: 50 } }} helperText="Ihr Beitrag — exkl. MAB des Vermieters" /> {/* Divisibility */} set({ ...c, requiresDivisibility: e.target.checked || undefined })} /> } label={Fläche muss teilbar sein} sx={{ mb: c.requiresDivisibility ? 1 : 0 }} /> {c.requiresDivisibility && ( Mindesteinheit (m²) set({ ...c, minDivisibleUnit: parseInt(e.target.value) || undefined })} sx={{ width: 160 }} slotProps={{ htmlInput: { min: 10, max: 5000, step: 10 } }} /> )} ) }