import React from 'react';
import { Card } from '@/components/ui/card';
import { Progress } from '@/components/ui/progress';
import { Blend, Target, TrendingUp, TrendingDown, Minus } from 'lucide-react';
import type { ProbabilityFusion } from '@/core/enhanced6DProbabilityMatrix';
interface ProbabilityMatrixDisplayProps {
fusion: ProbabilityFusion | null;
}
export function ProbabilityMatrixDisplay({ fusion }: ProbabilityMatrixDisplayProps) {
if (!fusion) {
return (
Awaiting probability fusion...
);
}
const ActionIcon = fusion.action.includes('BUY') ? TrendingUp :
fusion.action.includes('SELL') ? TrendingDown : Minus;
const actionColor = fusion.action.includes('BUY') ? 'text-success' :
fusion.action.includes('SELL') ? 'text-destructive' : 'text-muted-foreground';
return (
Probability Matrix Fusion
{/* Input Probabilities */}
{/* Fusion Result */}
Fused Probability
Resonance Boost: +{(fusion.resonanceBoost * 100).toFixed(1)}%
{/* Gradient bar */}
{/* Indicator */}
{/* Value label */}
{(fusion.fusedProbability * 100).toFixed(1)}%
{/* Action & Confidence */}
{fusion.action.replace('_', ' ')}
Confidence
{(fusion.confidence * 100).toFixed(0)}%
{/* Harmonic Lock Indicator */}
{fusion.harmonicLock && (
)}
);
}
function ProbabilityBar({
label,
value,
weight,
color
}: {
label: string;
value: number;
weight: number;
color: string;
}) {
const direction = value >= 0.5 ? 'BULL' : 'BEAR';
const directionColor = value >= 0.5 ? 'text-success' : 'text-destructive';
return (
{label}
({(weight * 100).toFixed(0)}% weight)
{direction}
{(value * 100).toFixed(1)}%
);
}