PlanTempusApp/PlanTempus.Application/Features/Dashboard/Pages/Index.cshtml
Janus C. H. Knudsen 2e6207bb0b Reorganizes and optimizes shared CSS components
Consolidates UI components into a centralized components.css file
Removes duplicate styles across multiple CSS files
Adds utility classes in a new utilities.css file
Reduces overall CSS complexity and improves maintainability

Removes quick-stats.css and redistributes its styles
Updates layout and stylesheet references accordingly
2026-01-13 00:09:46 +01:00

71 lines
2.8 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@page "/"
@using PlanTempus.Application.Features.Dashboard.Pages
@model PlanTempus.Application.Features.Dashboard.Pages.IndexModel
@{
ViewData["Title"] = "Dashboard";
}
<swp-page-container>
<!-- Stats Bar -->
<swp-stats-bar>
@await Component.InvokeAsync("StatCard", "bookings-today")
@await Component.InvokeAsync("StatCard", "expected-revenue")
@await Component.InvokeAsync("StatCard", "occupancy-rate")
@await Component.InvokeAsync("StatCard", "needs-attention")
</swp-stats-bar>
<!-- Dashboard Content -->
<swp-dashboard-grid>
<swp-main-column>
<!-- AI Insight -->
<swp-card>
<swp-ai-insight>
<swp-ai-header>
<i class="ph ph-sparkle"></i>
<span localize="dashboard.ai.header">AI Analyse</span>
</swp-ai-header>
<swp-ai-text>
<strong>Godt i gang!</strong> 4 af 12 bookinger er gennemført. 2 er i gang nu, og 6 venter.
Forventet omsætning: <strong>8.450 kr</strong> allerede realiseret <strong>2.150 kr</strong>.
</swp-ai-text>
</swp-ai-insight>
</swp-card>
<!-- Today's Bookings -->
@await Component.InvokeAsync("BookingList", "todays-bookings")
<!-- Attention Items -->
@await Component.InvokeAsync("AttentionList", "current-attentions")
</swp-main-column>
<swp-side-column>
<!-- Notifications -->
@await Component.InvokeAsync("NotificationList", "recent-notifications")
<!-- Waitlist Card -->
@await Component.InvokeAsync("WaitlistCard", "waitlist")
<!-- Quick Stats (This Week) -->
@await Component.InvokeAsync("QuickStatList", "this-week")
<!-- Quick Actions -->
<swp-card>
<swp-section-label localize="dashboard.quickActions.title">Hurtige handlinger</swp-section-label>
<swp-card-content>
<swp-quick-actions>
<swp-quick-action-btn>
<i class="ph ph-plus"></i>
<span localize="dashboard.quickActions.newBooking">Ny booking</span>
</swp-quick-action-btn>
<swp-quick-action-btn>
<i class="ph ph-user-plus"></i>
<span localize="dashboard.quickActions.newCustomer">Ny kunde</span>
</swp-quick-action-btn>
</swp-quick-actions>
</swp-card-content>
</swp-card>
</swp-side-column>
</swp-dashboard-grid>
</swp-page-container>
<partial name="_WaitlistDrawer" />