Adds dashboard stat cards and demo banner

Introduces StatCard ViewComponent with configurable stat display
Adds demo mode banner to application layout
Refactors dashboard stats to use dynamic component rendering

Improves dashboard presentation and user experience
This commit is contained in:
Janus C. H. Knudsen 2026-01-11 11:17:51 +01:00
parent 217a9cd95c
commit 9b2ace7bc0
5 changed files with 272 additions and 30 deletions

View file

@ -14,12 +14,27 @@
<link rel="stylesheet" href="~/css/sidebar.css">
<link rel="stylesheet" href="~/css/topbar.css">
<link rel="stylesheet" href="~/css/drawers.css">
<link rel="stylesheet" href="~/css/demo-banner.css">
<!-- Page Components -->
<link rel="stylesheet" href="~/css/page.css">
<link rel="stylesheet" href="~/css/stats.css">
@await RenderSectionAsync("Styles", required: false)
</head>
<body>
<body class="has-demo-banner">
<!-- Demo Mode Banner -->
<swp-demo-banner>
<swp-demo-banner-text>
<i class="ph ph-info"></i>
<span>Du ser en <strong>demo</strong> af PlanTempus.</span>
</swp-demo-banner-text>
<swp-demo-banner-cta>
<a href="/pricing">
<span>Opret konto</span>
<i class="ph ph-arrow-right"></i>
</a>
</swp-demo-banner-cta>
</swp-demo-banner>
<swp-app-layout id="appLayout">
@await Component.InvokeAsync("SideMenu")
<partial name="_TopBar" />