import type { Metadata, Viewport } from "next"; import { Manrope, Source_Sans_3 } from "next/font/google"; import { TRPCProvider } from "~/lib/trpc/provider.js"; import { ServiceWorkerRegistration } from "~/components/layout/ServiceWorkerRegistration.js"; import { InstallPrompt } from "~/components/layout/InstallPrompt.js"; import "./globals.css"; const uiFont = Source_Sans_3({ subsets: ["latin"], variable: "--font-ui", display: "swap", }); const displayFont = Manrope({ subsets: ["latin"], variable: "--font-display", display: "swap", }); export const metadata: Metadata = { metadataBase: new URL("https://planarchy.hartmut-noerenberg.com"), title: "CapaKraken — Resource & Capacity Planning", description: "Interactive resource planning and project staffing tool", manifest: "/manifest.json", appleWebApp: { capable: true, statusBarStyle: "default", title: "CapaKraken", }, openGraph: { title: "CapaKraken — Resource & Capacity Planning", description: "Estimates, staffing, chargeability, and timelines in one workspace.", images: [{ url: "/og-image.png", width: 1024, height: 1024, alt: "CapaKraken Logo" }], type: "website", }, twitter: { card: "summary_large_image", title: "CapaKraken — Resource & Capacity Planning", description: "Estimates, staffing, chargeability, and timelines in one workspace.", images: ["/og-image.png"], }, }; export const viewport: Viewport = { themeColor: "#0284c7", }; export default function RootLayout({ children }: { children: React.ReactNode }) { return (