spaxel/dashboard
jedarden 3c6368cd39 feat: implement spatial quick actions context menu for 3D scene
Implements right-click and long-press context menus for all 3D elements:

- Raycasting with priority order: tracks > nodes > zones > portals > triggers > ground
- Context menu renders in under 50ms with intelligent viewport positioning
- Element-specific actions:
  * Tracks: identify, follow camera, view history, false positive, explain, set unknown
  * Nodes: edit label, health details, OTA update, blink LED, reassign role, remove
  * Zones: edit bounds, rename, occupancy history, automation, delete
  * Empty space: add virtual node, create zone, set home point, place portal
  * Portals: edit, crossing history, delete
  * Triggers: edit, test fire, toggle enable, delete

Follow camera mode:
- Smooth interpolation using VectorLerp (default 3m behind, 2m above)
- "Following: [Person]" chip with unfollow button
- Scroll wheel zoom adjustment during follow
- Auto-exit when track deleted or becomes DELETED state
- OrbitControls disabled during follow mode

Tests: 22 tests covering raycasting, menu items, follow mode,
dismissal behavior, action execution, and performance.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 22:56:17 -04:00
..
css feat: implement ambient dashboard mode with Canvas 2D renderer 2026-04-10 22:09:12 -04:00
js feat: implement spatial quick actions context menu for 3D scene 2026-04-10 22:56:17 -04:00
ambient.html feat: implement ambient dashboard mode with Canvas 2D renderer 2026-04-10 22:09:12 -04:00
index.html feat: implement ambient dashboard mode with Canvas 2D renderer 2026-04-10 22:09:12 -04:00
jest.config.js feat: implement spatial quick actions context menu for 3D scene 2026-04-10 22:56:17 -04:00
package-lock.json feat(dashboard): interactive onboarding wizard for ESP32-S3 node provisioning 2026-03-28 02:36:58 -04:00
package.json feat(dashboard): interactive onboarding wizard for ESP32-S3 node provisioning 2026-03-28 02:36:58 -04:00
simple.html feat: implement ambient dashboard mode with Canvas 2D renderer 2026-04-10 22:09:12 -04:00