initial commit

This commit is contained in:
2026-07-21 10:00:08 +07:00
commit 7344144e20
282 changed files with 41294 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
@{
var sidebarVariant = (ViewData["SidebarVariant"] as string) ?? "1";
var hideChrome = ViewData["HideChrome"] is bool hc && hc;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>EDK - @ViewData["Title"]</title>
<script src="https://cdn.tailwindcss.com"></script>
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.13.0/dist/cdn.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;450;500;600;700;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="~/css/style@(sidebarVariant).css" asp-append-version="true" />
@foreach (var key in ViewData.Keys.Where(k => k.StartsWith("Css:")).ToList())
{
<link rel="stylesheet" href="~/@(ViewData[key])" asp-append-version="true" />
}
<style>
body { font-family: "Poppins", sans-serif; }
[x-cloak] { display: none !important; }
</style>
</head>
<body>
@if (!hideChrome && ViewData["SidebarVariant"] is string)
{
<div x-data="{ side: true, isMobile: false }"
x-init="isMobile = window.innerWidth <= 768; if(isMobile){ side = false } window.addEventListener('resize', function(){ isMobile = window.innerWidth <= 768; if(isMobile){ side = false } else { side = true } })">
<div x-show="side && isMobile" x-on:click="side = false" class="fixed inset-0 bg-black/60 z-40 md:hidden"></div>
<partial name="_Sidebar@(sidebarVariant)" />
<main id="main" x-bind:class="{ 'shift': side }">
<partial name="_Topbar" />
@RenderBody()
</main>
</div>
}
else
{
@RenderBody()
}
<script src="~/js/script.js" asp-append-version="true"></script>
@foreach (var key in ViewData.Keys.Where(k => k.StartsWith("Js:")).ToList())
{
<script src="~/@(ViewData[key])" asp-append-version="true"></script>
}
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
+48
View File
@@ -0,0 +1,48 @@
/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
for details on configuring this project to bundle and minify static web assets. */
a.navbar-brand {
white-space: normal;
text-align: center;
word-break: break-all;
}
a {
color: #0077cc;
}
.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.border-top {
border-top: 1px solid #e5e5e5;
}
.border-bottom {
border-bottom: 1px solid #e5e5e5;
}
.box-shadow {
box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}
button.accept-policy {
font-size: 1rem;
line-height: inherit;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
white-space: nowrap;
line-height: 60px;
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+15
View File
@@ -0,0 +1,15 @@
<header class="sticky top-0 z-30 h-16 px-4 md:px-6 flex items-center justify-between" style="background:#f1f5f9;">
<div class="flex items-center gap-4">
<button x-on:click="side = !side" class="p-2 rounded-lg hover:bg-gray-100 transition"><svg class="w-5 h-5 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/></svg></button>
</div>
<div class="flex items-center gap-3">
<button class="relative p-2 rounded-lg hover:bg-gray-100 transition">
<svg class="w-5 h-5 text-gray-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"/></svg>
<span class="absolute -top-0.5 -right-0.5 w-4 h-4 rounded-full bg-blue-500 text-white text-[10px] flex items-center justify-center font-bold">3</span>
</button>
<div class="flex items-center gap-2 pl-3 ml-1 border-l border-gray-200">
<div class="w-8 h-8 rounded-full flex items-center justify-center text-white font-bold text-xs" style="background: #3b82f6;">JD</div>
<div class="hidden sm:block text-sm leading-tight"><p class="font-semibold text-gray-800">John Doe</p><p class="text-gray-400 text-xs">Sales Admin</p></div>
</div>
</div>
</header>