feat: add Discover page — cypherpunk app store with sovereignty messaging
- New Discover.vue with hero banner, featured sovereignty stack apps, principle cards, manifesto footer, and full app grid - Featured apps (Bitcoin Knots, LND, BTCPay, Vaultwarden) with expanded privacy/sovereignty descriptions - Discover is first tab in categories bar on App Store pages - Smart back navigation: detail pages return to Discover when navigated from there - Category clicks from Discover navigate to Marketplace with category pre-selected - Cypherpunk aesthetic: terminal tags, scanline overlays, gradient accents, animated Bitcoin orange headings - Global CSS classes: discover-hero, discover-terminal-tag, discover-featured-card, discover-principle-card, discover-manifesto - Route added: /dashboard/discover Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
aabeb2e679
commit
5e19a80f9d
@@ -81,7 +81,7 @@
|
||||
:key="item.path"
|
||||
:to="item.path"
|
||||
class="sidebar-nav-item flex items-center gap-3 px-4 py-3 rounded-lg text-white/80 hover:bg-white/10 hover:text-white transition-colors"
|
||||
:class="{ 'nav-tab-active': item.isCombined && (route.path.includes('/apps') || route.path.includes('/marketplace') || route.path.includes('/app-session') || (item.path === '/dashboard/apps' && !!appLauncher.panelAppId)) }"
|
||||
:class="{ 'nav-tab-active': item.isCombined && (route.path.includes('/apps') || route.path.includes('/marketplace') || route.path.includes('/discover') || route.path.includes('/app-session') || (item.path === '/dashboard/apps' && !!appLauncher.panelAppId)) }"
|
||||
:exact-active-class="item.isCombined ? undefined : 'nav-tab-active'"
|
||||
@click="appLauncher.closePanel()"
|
||||
:style="{ '--nav-stagger': idx }"
|
||||
@@ -201,7 +201,7 @@
|
||||
<RouterLink
|
||||
to="/dashboard/marketplace"
|
||||
class="mode-switcher-btn"
|
||||
:class="{ 'mode-switcher-btn-active': route.path === '/dashboard/marketplace' || route.path.startsWith('/dashboard/marketplace/') }"
|
||||
:class="{ 'mode-switcher-btn-active': route.path === '/dashboard/marketplace' || route.path.startsWith('/dashboard/marketplace/') || route.path === '/dashboard/discover' }"
|
||||
>App Store</RouterLink>
|
||||
<RouterLink
|
||||
to="/dashboard/apps?tab=services"
|
||||
@@ -496,7 +496,7 @@ const needsMobileBackButtonSpace = computed(() => isDetailRoute(route.path))
|
||||
const showAppsTabs = computed(() => {
|
||||
if (typeof window === 'undefined') return false
|
||||
if (window.innerWidth >= 768) return false
|
||||
return route.path.includes('/apps') || route.path.includes('/marketplace')
|
||||
return route.path.includes('/apps') || route.path.includes('/marketplace') || route.path.includes('/discover')
|
||||
})
|
||||
|
||||
// Show persistent tabs for Network/Cloud on mobile
|
||||
|
||||
Reference in New Issue
Block a user