- Import web/ directory (Vue 3 + Vite + UnoCSS SPA) from feature/vue-spa branch - Add web/src/components/ClassicUIButton.vue: switch-back to Streamlit via cookie (prgn_ui=streamlit) + ?prgn_switch=streamlit query param bridge - Add web/src/composables/useFeatureFlag.ts: reads prgn_demo_tier cookie for demo toolbar visual consistency (not an authoritative gate, see issue #8) - Update .gitignore: add .superpowers/, pytest-output.txt, docs/superpowers/
24 lines
757 B
TypeScript
24 lines
757 B
TypeScript
import { createApp } from 'vue'
|
|
import { createPinia } from 'pinia'
|
|
import { router } from './router'
|
|
|
|
// Self-hosted fonts — no Google Fonts CDN (privacy requirement)
|
|
import '@fontsource/fraunces/400.css'
|
|
import '@fontsource/fraunces/700.css'
|
|
import '@fontsource/atkinson-hyperlegible/400.css'
|
|
import '@fontsource/atkinson-hyperlegible/700.css'
|
|
import '@fontsource/jetbrains-mono/400.css'
|
|
|
|
import 'virtual:uno.css'
|
|
import './assets/theme.css'
|
|
import './assets/peregrine.css'
|
|
|
|
import App from './App.vue'
|
|
|
|
// Manual scroll restoration — prevents browser from jumping to last position on SPA nav
|
|
if ('scrollRestoration' in history) history.scrollRestoration = 'manual'
|
|
|
|
const app = createApp(App)
|
|
app.use(createPinia())
|
|
app.use(router)
|
|
app.mount('#app')
|