'use client' import { Shield, Lock, ListChecks, Trash2, BarChart3, Zap, Plus, RefreshCw, Search, Filter, ArrowUpDown } from 'lucide-react' import { Framework } from './helpers' import { ControlsMeta } from './types' import { VERIFICATION_METHODS, CATEGORY_OPTIONS, EVIDENCE_TYPE_OPTIONS } from './helpers' interface ControlsHeaderProps { frameworks: Framework[] meta: ControlsMeta | null reviewCount: number loading: boolean bulkProcessing: boolean showStats: boolean processedStats: Array> searchQuery: string severityFilter: string domainFilter: string stateFilter: string hideDuplicates: boolean verificationFilter: string categoryFilter: string evidenceTypeFilter: string audienceFilter: string sourceFilter: string typeFilter: string sortBy: string onSearchChange: (v: string) => void onSeverityChange: (v: string) => void onDomainChange: (v: string) => void onStateChange: (v: string) => void onHideDuplicatesChange: (v: boolean) => void onVerificationChange: (v: string) => void onCategoryChange: (v: string) => void onEvidenceTypeChange: (v: string) => void onAudienceChange: (v: string) => void onSourceChange: (v: string) => void onTypeChange: (v: string) => void onSortChange: (v: string) => void onRefresh: () => void onEnterReviewMode: () => void onBulkReject: (state: string) => void onToggleStats: () => void onOpenGenerator: () => void onCreateNew: () => void } export function ControlsHeader({ frameworks, meta, reviewCount, loading, bulkProcessing, showStats, processedStats, searchQuery, severityFilter, domainFilter, stateFilter, hideDuplicates, verificationFilter, categoryFilter, evidenceTypeFilter, audienceFilter, sourceFilter, typeFilter, sortBy, onSearchChange, onSeverityChange, onDomainChange, onStateChange, onHideDuplicatesChange, onVerificationChange, onCategoryChange, onEvidenceTypeChange, onAudienceChange, onSourceChange, onTypeChange, onSortChange, onRefresh, onEnterReviewMode, onBulkReject, onToggleStats, onOpenGenerator, onCreateNew, }: ControlsHeaderProps) { return (

Canonical Control Library

{meta?.total ?? 0} Security Controls

{reviewCount > 0 && ( <> )}
{frameworks.length > 0 && (
{frameworks[0]?.name} v{frameworks[0]?.version} {frameworks[0]?.description}
)}
onSearchChange(e.target.value)} className="w-full pl-9 pr-4 py-2 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-purple-500" />
|
{showStats && processedStats.length > 0 && (

Verarbeitungsfortschritt

{processedStats.map((s, i) => (
{String(s.collection)}
{String(s.processed_chunks)} verarbeitet {String(s.direct_adopted)} direkt {String(s.llm_reformed)} reformuliert
))}
)}
) }