import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; import { execSync } from 'node:child_process'; import tokens from './src/lib/styles/tokens.json' with { type: 'json' }; const THEME_DARK = tokens.colors.dark.obsidian; const THEME_LIGHT = tokens.colors.light.obsidian; const tokensPlugin = { name: 'minstrel-tokens', buildStart() { execSync('node scripts/tokens-to-css.js', { stdio: 'inherit' }); } }; // Build-only plugin that injects Go html/template tokens into the // rendered index.html so the runtime Go server can substitute per- // instance branding. In dev (`vite dev`), the marker stays as a // comment and the SPA falls back to the literal app.html title. // `enforce: 'post'` ensures this runs after SvelteKit's own // transformIndexHtml so %sveltekit.head% is already expanded into // hydration markup before our anchors are rewritten. const injectGoTokensPlugin = { name: 'minstrel-inject-go-tokens', apply: 'build' as const, enforce: 'post' as const, transformIndexHtml(html: string) { const titleTag = `