feat(web): Next.js 15 app shell, auth, i18n, base UI

App Router setup with next-intl (en/fr), Better Auth wiring, shadcn/ui components,
Tailwind, AES-256-GCM encrypt util, Redis rate limiter, tier limit checker,
site_settings helper for runtime .env overrides.
This commit is contained in:
Arnaud
2026-07-01 08:09:31 +02:00
parent add9365250
commit 5b40968c9d
50 changed files with 4274 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
"use client";
import { ThemeProvider } from "next-themes";
import { Toaster } from "@/components/ui/sonner";
import { TooltipProvider } from "@/components/ui/tooltip";
import { I18nProvider, type Locale } from "@/lib/i18n/provider";
import en from "@/messages/en.json";
import fr from "@/messages/fr.json";
const messages = { en, fr } as Record<string, Record<string, unknown>>;
export function Providers({
children,
initialLocale,
}: {
children: React.ReactNode;
initialLocale?: Locale;
}) {
return (
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
<I18nProvider messages={messages} initialLocale={initialLocale}>
<TooltipProvider>
{children}
<Toaster richColors position="top-right" />
</TooltipProvider>
</I18nProvider>
</ThemeProvider>
);
}