87 lines
2.9 KiB
TypeScript
87 lines
2.9 KiB
TypeScript
import type { Metadata } from "next";
|
||
import { Cal_Sans, Geist_Mono, Bricolage_Grotesque } from "next/font/google";
|
||
import localFont from "next/font/local";
|
||
import { Toaster } from "@/components/ui/sonner";
|
||
import { SiteHeader } from "@/components/site-header";
|
||
import { ListeCekmecesi } from "@/components/manuel-liste/liste-cekmecesi";
|
||
import { HeaderGate } from "@/components/header-gate";
|
||
import { ProgressiveBlur } from "@/components/ui/skiper-ui/skiper41";
|
||
import { DevPanel } from "@/components/dev/dev-panel";
|
||
import "./globals.css";
|
||
|
||
const calSans = Cal_Sans({
|
||
variable: "--font-cal-sans",
|
||
weight: "400",
|
||
subsets: ["latin", "latin-ext"],
|
||
});
|
||
|
||
const clarityCity = localFont({
|
||
variable: "--font-clarity-city",
|
||
src: [
|
||
{ path: "../fonts/ClarityCity-Regular.woff2", weight: "400" },
|
||
{ path: "../fonts/ClarityCity-Medium.woff2", weight: "500" },
|
||
{ path: "../fonts/ClarityCity-SemiBold.woff2", weight: "600" },
|
||
{ path: "../fonts/ClarityCity-Bold.woff2", weight: "700" },
|
||
{ path: "../fonts/ClarityCity-ExtraBold.woff2", weight: "800" },
|
||
],
|
||
});
|
||
|
||
const geistMono = Geist_Mono({
|
||
variable: "--font-geist-mono",
|
||
subsets: ["latin"],
|
||
});
|
||
|
||
const bricolage = Bricolage_Grotesque({
|
||
variable: "--font-bricolage-grotesque",
|
||
subsets: ["latin", "latin-ext"],
|
||
axes: ["opsz"],
|
||
});
|
||
|
||
export const metadata: Metadata = {
|
||
title: "KolayTercih — Tercih Danışmanı",
|
||
description:
|
||
"YKS sıralamana göre gerçek YÖK Atlas verisiyle dengeli 24 tercihlik liste. İnsan danışmanın onda bir fiyatına, yapay zekâ destekli tercih danışmanlığı.",
|
||
};
|
||
|
||
export default function RootLayout({
|
||
children,
|
||
}: Readonly<{
|
||
children: React.ReactNode;
|
||
}>) {
|
||
return (
|
||
<html
|
||
lang="tr"
|
||
className={`${calSans.variable} ${clarityCity.variable} ${geistMono.variable} ${bricolage.variable} h-full antialiased`}
|
||
>
|
||
<body className="min-h-full flex flex-col bg-slate-50">
|
||
{/* Site geneli progressive blur — üst ve alt */}
|
||
<div className="pointer-events-none fixed inset-x-0 top-0 z-40 h-28">
|
||
<ProgressiveBlur
|
||
position="top"
|
||
backgroundColor="#f8fafc"
|
||
height="112px"
|
||
blurAmount="6px"
|
||
/>
|
||
</div>
|
||
<div className="pointer-events-none fixed inset-x-0 bottom-0 z-40 h-28">
|
||
<ProgressiveBlur
|
||
position="bottom"
|
||
backgroundColor="#f8fafc"
|
||
height="112px"
|
||
blurAmount="6px"
|
||
/>
|
||
</div>
|
||
<HeaderGate>
|
||
<SiteHeader />
|
||
</HeaderGate>
|
||
{children}
|
||
{/* Manuel 24'lük liste çekmecesi + "+" uçuş katmanı (navbar'dan açılır) */}
|
||
<ListeCekmecesi />
|
||
<Toaster position="top-center" />
|
||
{/* Dev süperadmin paneli — prod build'de hiç render edilmez */}
|
||
{process.env.NODE_ENV !== "production" ? <DevPanel /> : null}
|
||
</body>
|
||
</html>
|
||
);
|
||
}
|