'use client' import { CompanyProfile, MachineBuilderProfile, MachineProductType, AIIntegrationType, HumanOversightLevel, CriticalSector, MACHINE_PRODUCT_TYPE_LABELS, AI_INTEGRATION_TYPE_LABELS, HUMAN_OVERSIGHT_LABELS, CRITICAL_SECTOR_LABELS, } from '@/lib/sdk/types' const EMPTY_MACHINE_BUILDER: MachineBuilderProfile = { productTypes: [], productDescription: '', productPride: '', containsSoftware: false, containsFirmware: false, containsAI: false, aiIntegrationType: [], hasSafetyFunction: false, safetyFunctionDescription: '', autonomousBehavior: false, humanOversightLevel: 'full', isNetworked: false, hasRemoteAccess: false, hasOTAUpdates: false, updateMechanism: '', exportMarkets: [], criticalSectorClients: false, criticalSectors: [], oemClients: false, ceMarkingRequired: false, existingCEProcess: false, hasRiskAssessment: false, } export function StepMachineBuilder({ data, onChange, }: { data: Partial onChange: (updates: Partial) => void }) { const mb = data.machineBuilder || EMPTY_MACHINE_BUILDER const updateMB = (updates: Partial) => { onChange({ machineBuilder: { ...mb, ...updates } }) } const toggleProductType = (type: MachineProductType) => { const current = mb.productTypes || [] updateMB({ productTypes: current.includes(type) ? current.filter(t => t !== type) : [...current, type] }) } const toggleAIType = (type: AIIntegrationType) => { const current = mb.aiIntegrationType || [] updateMB({ aiIntegrationType: current.includes(type) ? current.filter(t => t !== type) : [...current, type] }) } const toggleCriticalSector = (sector: CriticalSector) => { const current = mb.criticalSectors || [] updateMB({ criticalSectors: current.includes(sector) ? current.filter(s => s !== sector) : [...current, sector] }) } return (
{/* Block 1: Product description */}

Erzaehlen Sie uns von Ihrer Anlage

Je besser wir Ihr Produkt verstehen, desto praeziser koennen wir die relevanten Vorschriften identifizieren.