79 lines
2.9 KiB
HTML
79 lines
2.9 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>RC RaceCore</title>
|
|
<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=Barlow:wght@400;500;600;700&family=Orbitron:wght@500;700;800&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
<link rel="stylesheet" href="/src/styles.css" />
|
|
</head>
|
|
<body>
|
|
<div class="app-shell">
|
|
<aside class="sidebar">
|
|
<div class="brand">
|
|
<div id="brandMark" class="brand-mark"><span>RC</span><img id="brandLogo" class="brand-logo" alt="" hidden /></div>
|
|
<div>
|
|
<h1 id="brandTitle">RC RaceCore</h1>
|
|
<p id="brandSubtitle">Live Timing & Race Control</p>
|
|
</div>
|
|
</div>
|
|
<nav id="nav" class="nav"></nav>
|
|
<div class="sidebar-footer">
|
|
<div id="syncStatus" class="sync-status">
|
|
<strong id="syncStatusLabel" role="status" aria-live="polite"></strong>
|
|
<small id="syncStatusDetail"></small>
|
|
<button id="syncStatusRetry" class="btn btn-mini" type="button" hidden></button>
|
|
</div>
|
|
<p id="connectionBadge" class="badge badge-offline">Decoder Offline</p>
|
|
<small id="clock"></small>
|
|
<small id="appVersionLabel" class="app-version" hidden></small>
|
|
</div>
|
|
</aside>
|
|
|
|
<main class="content">
|
|
<p id="syncWarning" class="sync-warning" role="status" hidden></p>
|
|
<header class="topbar">
|
|
<div>
|
|
<h2 id="pageTitle">Dashboard</h2>
|
|
<p id="pageSubtitle">RC race timing with AMMC integration</p>
|
|
</div>
|
|
<div class="topbar-right">
|
|
<label class="lang-wrap theme-wrap">
|
|
<span id="themeLabel">Theme</span>
|
|
<select id="themeSelect" class="lang-select theme-select">
|
|
<option value="dark">Dark</option>
|
|
<option value="nord">Nord</option>
|
|
<option value="light">Light</option>
|
|
</select>
|
|
</label>
|
|
<label class="lang-wrap">
|
|
<span id="languageLabel">Language</span>
|
|
<select id="languageSelect" class="lang-select">
|
|
<option value="sv">SV</option>
|
|
<option value="en">EN</option>
|
|
</select>
|
|
</label>
|
|
<p class="chip" id="activeSessionChip">No Active Session</p>
|
|
</div>
|
|
</header>
|
|
|
|
<section id="view" class="view"></section>
|
|
</main>
|
|
</div>
|
|
|
|
<template id="tableTemplate">
|
|
<table class="data-table">
|
|
<thead></thead>
|
|
<tbody></tbody>
|
|
</table>
|
|
</template>
|
|
|
|
<script type="module" src="/src/app.js"></script>
|
|
</body>
|
|
</html>
|