Backend: real endpoints for role-permission overview, MQTT broker settings (with live reachability check), and SQLite backup download/restore (new system.manage permission, super-admin only; restore validates the SQLite file header and keeps a pre-restore safety copy). Desktop frontend: Roles (read-only permissions view), MQTT Settings, Backup & Restore wired to those endpoints; plus static AdminLTE-matching shells for Profile, Settings (embeds the real 2FA flow in its Security tab), Invoice, Calendar (FullCalendar), Chat, File Manager, and Projects. Mobile frontend: new frontend/src/styles/mobile.css, a from-scratch design system (purple theme, cards, slide-out sidebar, bottom tab bar) scoped entirely under a .mob-app root and mob- prefixed classes so it can never collide with the desktop Bootstrap/AdminLTE styling. Rebuilt TopBar/ BottomNav, added a new SlideOutNav, and reskinned the Dashboard and Users pages to it with real data.
41 lines
1.0 KiB
JSON
41 lines
1.0 KiB
JSON
{
|
|
"name": "frontend",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc -b && vite build",
|
|
"lint": "oxlint",
|
|
"preview": "vite preview"
|
|
},
|
|
"dependencies": {
|
|
"@fullcalendar/core": "^6.1.21",
|
|
"@fullcalendar/daygrid": "^6.1.21",
|
|
"@fullcalendar/interaction": "^6.1.21",
|
|
"@fullcalendar/list": "^6.1.21",
|
|
"@fullcalendar/react": "^6.1.21",
|
|
"@tanstack/react-query": "^5.101.4",
|
|
"admin-lte": "^4.1.0",
|
|
"axios": "^1.19.0",
|
|
"bootstrap-icons": "^1.13.1",
|
|
"mqtt": "^5.15.2",
|
|
"qrcode": "^1.5.4",
|
|
"react": "^19.2.8",
|
|
"react-dom": "^19.2.8",
|
|
"react-router-dom": "^7.18.2"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/vite": "^4.3.3",
|
|
"@types/node": "^24.13.3",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@types/react": "^19.2.17",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^6.0.4",
|
|
"oxlint": "^1.75.0",
|
|
"tailwindcss": "^4.3.3",
|
|
"typescript": "~6.0.2",
|
|
"vite": "^8.2.0"
|
|
}
|
|
}
|