## 1. Map as Homepage - `/` now renders MapPage (the globe/map) — removed old Index homepage - `/home` redirects to Index (legacy), `/map` alias still works - Navbar: removed HOME link, SPOTS (MapPin) is now first nav item - isActive() treats both `/` and `/map` as active for SPOTS tab ## 2. 3D Globe View - New SkateGlobe component using pure Three.js (no h3-js/CDN issues) - Earth night texture with atmospheric neon red glow - Spot pins (red) + shop pins (lime) on globe surface - Click pin → zoom camera in + show info card - Drag to rotate, scroll/pinch to zoom, auto-rotation when idle - Globe toggle button added to map/list view switcher - Selected marker ring + info card with View Spot/Shop links - Lazy-loaded with Suspense skeleton ## 3. Settings → Stash Link - Added My Stash card in Settings > Wallet tab - Links to /stash with Package icon and description - Smooth hover animation with ChevronRight ## 4. Camera Fix (Capacitor Native) - CameraCapture now detects native Capacitor platform at runtime - On native Android/iOS: uses @capacitor/camera (OS-level camera, no WebView permission popup) - On browser: falls back to getUserMedia stream (existing behaviour) - Added Upload from Gallery fallback when camera permission denied - Better error handling for user cancellation ## 5. Sasquatch Upgrades - FAQ page: replaced static accordion wall with Sasquatch-powered UI - Quick question chips that pre-load questions into Sasquatch - "Open The Sasquatch" CTA button - Quick facts grid, clean modern design - About page: added Sasquatch CTA card at bottom - SasquatchGuide: listens for sasquatch:open and sasquatch:ask custom events - External pages can now trigger and pre-fill the Sasquatch - Sasquatch now shows even without a page-level message prop (for external triggers) ## 6. UI/UX Audit & Polish - Focus rings: on-brand red (WCAG accessible) - Card hover micro-interactions: subtle translateY + shadow - Button/link transition consistency (150ms ease) - Reduced motion support (@media prefers-reduced-motion) - Modal backdrop blur improvement - Skeleton shimmer animation utility - Globe CSS utilities (touch-action: none for canvas) - Typography helpers (text-balance, text-pretty) - Improved map-full-height responsive calculation Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
12 lines
601 B
TypeScript
12 lines
601 B
TypeScript
// Stub for node:path — not available in browser
|
|
// Used by h3-js (dependency of react-globe.gl)
|
|
export default {
|
|
join: (...parts: string[]) => parts.join('/'),
|
|
resolve: (...parts: string[]) => parts.join('/'),
|
|
dirname: (p: string) => p.split('/').slice(0, -1).join('/'),
|
|
basename: (p: string) => p.split('/').pop() || '',
|
|
};
|
|
export const join = (...parts: string[]) => parts.join('/');
|
|
export const resolve = (...parts: string[]) => parts.join('/');
|
|
export const dirname = (p: string) => p.split('/').slice(0, -1).join('/');
|
|
export const basename = (p: string) => p.split('/').pop() || '';
|