"use client";

import { ThemeProvider as NextThemesProvider } from "next-themes";
import type { ReactNode } from "react";
import { TooltipProvider } from "@/components/ui/tooltip";
import { ToastProvider, ToastViewport } from "@/components/ui/toast";
import { Toaster } from "@/components/ui/toaster";

export function Providers({ children }: { children: ReactNode }) {
  return (
    <NextThemesProvider
      attribute="class"
      defaultTheme="system"
      enableSystem
      disableTransitionOnChange
      storageKey="markdown-viewer-theme"
    >
      <ToastProvider>
        <TooltipProvider delayDuration={120} skipDelayDuration={300}>
          {children}
        </TooltipProvider>
        <Toaster />
        <ToastViewport />
      </ToastProvider>
    </NextThemesProvider>
  );
}
