feat(frontend): Vue 3 workspace UI with light/dark mode

- Vue 3 + Vite + Pinia + Vue Router, Axios client with JWT interceptor
- Auth views (login/register), dashboard with workspace switcher and search
- Nested PageTree sidebar, TipTap rich-text editor with debounced save
- Live collaboration via Socket.IO (remote updates, presence avatars, typing)
- Comments thread per page, invite-members card, member list
- Theme store (light/dark/system) persisted, CSS variables, ThemeToggle
- Multi-stage Dockerfile (build + nginx) for hosting
This commit is contained in:
x3
2026-09-22 13:33:22 +02:00
parent 4ba8f8bd21
commit 5252e3ab4f
22 changed files with 3274 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
<script setup>
import { onMounted } from 'vue';
import { useThemeStore } from './stores/theme';
import ThemeToggle from './components/ThemeToggle.vue';
const theme = useThemeStore();
onMounted(() => theme.apply());
</script>
<template>
<div>
<div style="position: fixed; top: 12px; right: 12px; z-index: 50">
<ThemeToggle />
</div>
<router-view />
</div>
</template>