import type { Metadata, Viewport } from 'next' import Script from 'next/script' import { PublicEnvScript as RuntimePublicEnvScript } from 'next-runtime-env' import { NuqsAdapter } from 'nuqs/adapters/next/app' import { BrandedLayout } from '@/components/branded-layout' import { PostHogProvider } from '@/app/_shell/providers/posthog-provider' import { generateBrandedMetadata, generateThemeCSS } from '@/ee/whitelabeling' import '@/app/_styles/globals.css' import { isHosted, isReactGrabEnabled, isReactScanEnabled } from '@/lib/core/config/env-flags' import { HydrationErrorHandler } from '@/app/_shell/hydration-error-handler' import { QueryProvider } from '@/app/_shell/providers/query-provider' import { SessionProvider } from '@/app/_shell/providers/session-provider' import { ThemeProvider } from '@/app/_shell/providers/theme-provider' import { TooltipProvider } from '@/app/_shell/providers/tooltip-provider' import { PublicEnvScript } from '@/app/_shell/public-env-script' import { season } from '@/app/_styles/fonts/season/season' export const viewport: Viewport = { width: 'device-width', initialScale: 1, themeColor: [ { media: '(prefers-color-scheme: light)', color: '#ffffff' }, { media: '(prefers-color-scheme: dark)', color: '#0c0c0c' }, ], } export const metadata: Metadata = generateBrandedMetadata() const GTM_ID = 'GTM-T7PHSRX5' as const const GA_ID = 'G-DR7YBE70VS' as const export default function RootLayout({ children }: { children: React.ReactNode }) { const themeCSS = generateThemeCSS() return (
{isReactScanEnabled && ( )} {isReactGrabEnabled && ( )} {isReactGrabEnabled && ( )} {/* Workspace layout dimensions: set CSS vars before hydration to avoid layout jump. IMPORTANT: These hardcoded values must stay in sync with stores/constants.ts We cannot use imports here since this is a blocking script that runs before React. */}