import { SDK_FLOW_STEPS, type SDKFlowStep } from '../flow-data' // ============================================================================= // LAYOUT // ============================================================================= export const PACKAGE_ORDER: SDKFlowStep['package'][] = [ 'vorbereitung', 'analyse', 'dokumentation', 'rechtliche-texte', 'betrieb', ] export const PACKAGE_X_OFFSET: Record = { vorbereitung: 0, analyse: 320, dokumentation: 640, 'rechtliche-texte': 960, betrieb: 1280, } export const NODE_WIDTH = 200 export const NODE_HEIGHT = 70 export const STEP_Y_SPACING = 100 export const STEP_Y_START = 100 export function getStepPosition(step: SDKFlowStep): { x: number; y: number } { const packageSteps = SDK_FLOW_STEPS .filter(s => s.package === step.package) .sort((a, b) => a.seq - b.seq) const idx = packageSteps.findIndex(s => s.id === step.id) return { x: PACKAGE_X_OFFSET[step.package] + 40, y: STEP_Y_START + idx * STEP_Y_SPACING, } } // ============================================================================= // HELPERS - FERTIGSTELLUNGSGRAD // ============================================================================= export function completionColor(pct: number): string { if (pct >= 70) return '#22c55e' // green if (pct >= 50) return '#84cc16' // lime if (pct >= 35) return '#f59e0b' // amber return '#ef4444' // red } export function completionLabel(pct: number): string { if (pct >= 70) return 'Fortgeschritten' if (pct >= 50) return 'In Entwicklung' if (pct >= 35) return 'Begonnen' return 'Frühe Phase' } export type PackageFilter = 'alle' | SDKFlowStep['package']