Files
editor/packages/viewer/src/r3f.d.ts
T
PascalandGitHub 0a46a9deb4 sync: comprehensive monorepo → editor parity (2D/3D decoupling, UX polish, crash fixes)
Squash merge of 3 commits:
1. useLiveTransforms store for 2D/3D decoupling + floorplan overhaul + Sentry crash fixes
2. Comprehensive 59-file sync bringing editor to full monorepo parity (selection highlights, delete tool, furnish/zone modes, keyboard shortcuts, all panels)
3. Missing files fix (materials.ts, merged-outline-node.ts, type fix)

75 files changed, ~6K additions.
2026-04-07 19:21:10 -04:00

100 lines
2.4 KiB
TypeScript

/**
* R3F JSX intrinsic element declarations for three.js primitives.
*
* @react-three/fiber augments JSX.IntrinsicElements globally via module
* augmentation, but the augmentation doesn't reliably propagate during
* composite tsc --build in CI because bun resolves @react-three/fiber's
* peer deps into variant directories where @types/three is unreachable.
*
* This file replicates the module augmentation pattern R3F uses, declaring
* the subset of three.js elements we actually use.
*
* The empty export makes this file a module, which is required for
* `declare module` to augment existing modules rather than replace them.
*/
export {}
interface ThreeJSXElements {
// Containers
group: any
scene: any
// Geometries
boxGeometry: any
planeGeometry: any
circleGeometry: any
cylinderGeometry: any
sphereGeometry: any
extrudeGeometry: any
shapeGeometry: any
bufferGeometry: any
edgesGeometry: any
ringGeometry: any
// Meshes & lines
mesh: any
instancedMesh: any
line: any
lineSegments: any
lineLoop: any
points: any
// Materials
meshStandardMaterial: any
meshBasicMaterial: any
meshPhongMaterial: any
meshLambertMaterial: any
meshPhysicalMaterial: any
meshNormalMaterial: any
shadowMaterial: any
lineBasicMaterial: any
lineDashedMaterial: any
pointsMaterial: any
shaderMaterial: any
rawShaderMaterial: any
spriteMaterial: any
// Lights
ambientLight: any
directionalLight: any
pointLight: any
spotLight: any
hemisphereLight: any
rectAreaLight: any
// Cameras
perspectiveCamera: any
orthographicCamera: any
// Helpers
gridHelper: any
axesHelper: any
arrowHelper: any
// Misc
sprite: any
lOD: any
fog: any
color: any
// Buffer attribute
bufferAttribute: any
instancedBufferAttribute: any
// Primitive (R3F-specific)
primitive: any
}
declare module 'react' {
// biome-ignore lint/style/noNamespace: Required for JSX module augmentation
namespace JSX {
interface IntrinsicElements extends ThreeJSXElements {}
}
}
declare module 'react/jsx-runtime' {
// biome-ignore lint/style/noNamespace: Required for JSX module augmentation
namespace JSX {
interface IntrinsicElements extends ThreeJSXElements {}
}
}
declare module 'react/jsx-dev-runtime' {
// biome-ignore lint/style/noNamespace: Required for JSX module augmentation
namespace JSX {
interface IntrinsicElements extends ThreeJSXElements {}
}
}