Add library UI, spatial nav & game launcher
Introduce a full library feature: add new frontend modules (libraryBridge, libraryComponents, libraryController, libraryFilters, libraryModel) and refactor library view JS to use them; implement rich library CSS and UI templates in index.html (new hints, sidebar entries). Rework spatial navigation (src/core/nav.js) with a geometry-based picker, anchor behavior, sidebar/content regions and integration hook for external nebula navigation; add navigation refresh handling in main.js. Update controller/state glyphs to include a 'clear' button. On the Tauri backend, add a launch_library_game command and its result type, wire it into lib.rs commands, and adjust DB upsert to handle app_kind correctly and export list_games usage. Misc: various wiring to load/scan/launch library items and improved focus/keyboard behaviors.
This commit is contained in:
+19
-8
@@ -43,17 +43,17 @@
|
||||
<span class="sidebar-nav-icon" aria-hidden="true">⊟</span>
|
||||
<span class="sidebar-nav-label">Library</span>
|
||||
</li>
|
||||
<li class="sidebar-nav-item focusable" data-sidebar-nav="media" data-nav-region="sidebar" data-focusable="true" data-row="2" data-col="-1" data-focus-key="sidebar-media" data-disabled="true" role="listitem" aria-disabled="true">
|
||||
<span class="sidebar-nav-icon" aria-hidden="true">▶</span>
|
||||
<span class="sidebar-nav-label">Media</span>
|
||||
</li>
|
||||
<li class="sidebar-nav-item focusable" data-sidebar-nav="store" data-nav-region="sidebar" data-focusable="true" data-row="3" data-col="-1" data-focus-key="sidebar-store" data-disabled="true" role="listitem" aria-disabled="true">
|
||||
<li class="sidebar-nav-item focusable" data-sidebar-nav="store" data-nav-region="sidebar" data-focusable="true" data-row="2" data-col="-1" data-focus-key="sidebar-store" data-disabled="true" role="listitem" aria-disabled="true">
|
||||
<span class="sidebar-nav-icon" aria-hidden="true">⊞</span>
|
||||
<span class="sidebar-nav-label">Store</span>
|
||||
</li>
|
||||
<li class="sidebar-nav-item focusable" data-sidebar-nav="settings" data-target="settings" data-nav-region="sidebar" data-focusable="true" data-row="4" data-col="-1" data-focus-key="sidebar-settings" role="listitem">
|
||||
<span class="sidebar-nav-icon" aria-hidden="true">⚙</span>
|
||||
<span class="sidebar-nav-label">Settings</span>
|
||||
<li class="sidebar-nav-item focusable" data-sidebar-nav="mods" data-nav-region="sidebar" data-focusable="true" data-row="3" data-col="-1" data-focus-key="sidebar-mods" data-disabled="true" role="listitem" aria-disabled="true">
|
||||
<span class="sidebar-nav-icon" aria-hidden="true">◇</span>
|
||||
<span class="sidebar-nav-label">Mods</span>
|
||||
</li>
|
||||
<li class="sidebar-nav-item focusable" data-sidebar-nav="appstore" data-nav-region="sidebar" data-focusable="true" data-row="4" data-col="-1" data-focus-key="sidebar-appstore" data-disabled="true" role="listitem" aria-disabled="true">
|
||||
<span class="sidebar-nav-icon" aria-hidden="true">▣</span>
|
||||
<span class="sidebar-nav-label">Appstore</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -96,5 +96,16 @@
|
||||
<span class="hint"><span data-glyph="menu"></span> Done</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template id="library-hints-template">
|
||||
<div class="hint-row">
|
||||
<span class="hint"><span data-glyph="accept"></span> Launch / Select</span>
|
||||
<span class="hint"><span data-glyph="clear"></span> Details</span>
|
||||
<span class="hint"><span data-glyph="y"></span> Filter / Sort</span>
|
||||
<span class="hint"><span data-glyph="l1"></span>/<span data-glyph="r1"></span> Tabs</span>
|
||||
<span class="hint"><span data-glyph="l2"></span>/<span data-glyph="r2"></span> Genres</span>
|
||||
<span class="hint"><span data-glyph="back"></span> Back</span>
|
||||
</div>
|
||||
</template>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user