import { DarkPattern } from '../types/analysis'; import { Badge } from './ui/badge'; import { AlertTriangle, Brain, FileText, Lightbulb } from 'lucide-react'; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from './ui/accordion'; interface DarkPatternsListProps { patterns: DarkPattern[]; } export function DarkPatternsList({ patterns }: DarkPatternsListProps) { const getSeverityBadgeClass = (severity: string) => { switch (severity) { case 'critical': return 'bg-rose-500/10 text-rose-400 border border-rose-500/20'; case 'high': return 'bg-orange-500/10 text-orange-400 border border-orange-500/20'; case 'medium': return 'bg-amber-500/10 text-amber-400 border border-amber-500/20'; default: return 'bg-indigo-500/10 text-indigo-400 border border-indigo-500/20'; } }; const getSeverityBorderColor = (severity: string) => { switch (severity) { case 'critical': return 'border-rose-500/25 bg-rose-500/5 hover:border-rose-500/40'; case 'high': return 'border-orange-500/25 bg-orange-500/5 hover:border-orange-500/40'; case 'medium': return 'border-amber-500/25 bg-amber-500/5 hover:border-amber-500/40'; default: return 'border-indigo-500/25 bg-indigo-500/5 hover:border-indigo-500/40'; } }; // Sort by severity const sortedPatterns = [...patterns].sort((a, b) => { const severityOrder = { critical: 0, high: 1, medium: 2, low: 3 }; return severityOrder[a.severity] - severityOrder[b.severity]; }); return (
{/* Summary */}

Identified {patterns.length} deceptive copy triggers in the layout layers. Expand each item below for compliance details and XAI fixes.

{/* Patterns List */} {sortedPatterns.map((pattern) => (
{pattern.severity}
{pattern.type}
{pattern.description}
{pattern.confidence}% confidence
{/* Description */}
Issue Description

{pattern.description}

{/* CFPB Violation */}
CFPB Compliance Conflict

{pattern.cfpbViolation}

{/* XAI Recommendation */}
Recommended Fix

{pattern.recommendation}

{/* Location Info */}
Neural Network Activation Layer
OCR Bounding Box:{' '} ({pattern.location.x}%, {pattern.location.y}%)
Visual Box Size:{' '} {pattern.location.width}% × {pattern.location.height}%
))}
{/* About XAI */}

🤖 Neural Network Audit Mechanism

The models run OCR to extract text boundaries and classify the linguistic copy structure. All recommendations are generated by parsing structural cues against TILA, EFTA, and CFPB administrative records.

); }