evOo-local/apps/web/src/components/DataTrustPanel.tsx
Ingo Wagner 4b58776584 feat(web): add Privacy & Data settings section and remove Google Fonts
- Remove unused Google Fonts links from index.html (no external CDN)
- Add Privacy & Data settings section with:
  - Privacy posture indicator (data local, no analytics, no cloud sync)
  - Connection details panel (API, auth, DB, sandbox)
  - Data export button
  - Account deletion with confirmation
- Add ShieldCheck icon to settings nav
- Fix: DataTrustPanel import removed (was not used)
2026-09-23 16:04:19 +00:00

29 lines
1.3 KiB
TypeScript

import { CheckCircle2, Database, EyeOff, Lock } from "lucide-react";
import { memo } from "react";
const TRUST_ITEMS = [
{ icon: Lock, label: "Verschlüsselt", desc: "AES-256 für sensible Daten" },
{ icon: Database, label: "Lokal gespeichert", desc: "Eigene PostgreSQL-Datenbank" },
{ icon: EyeOff, label: "Kein Tracking", desc: "Keine Analytics, kein Telemetry" },
] as const;
export const DataTrustPanel = memo(function DataTrustPanel() {
return (
<div className="hidden xl:flex flex-col items-start gap-1.5 rounded-xl border border-border/40 bg-muted/30 px-3 py-2.5">
<div className="flex items-center gap-1.5 text-xs font-medium text-emerald-600 dark:text-emerald-400">
<CheckCircle2 className="size-3.5" />
<span>Datenschutz aktiv</span>
</div>
<div className="flex flex-col gap-1">
{TRUST_ITEMS.map(({ icon: Icon, label, desc }) => (
<div key={label} className="flex items-center gap-1.5">
<Icon className="size-3 text-muted-foreground/60" />
<span className="text-[11px] leading-tight text-muted-foreground">{label}</span>
<span className="text-[10px] leading-tight text-muted-foreground/50">· {desc}</span>
</div>
))}
</div>
</div>
);
});