Updated UI text in: project-shell (tab label), AtlasChat (sender name), FreshIdeaMain, TypeSelector, MigrateSetup, ChatImportSetup, FreshIdeaSetup, CodeImportSetup, prd/page, build/page, projects/page, deployment/page, activity/page, layout (page title/description), atlas-chat API route. Code identifiers (AtlasChat component name, file names) unchanged. Made-with: Cursor
73 lines
1.9 KiB
TypeScript
73 lines
1.9 KiB
TypeScript
import type { Metadata } from "next";
|
|
import { Outfit, Newsreader, IBM_Plex_Mono } from "next/font/google";
|
|
import "./globals.css";
|
|
import { Toaster } from "@/components/ui/sonner";
|
|
import { Providers } from "@/app/components/Providers";
|
|
|
|
const outfit = Outfit({
|
|
variable: "--font-outfit",
|
|
subsets: ["latin"],
|
|
weight: ["300", "400", "500", "600", "700"],
|
|
});
|
|
|
|
const newsreader = Newsreader({
|
|
variable: "--font-newsreader",
|
|
subsets: ["latin"],
|
|
weight: ["400", "500"],
|
|
style: ["normal", "italic"],
|
|
});
|
|
|
|
const ibmPlexMono = IBM_Plex_Mono({
|
|
variable: "--font-ibm-plex-mono",
|
|
subsets: ["latin"],
|
|
weight: ["400", "500"],
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: "VIBN — Build with Vibn",
|
|
description: "Chat with Vibn to define your product, then let AI build it.",
|
|
manifest: "/manifest.json",
|
|
appleWebApp: {
|
|
capable: true,
|
|
statusBarStyle: "black-translucent",
|
|
title: "VIBN",
|
|
},
|
|
other: {
|
|
"mobile-web-app-capable": "yes",
|
|
"msapplication-TileColor": "#1a1a1a",
|
|
},
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html lang="en" suppressHydrationWarning>
|
|
<head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
<meta name="theme-color" content="#1a1a1a" />
|
|
<link rel="apple-touch-icon" href="/vibn-logo-circle.png" />
|
|
<link rel="manifest" href="/manifest.json" />
|
|
</head>
|
|
<body
|
|
className={`${outfit.variable} ${newsreader.variable} ${ibmPlexMono.variable} antialiased`}
|
|
>
|
|
<Providers>
|
|
{children}
|
|
<Toaster />
|
|
</Providers>
|
|
<script dangerouslySetInnerHTML={{ __html: `
|
|
if ('serviceWorker' in navigator) {
|
|
window.addEventListener('load', () => {
|
|
navigator.serviceWorker.register('/sw.js').catch(() => {});
|
|
});
|
|
}
|
|
`}} />
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|
|
|