From 5f84008cb33e5e9caa503bbadbac53bbda376ddd Mon Sep 17 00:00:00 2001 From: bot-backend Date: Tue, 30 Jun 2026 07:33:11 +0000 Subject: [PATCH] =?UTF-8?q?fix(site-finder):=20=C2=A74.2=20=C2=AB=D0=9A?= =?UTF-8?q?=D0=B0=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE=20=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=C2=BB=20=E2=80=94=20inline-=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D0=BB=D0=B8=20(Tailwind=20flex/gap=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D0=BD=D1=8F=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F)=20(#1953)=20(#2100)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../site-finder/BestLayoutsBlock.tsx | 68 ++++++++++++++++--- 1 file changed, 57 insertions(+), 11 deletions(-) diff --git a/frontend/src/components/site-finder/BestLayoutsBlock.tsx b/frontend/src/components/site-finder/BestLayoutsBlock.tsx index 50fcfe7d..a885333c 100644 --- a/frontend/src/components/site-finder/BestLayoutsBlock.tsx +++ b/frontend/src/components/site-finder/BestLayoutsBlock.tsx @@ -14,10 +14,27 @@ import type { // ── Constants ───────────────────────────────────────────────────────────────── -const CONFIDENCE_STYLES: Record = { - high: { cls: "bg-emerald-100 text-emerald-800", label: "Высокое" }, - medium: { cls: "bg-amber-100 text-amber-800", label: "Среднее" }, - low: { cls: "bg-rose-100 text-rose-800", label: "Низкое" }, +// Inline-токены (НЕ Tailwind-классы): на site-finder-отчёте Tailwind-утилиты +// (flex/gap/bg-*) не генерируются в сборку — секции стилизованы inline (#1953). +const CONFIDENCE_STYLES: Record< + Confidence, + { fg: string; bg: string; label: string } +> = { + high: { + fg: "var(--success, #0A7A3A)", + bg: "var(--success-soft, #DCFCE7)", + label: "Высокое", + }, + medium: { + fg: "var(--warn, #9A6700)", + bg: "var(--warn-soft, #FEF3C7)", + label: "Среднее", + }, + low: { + fg: "var(--danger, #B3261E)", + bg: "var(--danger-soft, #FEE2E2)", + label: "Низкое", + }, }; const TIME_WINDOW_LABELS: Record = { @@ -47,21 +64,50 @@ const ROOM_BUCKET_LABELS: Record = { function DataQualityCard({ dq }: { dq: BestLayoutsResponse["data_quality"] }) { const conf = CONFIDENCE_STYLES[dq.confidence]; return ( -
- + // Inline-стили (НЕ Tailwind): flex/gap/bg-* не применяются на этой странице — + // спаны текли inline и слипались («НизкоеПокрытие», #1953). Inline гарантирует + // flex+gap (воздух вокруг «·») и фон бейджа. +
+ Качество данных: {conf.label} - {/* Явный разделитель + неразрывное «покрытие …» — иначе при flex-wrap бейдж - качества и текст покрытия слипались («Низкое​Покрытие 18%», #1953). */} - + · - + покрытие {dq.velocity_coverage_pct.toFixed(0)}% ( {dq.objects_with_velocity_data} из {dq.objects_total_in_radius} ЖК)