diff --git a/admin-lehrer/app/(admin)/developers/sdk/configuration/page.tsx b/admin-lehrer/app/(admin)/developers/sdk/configuration/page.tsx
deleted file mode 100644
index 6cdb597..0000000
--- a/admin-lehrer/app/(admin)/developers/sdk/configuration/page.tsx
+++ /dev/null
@@ -1,256 +0,0 @@
-import { DevPortalLayout, CodeBlock, InfoBox, ParameterTable } from '@/components/developers/DevPortalLayout'
-
-export default function SDKConfigurationPage() {
- return (
-
- SDKProvider Props
-
- Der SDKProvider akzeptiert folgende Konfigurationsoptionen:
-
- void',
- required: false,
- description: 'Callback fuer Fehlerbehandlung',
- },
- {
- name: 'onStateChange',
- type: '(state: SDKState) => void',
- required: false,
- description: 'Callback bei State-Aenderungen',
- },
- ]}
- />
-
- Vollstaendiges Beispiel
-
-{`'use client'
-
-import { SDKProvider } from '@breakpilot/compliance-sdk'
-import { useRouter } from 'next/navigation'
-
-export default function SDKLayout({ children }: { children: React.ReactNode }) {
- const router = useRouter()
-
- return (
- {
- console.error('SDK Error:', error)
- // Optional: Sentry oder anderes Error-Tracking
- }}
- onStateChange={(state) => {
- console.log('State changed:', state.currentStep)
- // Optional: Analytics-Events
- }}
- >
- {children}
-
- )
-}`}
-
-
- Synchronisations-Strategien
-
- 1. Nur localStorage (Offline-Only)
-
-{`
- {children}
- `}
-
-
- Ideal fuer: Lokale Entwicklung, Demos, Privacy-fokussierte Installationen.
- Daten werden nur im Browser gespeichert.
-
-
- 2. Backend-Sync mit Fallback
-
-{`
- {children}
- `}
-
-
- Empfohlen fuer: Produktionsumgebungen. Daten werden mit dem Backend
- synchronisiert, localStorage dient als Fallback bei Netzwerkproblemen.
-
-
- 3. Nur Backend (kein lokaler Cache)
-
-{`
- {children}
- `}
-
-
- Ideal fuer: Strenge Compliance-Anforderungen, Multi-User-Szenarien.
- Daten werden nur im Backend gespeichert.
-
-
-
- Im Backend-Only Modus ist eine aktive Internetverbindung erforderlich.
- Bei Netzwerkproblemen koennen Daten verloren gehen.
-
-
- API URL Konfiguration
-
- Cloud-Version (Standard)
- Keine zusaetzliche Konfiguration erforderlich:
-
-{`
- {/* Nutzt automatisch https://api.breakpilot.io/sdk/v1 */}
- `}
-
-
- Self-Hosted
-
-{`
- {children}
- `}
-
-
- Lokale Entwicklung
-
-{`
- {children}
- `}
-
-
- Feature Flags
-
- Das SDK unterstuetzt Feature Flags ueber Subscription-Levels:
-
-
-{`import { useSDK } from '@breakpilot/compliance-sdk'
-
-function MyComponent() {
- const { state } = useSDK()
-
- // Subscription-basierte Features
- const isEnterprise = state.subscription === 'ENTERPRISE'
- const isProfessional = ['PROFESSIONAL', 'ENTERPRISE'].includes(state.subscription)
-
- // Feature-Gates
- const canExportPDF = isProfessional
- const canUseRAG = isProfessional
- const canCustomizeDSFA = isEnterprise
- const canUseAPI = isProfessional
-
- return (
-
- {canExportPDF && PDF Export }
- {canUseRAG && }
-
- )
-}`}
-
-
- Logging & Debugging
-
- Aktivieren Sie detailliertes Logging fuer die Entwicklung:
-
-
-{`// In Ihrer .env.local
-NEXT_PUBLIC_SDK_DEBUG=true
-
-// Oder programmatisch
- {
- if (process.env.NODE_ENV === 'development') {
- console.log('[SDK] State Update:', {
- phase: state.currentPhase,
- step: state.currentStep,
- useCases: state.useCases.length,
- risks: state.risks.length,
- })
- }
- }}
->
- {children}
- `}
-
-
-
- Der SDK-State ist im React DevTools unter dem SDKProvider-Context sichtbar.
- Installieren Sie die React Developer Tools Browser-Extension fuer einfaches Debugging.
-
-
- )
-}
diff --git a/admin-lehrer/app/(admin)/developers/sdk/consent/api-reference/page.tsx b/admin-lehrer/app/(admin)/developers/sdk/consent/api-reference/page.tsx
deleted file mode 100644
index f3cef52..0000000
--- a/admin-lehrer/app/(admin)/developers/sdk/consent/api-reference/page.tsx
+++ /dev/null
@@ -1,482 +0,0 @@
-'use client'
-
-import React, { useState } from 'react'
-import { SDKDocsSidebar } from '@/components/developers/SDKDocsSidebar'
-import { Copy, Check } from 'lucide-react'
-
-function CopyButton({ text }: { text: string }) {
- const [copied, setCopied] = useState(false)
-
- const handleCopy = async () => {
- await navigator.clipboard.writeText(text)
- setCopied(true)
- setTimeout(() => setCopied(false), 2000)
- }
-
- return (
-
- {copied ? (
-
- ) : (
-
- )}
-
- )
-}
-
-function CodeBlock({ code }: { code: string }) {
- return (
-
- )
-}
-
-function MethodCard({
- name,
- signature,
- description,
- params,
- returns,
- example,
-}: {
- name: string
- signature: string
- description: string
- params?: { name: string; type: string; description: string }[]
- returns?: string
- example?: string
-}) {
- return (
-
-
- {name}
-
-
-
- {signature}
-
-
{description}
-
- {params && params.length > 0 && (
-
-
Parameter
-
-
- {params.map((param) => (
-
-
- {param.name}
-
-
- {param.type}
-
- {param.description}
-
- ))}
-
-
-
- )}
-
- {returns && (
-
-
Rueckgabe
- {returns}
-
- )}
-
- {example && (
-
-
Beispiel
-
-
- )}
-
-
- )
-}
-
-export default function APIReferencePage() {
- return (
-
-
-
-
-
-
API Referenz
-
- Vollstaendige Dokumentation aller Methoden und Konfigurationsoptionen des Consent SDK.
-
-
- {/* ConsentManager */}
-
- ConsentManager
-
- Die zentrale Klasse fuer das Consent Management. Verwaltet Einwilligungen, Script-Blocking und Events.
-
-
- {/* Constructor */}
-
-
-
-
-
-
-
-
-
- {
- await consent.acceptAll();
-});`}
- />
-
- {
- await consent.rejectAll();
-});`}
- />
-
- {
- await consent.revokeAll();
- location.reload();
-});`}
- />
-
- {
- console.log('Consent geaendert:', state);
-});
-
-// Spaeter: Listener entfernen
-unsubscribe();`}
- />
-
-
-
-
-
-
-
- {/* Configuration */}
-
- Konfiguration
-
-
-
-
-
-
- Option
-
-
- Typ
-
-
- Default
-
-
- Beschreibung
-
-
-
-
-
-
- apiEndpoint
-
-
- string
-
- erforderlich
- URL des Consent-Backends
-
-
-
- siteId
-
-
- string
-
- erforderlich
- Eindeutige Site-ID
-
-
-
- debug
-
-
- boolean
-
- false
- Aktiviert Debug-Logging
-
-
-
- language
-
-
- string
-
- 'de'
- Sprache fuer UI-Texte
-
-
-
- consent.rememberDays
-
-
- number
-
- 365
- Gueltigkeitsdauer in Tagen
-
-
-
- consent.recheckAfterDays
-
-
- number
-
- 180
- Erneute Abfrage nach X Tagen
-
-
-
-
-
-
- {/* Events */}
-
- Events
-
-
-
-
-
-
- Event
-
-
- Daten
-
-
- Beschreibung
-
-
-
-
-
-
- init
-
-
- ConsentState | null
-
- SDK initialisiert
-
-
-
- change
-
-
- ConsentState
-
- Consent geaendert
-
-
-
- accept_all
-
-
- ConsentState
-
- Alle akzeptiert
-
-
-
- reject_all
-
-
- ConsentState
-
- Alle abgelehnt
-
-
-
- banner_show
-
-
- undefined
-
- Banner angezeigt
-
-
-
- banner_hide
-
-
- undefined
-
- Banner versteckt
-
-
-
- error
-
-
- Error
-
- Fehler aufgetreten
-
-
-
-
-
-
- {/* Types */}
-
- TypeScript Types
- ;
- vendors: Record;
- timestamp: string;
- version: string;
- consentId?: string;
- expiresAt?: string;
-}
-
-// Konfiguration
-interface ConsentConfig {
- apiEndpoint: string;
- siteId: string;
- debug?: boolean;
- language?: string;
- fallbackLanguage?: string;
- ui?: ConsentUIConfig;
- consent?: ConsentBehaviorConfig;
- onConsentChange?: (state: ConsentState) => void;
- onBannerShow?: () => void;
- onBannerHide?: () => void;
- onError?: (error: Error) => void;
-}`}
- />
-
-
-
-
- )
-}
diff --git a/admin-lehrer/app/(admin)/developers/sdk/consent/frameworks/angular/page.tsx b/admin-lehrer/app/(admin)/developers/sdk/consent/frameworks/angular/page.tsx
deleted file mode 100644
index 3c01a89..0000000
--- a/admin-lehrer/app/(admin)/developers/sdk/consent/frameworks/angular/page.tsx
+++ /dev/null
@@ -1,281 +0,0 @@
-'use client'
-
-import React, { useState } from 'react'
-import { SDKDocsSidebar } from '@/components/developers/SDKDocsSidebar'
-import { Copy, Check } from 'lucide-react'
-
-function CopyButton({ text }: { text: string }) {
- const [copied, setCopied] = useState(false)
- const handleCopy = async () => {
- await navigator.clipboard.writeText(text)
- setCopied(true)
- setTimeout(() => setCopied(false), 2000)
- }
- return (
-
- {copied ? : }
-
- )
-}
-
-function CodeBlock({ code, filename }: { code: string; filename?: string }) {
- return (
-
- {filename && (
-
- {filename}
-
- )}
-
-
- )
-}
-
-export default function AngularIntegrationPage() {
- return (
-
-
-
-
-
-
-
- A
-
-
Angular Integration
-
-
- Service und Module fuer Angular 14+ Projekte.
-
-
- {/* Installation */}
-
-
- {/* Module Setup */}
-
-
- {/* Standalone Setup */}
-
- Standalone Setup (Angular 15+)
-
-
-
- {/* Service Usage */}
-
- \`,
-})
-export class AnalyticsComponent implements OnInit {
- hasAnalyticsConsent$ = this.consentService.hasConsent$('analytics');
-
- constructor(private consentService: ConsentService) {}
-
- async loadAnalytics() {
- if (await this.consentService.hasConsent('analytics')) {
- // Load analytics
- }
- }
-}`}
- />
-
-
- {/* Cookie Banner */}
-
- Cookie Banner Component
-
-
-
- Wir verwenden Cookies um Ihr Erlebnis zu verbessern.
-
-
-
- Ablehnen
-
-
- Einstellungen
-
-
- Alle akzeptieren
-
-
-
-
- \`,
-})
-export class CookieBannerComponent {
- isBannerVisible$ = this.consentService.isBannerVisible$;
-
- constructor(private consentService: ConsentService) {}
-
- async acceptAll() {
- await this.consentService.acceptAll();
- }
-
- async rejectAll() {
- await this.consentService.rejectAll();
- }
-
- showSettings() {
- this.consentService.showSettings();
- }
-}`}
- />
-
-
- {/* Directive */}
-
- ConsentGate Directive
-
-VIDEO
-
-
-
-
-
-
Bitte stimmen Sie Statistik-Cookies zu.
-
Einstellungen
-
- `}
- />
-
-
- {/* Service API */}
-
- Service API
-
-
-
-
-
- Property/Method
-
-
- Typ
-
-
- Beschreibung
-
-
-
-
-
- consent$
- Observable<ConsentState>
- Observable des aktuellen Consent
-
-
- hasConsent$()
- Observable<boolean>
- Reaktive Consent-Pruefung
-
-
- hasConsent()
- Promise<boolean>
- Async Consent-Pruefung
-
-
- isBannerVisible$
- Observable<boolean>
- Banner-Sichtbarkeit
-
-
- acceptAll()
- Promise<void>
- Akzeptiert alle
-
-
- rejectAll()
- Promise<void>
- Lehnt alle ab
-
-
- setConsent()
- Promise<void>
- Setzt spezifische Kategorien
-
-
-
-
-
-
-
-
- )
-}
diff --git a/admin-lehrer/app/(admin)/developers/sdk/consent/frameworks/page.tsx b/admin-lehrer/app/(admin)/developers/sdk/consent/frameworks/page.tsx
deleted file mode 100644
index d8b1f88..0000000
--- a/admin-lehrer/app/(admin)/developers/sdk/consent/frameworks/page.tsx
+++ /dev/null
@@ -1,98 +0,0 @@
-'use client'
-
-import React from 'react'
-import Link from 'next/link'
-import { SDKDocsSidebar } from '@/components/developers/SDKDocsSidebar'
-import { ChevronRight } from 'lucide-react'
-
-const frameworks = [
- {
- name: 'React',
- href: '/developers/sdk/consent/frameworks/react',
- logo: '/logos/react.svg',
- description: 'Hooks und Provider fuer React 17+ und Next.js',
- features: ['ConsentProvider', 'useConsent Hook', 'ConsentGate Component'],
- color: 'bg-cyan-500',
- },
- {
- name: 'Vue 3',
- href: '/developers/sdk/consent/frameworks/vue',
- logo: '/logos/vue.svg',
- description: 'Composables und Plugin fuer Vue 3 und Nuxt',
- features: ['Vue Plugin', 'useConsent Composable', 'ConsentGate Component'],
- color: 'bg-emerald-500',
- },
- {
- name: 'Angular',
- href: '/developers/sdk/consent/frameworks/angular',
- logo: '/logos/angular.svg',
- description: 'Service und Module fuer Angular 14+',
- features: ['ConsentService', 'ConsentModule', 'Dependency Injection'],
- color: 'bg-red-500',
- },
-]
-
-export default function FrameworksPage() {
- return (
-
-
-
-
-
-
Framework Integration
-
- Das Consent SDK bietet native Integrationen fuer alle gaengigen Frontend-Frameworks.
-
-
-
- {frameworks.map((framework) => (
-
-
-
- {framework.name[0]}
-
-
-
-
- {framework.name}
-
-
-
-
{framework.description}
-
- {framework.features.map((feature) => (
-
- {feature}
-
- ))}
-
-
-
-
- ))}
-
-
- {/* Vanilla JS Note */}
-
-
Vanilla JavaScript
-
- Sie koennen das SDK auch ohne Framework verwenden. Importieren Sie einfach den ConsentManager direkt
- aus dem Hauptpaket. Siehe{' '}
-
- Installation
- {' '}
- fuer Details.
-
-
-
-
-
- )
-}
diff --git a/admin-lehrer/app/(admin)/developers/sdk/consent/frameworks/react/page.tsx b/admin-lehrer/app/(admin)/developers/sdk/consent/frameworks/react/page.tsx
deleted file mode 100644
index d11c1c3..0000000
--- a/admin-lehrer/app/(admin)/developers/sdk/consent/frameworks/react/page.tsx
+++ /dev/null
@@ -1,277 +0,0 @@
-'use client'
-
-import React, { useState } from 'react'
-import { SDKDocsSidebar } from '@/components/developers/SDKDocsSidebar'
-import { Copy, Check } from 'lucide-react'
-
-function CopyButton({ text }: { text: string }) {
- const [copied, setCopied] = useState(false)
- const handleCopy = async () => {
- await navigator.clipboard.writeText(text)
- setCopied(true)
- setTimeout(() => setCopied(false), 2000)
- }
- return (
-
- {copied ? : }
-
- )
-}
-
-function CodeBlock({ code, filename }: { code: string; filename?: string }) {
- return (
-
- {filename && (
-
- {filename}
-
- )}
-
-
- )
-}
-
-export default function ReactIntegrationPage() {
- return (
-
-
-
-
-
-
-
- R
-
-
React Integration
-
-
- Hooks und Provider fuer React 17+ und Next.js Projekte.
-
-
- {/* Installation */}
-
-
- {/* Provider Setup */}
-
- Provider Setup
-
- Umschliessen Sie Ihre App mit dem ConsentProvider:
-
-
-
-
- {children}
-
-
-