diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 35c56dc4..cdf77b91 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -2,26 +2,9 @@ import type { Metadata } from 'next';
import { cookies } from 'next/headers';
import { Geist, Geist_Mono } from 'next/font/google';
import './globals.css';
-import { Suspense } from 'react';
-import { ThemeProvider } from '@/lib/theme-provider';
-import DynamicTheming from '@/components/theme/DynamicTheming';
-import { OfflineModeProvider } from './context/OfflineModeContext';
-import { I18nProvider } from '@/hooks/useInternationalization';
-import { InternationalizationEngine } from '@/components/i18n/InternationalizationEngine';
-import { CulturalAdaptationManager } from '@/components/i18n/CulturalAdaptationManager';
-import PerformanceMonitor from '@/components/performance/PerformanceMonitor';
-import { PerformanceMonitoringProvider } from '@/hooks/usePerformanceMonitoring';
-import PrefetchingEngine from '@/components/performance/PrefetchingEngine';
-import StateManagerIntegration from '@/components/state/StateManagerIntegration';
-import { PWAManager } from '@/components/pwa/PWAManager';
-import { AccessibilityProvider } from '@/components/accessibility/AccessibilityProvider';
-import { ErrorBoundary } from '@/components/errors/ErrorBoundarySystem';
-import { EnvGuard } from '@/components/shared/EnvGuard';
-import { Loading } from '@/components/ui/Loading';
-import { ToastProvider } from '@/context/ToastContext';
+import { RootProviders } from '@/providers/RootProviders';
const geistSans = Geist({
- // ...
variable: '--font-geist-sans',
subsets: ['latin'],
});
@@ -69,34 +52,14 @@ export default async function RootLayout({
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }>{children}
-
-
-
-
-
-
-
-
-
-
+
+
+ {children}
+
);
}
+
diff --git a/src/providers/RootProviders.tsx b/src/providers/RootProviders.tsx
new file mode 100644
index 00000000..ce9dad22
--- /dev/null
+++ b/src/providers/RootProviders.tsx
@@ -0,0 +1,95 @@
+'use client';
+
+import { Suspense } from 'react';
+import dynamic from 'next/dynamic';
+import { ThemeProvider } from '@/lib/theme-provider';
+import { I18nProvider } from '@/hooks/useInternationalization';
+import { InternationalizationEngine } from '@/components/i18n/InternationalizationEngine';
+import { CulturalAdaptationManager } from '@/components/i18n/CulturalAdaptationManager';
+import { AccessibilityProvider } from '@/components/accessibility/AccessibilityProvider';
+import { ErrorBoundary } from '@/components/errors/ErrorBoundarySystem';
+import { EnvGuard } from '@/components/shared/EnvGuard';
+import { ToastProvider } from '@/context/ToastContext';
+import { Loading } from '@/components/ui/Loading';
+
+// Lazy load heavy/non-critical providers/components to improve initial render time
+const OfflineModeProvider = dynamic(
+ () => import('@/context/OfflineModeContext').then((mod) => mod.OfflineModeProvider),
+ { ssr: false }
+);
+
+const PerformanceMonitoringProvider = dynamic(
+ () => import('@/hooks/usePerformanceMonitoring').then((mod) => mod.PerformanceMonitoringProvider),
+ { ssr: false }
+);
+
+const PWAManager = dynamic(
+ () => import('@/components/pwa/PWAManager').then((mod) => mod.PWAManager),
+ { ssr: false }
+);
+
+const StateManagerIntegration = dynamic(
+ () => import('@/components/state/StateManagerIntegration'),
+ { ssr: false }
+);
+
+const PerformanceMonitor = dynamic(
+ () => import('@/components/performance/PerformanceMonitor'),
+ { ssr: false }
+);
+
+const PrefetchingEngine = dynamic(
+ () => import('@/components/performance/PrefetchingEngine'),
+ { ssr: false }
+);
+
+const DynamicTheming = dynamic(
+ () => import('@/components/theme/DynamicTheming'),
+ { ssr: false }
+);
+
+interface RootProvidersProps {
+ children: React.ReactNode;
+ defaultTheme: string;
+}
+
+/**
+ * Consolidates all client-side providers and components to reduce layout complexity
+ * and enables lazy loading of non-critical systems.
+ */
+export function RootProviders({ children, defaultTheme }: RootProvidersProps) {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }>{children}
+
+
+
+
+
+
+
+
+
+
+
+ );
+}