* Fix touch gesture conflicts in WebGL example apps on mobile
* Format with prettier
* fix(examples): improve mobile support for map, pdf, and threejs examples
- map-server: fullscreen button respects safe area insets, hover/opacity
pattern with always-visible on touch devices
- pdf-server: fit-to-width scale for narrow viewports, responsive toolbar
with compact controls on mobile, safe area in fullscreen toolbar via
CSS custom properties
- threejs-server: fullscreen button respects safe area and always visible
on touch, ResizeObserver for responsive width, host containerDimensions
for fullscreen height, no container padding in fullscreen, replace
useHostStyles with inline style application to avoid overwriting
onhostcontextchanged handler
- Add visibility-based animation pause (IntersectionObserver + wrapped rAF)
- Zero CPU usage when widget scrolls out of view
- Apply host style variables via useHostStyles
- Support transparent WebGL background (alpha: true)
- Use light-dark() for theme-aware fallback colors
- Tool no longer echoes code back in result
- Document performance features in README
New example demonstrating interactive 3D scene rendering with:
- show_threejs_scene tool with streaming code preview
- learn_threejs documentation tool
- Full WidgetProps interface for MCP App integration
- Reusable mcp-app-wrapper.tsx pattern
Also adds bun.lockb to .gitignore.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>