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.
}
)}
);
}