feat: F029 intelligence card system — premium AI-native CRE cards

Gold/Silver/Bronze FIFA-style score badges overlaid on location imagery.
List/grid view toggle on Results and Properties pages (persisted in
localStorage). IntelligenceMatchCard for match results grid view;
PropertyIntelligenceCard for property grid view with warm brown theme.
LocationPreview component with Google Maps link. 10 mock properties
enriched with Unsplash building images.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Sutter
2026-05-18 13:25:27 +02:00
parent 9e7a09f8a2
commit c75d3c8121
13 changed files with 581 additions and 26 deletions
+16 -8
View File
@@ -1,21 +1,29 @@
import { Box, Typography } from '@mui/material'
import { ViewToggle } from '../shared'
interface Props {
total: number
verifiedCount: number
externalCount: number
futureCount: number
view?: 'list' | 'grid'
onViewChange?: (v: 'list' | 'grid') => void
}
export function ResultFeedHeader({ total, verifiedCount, externalCount, futureCount }: Props) {
export function ResultFeedHeader({ total, verifiedCount, externalCount, futureCount, view = 'list', onViewChange }: Props) {
return (
<Box sx={{ bgcolor: 'white', borderBottom: '1px solid #e2e8f0', px: 3, py: 2 }}>
<Typography variant="h5" sx={{ fontWeight: 700 }} color="text.primary">
{total} Treffer gefunden
</Typography>
<Typography variant="body2" color="text.secondary">
{verifiedCount} Verified · {externalCount} Extern · {futureCount} Signale
</Typography>
<Box sx={{ bgcolor: 'white', borderBottom: '1px solid #e2e8f0', px: 3, py: 2, display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
<Box>
<Typography variant="h5" sx={{ fontWeight: 700 }} color="text.primary">
{total} Empfehlungen
</Typography>
<Typography variant="body2" color="text.secondary">
{verifiedCount} Verifiziert · {externalCount} Extern · {futureCount} Marktsignale
</Typography>
</Box>
{onViewChange && (
<ViewToggle view={view} onChange={onViewChange} />
)}
</Box>
)
}