/// import { defineConfig } from 'vite-plus'; import { resolve } from 'node:path'; /** * Passkey / room-access UI bundle (Material 3 Expressive — `@m3e/web`). * * A SEPARATE Vite config from `vite.config.ts`, not a second entry added to * it: `build.outDir` applies to a whole build invocation, not per-input, so * a second `rollupOptions.input` in the existing config can't emit to its * own directory. * * Build output: `dist-passkey/ui.js` (+ `dist-passkey/ui.css` if any * light-DOM CSS is extracted — M3E's own shadow-DOM component styles never * emit as a separate asset). `entryFileNames` is pinned to `ui.js` — same * reason `vite.config.ts` pins `player.js`: `index.html`/`start.html` are * plain static HTML (not Vite-built entries), so the `