SPB Git

Repository Public

layout.tsx 2.0 KB 54 lines tsx

1import type { Metadata, Viewport } from 'next';2import { GeistSans } from 'geist/font/sans';3import '@fontsource/jetbrains-mono/400.css';4import '@fontsource/jetbrains-mono/500.css';5import '@fontsource/jetbrains-mono/700.css';6import './globals.css';7import { Providers } from '@/components/providers';89/*10 * Static defaults (the Claude product). The product name is resolved at RUN TIME (lib/branding.ts):11 * /theme-init.js and the branding store rewrite the title / PWA title for a Codex instance, and the12 * server serves that instance's /manifest.webmanifest and /icons/* from out/brand/codex/.13 */14export const metadata: Metadata = {15  title: 'Claude Remote',16  description: 'Claude Remote — MacLustr Command Center',17  manifest: '/manifest.webmanifest',18  robots: { index: false, follow: false },19  icons: {20    icon: [21      { url: '/icons/icon.svg', type: 'image/svg+xml' },22      { url: '/icons/icon-192.png', sizes: '192x192', type: 'image/png' },23    ],24    apple: [{ url: '/icons/apple-touch-icon.png', sizes: '180x180' }],25  },26  appleWebApp: { capable: true, title: 'Claude Remote', statusBarStyle: 'black-translucent' },27  formatDetection: { telephone: false, email: false, address: false },28  other: { 'mobile-web-app-capable': 'yes' },29};3031export const viewport: Viewport = {32  width: 'device-width',33  initialScale: 1,34  viewportFit: 'cover',35  interactiveWidget: 'resizes-content',36  themeColor: '#F7F6F3', // light default; /theme-init.js and the theme store update it37  colorScheme: 'light dark',38};3940export default function RootLayout({ children }: { children: React.ReactNode }) {41  return (42    <html lang="en" className={GeistSans.variable} data-theme="light" suppressHydrationWarning>43      <head>44        {/* Blocking, same-origin: sets data-theme before first paint (the CSP forbids inline scripts). */}45        {/* eslint-disable-next-line @next/next/no-sync-scripts */}46        <script src="/theme-init.js" />47      </head>48      <body>49        <Providers>{children}</Providers>50      </body>51    </html>52  );53}54
Files main
Menu

Theme