mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 02:14:01 +00:00
Main moved the UI to Vue views and Pinia stores, so the Arabic changes to the old DOM controllers now live in their views: the rail legend range comes from formatScaleRange (keeping units a source supplies as given), the voice timeout options are worded by Intl unit formatting in VoiceControl, and the scene editor's JSON fields stay left to right in SceneDialog. Main's CCTV status line, launch panel and calibration values keep the Arabic isolates and Western-digit formatting. isolate() and keepCodesWithValues() read the locale through getLocale(), which follows the page's vue-i18n instance, and the Intl formatters take intlLocale(getLocale()). A language switch now applies in place, and applyDocumentLanguage sets <html dir> on every switch, so the page mirrors without a reload. The icon rails and their tips are placed with logical properties, so they stay on the outer side of the mirrored stacks; Cyber's new stack offsets, padding and edge lines are logical too, and rtl.css moves Cyber's right stack to its new rail clearance. Main removed the Context mini radio, so its right-to-left rules and test go. The Arabic catalog gains main's new strings and drops the ones main no longer uses; the other catalogs keep main's new keys and the branch's landing labels.
55 lines
3.4 KiB
HTML
55 lines
3.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>God's Eye View</title>
|
|
<!-- Raster fallbacks: Safari ignores an SVG apple-touch-icon and falls back to a
|
|
screenshot of the page, so an installed app needs a real PNG. Regenerate
|
|
these from the logo with `node scripts/generate-icons.mjs`. -->
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/icons/icon-32.png" />
|
|
<!-- Listed after the PNG: browsers that use the last usable icon keep the SVG
|
|
for the tab. -->
|
|
<link rel="icon" type="image/svg+xml" href="/logo.svg" />
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/icons/icon-180.png" />
|
|
<link rel="manifest" href="/manifest.webmanifest" />
|
|
<meta name="theme-color" content="#0a0a0f" />
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
|
<meta name="apple-mobile-web-app-title" content="God's Eye" />
|
|
<link rel="stylesheet" href="/style.css" />
|
|
<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=JetBrains+Mono:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600&family=Noto+Sans+Arabic:wght@400;500;600;700&display=swap" rel="stylesheet" />
|
|
<!-- Icon font subset to the glyphs this app renders. Keep `icon_names` in sync
|
|
with the sources: src/materialSymbolsSubset.test.mjs fails when a source
|
|
names a glyph this list is missing, because a missing glyph does not draw
|
|
a box — the ligature never forms and the element renders the literal word. -->
|
|
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20,400,0,0&icon_names=adjust,arrow_drop_down,arrow_forward,arrow_left,arrow_right,bolt,chevron_left,chevron_right,close,close_fullscreen,dark_mode,draw,east,flare,flight,layers,layers_clear,light_mode,local_fire_department,more_horiz,movie,my_location,navigation,normal,on,open_in_full,partly_cloudy_day,public,radar,radio,right_panel_close,right_panel_open,rocket_launch,satellite_alt,search,settings,skip_next,skip_previous,streetview,tune,upload_file,videocam,view_in_ar,visibility,visibility_off" rel="stylesheet" />
|
|
</head>
|
|
<body>
|
|
<div class="gev-view" data-gev-view="scene-chrome"></div>
|
|
<div class="gev-view" data-gev-view="cockpit"></div>
|
|
<div class="gev-view" data-gev-view="display-controls"></div>
|
|
<div class="gev-view" data-gev-view="command-dock"></div>
|
|
<div class="gev-view" data-gev-view="layer-panels"></div>
|
|
<div class="gev-view" data-gev-view="context"></div>
|
|
<div class="gev-view" data-gev-view="welcome"></div>
|
|
<div class="gev-view" data-gev-view="provider-settings"></div>
|
|
<!-- Intelligence HUD Overlay -->
|
|
<div class="gev-view" data-gev-view="intel-hud"></div>
|
|
|
|
<!-- Loading screen -->
|
|
<div id="loading-screen">
|
|
<div class="loader-content">
|
|
<span class="loader-logo brand-logo" data-logo-gaze data-logo-src="/logo.svg" aria-hidden="true"><img src="/logo.svg" alt="" /></span>
|
|
<h2 translate="no">GOD'S EYE <span class="title-accent">VIEW</span></h2>
|
|
<p class="loader-status" data-i18n>Initializing photorealistic world...</p>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="module" src="/src/main.js"></script>
|
|
</body>
|
|
</html>
|