import { BrainCircuit, ShieldAlert, ShieldCheck, Scale, Sparkles } from 'lucide-react'; import styles from './AssessmentPanels.module.css'; function SectionCard({ title, icon: Icon, tone = 'neutral', subtitle, children }) { return (

{title}

{subtitle ?

{subtitle}

: null}
{children}
); } function Row({ label, value, mono = false, strong = false }) { return (
{label} {value}
); } export default function AssessmentPanels({ result }) { const ethical = result.ethical; const neurosymbolic = result.neurosymbolic; if (!ethical && !neurosymbolic) return null; const ethicalTone = ethical ? (ethical.is_ethical ? 'positive' : 'critical') : 'neutral'; const nsTone = neurosymbolic?.decision === 'SYMBOLIC_SUPPORTS_AI' ? 'critical' : 'neutral'; return (
{neurosymbolic && ( {neurosymbolic.features && ( <> )}
Triggered Rules
{neurosymbolic.fired_rules?.length ? neurosymbolic.fired_rules.map((rule) => (
{rule.rule} +{Number(rule.weight || 0).toFixed(2)}

{rule.reason}

)) :

No symbolic rules fired.

}
)} {ethical && (
Flags
{ethical.flags?.length ? ethical.flags.map((flag) => ( {flag.replaceAll('_', ' ')} )) :

No ethical flags raised.

}
)}
); }