gendesign/frontend/src/app/layout.tsx
Light1YT f4b54671d9
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 57s
CI / openapi-codegen-check (pull_request) Successful in 1m56s
fix(ptica): load Inter, surface map legend, drop flag, honest product chart, home link
Root causes behind the cockpit looking «криво/косо»:

- Inter was never loaded — app referenced literal "Inter" but only IBM Plex
  Mono went through next/font, so the whole cockpit rendered in -apple-system
  (wider metrics → rail labels overflow, tabular numbers misalign). Load Inter
  via next/font/google (latin+cyrillic) and wire --font-ui/body to it.
- Map legend overlay (z-index 4) was buried under Leaflet panes (200-700):
  give .leaflet-container its own stacking context (position:absolute; z-index:1)
  like the prototype, so the overlay + tools surface.
- Drop the Leaflet attribution flag/"Leaflet" prefix (prefix={false}) while
  keeping the © Esri/Maxar/CARTO data credits.
- RECOMMENDED PRODUCT rendered 15 degenerate full-red −1.00 bars: filter mix to
  the recommended class, show an honest empty state on degenerate signal, cap
  rows, and stop labels wrapping (nowrap+ellipsis).
- ПТИЦА wordmark is now a Link → /site-finder (home), with a focus ring.
2026-06-21 01:41:13 +05:00

46 lines
1.2 KiB
TypeScript

import type { Metadata } from "next";
import { IBM_Plex_Mono, Inter } from "next/font/google";
import { RouteGuard } from "@/components/auth/RouteGuard";
import "./globals.css";
import { Providers } from "./providers";
// App UI typeface (Inter). next/font is bundled — no package.json change.
// Cyrillic + latin subsets so RU labels render correctly across the app.
const inter = Inter({
subsets: ["latin", "cyrillic"],
weight: ["400", "500", "600", "700"],
variable: "--font-inter",
display: "swap",
});
// ПТИЦА cockpit numerals (mono). next/font is bundled — no package.json change.
// Cyrillic + latin subsets so mono digits/labels render in the dark cockpit.
const plexMono = IBM_Plex_Mono({
subsets: ["latin", "cyrillic"],
weight: ["400", "500", "600"],
variable: "--font-plex-mono",
display: "swap",
});
export const metadata: Metadata = {
title: "GenDesign",
description: "Generative Design + Site Finder",
};
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="ru" className={`${inter.variable} ${plexMono.variable}`}>
<body>
<Providers>
<RouteGuard>{children}</RouteGuard>
</Providers>
</body>
</html>
);
}