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 MatchCardExpanded({ vm }: Props) {
if (vm.isRestricted) return
return (
{/* FUTURE_AVAILABILITY disclaimer — mandatory */}
{vm.disclaimer && (
{vm.disclaimer}
)}
{vm.isReviewRequired && (
Manuelle Überprüfung erforderlich
)}
{/* Primary summary zone */}
{vm.title}
{vm.locationLabel}
{vm.availabilityLabel && (
Verfügbar: {vm.availabilityLabel}
)}
{vm.explainabilitySummary && (
{vm.explainabilitySummary}
)}
{/* Score breakdown — full criteria with weights */}
{vm.scoreBreakdown && (
Bewertungsherleitung
)}
{/* Why it matches — all 3 reasons */}
{vm.reasons.length > 0 && (
)}
{/* Tradeoffs — up to 3 */}
{vm.tradeoffs.length > 0 && (
<>
>
)}
{/* Data quality — full view */}
{vm.sourceLabel && (
Quelle: {vm.sourceLabel}
{vm.externalUrl && (
↗
)}
)}
)
}