feat: Complete template coverage — 13 presets, 71 doc types, 100% mapped

- Split presets into interface + data files (500-line budget)
- Extract DOC_LABELS into doc-labels.ts with all 71 template types
- Add 3 new presets: Cloud/SaaS-Anbieter, Finanzdienstleister, Plattform
- Expand Enterprise preset to 48 docs (full ISMS + BCM + DSR)
- Every template type appears in at least one preset
- ISO references verified: citations only, no copyrighted standard text

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-03 10:59:58 +02:00
parent 3aff80fb0c
commit ce52dd153e
4 changed files with 460 additions and 360 deletions
@@ -3,46 +3,7 @@
import { useState } from 'react'
import Link from 'next/link'
import { COMPANY_PROFILE_PRESETS, type CompanyProfilePreset } from '@/lib/sdk/company-profile-presets'
const DOC_LABELS: Record<string, { label: string; category: string }> = {
privacy_policy: { label: 'Datenschutzerklaerung', category: 'Website' },
impressum: { label: 'Impressum', category: 'Website' },
agb: { label: 'AGB', category: 'Vertraege' },
cookie_policy: { label: 'Cookie-Richtlinie', category: 'Website' },
cookie_banner: { label: 'Cookie-Banner-Texte', category: 'Website' },
dpa: { label: 'AVV (Auftragsverarbeitung)', category: 'Vertraege' },
nda: { label: 'Geheimhaltungsvereinbarung', category: 'Vertraege' },
sla: { label: 'Service Level Agreement', category: 'Vertraege' },
terms_of_use: { label: 'Nutzungsbedingungen', category: 'Vertraege' },
community_guidelines: { label: 'Community Guidelines', category: 'Plattform' },
acceptable_use: { label: 'Acceptable Use Policy', category: 'Plattform' },
widerruf: { label: 'Widerrufsbelehrung', category: 'E-Commerce' },
employee_dsi: { label: 'Mitarbeiter-DSI', category: 'HR' },
applicant_dsi: { label: 'Bewerber-DSI', category: 'HR' },
whistleblower_policy: { label: 'Whistleblower-Richtlinie', category: 'HR' },
tom_documentation: { label: 'TOM-Dokumentation', category: 'Compliance' },
vvt_register: { label: 'Verarbeitungsverzeichnis', category: 'Compliance' },
loeschkonzept: { label: 'Loeschkonzept', category: 'Compliance' },
dsfa: { label: 'Datenschutz-Folgenabschaetzung', category: 'Compliance' },
pflichtenregister: { label: 'Pflichtenregister', category: 'Compliance' },
isms_manual: { label: 'ISMS-Handbuch', category: 'Sicherheit' },
social_media_dsi: { label: 'Social-Media-DSI', category: 'Marketing' },
transfer_impact_assessment: { label: 'Transfer Impact Assessment', category: 'Drittland' },
media_content_policy: { label: 'Medien-Richtlinie', category: 'Plattform' },
cloud_service_agreement: { label: 'Cloud-Vertrag', category: 'Vertraege' },
}
const CATEGORY_COLORS: Record<string, string> = {
Website: 'bg-blue-50 text-blue-700',
Vertraege: 'bg-purple-50 text-purple-700',
Plattform: 'bg-indigo-50 text-indigo-700',
'E-Commerce': 'bg-green-50 text-green-700',
HR: 'bg-amber-50 text-amber-700',
Compliance: 'bg-red-50 text-red-700',
Sicherheit: 'bg-gray-100 text-gray-700',
Marketing: 'bg-pink-50 text-pink-700',
Drittland: 'bg-orange-50 text-orange-700',
}
import { DOC_LABELS, CATEGORY_COLORS } from './doc-labels'
export function PresetSection({ projectId }: { projectId?: string }) {
const [selectedPreset, setSelectedPreset] = useState<CompanyProfilePreset | null>(null)