Commit Graph
12 Commits
Author SHA1 Message Date
Steven RYDELL 149524376b Make the sidebar an animated accordion with a softer hover 2026-07-29 07:32:36 +02:00
Steven RYDELL 956212031a Clip table header background inside the rounded border 2026-07-29 07:24:58 +02:00
Steven RYDELL 6d3ea6c6b1 Keep the sidebar section synced with the URL on full page loads 2026-07-29 07:21:27 +02:00
Steven RYDELL c15cb22be4 Adopt the shared ScrollArea for app-wide scrolling 2026-07-29 07:20:43 +02:00
Steven RYDELL bd16e64e51 Show WebUI version and update action in the Web Applications list 2026-07-29 06:48:41 +02:00
Steven RYDELL 8fde771ff2 Show switch state with green when on and red when off 2026-07-29 06:48:34 +02:00
Steven RYDELL da5eaf0558 Center main content horizontally
Wrap the main area in a centered max-w-7xl container and center the max-w-4xl form column inside it, so pages no longer hug the left edge on wide screens. Lists and views center up to 7xl, forms stay at a readable 4xl.
2026-07-29 06:20:14 +02:00
Steven RYDELL eb57250409 Distinguish form field backgrounds from card surfaces
Introduce a --field design token (page background tone) used by inputs, textareas and select triggers, and raise the dark-mode card lightness so cards read as elevated surfaces with inset fields, following the shadcn convention.
2026-07-29 06:15:49 +02:00
Steven RYDELL a657ad1b93 Sync sidebar with programmatic navigation
Collapsible groups now auto-open when the active page lands inside them (while remaining manually toggleable), and the sidebar scrolls the active item into view. Previously, navigating via the command palette left the sidebar collapsed on the wrong spot.
2026-07-29 06:11:06 +02:00
Steven RYDELL 7c97297ce6 Add Ctrl+K/Cmd+K command palette search
Replace the TopBar dropdown search with a cmdk-based command palette opened via a visible trigger button (with platform-aware shortcut badge) or the Ctrl+K/Cmd+K global shortcut. Shared search logic moves to a useGlobalSearch hook; the palette reuses the existing ui/command components.
2026-07-29 06:02:18 +02:00
Steven RYDELL 4739f9ed92 Proxy API and JMAP requests to a local Stalwart server in dev
Same-origin proxying to localhost:8080 avoids CORS without weakening the server's CORS policy; pair with VITE_API_BASE_URL= (empty) in .env.development.local.
2026-07-29 05:48:07 +02:00
Steven RYDELL a83e75a79f Code-split feature pages and admin shell with React.lazy
The dashboard (recharts, ~120 kB gzip), tracing, troubleshoot, actions and bootstrap wizard now load on demand, and the admin panel is split out of the entry chunk so anonymous visitors only download the login page (~134 kB gzip instead of ~557 kB).
2026-07-29 05:47:58 +02:00