import vuetify, { transformAssetUrls } from "vite-plugin-vuetify"; export default defineNuxtConfig({ compatibilityDate: "2025-05-15", devtools: { enabled: true, timeline: { enabled: true, }, }, modules: [ "@nuxt/content", "@nuxt/eslint", "@nuxt/fonts", "@nuxt/icon", "@nuxt/image", "@nuxt/scripts", "@nuxt/test-utils", "@nuxt/ui", "@pinia/nuxt", "@nuxtjs/google-fonts", (_options, nuxt) => { nuxt.hooks.hook("vite:extendConfig", (config) => { // @ts-expect-error config.plugins.push(vuetify({ autoImport: true })); }); }, ], googleFonts: { families: { Inter: [400, 500, 600, 700], }, display: "swap", }, runtimeConfig: { authSecret: process.env.NUXT_AUTH_SECRET, keycloakClientId: process.env.KEYCLOAK_CLIENT_ID, keycloakClientSecret: process.env.KEYCLOAK_CLIENT_SECRET, keycloakIssuer: process.env.KEYCLOAK_ISSUER, public: { authUrl: process.env.AUTH_ORIGIN || "http://localhost:3001", }, }, build: { transpile: ["vuetify"], }, css: [ "vuetify/lib/styles/main.sass", "@mdi/font/css/materialdesignicons.min.css", "~/assets/scss/main.scss", ], vite: { css: { preprocessorOptions: { scss: { api: 'modern-compiler', // ✅ Ini akan membuat variables & colors tersedia di SEMUA component additionalData: ` @use "sass:math"; @use "sass:map"; @use "~/assets/scss/_variables.scss" as *; @use "~/assets/scss/_colors.scss" as *; ` } } }, ssr: { noExternal: ["vuetify"], }, }, });