All checks were successful
Dev Publish: Nuget / Publish Dev Packages (push) Successful in 48s
109 lines
4.2 KiB
HTML
109 lines
4.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" class="dark">
|
|
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Moonlight</title>
|
|
<base href="/" />
|
|
<link rel="preload" id="webassembly" />
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=fallback" />
|
|
<link rel="stylesheet" href="style.min.css" />
|
|
<script type="importmap"></script>
|
|
|
|
<script>
|
|
window.frontendConfig = {
|
|
STYLE_TAG_ID: 'theme-variables',
|
|
configuration: {},
|
|
|
|
applyTheme: function(cssContent) {
|
|
// Find or create the style tag
|
|
let styleTag = document.getElementById(this.STYLE_TAG_ID);
|
|
|
|
if (!styleTag) {
|
|
styleTag = document.createElement('style');
|
|
styleTag.id = this.STYLE_TAG_ID;
|
|
document.head.appendChild(styleTag);
|
|
}
|
|
|
|
// Update the style tag content
|
|
styleTag.textContent = cssContent;
|
|
},
|
|
|
|
reloadConfiguration: function (){
|
|
try {
|
|
const xhr = new XMLHttpRequest();
|
|
xhr.open('GET', '/api/frontend/config', false);
|
|
xhr.send(null);
|
|
|
|
if (xhr.status === 200) {
|
|
this.configuration = JSON.parse(xhr.responseText);
|
|
}
|
|
} catch (error) {
|
|
console.error('Failed to load initial theme:', error);
|
|
}
|
|
},
|
|
|
|
getConfiguration: function (){
|
|
return this.configuration;
|
|
},
|
|
|
|
reload: function () {
|
|
this.reloadConfiguration();
|
|
|
|
document.title = this.configuration.name;
|
|
this.applyTheme(this.configuration.themeCss);
|
|
}
|
|
};
|
|
|
|
window.frontendConfig.reload();
|
|
</script>
|
|
</head>
|
|
|
|
<body class="bg-background text-foreground">
|
|
<div id="app">
|
|
<div class="h-screen w-full flex items-center justify-center">
|
|
|
|
<div class="flex min-w-0 flex-1 flex-col items-center justify-center gap-3 rounded-lg border-dashed p-6 text-center text-balance md:p-12">
|
|
<div class="flex max-w-sm flex-col items-center gap-2 text-center">
|
|
<div class="flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0 bg-muted text-foreground size-10 rounded-lg [&_svg:not([class*='size-'])]:size-6">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
|
|
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
|
class="lucide lucide-zap-icon lucide-zap size-6">
|
|
<path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"/>
|
|
</svg>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="text-lg font-medium tracking-tight">
|
|
Loading application
|
|
</div>
|
|
<div class="flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance">
|
|
|
|
<div class="bg-primary/20 w-full relative h-2 overflow-hidden rounded-full">
|
|
<div class="bg-primary h-full w-[var(--blazor-load-percentage,0)] flex-1 transition-all">
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div id="blazor-error-ui">
|
|
An unhandled error has occurred.
|
|
<a href="." class="reload">Reload</a>
|
|
<span class="dismiss">🗙</span>
|
|
</div>
|
|
|
|
<script src="/_content/ShadcnBlazor/interop.js" defer></script>
|
|
<script src="/_content/ShadcnBlazor.Extras/interop.js" defer></script>
|
|
<script src="/_content/ShadcnBlazor.Extras/codemirror-bundle.js" defer></script>
|
|
<script src="_framework/blazor.webassembly#[.{fingerprint}].js"></script>
|
|
</body>
|
|
|
|
</html>
|