import { Alert, Box, Card, Divider, Typography } from '@mui/material'
import { MapPin } from 'lucide-react'
import { MatchCardHeader } from './MatchCardHeader'
import { MatchReasonList } from './MatchReasonList'
import { TradeoffList } from './TradeoffList'
import { MatchDataQualitySummary } from './MatchDataQualitySummary'
import { MatchActionToolbar } from './MatchActionToolbar'
import { MatchCardRestrictedState } from './MatchCardRestrictedState'
import { ScoreInlineBreakdown } from './ScoreInlineBreakdown'
import type { MatchCardViewModel } from './MatchCardViewModel'
interface Props {
vm: MatchCardViewModel
}
export function MatchCardCompact({ vm }: Props) {
if (vm.isRestricted) return
const borderColor = vm.isCompareSelected
? '#7c3aed'
: vm.isSelected
? '#1e3a5f'
: 'transparent'
return (
{/* FUTURE_AVAILABILITY disclaimer — mandatory, non-dismissable */}
{vm.disclaimer && (
{vm.disclaimer}
)}
{vm.isReviewRequired && (
Manuelle Überprüfung erforderlich
)}
{/* Header: score → type → confidence → availability → risk */}
{/* Title + location (max 2 lines) */}
{vm.title}
{vm.propertySubtitle && (
{vm.propertySubtitle}
)}
{vm.locationLabel}
{vm.explainabilitySummary && (
{vm.explainabilitySummary}
)}
{/* Score formula — always visible */}
{vm.scoreBreakdown && (
)}
{/* Top reason only */}
{vm.reasons.length > 0 && (
)}
{/* Top tradeoff only (compact) */}
{vm.tradeoffs.length > 0 && (
)}
{/* Data quality — only critical warning in compact mode */}
)
}