import path from "path";
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import tailwindcss from "@tailwindcss/vite";

export default defineConfig({
  plugins: [react(), tailwindcss()],
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
      lexical: path.resolve(__dirname, "./node_modules/lexical/Lexical.mjs"),
      // [nexus] Replace upstream OnboardingWizard with Nexus single-step version
      [path.resolve(__dirname, "src/components/OnboardingWizard")]:
        path.resolve(__dirname, "./src/components/NexusOnboardingWizard"),
    },
  },
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          // Note: react/react-dom cannot be split via manualChunks — @vitejs/plugin-react
          // injects the JSX runtime before Rollup processes chunks, so they stay in the entry.
          // The 37 lazy-loaded page chunks are the primary performance lever.
          "vendor-router": ["react-router-dom"],
          "vendor-query": ["@tanstack/react-query"],
          "vendor-markdown": ["react-markdown", "remark-gfm"],
        },
      },
    },
  },
  server: {
    port: 5173,
    proxy: {
      "/api": {
        target: "http://localhost:3100",
        ws: true,
      },
    },
  },
});
