feat: F011 match card system

- MatchCardViewModel: typed view model decoupling card from raw API data
- Sub-components: MatchCardHeader, MatchScoreDisplay, MatchReasonList, TradeoffList, MatchDataQualitySummary, MatchActionToolbar, MatchCardSkeleton, MatchCardRestrictedState
- 4 variants: MatchCardCompact, MatchCardExpanded, MatchCardReview, MatchCardCompareMini
- MatchCard: main entry point with variant prop
- matchCardAdapter: buildMatchCardViewModel() converts UnifiedMatchResult -> ViewModel
- UnifiedResultCard: now thin wrapper using MatchCardCompact via adapter
- FUTURE_AVAILABILITY always shows non-dismissable disclaimer

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Sutter
2026-05-16 13:39:35 +02:00
parent 307b450807
commit ea221def74
17 changed files with 972 additions and 147 deletions
+20
View File
@@ -0,0 +1,20 @@
export { MatchCard } from './MatchCard'
export { MatchCardCompact } from './MatchCardCompact'
export { MatchCardExpanded } from './MatchCardExpanded'
export { MatchCardReview } from './MatchCardReview'
export { MatchCardCompareMini } from './MatchCardCompareMini'
export { MatchCardHeader } from './MatchCardHeader'
export { MatchScoreDisplay } from './MatchScoreDisplay'
export { MatchReasonList } from './MatchReasonList'
export { TradeoffList } from './TradeoffList'
export { MatchDataQualitySummary } from './MatchDataQualitySummary'
export { MatchActionToolbar } from './MatchActionToolbar'
export { MatchCardSkeleton } from './MatchCardSkeleton'
export { MatchCardRestrictedState } from './MatchCardRestrictedState'
export type {
MatchCardViewModel,
MatchCardVariant,
MatchCardAction,
MatchCardActionType,
MatchCardReason,
} from './MatchCardViewModel'