No need to switch to Datenpunkte page - rename and set unit
right where you assign the datapoint to a layout element.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Preview now reloads display data whenever elements change.
Card style renders with proper label/value/unit layout.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Each element now has editable fields for position, size, font,
style, icon, datapoint, and text directly in the element card.
No more delete-and-recreate workflow.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When a user checks a topic checkbox, a datapoint is automatically
created and the broker subscribes to that topic for live updates.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implements the full SPA UI:
- App.tsx with BrowserRouter, ProtectedRoute, and all page routes
- Sidebar with NavLink active state and logout
- Login page with JWT auth flow
- Dashboard with parallel data fetching and status tiles
- MqttBrokers: CRUD with test-connection button and Topics link
- MqttTopics: discovery, filter, json_path inline edit, ignore
- PgSources: CRUD form with all required fields
- Datapoints: table with inline label/unit editing via onBlur
- Displays: layout dropdown, refresh interval, last-seen timestamp
- Layouts: left panel list + right panel element editor
- EpaperPreview: scaled e-paper simulation with live data support
- StatusBadge: color-coded status chip
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sets up the frontend SPA foundation: Vite+React+TS project at frontend/,
configures Tailwind CSS v4 via @tailwindcss/vite, dev proxy to port 4000,
and implements the API client (JWT auth, auto-redirect on 401).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>