Files
Nebula-OS/src/core/sidebarData.js
T
andrew ab24298c16 Add Nebula guide sidebar and navigation
Introduce a new Xbox-style guide (rail + expanded panel) to the shell: adds guideSidebar component, data model, styles, and panel overlay (src/core/guideSidebar.js, src/core/sidebarData.js, src/styles/guide.css, src/views/overlays/guidePanel.*). Integrates the guide into the app lifecycle and routing (main.js): mounts the guide, remaps focus roots, adds guide open/close behavior, and registers placeholder views for store/mods. Input and navigation updated to support a dedicated "guide" action and region (src/core/input.js, src/core/nav.js) so focus movement and acceptance work inside the guide. index.html updated to mount the guide and include templates/styles; base/component CSS adjusted to accommodate the new mount and focus states. Misc: adds a placeholder view and wiring for guide panel overlays and tweaks power menu handling to cooperate with the guide.
2026-05-17 13:25:35 +12:00

59 lines
1.7 KiB
JavaScript

/** Primary shell navigation (data-driven). */
export const PRIMARY_NAV = [
{ id: "home", label: "Home", icon: "⌂", target: "home" },
{ id: "library", label: "Library", icon: "⊟", target: "library" },
{ id: "store", label: "Store", icon: "⊞", target: "store" },
{ id: "mods", label: "Mods", icon: "◇", target: "mods" },
{ id: "settings", label: "Settings", icon: "⚙", target: "settings" },
];
/** Quick actions in the expanded guide. */
export const QUICK_ACTIONS = [
{ id: "search", label: "Search", icon: "⌕", panel: "search" },
{ id: "notifications", label: "Notifications", icon: "🔔", panel: "notifications" },
{ id: "downloads", label: "Downloads", icon: "↓", panel: "downloads" },
{ id: "controller", label: "Controller Settings", icon: "🎮", panel: "controller" },
{ id: "power", label: "Power Menu", icon: "⏻", action: "power" },
];
/** Mock recently played titles (replace with library bridge later). */
export const RECENT_ITEMS = [
{
id: "recent-halo",
title: "Halo Infinite",
source: "steam",
lastPlayed: "2 hours ago",
accent: "#1e4a6e",
},
{
id: "recent-cyber",
title: "Cyberpunk 2077",
source: "gog",
lastPlayed: "Yesterday",
accent: "#5c1a3a",
},
{
id: "recent-fortnite",
title: "Fortnite",
source: "epic",
lastPlayed: "3 days ago",
accent: "#2a3a5c",
},
{
id: "recent-emulator",
title: "Nebula Arcade",
source: "local",
lastPlayed: "Last week",
accent: "#1a3c2e",
},
];
export const SOURCE_LABELS = {
steam: "Steam",
gog: "GOG",
epic: "Epic",
local: "Local",
};
export const NAVIGABLE_VIEWS = new Set(PRIMARY_NAV.map((item) => item.target));