fix: resolve all MUI v9 TypeScript build errors
- Move system props (fontWeight, lineHeight, display, alignItems, etc.) into sx - Fix Lucide icon color prop (no sx support) - Merge duplicate sx attributes - Remove unused variables (location, _needId, v) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -53,7 +53,7 @@ export default function AISearch() {
|
||||
<Box>
|
||||
{/* Page Header */}
|
||||
<Box sx={{ bgcolor: 'white', borderBottom: '1px solid #e2e8f0', px: 3, py: 2 }}>
|
||||
<Typography variant="h5" fontWeight={700} color="text.primary">
|
||||
<Typography variant="h5" sx={{ fontWeight: 700 }} color="text.primary">
|
||||
AI Bedarfsanalyse
|
||||
</Typography>
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
@@ -66,7 +66,7 @@ export default function AISearch() {
|
||||
{step === 'input' && (
|
||||
<Box>
|
||||
<Card sx={{ maxWidth: 680, mx: 'auto', p: 3 }}>
|
||||
<Typography variant="subtitle1" fontWeight={600} mb={2}>
|
||||
<Typography variant="subtitle1" sx={{ fontWeight: 600, mb: 2 }}>
|
||||
Flächenbedarf beschreiben
|
||||
</Typography>
|
||||
<TextField
|
||||
@@ -76,10 +76,10 @@ export default function AISearch() {
|
||||
placeholder="Beispiel: Wir suchen 800–1.000 m² Bürofläche in Zürich-West, verfügbar ab September 2025, Budget max. 45 CHF/m². Wichtig: gute ÖV-Anbindung, moderne Infrastruktur."
|
||||
value={inputText}
|
||||
onChange={e => setInputText(e.target.value)}
|
||||
inputProps={{ maxLength: 2000 }}
|
||||
slotProps={{ htmlInput: { maxLength: 2000 } }}
|
||||
sx={{ mb: 1 }}
|
||||
/>
|
||||
<Typography variant="caption" color="text.secondary" display="block" textAlign="right" mb={2}>
|
||||
<Typography variant="caption" color="text.secondary" sx={{ display: 'block', textAlign: 'right', mb: 2 }}>
|
||||
{inputText.length}/2000
|
||||
</Typography>
|
||||
<Button
|
||||
@@ -92,17 +92,17 @@ export default function AISearch() {
|
||||
>
|
||||
Analysieren
|
||||
</Button>
|
||||
<Typography variant="caption" color="text.secondary" display="block" textAlign="center">
|
||||
<Typography variant="caption" color="text.secondary" sx={{ display: 'block', textAlign: 'center' }}>
|
||||
Die KI extrahiert automatisch Kriterien, Standortpräferenzen und Budget aus Ihrer Beschreibung.
|
||||
</Typography>
|
||||
</Card>
|
||||
|
||||
{/* Example Queries */}
|
||||
<Box sx={{ maxWidth: 680, mx: 'auto', mt: 2 }}>
|
||||
<Typography variant="caption" color="text.secondary" display="block" mb={1}>
|
||||
<Typography variant="caption" color="text.secondary" sx={{ display: 'block', mb: 1 }}>
|
||||
Beispiele:
|
||||
</Typography>
|
||||
<Stack direction="row" spacing={1} flexWrap="wrap" gap={1}>
|
||||
<Stack direction="row" spacing={1} sx={{ flexWrap: 'wrap', gap: 1 }}>
|
||||
{EXAMPLE_QUERIES.map(q => (
|
||||
<Chip
|
||||
key={q}
|
||||
@@ -135,7 +135,7 @@ export default function AISearch() {
|
||||
<Box className="grid grid-cols-2 gap-4" sx={{ mb: 3 }}>
|
||||
{/* Left: Extracted Criteria */}
|
||||
<Card sx={{ p: 3 }}>
|
||||
<Typography variant="subtitle1" fontWeight={600} mb={2}>
|
||||
<Typography variant="subtitle1" sx={{ fontWeight: 600, mb: 2 }}>
|
||||
Extrahierte Kriterien
|
||||
</Typography>
|
||||
|
||||
@@ -161,8 +161,7 @@ export default function AISearch() {
|
||||
<Box>
|
||||
<Typography
|
||||
variant="caption"
|
||||
fontWeight={600}
|
||||
sx={{ color: ConfidenceColor(extractedCriteria.confidence) }}
|
||||
sx={{ fontWeight: 600, color: ConfidenceColor(extractedCriteria.confidence) }}
|
||||
>
|
||||
Flächenbedarf
|
||||
</Typography>
|
||||
@@ -177,8 +176,7 @@ export default function AISearch() {
|
||||
<Box>
|
||||
<Typography
|
||||
variant="caption"
|
||||
fontWeight={600}
|
||||
sx={{ color: ConfidenceColor(extractedCriteria.confidence) }}
|
||||
sx={{ fontWeight: 600, color: ConfidenceColor(extractedCriteria.confidence) }}
|
||||
>
|
||||
Budget
|
||||
</Typography>
|
||||
@@ -193,8 +191,7 @@ export default function AISearch() {
|
||||
<Box>
|
||||
<Typography
|
||||
variant="caption"
|
||||
fontWeight={600}
|
||||
sx={{ color: ConfidenceColor(0.5) }}
|
||||
sx={{ fontWeight: 600, color: ConfidenceColor(0.5) }}
|
||||
>
|
||||
Unternehmen
|
||||
</Typography>
|
||||
@@ -208,8 +205,7 @@ export default function AISearch() {
|
||||
<Box>
|
||||
<Typography
|
||||
variant="caption"
|
||||
fontWeight={600}
|
||||
sx={{ color: ConfidenceColor(0.85) }}
|
||||
sx={{ fontWeight: 600, color: ConfidenceColor(0.85) }}
|
||||
>
|
||||
Standort
|
||||
</Typography>
|
||||
@@ -223,8 +219,7 @@ export default function AISearch() {
|
||||
<Box>
|
||||
<Typography
|
||||
variant="caption"
|
||||
fontWeight={600}
|
||||
sx={{ color: ConfidenceColor(0.85) }}
|
||||
sx={{ fontWeight: 600, color: ConfidenceColor(0.85) }}
|
||||
>
|
||||
Verfügbarkeit
|
||||
</Typography>
|
||||
@@ -238,8 +233,7 @@ export default function AISearch() {
|
||||
<Box>
|
||||
<Typography
|
||||
variant="caption"
|
||||
fontWeight={600}
|
||||
sx={{ color: ConfidenceColor(0.85) }}
|
||||
sx={{ fontWeight: 600, color: ConfidenceColor(0.85) }}
|
||||
>
|
||||
Objekttyp
|
||||
</Typography>
|
||||
@@ -252,8 +246,8 @@ export default function AISearch() {
|
||||
|
||||
{/* Assumptions */}
|
||||
{extractedCriteria.assumptions.length > 0 && (
|
||||
<Box mt={3}>
|
||||
<Typography variant="caption" fontWeight={600} color="text.secondary" display="block" mb={1}>
|
||||
<Box sx={{ mt: 3 }}>
|
||||
<Typography variant="caption" sx={{ fontWeight: 600, display: 'block', mb: 1 }} color="text.secondary">
|
||||
Annahmen der KI
|
||||
</Typography>
|
||||
<Stack spacing={0.5}>
|
||||
@@ -268,11 +262,11 @@ export default function AISearch() {
|
||||
|
||||
{/* Missing Fields */}
|
||||
{extractedCriteria.missingFields.length > 0 && (
|
||||
<Box mt={2}>
|
||||
<Typography variant="caption" fontWeight={600} color="text.secondary" display="block" mb={1}>
|
||||
<Box sx={{ mt: 2 }}>
|
||||
<Typography variant="caption" sx={{ fontWeight: 600, display: 'block', mb: 1 }} color="text.secondary">
|
||||
Fehlende Informationen
|
||||
</Typography>
|
||||
<Stack direction="row" spacing={0.5} flexWrap="wrap" gap={0.5}>
|
||||
<Stack direction="row" spacing={0.5} sx={{ flexWrap: 'wrap', gap: 0.5 }}>
|
||||
{extractedCriteria.missingFields.map(f => (
|
||||
<Chip
|
||||
key={f}
|
||||
@@ -289,17 +283,17 @@ export default function AISearch() {
|
||||
|
||||
{/* Right: Follow-up Questions */}
|
||||
<Card sx={{ p: 3 }}>
|
||||
<Typography variant="subtitle1" fontWeight={600} mb={0.5}>
|
||||
<Typography variant="subtitle1" sx={{ fontWeight: 600, mb: 0.5 }}>
|
||||
Rückfragen der KI
|
||||
</Typography>
|
||||
<Typography variant="caption" color="text.secondary" display="block" mb={2}>
|
||||
<Typography variant="caption" color="text.secondary" sx={{ display: 'block', mb: 2 }}>
|
||||
Diese Fragen sind optional — verbessern jedoch die Trefferqualität.
|
||||
</Typography>
|
||||
|
||||
<Stack spacing={3}>
|
||||
{extractedCriteria.followUpQuestions.map((q, i) => (
|
||||
<Box key={i}>
|
||||
<Typography variant="body2" fontWeight={500} mb={1}>
|
||||
<Typography variant="body2" sx={{ fontWeight: 500, mb: 1 }}>
|
||||
{i + 1}. {q}
|
||||
</Typography>
|
||||
<TextField
|
||||
|
||||
Reference in New Issue
Block a user