--- id: TASK-110 title: Module sub-nav bar + rCart UX polish status: Done assignee: [] created_date: '2026-03-12 04:02' updated_date: '2026-03-12 04:02' labels: - shell - rcart - ux - typescript dependencies: [] priority: medium --- ## Description Add a secondary horizontal pill navigation bar to the shell showing each module's outputPaths and subPageInfos as navigable links. Polish rCart group buy page with fill-up visual, hero stats, warm gradient progress bar, pledge avatars, and green CTA. Fix 3 pre-existing TS build errors. ## Acceptance Criteria - [x] #1 Sub-nav bar renders between tab-row and
for modules with outputPaths/subPageInfos - [x] #2 Active pill highlighted via client-side pathname matching - [x] #3 Hidden in iframe-embedded mode - [x] #4 rCart /buy/:id renamed to /group-buy/:id with updated shareUrl - [x] #5 rCart outputPaths: carts, catalog, orders, payments, group-buys - [x] #6 rinbox outputPaths: mailboxes - [x] #7 Group buy page: hero card with stat boxes, fill-up liquid visual, warm gradient progress bar, pledge avatars, green CTA, responsive - [x] #8 TS error fixed: walletAddress added to rstack-identity SessionState.eid - [x] #9 TS errors fixed: ambient type declarations for 3d-force-graph and three - [x] #10 Build passes (tsc --noEmit + vite build) ## Final Summary Committed as adb0d17 on dev, merged to main, deployed to Netcup.\n\nFiles changed:\n- server/shell.ts — renderModuleSubNav() + SUBNAV_CSS\n- modules/rcart/mod.ts — route rename, outputPaths update\n- modules/rcart/components/folk-group-buy-page.ts — full UX overhaul\n- modules/rcart/components/cart.css — flex centering for narrow pages\n- modules/rcart/components/folk-payment-page.ts, folk-payment-request.ts — width fix\n- modules/rinbox/mod.ts — added mailboxes outputPath\n- shared/components/rstack-identity.ts — walletAddress type fix\n- types/3d-force-graph.d.ts, types/three.d.ts — new ambient declarations