150 lines
5.2 KiB
HTML
150 lines
5.2 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta
|
|
name="viewport"
|
|
content="width=device-width, initial-scale=0.9, maximum-scale=0.9, viewport-fit=cover"
|
|
/>
|
|
<meta name="theme-color" content="#f8f7ff" />
|
|
<title>Aethera - AI Conversation & Image Generator</title>
|
|
<script type="module" src="./dist/main.js"></script>
|
|
<link rel="stylesheet" href="./dist/styles.css" />
|
|
</head>
|
|
<body class="bg-primary-50" x-data x-init="$store.navigation.init()">
|
|
<!-- Nav - Fixed and fully transparent so page content always sits behind
|
|
it (including under the iOS dynamic island, even at scroll=0). The
|
|
pill inside provides its own background. Pages clear the nav with
|
|
padding-top: var(--nav-h). -->
|
|
<header
|
|
class="fixed top-0 left-0 right-0 z-50 flex justify-between px-4 md:px-6 pb-3 pointer-events-none"
|
|
style="padding-top: max(1rem, env(safe-area-inset-top));"
|
|
>
|
|
<div class="size-9 flex items-center justify-start pointer-events-auto">
|
|
<button
|
|
x-show="$store.navigation.activeTab === 'chats'"
|
|
@click="$store.chatSidebar.toggleMobile()"
|
|
:aria-expanded="$store.chatSidebar.mobileOpen ? 'true' : 'false'"
|
|
aria-label="Toggle conversation list"
|
|
class="md:hidden p-2 rounded-md text-primary-700 hover:bg-primary-300 transition-colors cursor-pointer"
|
|
>
|
|
<svg
|
|
x-show="!$store.chatSidebar.mobileOpen"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
class="h-5 w-5"
|
|
fill="none"
|
|
viewBox="0 0 24 24"
|
|
stroke="currentColor"
|
|
>
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
|
|
</svg>
|
|
<svg
|
|
x-show="$store.chatSidebar.mobileOpen"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
class="h-5 w-5"
|
|
fill="none"
|
|
viewBox="0 0 24 24"
|
|
stroke="currentColor"
|
|
>
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
|
|
</svg>
|
|
</button>
|
|
</div>
|
|
|
|
<!-- Main Nav -->
|
|
<nav class="inline-flex bg-primary-100 rounded-full pointer-events-auto">
|
|
<a
|
|
href="#/chats"
|
|
:class="[
|
|
'px-5 py-2 rounded-full text-sm font-medium transition-colors',
|
|
$store.navigation.activeTab === 'chats'
|
|
? 'bg-primary-600 text-white'
|
|
: 'text-primary-700 hover:bg-primary-200'
|
|
]"
|
|
>
|
|
Chats
|
|
</a>
|
|
<a
|
|
href="#/images"
|
|
:class="[
|
|
'px-5 py-2 rounded-full text-sm font-medium transition-colors',
|
|
$store.navigation.activeTab === 'images'
|
|
? 'bg-primary-600 text-white'
|
|
: 'text-primary-700 hover:bg-primary-200'
|
|
]"
|
|
>
|
|
Images
|
|
</a>
|
|
<a
|
|
href="#/settings"
|
|
:class="[
|
|
'px-5 py-2 rounded-full text-sm font-medium transition-colors',
|
|
$store.navigation.activeTab === 'settings'
|
|
? 'bg-primary-600 text-white'
|
|
: 'text-primary-700 hover:bg-primary-200'
|
|
]"
|
|
>
|
|
Settings
|
|
</a>
|
|
</nav>
|
|
|
|
<!-- Theme Toggle -->
|
|
<button
|
|
@click="$store.theme.cycleTheme()"
|
|
x-init="$store.theme.init()"
|
|
class="p-2 cursor-pointer rounded-md text-primary-700 hover:bg-primary-300 transition-colors pointer-events-auto"
|
|
aria-label="Toggle theme"
|
|
>
|
|
<svg
|
|
x-show="$store.theme.getThemeIcon() === 'sun'"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
class="h-5 w-5"
|
|
fill="none"
|
|
viewBox="0 0 24 24"
|
|
stroke="currentColor"
|
|
>
|
|
<path
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
stroke-width="2"
|
|
d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"
|
|
/>
|
|
</svg>
|
|
<svg
|
|
x-show="$store.theme.getThemeIcon() === 'moon'"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
class="h-5 w-5"
|
|
fill="none"
|
|
viewBox="0 0 24 24"
|
|
stroke="currentColor"
|
|
>
|
|
<path
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
stroke-width="2"
|
|
d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"
|
|
/>
|
|
</svg>
|
|
<svg
|
|
x-show="$store.theme.getThemeIcon() === 'system'"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
class="h-5 w-5"
|
|
fill="none"
|
|
viewBox="0 0 24 24"
|
|
stroke="currentColor"
|
|
>
|
|
<path
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
stroke-width="2"
|
|
d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
|
|
/>
|
|
</svg>
|
|
</button>
|
|
</header>
|
|
|
|
<!-- Main Content Area - No fixed height; the document scrolls. -->
|
|
<main id="page-content"></main>
|
|
</body>
|
|
</html>
|