- Implement comprehensive WebXR resize gizmo system with three handle types: - Corner handles: uniform scaling (all axes) - Edge handles: two-axis planar scaling - Face handles: single-axis scaling - Use "virtual stick" metaphor for intuitive scaling: - Fixed-length projection from controller to handle intersection - Distance-ratio based scaling from mesh pivot point - Works naturally with controller rotation and movement - Add world-space coordinate transformations for VR rig parenting - Implement manual ray picking for utility layer handle detection - Add motion controller initialization handling for grip button - Fix color persistence bug in diagram entities: - DiagramEntityAdapter now uses toDiagramEntity() converter - Store color in mesh metadata for persistence - Add dependency injection for loose coupling - Extract DiagramEntityAdapter to integration layer: - Move from src/gizmos/ResizeGizmo/ to src/integration/gizmo/ - Add dependency injection for mesh-to-entity converter - Keep ResizeGizmo pure and reusable without diagram dependencies - Add closest color matching for missing toolbox colors - Handle size now relative to bounding box (20% of avg dimension) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
72 lines
2.0 KiB
JSON
72 lines
2.0 KiB
JSON
{
|
|
"name": "immersive",
|
|
"private": true,
|
|
"version": "0.0.8-22",
|
|
"type": "module",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=18.0.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"test": "vitest",
|
|
"build": "node versionBump.js && vite build",
|
|
"preview": "vite preview",
|
|
"socket": "node server/server.js",
|
|
"serve": "node server.js",
|
|
"serverBuild": "cd server && tsc",
|
|
"havok": "cp ./node_modules/@babylonjs/havok/lib/esm/HavokPhysics.wasm ./node_modules/.vite/deps"
|
|
},
|
|
"dependencies": {
|
|
"@auth0/auth0-react": "^2.2.4",
|
|
"@babylonjs/core": "^8.16.2",
|
|
"@babylonjs/gui": "^8.16.2",
|
|
"@babylonjs/havok": "1.3.4",
|
|
"@babylonjs/inspector": "^8.16.2",
|
|
"@babylonjs/loaders": "^8.16.2",
|
|
"@babylonjs/materials": "^8.16.2",
|
|
"@babylonjs/serializers": "^8.16.2",
|
|
"@emotion/react": "^11.13.0",
|
|
"@mantine/core": "^7.17.8",
|
|
"@mantine/form": "^7.17.8",
|
|
"@mantine/hooks": "^7.17.8",
|
|
"@giphy/react-components": "^9.6.0",
|
|
"@giphy/js-fetch-api": "^5.6.0",
|
|
"@maptiler/client": "1.8.1",
|
|
"@picovoice/cobra-web": "^2.0.3",
|
|
"@picovoice/eagle-web": "^1.0.0",
|
|
"@picovoice/web-voice-processor": "^4.0.9",
|
|
"@types/node": "^18.14.0",
|
|
"@types/react": "^18.2.72",
|
|
"@types/react-dom": "^18.2.22",
|
|
"axios": "^1.10.0",
|
|
"canvas-hypertxt": "1.0.3",
|
|
"events": "^3.3.0",
|
|
"hash-wasm": "4.11.0",
|
|
"hls.js": "^1.1.4",
|
|
"js-crypto-aes": "1.0.6",
|
|
"loglevel": "^1.9.1",
|
|
"meaningful-string": "^1.4.0",
|
|
"peer-lite": "2.0.2",
|
|
"use-pouchdb": "^2.0.2",
|
|
"pouchdb": "^8.0.1",
|
|
"pouchdb-find": "^8.0.1",
|
|
"query-string": "^8.1.0",
|
|
"react-router-dom": "^6.26.1",
|
|
"@tabler/icons-react": "^3.14.0",
|
|
"recordrtc": "^5.6.0",
|
|
"rfc4648": "^1.5.3",
|
|
"round": "^2.0.1",
|
|
"uint8-to-b64": "^1.0.2",
|
|
"uuid": "^9.0.1",
|
|
"websocket": "^1.0.34",
|
|
"websocket-ts": "^2.1.5"
|
|
},
|
|
"devDependencies": {
|
|
"@types/dom-to-image": "^2.6.7",
|
|
"typescript": "^4.9.5",
|
|
"vite": "^5.2.9",
|
|
"vite-plugin-cp": "^1.0.0",
|
|
"vitest": "^1.4.0"
|
|
}
|
|
} |