{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "compliance-soc2-readiness",
  "title": "Compliance Soc2 Readiness",
  "type": "registry:block",
  "files": [
    {
      "path": "packages/registry-react/blocks/compliance-soc2-readiness/ComplianceSoc2Readiness.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport {\n  AlertCircle,\n  AlertTriangle,\n  ArrowUpRight,\n  BadgeCheck,\n  Calendar,\n  Check,\n  CheckCircle2,\n  Clock,\n  Download,\n  Eye,\n  FileDown,\n  FileText,\n  Filter,\n  KeyRound,\n  Lock,\n  RefreshCw,\n  Search,\n  Server,\n  Shield,\n  ShieldCheck,\n  Users,\n  X,\n  Zap,\n} from 'lucide-react'\nimport { cn } from '@/lib/utils'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Progress } from '@/components/ui/progress'\nimport { Separator } from '@/components/ui/separator'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'\nimport { Tabs, TabsList, TabsTrigger } from '@/components/ui/tabs'\n\nexport interface PillarData {\n  code: string\n  title: string\n  description: string\n  score: number\n  passed: number\n  total: number\n  status: string\n  statusVariant: 'success' | 'warning' | 'secondary'\n  highlights: string[]\n  iconType: 'key' | 'shield' | 'activity' | 'users' | 'lock' | 'server' | 'file'\n}\n\nexport interface EvidenceTestItem {\n  id: string\n  code: string\n  name: string\n  description: string\n  category: 'Identity & Auth' | 'Cloud Infrastructure' | 'Security Operations' | 'DevOps & CI/CD' | 'People & HR'\n  frequency: 'Continuous (1h)' | 'Daily' | 'Monthly' | 'Quarterly'\n  status: 'Passing' | 'Needs Attention'\n  statusVariant: 'success' | 'warning'\n  artifact: string\n  verified: boolean\n  lastTested: string\n  auditorNotes: string\n}\n\nexport interface FrameworkConfig {\n  id: string\n  tabLabel: string\n  name: string\n  badge: string\n  standard: string\n  score: number\n  readinessLabel: string\n  period: string\n  auditor: string\n  totalPassing: number\n  totalTests: number\n  pillars: PillarData[]\n  tests: EvidenceTestItem[]\n  trustCenterUrl: string\n}\n\nexport interface ComplianceSoc2ReadinessProps extends React.HTMLAttributes<HTMLDivElement> {\n  defaultFramework?: string\n}\n\nconst frameworksData: Record<string, FrameworkConfig> = {\n  soc2: {\n    id: 'soc2',\n    tabLabel: 'SOC 2 Type II',\n    name: 'SOC 2 Type II Readiness',\n    badge: 'Security & Confidentiality',\n    standard: 'AICPA Trust Services Criteria (CC1–CC9)',\n    score: 96,\n    readinessLabel: '96% Audit Ready',\n    period: 'Jan 1, 2026 – Dec 31, 2026',\n    auditor: 'KPMG LLP · Sarah Jenkins, CPA/CISA',\n    totalPassing: 69,\n    totalTests: 71,\n    pillars: [\n      {\n        code: 'CC1',\n        title: 'Access Control & IAM',\n        description: 'Identity federation, MFA enforcement, and least-privilege role provisioning.',\n        score: 100,\n        passed: 24,\n        total: 24,\n        status: '100% Passed · 24/24 tests',\n        statusVariant: 'success',\n        highlights: ['FIDO2/WebAuthn Hardware MFA', 'Just-In-Time Role Elevation'],\n        iconType: 'key',\n      },\n      {\n        code: 'CC2',\n        title: 'Encryption & Key Management',\n        description: 'Data encryption in-transit & at rest with automated CMK key rotation.',\n        score: 98,\n        passed: 18,\n        total: 18,\n        status: '98% Passed · 18/18 tests',\n        statusVariant: 'success',\n        highlights: ['AWS KMS Envelope CMKs', 'TLS 1.3 Strict Cipher Suites'],\n        iconType: 'shield',\n      },\n      {\n        code: 'CC3',\n        title: 'Incident Response & Logging',\n        description: 'Immutable audit trail ingesters, P1 runbooks, and real-time SIEM alerts.',\n        score: 94,\n        passed: 15,\n        total: 16,\n        status: '94% Passed · 15/16 tests',\n        statusVariant: 'warning',\n        highlights: ['Immutable WORM S3 Bucket', 'Quarterly Drill Executed'],\n        iconType: 'activity',\n      },\n      {\n        code: 'CC4',\n        title: 'Employee Security & Vendor Risk',\n        description: 'Background checks, awareness training, and third-party vendor DPA reviews.',\n        score: 92,\n        passed: 12,\n        total: 13,\n        status: '92% Passed · 12/13 tests',\n        statusVariant: 'secondary',\n        highlights: ['100% Staff Security Training', 'Tier 1 Vendor DPA Signed'],\n        iconType: 'users',\n      },\n    ],\n    tests: [\n      {\n        id: 'test-soc2-1',\n        code: 'CC6.1',\n        name: 'MFA Enforced for All Staff',\n        description: 'Continuous sync with Okta IAM confirming hardware/TOTP MFA active on all active seats.',\n        category: 'Identity & Auth',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'okta-mfa-sync-v2.json',\n        verified: true,\n        lastTested: '4m ago',\n        auditorNotes: '100% of 248 accounts verified with WebAuthn/FIDO2 hardware key enforcement.',\n      },\n      {\n        id: 'test-soc2-2',\n        code: 'CC6.6',\n        name: 'DB Storage Encrypted with KMS',\n        description: 'All production RDS PostgreSQL and Redis storage volumes encrypted at rest with AWS KMS.',\n        category: 'Cloud Infrastructure',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'aws-kms-rds-audit-prod.json',\n        verified: true,\n        lastTested: '12m ago',\n        auditorNotes: 'AES-256 GCM encryption validated across primary cluster and 4 replica volumes.',\n      },\n      {\n        id: 'test-soc2-3',\n        code: 'CC7.2',\n        name: 'Quarterly Penetration Test Completed',\n        description: 'Independent gray-box network and web application penetration test with zero open criticals.',\n        category: 'Security Operations',\n        frequency: 'Quarterly',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'BishopFox-Pentest-Q2-2026.pdf',\n        verified: true,\n        lastTested: 'Aug 12, 2026',\n        auditorNotes: 'Full remediation verified within 14-day SLA. Attestation signed by Bishop Fox.',\n      },\n      {\n        id: 'test-soc2-4',\n        code: 'CC6.7',\n        name: 'Automated Backup Verification Daily',\n        description: 'Daily point-in-time cross-region database snapshot validation and SHA-256 checksum test.',\n        category: 'Cloud Infrastructure',\n        frequency: 'Daily',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 's3-replica-checksum-20260821.log',\n        verified: true,\n        lastTested: '2h ago',\n        auditorNotes: 'Automated restore drill executed with RPO < 5m and RTO < 15m.',\n      },\n      {\n        id: 'test-soc2-5',\n        code: 'CC8.1',\n        name: 'Branch Protection & PR Reviews Enforced',\n        description: 'GitHub repository rulesets require min 2 peer reviews, signed commits, and passing CI.',\n        category: 'DevOps & CI/CD',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'github-branch-policy-main.json',\n        verified: true,\n        lastTested: '18m ago',\n        auditorNotes: 'Zero bypass permissions granted. Administrator force-push strictly disabled.',\n      },\n      {\n        id: 'test-soc2-6',\n        code: 'CC9.2',\n        name: 'Third-Party Vendor Risk Assessment',\n        description: 'Annual SOC 2 Type II report collection and DPA compliance review for active SaaS vendors.',\n        category: 'People & HR',\n        frequency: 'Monthly',\n        status: 'Needs Attention',\n        statusVariant: 'warning',\n        artifact: 'vendor-risk-matrix-2026.csv',\n        verified: false,\n        lastTested: 'Yesterday',\n        auditorNotes: '1 vendor report renewal pending (Datadog EU renewal contract awaiting counter-signature).',\n      },\n    ],\n    trustCenterUrl: 'https://trust.uipkge.dev',\n  },\n  iso27001: {\n    id: 'iso27001',\n    tabLabel: 'ISO 27001',\n    name: 'ISO/IEC 27001:2022 ISMS',\n    badge: 'Information Security Management',\n    standard: 'Annex A Controls (A.5 – A.8) · Stage 2 Ready',\n    score: 94,\n    readinessLabel: '94% Stage 2 Ready',\n    period: 'Audit Cycle 2026–2027',\n    auditor: 'BSI Group · Henrik Lindqvist, Lead Auditor',\n    totalPassing: 88,\n    totalTests: 93,\n    pillars: [\n      {\n        code: 'A.5',\n        title: 'Organizational Controls',\n        description: 'Information security policies, supplier governance, and asset inventories.',\n        score: 96,\n        passed: 35,\n        total: 37,\n        status: '96% Passed · 35/37 controls',\n        statusVariant: 'success',\n        highlights: ['Approved Security Policies', 'Supplier Risk Classification'],\n        iconType: 'shield',\n      },\n      {\n        code: 'A.6',\n        title: 'People Controls',\n        description: 'Screening, remote work guidelines, and continuous infosec education.',\n        score: 92,\n        passed: 8,\n        total: 8,\n        status: '92% Passed · 8/8 controls',\n        statusVariant: 'success',\n        highlights: ['Annual Training Certification', 'Formal Disciplinary Rules'],\n        iconType: 'users',\n      },\n      {\n        code: 'A.7',\n        title: 'Physical Controls',\n        description: 'Physical security perimeters, clear desk, and device screen lock policies.',\n        score: 100,\n        passed: 14,\n        total: 14,\n        status: '100% Passed · 14/14 controls',\n        statusVariant: 'success',\n        highlights: ['Zero Trust Cloud Infrastructure', 'Automated Screen Locking'],\n        iconType: 'lock',\n      },\n      {\n        code: 'A.8',\n        title: 'Technological Controls',\n        description: 'Endpoint protection, access rights, network security, and vulnerability management.',\n        score: 93,\n        passed: 31,\n        total: 34,\n        status: '93% Passed · 31/34 controls',\n        statusVariant: 'warning',\n        highlights: ['EDR on 100% Managed Laptops', 'Zero Trust Network Architecture'],\n        iconType: 'server',\n      },\n    ],\n    tests: [\n      {\n        id: 'test-iso-1',\n        code: 'A.8.2',\n        name: 'Privileged Access Rights Review',\n        description: 'Quarterly review and revocation of administrative privileges on AWS and cloud IdPs.',\n        category: 'Identity & Auth',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'iam-privileged-access-matrix.json',\n        verified: true,\n        lastTested: '8m ago',\n        auditorNotes: 'All root credentials locked behind hardware token in safe storage.',\n      },\n      {\n        id: 'test-iso-2',\n        code: 'A.8.24',\n        name: 'Use of Cryptography & Key Management',\n        description: 'Enforcement of cryptographic standard policies for data in transit and at rest.',\n        category: 'Cloud Infrastructure',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'crypto-policy-attestation.json',\n        verified: true,\n        lastTested: '15m ago',\n        auditorNotes: 'TLS 1.3 enforced globally. Insecure TLS 1.0/1.1 disabled.',\n      },\n      {\n        id: 'test-iso-3',\n        code: 'A.5.24',\n        name: 'Infosec Incident Management Plan',\n        description: 'Annual test of incident response playbooks and SIEM real-time alerting integration.',\n        category: 'Security Operations',\n        frequency: 'Quarterly',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'incident-drill-simulation-2026.pdf',\n        verified: true,\n        lastTested: 'Aug 04, 2026',\n        auditorNotes: 'Mean time to acknowledge (MTTA) under 3 minutes recorded during drill.',\n      },\n      {\n        id: 'test-iso-4',\n        code: 'A.8.9',\n        name: 'Configuration Management Validation',\n        description: 'Infrastructure-as-Code Terraform state tracking and drift detection alerts.',\n        category: 'DevOps & CI/CD',\n        frequency: 'Daily',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'terraform-drift-scan-log.json',\n        verified: true,\n        lastTested: '1h ago',\n        auditorNotes: '100% cloud resources provisioned strictly via verified CI pipelines.',\n      },\n      {\n        id: 'test-iso-5',\n        code: 'A.6.3',\n        name: 'Security Awareness & Training',\n        description: 'Tracking employee onboarding training completion and phishing simulation resilience.',\n        category: 'People & HR',\n        frequency: 'Monthly',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'knowbe4-training-summary-q2.csv',\n        verified: true,\n        lastTested: 'Aug 18, 2026',\n        auditorNotes: '98.4% staff passed quarterly spear-phishing test simulation.',\n      },\n      {\n        id: 'test-iso-6',\n        code: 'A.5.19',\n        name: 'Supplier Security Governance',\n        description: 'Formal security evaluation and risk scoring for external vendors processing company data.',\n        category: 'People & HR',\n        frequency: 'Monthly',\n        status: 'Needs Attention',\n        statusVariant: 'warning',\n        artifact: 'iso-vendor-evaluation-register.csv',\n        verified: false,\n        lastTested: '2 days ago',\n        auditorNotes: 'Annual security questionnaire overdue for 2 low-risk sub-contractors.',\n      },\n    ],\n    trustCenterUrl: 'https://trust.uipkge.dev',\n  },\n  hipaa: {\n    id: 'hipaa',\n    tabLabel: 'HIPAA Security Rule',\n    name: 'HIPAA Security & Privacy Rule',\n    badge: 'Healthcare & ePHI Protection',\n    standard: '45 CFR Part 160 & Part 164 Subparts A, C, E',\n    score: 98,\n    readinessLabel: '98% Compliant',\n    period: 'Active Assessment · 2026',\n    auditor: 'Coalfire Systems · HIPAA Assessor',\n    totalPassing: 42,\n    totalTests: 43,\n    pillars: [\n      {\n        code: '164.308',\n        title: 'Administrative Safeguards',\n        description: 'Security management process, workforce clearance, and contingency operations.',\n        score: 97,\n        passed: 18,\n        total: 18,\n        status: '97% Passed · 18/18 tests',\n        statusVariant: 'success',\n        highlights: ['Emergency Mode Operations', 'Violation Sanction Policy'],\n        iconType: 'shield',\n      },\n      {\n        code: '164.310',\n        title: 'Physical Safeguards',\n        description: 'Facility access controls, workstation security, and device media control.',\n        score: 100,\n        passed: 10,\n        total: 10,\n        status: '100% Passed · 10/10 tests',\n        statusVariant: 'success',\n        highlights: ['Encrypted SSD Storage Media', 'Biometric Facility Access'],\n        iconType: 'lock',\n      },\n      {\n        code: '164.312',\n        title: 'Technical Safeguards',\n        description: 'ePHI encryption, unique user identification, and automated session timeout.',\n        score: 96,\n        passed: 12,\n        total: 13,\n        status: '96% Passed · 12/13 tests',\n        statusVariant: 'warning',\n        highlights: ['15-Minute Auto-Lock Policy', 'SHA-256 Audit Trail Integrity'],\n        iconType: 'server',\n      },\n      {\n        code: '164.314',\n        title: 'Organizational Requirements',\n        description: 'Business Associate Agreements (BAAs) with all vendors handling ePHI.',\n        score: 100,\n        passed: 2,\n        total: 2,\n        status: '100% Passed · 2/2 BAAs',\n        statusVariant: 'success',\n        highlights: ['AWS HIPAA BAA Signed', 'Cloudflare HIPAA BAA Signed'],\n        iconType: 'users',\n      },\n    ],\n    tests: [\n      {\n        id: 'test-hipaa-1',\n        code: '164.312(a)(1)',\n        name: 'Unique User ePHI Access Identification',\n        description: 'Every healthcare provider and system operator assigned a unique non-shared login.',\n        category: 'Identity & Auth',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'hipaa-identity-access-log.json',\n        verified: true,\n        lastTested: '10m ago',\n        auditorNotes: 'Zero generic or shared accounts found across electronic health records.',\n      },\n      {\n        id: 'test-hipaa-2',\n        code: '164.312(a)(2)(iii)',\n        name: 'Automatic Logoff Configuration',\n        description: 'System automatically terminates an electronic session after 15 minutes of inactivity.',\n        category: 'Cloud Infrastructure',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'session-timeout-policy-test.json',\n        verified: true,\n        lastTested: '22m ago',\n        auditorNotes: 'Verified on web, desktop app, and clinician mobile portals.',\n      },\n      {\n        id: 'test-hipaa-3',\n        code: '164.312(b)',\n        name: 'Audit Controls & 6-Year Retention',\n        description: 'Immutable audit logs recording access, modification, and export of electronic patient data.',\n        category: 'Security Operations',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'audit-worm-retention-spec.json',\n        verified: true,\n        lastTested: '5m ago',\n        auditorNotes: 'AWS S3 Object Lock in Compliance Mode active with 6-year retention policy.',\n      },\n      {\n        id: 'test-hipaa-4',\n        code: '164.312(e)(1)',\n        name: 'Transmission Security TLS 1.3',\n        description: 'ePHI in transit encrypted across public networks using TLS 1.3 with HSTS enabled.',\n        category: 'Cloud Infrastructure',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'tls-cipher-scan-report.json',\n        verified: true,\n        lastTested: '30m ago',\n        auditorNotes: 'A+ SSL Labs score verified on all public API endpoints.',\n      },\n      {\n        id: 'test-hipaa-5',\n        code: '164.314(a)(1)',\n        name: 'Active BAAs for All Cloud Vendors',\n        description: 'Executed Business Associate Agreements signed with all subprocessors with access to ePHI.',\n        category: 'People & HR',\n        frequency: 'Monthly',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'signed-baa-register-2026.pdf',\n        verified: true,\n        lastTested: 'Aug 15, 2026',\n        auditorNotes: 'BAA signed with AWS, Twilio, SendGrid, and Datadog.',\n      },\n      {\n        id: 'test-hipaa-6',\n        code: '164.308(a)(7)',\n        name: 'Contingency & Disaster Recovery Plan',\n        description: 'Documented emergency mode operations and annual disaster recovery failover drill.',\n        category: 'Security Operations',\n        frequency: 'Quarterly',\n        status: 'Needs Attention',\n        statusVariant: 'warning',\n        artifact: 'dr-failover-drill-q2.pdf',\n        verified: false,\n        lastTested: '3 days ago',\n        auditorNotes: 'Q3 secondary region failover drill scheduled for next Tuesday.',\n      },\n    ],\n    trustCenterUrl: 'https://trust.uipkge.dev',\n  },\n  gdpr: {\n    id: 'gdpr',\n    tabLabel: 'GDPR',\n    name: 'General Data Protection Regulation',\n    badge: 'Data Privacy & Subject Rights',\n    standard: 'Regulation (EU) 2016/679 · DPO Supervised',\n    score: 95,\n    readinessLabel: '95% Compliant',\n    period: 'Annual Privacy Review · 2026',\n    auditor: 'Internal DPO & Lead Data Authority',\n    totalPassing: 32,\n    totalTests: 34,\n    pillars: [\n      {\n        code: 'Art 25',\n        title: 'Data Protection by Design',\n        description: 'Pseudonymization, data minimization, and automated retention limits.',\n        score: 94,\n        passed: 9,\n        total: 10,\n        status: '94% Passed · 9/10 tests',\n        statusVariant: 'success',\n        highlights: ['Automated 90-Day PII Purge', 'Data Minimization Schemas'],\n        iconType: 'shield',\n      },\n      {\n        code: 'Art 30',\n        title: 'Records of Processing (RoPA)',\n        description: 'Complete registry of personal data processing categories and legal purposes.',\n        score: 100,\n        passed: 8,\n        total: 8,\n        status: '100% Passed · 8/8 records',\n        statusVariant: 'success',\n        highlights: ['Dynamic RoPA Data Flow', 'Lawful Basis Cataloged'],\n        iconType: 'file',\n      },\n      {\n        code: 'Art 32',\n        title: 'Security of Processing',\n        description: 'Technical safeguards, encryption, and regular vulnerability assessments.',\n        score: 96,\n        passed: 11,\n        total: 11,\n        status: '100% Passed · 11/11 tests',\n        statusVariant: 'success',\n        highlights: ['Field-Level PII Encryption', 'Zero-Trust Bastion Access'],\n        iconType: 'lock',\n      },\n      {\n        code: 'Art 33/34',\n        title: 'Breach Notification Protocol',\n        description: '72-hour supervisory authority notification process and risk assessments.',\n        score: 90,\n        passed: 4,\n        total: 5,\n        status: '90% Passed · 4/5 tests',\n        statusVariant: 'warning',\n        highlights: ['72-Hour DPA Escalation SLA', 'Subject Notification Workflow'],\n        iconType: 'activity',\n      },\n    ],\n    tests: [\n      {\n        id: 'test-gdpr-1',\n        code: 'Art 17',\n        name: 'Right to Erasure / DSR Pipeline',\n        description: 'Automated user data deletion across database tables and 3rd party integrations in < 30 days.',\n        category: 'DevOps & CI/CD',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'dsr-erasure-orchestrator.json',\n        verified: true,\n        lastTested: '14m ago',\n        auditorNotes: 'Mean time to complete erasure request: 4.2 hours.',\n      },\n      {\n        id: 'test-gdpr-2',\n        code: 'Art 30',\n        name: 'RoPA Inventory Live Synchronization',\n        description:\n          'Data classification tags synced with schema catalog to ensure full records of processing coverage.',\n        category: 'Identity & Auth',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'ropa-schema-mapping-v3.json',\n        verified: true,\n        lastTested: '6m ago',\n        auditorNotes: '100% of PII data fields mapped to lawful basis.',\n      },\n      {\n        id: 'test-gdpr-3',\n        code: 'Art 28',\n        name: 'Data Processing Agreements (DPAs)',\n        description: 'Standard Contractual Clauses (SCCs) and DPAs executed with all EU data processors.',\n        category: 'People & HR',\n        frequency: 'Monthly',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'dpa-register-eu-2026.pdf',\n        verified: true,\n        lastTested: 'Aug 10, 2026',\n        auditorNotes: 'All sub-processors compliant with EU-US Data Privacy Framework.',\n      },\n      {\n        id: 'test-gdpr-4',\n        code: 'Art 7',\n        name: 'Cookie Consent & Preference CMP',\n        description: 'Explicit opt-in banner blocking non-essential tracking prior to affirmative user consent.',\n        category: 'Cloud Infrastructure',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'cmp-consent-telemetry.json',\n        verified: true,\n        lastTested: '1h ago',\n        auditorNotes: 'Zero tracking cookies loaded prior to consent confirmation.',\n      },\n      {\n        id: 'test-gdpr-5',\n        code: 'Art 32(1)(a)',\n        name: 'PII Field-Level Encryption at Rest',\n        description: 'Names, emails, and financial identifiers hashed or encrypted with AES-256 before storage.',\n        category: 'Cloud Infrastructure',\n        frequency: 'Continuous (1h)',\n        status: 'Passing',\n        statusVariant: 'success',\n        artifact: 'field-encryption-audit.json',\n        verified: true,\n        lastTested: '25m ago',\n        auditorNotes: 'KMS envelope encryption active on all customer records.',\n      },\n      {\n        id: 'test-gdpr-6',\n        code: 'Art 33',\n        name: '72-Hour Breach Notification Drill',\n        description: 'Tabletop simulation testing supervisory authority DPA notification within statutory 72h window.',\n        category: 'Security Operations',\n        frequency: 'Quarterly',\n        status: 'Needs Attention',\n        statusVariant: 'warning',\n        artifact: 'gdpr-breach-playbook-2026.pdf',\n        verified: false,\n        lastTested: '4 days ago',\n        auditorNotes: 'DPO escalation contact list updated; tabletop review due in Q3.',\n      },\n    ],\n    trustCenterUrl: 'https://trust.uipkge.dev',\n  },\n}\n\nfunction getPillarIcon(iconType: string): React.ComponentType<{ className?: string }> {\n  switch (iconType) {\n    case 'key':\n      return KeyRound\n    case 'shield':\n      return ShieldCheck\n    case 'activity':\n      return Zap\n    case 'users':\n      return Users\n    case 'lock':\n      return Lock\n    case 'server':\n      return Server\n    case 'file':\n      return FileText\n    default:\n      return Shield\n  }\n}\n\nexport function ComplianceSoc2Readiness({\n  defaultFramework = 'soc2',\n  className,\n  ...props\n}: ComplianceSoc2ReadinessProps) {\n  const [activeFrameworkId, setActiveFrameworkId] = React.useState<string>(defaultFramework)\n  const [searchQuery, setSearchQuery] = React.useState('')\n  const [selectedCategory, setSelectedCategory] = React.useState<string>('all')\n  const [runningTestIds, setRunningTestIds] = React.useState<Record<string, boolean>>({})\n  const [lastTestedMap, setLastTestedMap] = React.useState<Record<string, string>>({})\n  const [activeEvidenceModal, setActiveEvidenceModal] = React.useState<EvidenceTestItem | null>(null)\n  const [isTestingAll, setIsTestingAll] = React.useState(false)\n  const [scheduleRequested, setScheduleRequested] = React.useState(false)\n  const [exportSuccess, setExportSuccess] = React.useState(false)\n\n  const currentFramework = frameworksData[activeFrameworkId] || frameworksData.soc2\n\n  const availableCategories = React.useMemo(() => {\n    const cats = new Set<string>()\n    currentFramework.tests.forEach((t) => cats.add(t.category))\n    return ['all', ...Array.from(cats)]\n  }, [currentFramework])\n\n  const filteredTests = React.useMemo(() => {\n    const q = searchQuery.trim().toLowerCase()\n    const cat = selectedCategory\n    return currentFramework.tests.filter((test) => {\n      const matchesCat = cat === 'all' || test.category === cat\n      const matchesQuery =\n        !q ||\n        test.code.toLowerCase().includes(q) ||\n        test.name.toLowerCase().includes(q) ||\n        test.description.toLowerCase().includes(q) ||\n        test.artifact.toLowerCase().includes(q) ||\n        test.category.toLowerCase().includes(q)\n      return matchesCat && matchesQuery\n    })\n  }, [currentFramework, searchQuery, selectedCategory])\n\n  function handleRunTest(testId: string) {\n    setRunningTestIds((prev) => ({ ...prev, [testId]: true }))\n    setTimeout(() => {\n      setRunningTestIds((prev) => ({ ...prev, [testId]: false }))\n      setLastTestedMap((prev) => ({ ...prev, [testId]: 'Just now' }))\n    }, 500)\n  }\n\n  function handleRunAllTests() {\n    setIsTestingAll(true)\n    setTimeout(() => {\n      setIsTestingAll(false)\n      const updated: Record<string, string> = {}\n      currentFramework.tests.forEach((t) => {\n        updated[t.id] = 'Just now'\n      })\n      setLastTestedMap((prev) => ({ ...prev, ...updated }))\n    }, 700)\n  }\n\n  function handleScheduleReview() {\n    setScheduleRequested(true)\n    setTimeout(() => {\n      setScheduleRequested(false)\n    }, 3000)\n  }\n\n  function handleExportPackage() {\n    setExportSuccess(true)\n    setTimeout(() => {\n      setExportSuccess(false)\n    }, 3000)\n  }\n\n  return (\n    <div data-slot=\"compliance-soc2-readiness\" className={cn('w-full space-y-6', className)} {...props}>\n      {/* Framework Selector Tabs */}\n      <Tabs value={activeFrameworkId} onValueChange={setActiveFrameworkId} className=\"w-full\">\n        <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n          <TabsList className=\"grid w-full grid-cols-2 md:w-auto md:grid-cols-4\">\n            <TabsTrigger value=\"soc2\" className=\"text-xs font-medium\">\n              SOC 2 Type II\n            </TabsTrigger>\n            <TabsTrigger value=\"iso27001\" className=\"text-xs font-medium\">\n              ISO 27001\n            </TabsTrigger>\n            <TabsTrigger value=\"hipaa\" className=\"text-xs font-medium\">\n              HIPAA Security Rule\n            </TabsTrigger>\n            <TabsTrigger value=\"gdpr\" className=\"text-xs font-medium\">\n              GDPR\n            </TabsTrigger>\n          </TabsList>\n\n          <div className=\"text-muted-foreground flex items-center gap-2 text-xs\">\n            <span className=\"bg-success inline-flex size-2 rounded-full\" />\n            <span>Real-time Telemetry Ingestion Active</span>\n          </div>\n        </div>\n\n        {/* Executive Overview Card */}\n        <Card className=\"border-border bg-card mt-4 shadow-xs\">\n          <CardContent className=\"p-6\">\n            <div className=\"flex flex-col gap-6 lg:flex-row lg:items-center lg:justify-between\">\n              {/* Left: Framework info */}\n              <div className=\"space-y-2\">\n                <div className=\"flex flex-wrap items-center gap-2.5\">\n                  <h1 className=\"text-foreground text-xl font-bold tracking-tight sm:text-2xl\">\n                    {currentFramework.name}\n                  </h1>\n                  <Badge variant=\"secondary\" className=\"font-medium\">\n                    {currentFramework.badge}\n                  </Badge>\n                </div>\n                <p className=\"text-muted-foreground text-xs sm:text-sm\">{currentFramework.standard}</p>\n                <div className=\"text-muted-foreground flex flex-wrap items-center gap-3 pt-1 text-xs\">\n                  <Badge variant=\"outline\" className=\"gap-1.5 font-normal\">\n                    <Calendar className=\"size-3.5\" />\n                    {currentFramework.period}\n                  </Badge>\n                  <Separator orientation=\"vertical\" className=\"hidden h-3.5 sm:block\" />\n                  <span>\n                    Lead Assessor: <strong className=\"text-foreground font-medium\">{currentFramework.auditor}</strong>\n                  </span>\n                </div>\n              </div>\n\n              {/* Right: Big Score Card & Action Buttons */}\n              <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center\">\n                {/* Score Badge */}\n                <div className=\"border-success/30 bg-success/10 flex items-center gap-3.5 rounded-xl border p-3.5 shadow-xs\">\n                  <div className=\"bg-success/20 text-success flex size-11 shrink-0 items-center justify-center rounded-lg\">\n                    <ShieldCheck className=\"size-6\" />\n                  </div>\n                  <div className=\"space-y-0.5\">\n                    <div className=\"flex items-baseline gap-2\">\n                      <span className=\"text-success text-success text-2xl font-bold tracking-tight tabular-nums sm:text-3xl\">\n                        {currentFramework.score}%\n                      </span>\n                      <Badge variant=\"success\" className=\"gap-1 px-2 text-xs font-semibold\">\n                        <CheckCircle2 className=\"size-3\" />\n                        {currentFramework.readinessLabel.replace(`${currentFramework.score}% `, '')}\n                      </Badge>\n                    </div>\n                    <p className=\"text-muted-foreground text-xs\">\n                      {currentFramework.totalPassing}/{currentFramework.totalTests} Continuous Controls Passing\n                    </p>\n                  </div>\n                </div>\n\n                {/* Action Buttons */}\n                <div className=\"flex flex-wrap gap-2.5 sm:flex-col\">\n                  <Button variant=\"default\" size=\"sm\" className=\"gap-2 shadow-xs\" onClick={handleScheduleReview}>\n                    {scheduleRequested ? <Check className=\"text-success size-4\" /> : <Calendar className=\"size-4\" />}\n                    <span>{scheduleRequested ? 'Review Requested!' : 'Schedule Auditor Review'}</span>\n                  </Button>\n\n                  <Button variant=\"outline\" size=\"sm\" className=\"gap-2 shadow-xs\" onClick={handleExportPackage}>\n                    {exportSuccess ? <Check className=\"text-success size-4\" /> : <FileDown className=\"size-4\" />}\n                    <span>{exportSuccess ? 'Package Exported!' : 'Export Compliance Package'}</span>\n                  </Button>\n                </div>\n              </div>\n            </div>\n          </CardContent>\n        </Card>\n\n        {/* 4 Compliance Control Pillar Cards */}\n        <div className=\"mt-6 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n          {currentFramework.pillars.map((pillar) => {\n            const IconComponent = getPillarIcon(pillar.iconType)\n            return (\n              <Card key={pillar.code} className=\"border-border bg-card hover:border-border shadow-xs transition-colors\">\n                <CardHeader className=\"p-4 pb-2\">\n                  <div className=\"flex items-start justify-between gap-2\">\n                    <div className=\"flex items-center gap-2\">\n                      <div className=\"bg-muted text-foreground border-border flex size-8 shrink-0 items-center justify-center rounded-lg border\">\n                        <IconComponent className=\"size-4\" />\n                      </div>\n                      <Badge variant=\"outline\" className=\"font-mono text-xs font-semibold\">\n                        {pillar.code}\n                      </Badge>\n                    </div>\n\n                    <Badge variant={pillar.statusVariant} className=\"text-xs font-medium\">\n                      {pillar.score === 100\n                        ? 'Zero Gaps'\n                        : pillar.statusVariant === 'warning'\n                          ? '1 Warning'\n                          : 'Passing'}\n                    </Badge>\n                  </div>\n\n                  <CardTitle className=\"mt-2 text-sm leading-snug font-semibold\">{pillar.title}</CardTitle>\n                  <CardDescription className=\"line-clamp-2 text-xs\">{pillar.description}</CardDescription>\n                </CardHeader>\n\n                <CardContent className=\"space-y-3 p-4 pt-1\">\n                  <div className=\"space-y-1.5\">\n                    <div className=\"flex flex-wrap items-baseline justify-between gap-x-2 gap-y-0.5 text-xs\">\n                      <span className=\"text-foreground text-2xl font-bold tracking-tight tabular-nums\">\n                        {pillar.score}%\n                      </span>\n                      <span className=\"text-muted-foreground font-medium tabular-nums\">\n                        {pillar.passed}/{pillar.total} tests\n                      </span>\n                    </div>\n                    <Progress value={pillar.score} className=\"h-1.5 w-full\" />\n                  </div>\n\n                  {/* Bullet highlights */}\n                  <div className=\"bg-muted/40 border-border/60 space-y-1 rounded-md border p-2 text-xs\">\n                    {pillar.highlights.map((highlight) => (\n                      <div key={highlight} className=\"text-muted-foreground flex items-center gap-1.5\">\n                        <CheckCircle2 className=\"text-success size-3 shrink-0\" />\n                        <span className=\"truncate\">{highlight}</span>\n                      </div>\n                    ))}\n                  </div>\n                </CardContent>\n              </Card>\n            )\n          })}\n        </div>\n\n        {/* Automated Evidence Tests Table Card */}\n        <Card className=\"border-border bg-card mt-6 shadow-xs\">\n          <CardHeader className=\"flex flex-col gap-4 pb-4 sm:flex-row sm:items-center sm:justify-between\">\n            <div>\n              <div className=\"flex items-center gap-2\">\n                <CardTitle className=\"text-base font-semibold\">Automated Evidence Tests</CardTitle>\n                <Badge variant=\"secondary\" className=\"font-mono text-xs\">\n                  {filteredTests.length} Active\n                </Badge>\n              </div>\n              <CardDescription className=\"text-xs\">\n                Continuous synthetic and policy compliance evaluation across infrastructure and IAM.\n              </CardDescription>\n            </div>\n\n            <div className=\"flex flex-wrap items-center gap-2\">\n              <Button\n                variant=\"outline\"\n                size=\"sm\"\n                className=\"gap-1.5 text-xs shadow-xs\"\n                disabled={isTestingAll}\n                onClick={handleRunAllTests}\n              >\n                <RefreshCw className={cn('size-3.5', isTestingAll && 'animate-spin')} />\n                <span>{isTestingAll ? 'Evaluating Tests...' : 'Run All Automated Tests'}</span>\n              </Button>\n            </div>\n          </CardHeader>\n\n          {/* Filter & Search Toolbar */}\n          <div className=\"border-border/60 border-t p-4 pt-3 pb-3\">\n            <div className=\"flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between\">\n              <div className=\"relative flex-1\">\n                <Search className=\"text-muted-foreground pointer-events-none absolute top-1/2 left-3 size-3.5 -translate-y-1/2\" />\n                <input\n                  value={searchQuery}\n                  onChange={(e) => setSearchQuery(e.target.value)}\n                  type=\"text\"\n                  placeholder=\"Filter by control code, name, category, or evidence artifact...\"\n                  className=\"border-border bg-background placeholder:text-muted-foreground focus-visible:ring-ring h-8 w-full rounded-md border px-3 pl-8 text-xs focus-visible:ring-2 focus-visible:outline-none\"\n                />\n              </div>\n\n              <div className=\"flex flex-wrap items-center gap-1.5\">\n                <span className=\"text-muted-foreground mr-1 flex items-center gap-1 text-xs font-medium\">\n                  <Filter className=\"size-3\" />\n                  Category:\n                </span>\n                {availableCategories.map((cat) => (\n                  <button\n                    key={cat}\n                    type=\"button\"\n                    className={cn(\n                      'focus-visible:ring-ring inline-flex items-center rounded-full border px-2.5 py-1 text-xs font-medium transition-colors focus-visible:ring-2 focus-visible:outline-none',\n                      selectedCategory === cat\n                        ? 'border-primary bg-primary text-primary-foreground shadow-xs'\n                        : 'border-border bg-card text-muted-foreground hover:bg-accent hover:text-foreground',\n                    )}\n                    onClick={() => setSelectedCategory(cat)}\n                  >\n                    {cat === 'all' ? 'All Categories' : cat}\n                  </button>\n                ))}\n              </div>\n            </div>\n          </div>\n\n          {/* Table Container */}\n          <CardContent className=\"p-0\">\n            <div className=\"border-border/60 overflow-x-auto border-t\">\n              <Table>\n                <TableHeader className=\"bg-muted/50\">\n                  <TableRow>\n                    <TableHead className=\"min-w-[220px] text-xs\">Control & Rule Name</TableHead>\n                    <TableHead className=\"text-xs\">Domain Category</TableHead>\n                    <TableHead className=\"text-xs\">Frequency</TableHead>\n                    <TableHead className=\"text-xs\">Status</TableHead>\n                    <TableHead className=\"text-xs\">Evidence Artifact</TableHead>\n                    <TableHead className=\"text-right text-xs\">Actions</TableHead>\n                  </TableRow>\n                </TableHeader>\n                <TableBody>\n                  {filteredTests.map((test) => (\n                    <TableRow key={test.id} className=\"hover:bg-muted/20\">\n                      {/* Control Code & Name */}\n                      <TableCell className=\"py-3\">\n                        <div className=\"space-y-0.5\">\n                          <div className=\"flex items-center gap-2\">\n                            <span className=\"text-foreground font-mono text-xs font-bold\">{test.code}</span>\n                            <span className=\"text-foreground text-xs font-semibold\">{test.name}</span>\n                          </div>\n                          <p className=\"text-muted-foreground max-w-sm text-xs leading-relaxed sm:max-w-md\">\n                            {test.description}\n                          </p>\n                        </div>\n                      </TableCell>\n\n                      {/* Category */}\n                      <TableCell className=\"py-3\">\n                        <Badge variant=\"outline\" className=\"text-xs font-normal\">\n                          {test.category}\n                        </Badge>\n                      </TableCell>\n\n                      {/* Frequency */}\n                      <TableCell className=\"text-muted-foreground py-3 text-xs\">\n                        <div className=\"flex items-center gap-1.5 font-medium\">\n                          <Clock className=\"size-3.5\" />\n                          <span>{test.frequency}</span>\n                        </div>\n                        <span className=\"text-muted-foreground/70 block text-xs\">\n                          Tested: {lastTestedMap[test.id] || test.lastTested}\n                        </span>\n                      </TableCell>\n\n                      {/* Status */}\n                      <TableCell className=\"py-3\">\n                        <Badge variant={test.statusVariant} className=\"gap-1 text-xs font-medium\">\n                          {test.status === 'Passing' ? (\n                            <CheckCircle2 className=\"size-3\" />\n                          ) : (\n                            <AlertTriangle className=\"size-3\" />\n                          )}\n                          {test.status}\n                        </Badge>\n                      </TableCell>\n\n                      {/* Evidence Artifact Link */}\n                      <TableCell className=\"py-3\">\n                        <button\n                          aria-label=\"Close evidence modal\"\n                          type=\"button\"\n                          className=\"hover:border-primary/40 hover:bg-muted/60 focus-visible:ring-ring group border-border/80 bg-muted/30 flex items-center gap-1.5 rounded-md border px-2 py-1 text-left transition-colors focus-visible:ring-2 focus-visible:outline-none\"\n                          onClick={() => setActiveEvidenceModal(test)}\n                        >\n                          <FileText className=\"text-muted-foreground group-hover:text-foreground size-3.5 shrink-0\" />\n                          <span className=\"text-foreground max-w-[150px] truncate font-mono text-xs sm:max-w-[200px]\">\n                            {test.artifact}\n                          </span>\n                          {test.verified && <CheckCircle2 className=\"text-success size-3 shrink-0\" />}\n                        </button>\n                      </TableCell>\n\n                      {/* Action Buttons */}\n                      <TableCell className=\"py-3 text-right\">\n                        <div className=\"flex items-center justify-end gap-1.5\">\n                          <Button\n                            variant=\"ghost\"\n                            size=\"xs\"\n                            className=\"h-7 gap-1 text-xs\"\n                            disabled={runningTestIds[test.id]}\n                            onClick={() => handleRunTest(test.id)}\n                          >\n                            <RefreshCw className={cn('size-3', runningTestIds[test.id] && 'animate-spin')} />\n                            <span className=\"hidden sm:inline\">Test Now</span>\n                          </Button>\n\n                          <Button\n                            aria-label=\"Close evidence modal\"\n                            variant=\"outline\"\n                            size=\"xs\"\n                            className=\"h-7 gap-1 text-xs\"\n                            onClick={() => setActiveEvidenceModal(test)}\n                          >\n                            <Eye className=\"size-3\" />\n                            <span>Evidence</span>\n                          </Button>\n                        </div>\n                      </TableCell>\n                    </TableRow>\n                  ))}\n\n                  {filteredTests.length === 0 && (\n                    <TableRow>\n                      <TableCell colSpan={6} className=\"py-8 text-center\">\n                        <p className=\"text-muted-foreground text-xs\">No automated compliance tests match your query.</p>\n                      </TableCell>\n                    </TableRow>\n                  )}\n                </TableBody>\n              </Table>\n            </div>\n          </CardContent>\n        </Card>\n\n        {/* Auditor Access & Trust Center Preview Strip */}\n        <Card className=\"border-border bg-card mt-6 overflow-hidden shadow-xs\">\n          <CardContent className=\"p-6\">\n            <div className=\"flex flex-col gap-6 lg:flex-row lg:items-center lg:justify-between\">\n              <div className=\"flex items-start gap-4\">\n                <div className=\"bg-primary/10 text-primary border-primary/20 flex size-11 shrink-0 items-center justify-center rounded-xl border\">\n                  <BadgeCheck className=\"size-6\" />\n                </div>\n                <div className=\"space-y-1\">\n                  <div className=\"flex flex-wrap items-center gap-2\">\n                    <h3 className=\"text-foreground text-base font-semibold\">Auditor Access & Public Trust Center</h3>\n                    <Badge variant=\"outline\" className=\"gap-1 font-mono text-xs\">\n                      <span className=\"bg-success size-1.5 rounded-full\" />\n                      Vault Online\n                    </Badge>\n                  </div>\n                  <p className=\"text-muted-foreground text-xs leading-relaxed sm:text-sm\">\n                    Cryptographically verifiable evidence room configured for continuous compliance review by{' '}\n                    <strong className=\"text-foreground font-medium\">{currentFramework.auditor}</strong>.\n                  </p>\n                  <div className=\"text-muted-foreground flex flex-wrap items-center gap-3 pt-1 text-xs\">\n                    <span>\n                      Access Grant: <strong className=\"text-foreground font-medium\">Valid for 14 days</strong>\n                    </span>\n                    <Separator orientation=\"vertical\" className=\"hidden h-3 sm:block\" />\n                    <span>\n                      Trust Portal: <span className=\"text-foreground font-mono\">{currentFramework.trustCenterUrl}</span>\n                    </span>\n                  </div>\n                </div>\n              </div>\n\n              <div className=\"flex flex-wrap items-center gap-2.5 sm:self-start lg:self-center\">\n                <a href={currentFramework.trustCenterUrl} target=\"_blank\" rel=\"noreferrer\" className=\"inline-flex\">\n                  <Button variant=\"outline\" size=\"sm\" className=\"gap-1.5 shadow-xs\">\n                    <ArrowUpRight className=\"size-4\" />\n                    <span>Preview Live Trust Center</span>\n                  </Button>\n                </a>\n\n                <Button variant=\"secondary\" size=\"sm\" className=\"gap-1.5 shadow-xs\">\n                  <KeyRound className=\"size-4\" />\n                  <span>Manage Auditor Access</span>\n                </Button>\n              </div>\n            </div>\n          </CardContent>\n\n          {/* Bottom Audit Ingestion Watermark */}\n          <div className=\"bg-muted/40 border-border flex flex-col gap-2 border-t px-6 py-2.5 text-xs sm:flex-row sm:items-center sm:justify-between\">\n            <div className=\"text-muted-foreground flex items-center gap-2 font-mono\">\n              <span className=\"bg-success size-1.5 rounded-full\" />\n              <span>Ledger Stamp: 0x9b4a8e217f0a4421b8c1992019a · SHA-256 Verified</span>\n            </div>\n            <span className=\"text-muted-foreground font-mono text-xs\">\n              Framework: {currentFramework.tabLabel} · Last Evaluation: Just now\n            </span>\n          </div>\n        </Card>\n      </Tabs>\n\n      {/* Modal / Sheet Preview for Evidence Artifact */}\n      {activeEvidenceModal && (\n        <div\n          role=\"dialog\"\n          aria-modal=\"true\"\n          className=\"bg-background/80 fixed inset-0 z-50 flex items-center justify-center p-4 backdrop-blur-sm\"\n          onClick={(e) => {\n            if (e.target === e.currentTarget) {\n              setActiveEvidenceModal(null)\n            }\n          }}\n        >\n          <Card className=\"border-border bg-card w-full max-w-lg shadow-lg\">\n            <CardHeader className=\"flex flex-row items-center justify-between pb-3\">\n              <div className=\"space-y-1\">\n                <div className=\"flex items-center gap-2\">\n                  <Badge variant=\"outline\" className=\"font-mono text-xs\">\n                    {activeEvidenceModal.code}\n                  </Badge>\n                  <CardTitle className=\"text-base font-semibold\">Evidence Verification Details</CardTitle>\n                </div>\n                <CardDescription className=\"text-xs\">{activeEvidenceModal.name}</CardDescription>\n              </div>\n              <Button\n                variant=\"ghost\"\n                size=\"icon-sm\"\n                className=\"size-7\"\n                aria-label=\"Close evidence modal\"\n                onClick={() => setActiveEvidenceModal(null)}\n              >\n                <X className=\"size-4\" />\n              </Button>\n            </CardHeader>\n\n            <CardContent className=\"space-y-4 text-xs\">\n              <div className=\"bg-muted/40 border-border/80 space-y-2 rounded-lg border p-3\">\n                <div className=\"flex items-center justify-between\">\n                  <span className=\"text-muted-foreground font-medium\">Artifact File:</span>\n                  <span className=\"text-foreground font-mono font-semibold\">{activeEvidenceModal.artifact}</span>\n                </div>\n                <div className=\"flex items-center justify-between\">\n                  <span className=\"text-muted-foreground font-medium\">Verification Status:</span>\n                  <Badge variant={activeEvidenceModal.statusVariant} className=\"gap-1 text-xs\">\n                    {activeEvidenceModal.verified ? (\n                      <CheckCircle2 className=\"size-3\" />\n                    ) : (\n                      <AlertCircle className=\"size-3\" />\n                    )}\n                    {activeEvidenceModal.verified ? 'Cryptographically Verified' : 'Action Required'}\n                  </Badge>\n                </div>\n                <div className=\"flex items-center justify-between\">\n                  <span className=\"text-muted-foreground font-medium\">Test Frequency:</span>\n                  <span className=\"text-foreground font-mono\">{activeEvidenceModal.frequency}</span>\n                </div>\n              </div>\n\n              <div className=\"space-y-1.5\">\n                <span className=\"text-muted-foreground font-medium\">Auditor Evaluation Notes:</span>\n                <p className=\"bg-muted/20 border-border text-foreground rounded-md border p-2.5 leading-relaxed\">\n                  {activeEvidenceModal.auditorNotes}\n                </p>\n              </div>\n\n              <div className=\"flex items-center justify-end gap-2 pt-2\">\n                <Button\n                  aria-label=\"Close evidence modal\"\n                  variant=\"outline\"\n                  size=\"sm\"\n                  className=\"text-xs\"\n                  onClick={() => setActiveEvidenceModal(null)}\n                >\n                  Close\n                </Button>\n                <Button\n                  aria-label=\"Close evidence modal\"\n                  variant=\"default\"\n                  size=\"sm\"\n                  className=\"gap-1.5 text-xs\"\n                  onClick={() => setActiveEvidenceModal(null)}\n                >\n                  <Download className=\"size-3.5\" />\n                  Download Artifact\n                </Button>\n              </div>\n            </CardContent>\n          </Card>\n        </div>\n      )}\n    </div>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/ComplianceSoc2Readiness.tsx"
    }
  ],
  "dependencies": [
    "lucide-react"
  ],
  "devDependencies": [],
  "registryDependencies": [
    "https://uipkge.dev/r/react/badge.json",
    "https://uipkge.dev/r/react/button.json",
    "https://uipkge.dev/r/react/card.json",
    "https://uipkge.dev/r/react/progress.json",
    "https://uipkge.dev/r/react/separator.json",
    "https://uipkge.dev/r/react/table.json",
    "https://uipkge.dev/r/react/tabs.json"
  ],
  "description": "Vanta/Drata-style SOC 2 Type II, ISO 27001, and HIPAA compliance readiness dashboard with framework selector tabs, audit readiness scorecards, 4 control pillar health bars, continuous automated evidence test tables with verified artifact badges, and auditor trust center portal controls.",
  "categories": [
    "legal",
    "app",
    "security"
  ]
}