@react-three/drei 11.0.0-alpha.4 → 11.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,12 +3,10 @@ import { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes, CSSPropertie
3
3
  import * as _react_three_fiber from '@react-three/fiber';
4
4
  import { ThreeElements, ReactThreeFiber, ComputeFunction, Vector2, Vector3, ThreeElement, ThreeEvent, Color as Color$1, ObjectMap, Euler } from '@react-three/fiber';
5
5
  import * as THREE from 'three/webgpu';
6
- import { MeshBasicNodeMaterial, MeshNormalNodeMaterial, MeshPhysicalNodeMaterial, Material, Color, ColorRepresentation, Object3D, Texture as Texture$1, Fog, FogExp2, WebGLCubeRenderTarget, CubeCamera as CubeCamera$1, OrthographicCamera as OrthographicCamera$1, PerspectiveCamera as PerspectiveCamera$1, Event, Camera, Matrix4, Vector3 as Vector3$1, Group, LOD, Mesh, ExtrudeGeometry, PositionalAudio as PositionalAudio$1, AnimationClip, AnimationMixer, AnimationAction, BufferGeometry, BufferAttribute, InstancedMesh as InstancedMesh$1, InstancedBufferAttribute, DepthTexture, CubeTexture as CubeTexture$1, Raycaster, Intersection, RenderTargetOptions, Box3, Sphere as Sphere$1, Loader as Loader$1, ColorSpace, Scene, PlaneGeometry, MeshBasicMaterial, WebGLRenderer, WebGLRenderTarget, SpriteNodeMaterial, SpotLight as SpotLight$1 } from 'three/webgpu';
7
- import { reflector, uniform, Fn } from 'three/tsl';
6
+ import { MeshBasicNodeMaterial, MeshNormalNodeMaterial, MeshPhysicalNodeMaterial, Material, CubeRenderTarget, Color, ColorRepresentation, Object3D, Texture as Texture$1, Fog, FogExp2, CubeCamera as CubeCamera$1, OrthographicCamera as OrthographicCamera$1, PerspectiveCamera as PerspectiveCamera$1, Event, EventDispatcher, Camera, Matrix4, Vector3 as Vector3$1, Group, LOD, Mesh, ExtrudeGeometry, PositionalAudio as PositionalAudio$1, AnimationClip, AnimationMixer, AnimationAction, BufferGeometry, BufferAttribute, InstancedMesh as InstancedMesh$1, InstancedBufferAttribute, DepthTexture, CubeTexture as CubeTexture$1, Raycaster, Intersection, RenderTargetOptions, Box3, Sphere as Sphere$1, Loader as Loader$1, ColorSpace, Scene, PlaneGeometry, MeshBasicMaterial, SpriteNodeMaterial, ShadowNode, Light, SpotLight as SpotLight$1 } from 'three/webgpu';
7
+ import { reflector, Fn } from 'three/tsl';
8
8
  import { LineSegments2 } from 'three/examples/jsm/lines/webgpu/LineSegments2.js';
9
9
  import { ArcballControls as ArcballControls$1 } from 'three/examples/jsm/controls/ArcballControls.js';
10
- import { DeviceOrientationControls as DeviceOrientationControls$1 } from 'three-stdlib';
11
- import { DragConfig } from '@use-gesture/react';
12
10
  import { FirstPersonControls as FirstPersonControls$1 } from 'three/examples/jsm/controls/FirstPersonControls.js';
13
11
  import { FlyControls as FlyControls$1 } from 'three/examples/jsm/controls/FlyControls.js';
14
12
  import * as zustand from 'zustand';
@@ -18,6 +16,7 @@ import { OrbitControls as OrbitControls$1 } from 'three/addons/controls/OrbitCon
18
16
  import { PointerLockControls as PointerLockControls$1 } from 'three/examples/jsm/controls/PointerLockControls.js';
19
17
  import { TrackballControls as TrackballControls$1 } from 'three/examples/jsm/controls/TrackballControls.js';
20
18
  import * as three from 'three';
19
+ import { Material as Material$1 } from 'three';
21
20
  import { Line2 as Line2$1 } from 'three/examples/jsm/lines/Line2.js';
22
21
  import { Line2 } from 'three/examples/jsm/lines/webgpu/Line2.js';
23
22
  import { Flow } from 'three/examples/jsm/modifiers/CurveModifier.js';
@@ -28,6 +27,7 @@ import { Falsey, Assign } from 'utility-types';
28
27
  import * as hls_js from 'hls.js';
29
28
  import hls_js__default from 'hls.js';
30
29
  import { GLTFLoader, GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js';
30
+ import { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader.js';
31
31
  import * as detect_gpu from 'detect-gpu';
32
32
  import { GetGPUTier } from 'detect-gpu';
33
33
  import Stats$1 from 'stats-gl';
@@ -76,25 +76,33 @@ interface AccumulativeContext {
76
76
  frames: number;
77
77
  blend: number;
78
78
  count: number;
79
- getMesh: () => THREE.Mesh<THREE.PlaneGeometry, SoftShadowMaterialProps & THREE.ShaderMaterial>;
79
+ getMesh: () => THREE.Mesh<THREE.PlaneGeometry, SoftShadowMaterialImpl>;
80
80
  reset: () => void;
81
81
  update: (frames?: number) => void;
82
82
  }
83
83
  interface AccumulativeLightContext {
84
84
  update: () => void;
85
85
  }
86
- type SoftShadowMaterialProps = {
87
- map: THREE.Texture;
88
- color?: ReactThreeFiber.Color;
89
- alphaTest?: number;
90
- blend?: number;
91
- };
92
- declare module '@react-three/fiber' {
93
- interface ThreeElements {
94
- softShadowMaterial: ThreeElements['shaderMaterial'] & SoftShadowMaterialProps;
95
- }
96
- }
97
86
  declare const accumulativeContext: React.Context<AccumulativeContext>;
87
+ declare class SoftShadowMaterialImpl extends MeshBasicNodeMaterial {
88
+ private _color;
89
+ private _blend;
90
+ private _alphaTest;
91
+ private _opacity;
92
+ private _map;
93
+ constructor();
94
+ private _buildShader;
95
+ get shadowColor(): THREE.ColorRepresentation;
96
+ set shadowColor(v: THREE.ColorRepresentation);
97
+ get blend(): number;
98
+ set blend(v: number);
99
+ get alphaTest(): number;
100
+ set alphaTest(v: number);
101
+ get opacity(): number;
102
+ set opacity(v: number);
103
+ get map(): THREE.Texture;
104
+ set map(v: THREE.Texture);
105
+ }
98
106
  declare const AccumulativeShadows: ForwardRefComponent<AccumulativeShadowsProps, AccumulativeContext>;
99
107
  type RandomizedLightProps = Omit<ThreeElements['group'], 'ref'> & {
100
108
  frames?: number;
@@ -207,6 +215,7 @@ type MeshTransmissionMaterialType = Omit<ThreeElements['meshPhysicalMaterial'],
207
215
  temporalDistortion?: number;
208
216
  buffer?: THREE.Texture;
209
217
  time?: number;
218
+ debugMode?: number;
210
219
  args?: [samples: number, transmissionSampler: boolean];
211
220
  };
212
221
  type MeshTransmissionMaterialProps = Omit<MeshTransmissionMaterialType, 'ref' | 'args'> & {
@@ -224,44 +233,7 @@ declare module '@react-three/fiber' {
224
233
  meshTransmissionMaterial: MeshTransmissionMaterialType;
225
234
  }
226
235
  }
227
- declare class MeshTransmissionMaterialImpl extends MeshPhysicalNodeMaterial {
228
- private _chromaticAberration;
229
- private _anisotropicBlur;
230
- private _time;
231
- private _distortion;
232
- private _distortionScale;
233
- private _temporalDistortion;
234
- private _buffer;
235
- private _transmissionValue;
236
- private _attenuationDistance;
237
- private _attenuationColor;
238
- private _samples;
239
- private _transmissionSampler;
240
- readonly isMeshTransmissionMaterial = true;
241
- constructor(samples?: number, transmissionSampler?: boolean);
242
- private _buildTransmissionShader;
243
- get chromaticAberration(): number;
244
- set chromaticAberration(v: number);
245
- get anisotropicBlur(): number;
246
- set anisotropicBlur(v: number);
247
- get time(): number;
248
- set time(v: number);
249
- get distortion(): number;
250
- set distortion(v: number);
251
- get distortionScale(): number;
252
- set distortionScale(v: number);
253
- get temporalDistortion(): number;
254
- set temporalDistortion(v: number);
255
- get buffer(): THREE.Texture | null;
256
- set buffer(v: THREE.Texture | null);
257
- get _transmission(): number;
258
- set _transmission(v: number);
259
- get attenuationDistance(): number;
260
- set attenuationDistance(v: number);
261
- get attenuationColor(): THREE.Color;
262
- set attenuationColor(v: THREE.Color);
263
- }
264
- declare const MeshTransmissionMaterial: ForwardRefComponent<MeshTransmissionMaterialProps, MeshTransmissionMaterialImpl>;
236
+ declare const MeshTransmissionMaterial: ForwardRefComponent<MeshTransmissionMaterialProps, ThreeElements['meshTransmissionMaterial']>;
265
237
 
266
238
  interface MeshReflectorMaterialOptions {
267
239
  resolution?: number;
@@ -278,18 +250,18 @@ interface MeshReflectorMaterialOptions {
278
250
  }
279
251
  declare class MeshReflectorMaterial$1 extends THREE.MeshStandardNodeMaterial {
280
252
  reflection: ReturnType<typeof reflector>;
281
- mirrorUniform: ReturnType<typeof uniform<number>>;
282
- mixBlurUniform: ReturnType<typeof uniform<number>>;
283
- mixStrengthUniform: ReturnType<typeof uniform<number>>;
284
- minDepthThresholdUniform: ReturnType<typeof uniform<number>>;
285
- maxDepthThresholdUniform: ReturnType<typeof uniform<number>>;
286
- depthScaleUniform: ReturnType<typeof uniform<number>>;
287
- depthToBlurRatioBiasUniform: ReturnType<typeof uniform<number>>;
288
- distortionUniform: ReturnType<typeof uniform<number>>;
289
- mixContrastUniform: ReturnType<typeof uniform<number>>;
290
- blurRadiusUniform: ReturnType<typeof uniform<number>>;
291
- hasBlurUniform: ReturnType<typeof uniform<number>>;
292
- hasDepthUniform: ReturnType<typeof uniform<number>>;
253
+ mirrorUniform: THREE.UniformNode<'float', number>;
254
+ mixBlurUniform: THREE.UniformNode<'float', number>;
255
+ mixStrengthUniform: THREE.UniformNode<'float', number>;
256
+ minDepthThresholdUniform: THREE.UniformNode<'float', number>;
257
+ maxDepthThresholdUniform: THREE.UniformNode<'float', number>;
258
+ depthScaleUniform: THREE.UniformNode<'float', number>;
259
+ depthToBlurRatioBiasUniform: THREE.UniformNode<'float', number>;
260
+ distortionUniform: THREE.UniformNode<'float', number>;
261
+ mixContrastUniform: THREE.UniformNode<'float', number>;
262
+ blurRadiusUniform: THREE.UniformNode<'float', number>;
263
+ hasBlurUniform: THREE.UniformNode<'float', number>;
264
+ hasDepthUniform: THREE.UniformNode<'float', number>;
293
265
  constructor(options?: MeshReflectorMaterialOptions, parameters?: THREE.MeshStandardMaterialParameters);
294
266
  private setupNodes;
295
267
  get mirror(): number;
@@ -355,6 +327,7 @@ type MeshRefractionMaterialType = Omit<ThreeElements['meshPhysicalMaterial'], 'a
355
327
  fastChroma?: boolean;
356
328
  tintColor?: THREE.ColorRepresentation;
357
329
  opacity?: number;
330
+ args?: [fastChroma?: boolean];
358
331
  };
359
332
  type MeshRefractionMaterialProps = Omit<MeshRefractionMaterialType, 'ref'>;
360
333
  declare module '@react-three/fiber' {
@@ -370,8 +343,6 @@ declare class MeshRefractionMaterialImpl extends MeshPhysicalNodeMaterial {
370
343
  private _aberrationStrength;
371
344
  private _color;
372
345
  private _opacityValue;
373
- private _resolution;
374
- private _thickness;
375
346
  private _fastChroma;
376
347
  readonly isMeshRefractionMaterial = true;
377
348
  constructor(fastChroma?: boolean);
@@ -390,10 +361,6 @@ declare class MeshRefractionMaterialImpl extends MeshPhysicalNodeMaterial {
390
361
  set tintColor(v: THREE.Color | THREE.ColorRepresentation);
391
362
  get opacity(): number;
392
363
  set opacity(v: number);
393
- get resolution(): THREE.Vector2;
394
- set resolution(v: THREE.Vector2);
395
- get thickness(): number;
396
- set thickness(v: number);
397
364
  }
398
365
  declare const MeshRefractionMaterial: ForwardRefComponent<MeshRefractionMaterialProps, MeshRefractionMaterialImpl>;
399
366
 
@@ -432,16 +399,16 @@ declare class PortalMaterialImpl extends MeshBasicNodeMaterial {
432
399
  declare const MeshPortalMaterial: ForwardRefComponent<PortalProps, PortalMaterialImpl>;
433
400
 
434
401
  declare class DistortMaterialImplWebGPU extends THREE.MeshPhysicalNodeMaterial {
435
- timeUniform: ReturnType<typeof uniform>;
436
- distortUniform: ReturnType<typeof uniform>;
437
- radiusUniform: ReturnType<typeof uniform>;
402
+ timeUniform: THREE.UniformNode<'float', number>;
403
+ distortUniform: THREE.UniformNode<'float', number>;
404
+ radiusUniform: THREE.UniformNode<'float', number>;
438
405
  constructor(parameters?: THREE.MeshPhysicalMaterialParameters);
439
- get time(): unknown;
440
- set time(v: unknown);
441
- get distort(): unknown;
442
- set distort(v: unknown);
443
- get radius(): unknown;
444
- set radius(v: unknown);
406
+ get time(): number;
407
+ set time(v: number);
408
+ get distort(): number;
409
+ set distort(v: number);
410
+ get radius(): number;
411
+ set radius(v: number);
445
412
  }
446
413
  declare module '@react-three/fiber' {
447
414
  interface ThreeElements {
@@ -459,13 +426,13 @@ type MeshDistortMaterialProps = Omit<ThreeElements['distortMaterialImplWebGPU'],
459
426
  declare const MeshDistortMaterial: ForwardRefComponent<MeshDistortMaterialProps, DistortMaterialImplWebGPU>;
460
427
 
461
428
  declare class WobbleMaterialImpl extends THREE.MeshStandardNodeMaterial {
462
- timeUniform: ReturnType<typeof uniform>;
463
- factorUniform: ReturnType<typeof uniform>;
429
+ timeUniform: THREE.UniformNode<'float', number>;
430
+ factorUniform: THREE.UniformNode<'float', number>;
464
431
  constructor(parameters?: THREE.MeshStandardMaterialParameters);
465
- get time(): unknown;
466
- set time(v: unknown);
467
- get factor(): unknown;
468
- set factor(v: unknown);
432
+ get time(): number;
433
+ set time(v: number);
434
+ get factor(): number;
435
+ set factor(v: number);
469
436
  }
470
437
  declare module '@react-three/fiber' {
471
438
  interface ThreeElements {
@@ -482,7 +449,7 @@ type WobbleMaterialProps = Omit<ThreeElements['meshStandardMaterial'], 'ref'> &
482
449
  };
483
450
  declare const MeshWobbleMaterial: ForwardRefComponent<WobbleMaterialProps, WobbleMaterialImpl>;
484
451
 
485
- declare function FakeCloudMaterial(BaseMaterial: typeof Material): Material;
452
+ declare function FakeCloudMaterial(BaseMaterial: typeof Material): Material<three.MaterialEventMap>;
486
453
 
487
454
  type OutlinesProps = Omit<ThreeElements['group'], 'ref'> & {
488
455
  color?: ReactThreeFiber.Color;
@@ -536,7 +503,7 @@ type RenderCubeTextureProps = Omit<ThreeElements['texture'], 'ref' | 'args' | 'r
536
503
  };
537
504
  type RenderCubeTextureApi = {
538
505
  scene: THREE.Scene;
539
- fbo: THREE.WebGLCubeRenderTarget;
506
+ fbo: CubeRenderTarget;
540
507
  camera: THREE.CubeCamera;
541
508
  };
542
509
  declare const RenderCubeTexture: ForwardRefComponent<RenderCubeTextureProps, RenderCubeTextureApi>;
@@ -566,8 +533,8 @@ type SegmentsProps = {
566
533
  children: React.ReactNode;
567
534
  };
568
535
  type SegmentProps = Omit<ThreeElements['segmentObject'], 'ref' | 'start' | 'end' | 'color'> & {
569
- start: ReactThreeFiber.Vector3;
570
- end: ReactThreeFiber.Vector3;
536
+ start?: ReactThreeFiber.Vector3;
537
+ end?: ReactThreeFiber.Vector3;
571
538
  color?: ReactThreeFiber.Color;
572
539
  };
573
540
  declare const Segments: ForwardRefComponent<SegmentsProps, LineSegments2>;
@@ -578,8 +545,8 @@ declare module '@react-three/fiber' {
578
545
  }
579
546
  declare class SegmentObject {
580
547
  color: THREE.Color;
581
- start: THREE.Vector3;
582
- end: THREE.Vector3;
548
+ start?: THREE.Vector3;
549
+ end?: THREE.Vector3;
583
550
  constructor();
584
551
  }
585
552
  declare const Segment: ForwardRefComponent<SegmentProps, SegmentObject>;
@@ -612,7 +579,7 @@ type CubeCameraProps = Omit<ThreeElements['group'], 'children'> & {
612
579
  frames?: number;
613
580
  } & CubeCameraOptions;
614
581
  declare function useCubeCamera({ resolution, near, far, envMap, fog }?: CubeCameraOptions): {
615
- fbo: WebGLCubeRenderTarget;
582
+ fbo: CubeRenderTarget;
616
583
  camera: CubeCamera$1;
617
584
  update: () => void;
618
585
  };
@@ -650,6 +617,34 @@ type ArcballControlsProps = Omit<Overwrite<ThreeElement<typeof ArcballControls$1
650
617
  }>, 'ref' | 'args'>;
651
618
  declare const ArcballControls: ForwardRefComponent<ArcballControlsProps, ArcballControls$1>;
652
619
 
620
+ interface StandardControlsEventMap {
621
+ change: {};
622
+ start: {};
623
+ end: {};
624
+ }
625
+ declare class DeviceOrientationControls$1 extends EventDispatcher<StandardControlsEventMap> {
626
+ object: Camera;
627
+ private changeEvent;
628
+ private EPS;
629
+ enabled: boolean;
630
+ deviceOrientation: Partial<DeviceOrientationEvent>;
631
+ screenOrientation: string | number;
632
+ alphaOffset: number;
633
+ constructor(object: Camera);
634
+ private onDeviceOrientationChangeEvent;
635
+ private onScreenOrientationChangeEvent;
636
+ private zee;
637
+ private euler;
638
+ private q0;
639
+ private q1;
640
+ private setObjectQuaternion;
641
+ connect: () => void;
642
+ disconnect: () => void;
643
+ private lastQuaternion;
644
+ update: () => void;
645
+ dispose: () => void;
646
+ }
647
+
653
648
  type DeviceOrientationControlsProps = Omit<ThreeElement<typeof DeviceOrientationControls$1>, 'ref' | 'args'> & {
654
649
  camera?: THREE.Camera;
655
650
  onChange?: (e?: THREE.Event) => void;
@@ -657,6 +652,10 @@ type DeviceOrientationControlsProps = Omit<ThreeElement<typeof DeviceOrientation
657
652
  };
658
653
  declare const DeviceOrientationControls: ForwardRefComponent<DeviceOrientationControlsProps, DeviceOrientationControls$1>;
659
654
 
655
+ type DragConfig = {
656
+ threshold?: number;
657
+ filterTaps?: boolean;
658
+ };
660
659
  type DragControlsProps = {
661
660
  autoTransform?: boolean;
662
661
  matrix?: THREE.Matrix4;
@@ -816,6 +815,7 @@ type ScrollControlsProps = {
816
815
  maxSpeed?: number;
817
816
  prepend?: boolean;
818
817
  enabled?: boolean;
818
+ pixelPerfect?: boolean;
819
819
  style?: React.CSSProperties;
820
820
  children: React.ReactNode;
821
821
  };
@@ -832,9 +832,10 @@ type ScrollControlsState = {
832
832
  range(from: number, distance: number, margin?: number): number;
833
833
  curve(from: number, distance: number, margin?: number): number;
834
834
  visible(from: number, distance: number, margin?: number): boolean;
835
+ pixelPerfect: boolean;
835
836
  };
836
837
  declare function useScroll(): ScrollControlsState;
837
- declare function ScrollControls({ eps, enabled, infinite, horizontal, pages, distance, damping, maxSpeed, prepend, style, children, }: ScrollControlsProps): React.JSX.Element;
838
+ declare function ScrollControls({ eps, enabled, infinite, horizontal, pages, distance, damping, maxSpeed, prepend, pixelPerfect, style, children, }: ScrollControlsProps): React.JSX.Element;
838
839
  interface ScrollPropsWithFalseHtml {
839
840
  children?: React.ReactNode;
840
841
  html?: false;
@@ -906,6 +907,7 @@ type CloudsProps = Omit<ThreeElements['group'], 'ref'> & {
906
907
  frustumCulled?: boolean;
907
908
  };
908
909
  type CloudProps = Omit<ThreeElements['group'], 'ref'> & {
910
+ materialFactory?: (baseMaterial: typeof Material) => Material;
909
911
  seed?: number;
910
912
  segments?: number;
911
913
  bounds?: ReactThreeFiber.Vector3;
@@ -923,9 +925,52 @@ type CloudProps = Omit<ThreeElements['group'], 'ref'> & {
923
925
  opacity?: number;
924
926
  color?: ReactThreeFiber.Color;
925
927
  };
926
- declare const Clouds: React.ForwardRefExoticComponent<Omit<CloudsProps, "ref"> & React.RefAttributes<Group<three.Object3DEventMap>>>;
927
- declare const CloudInstance: React.ForwardRefExoticComponent<Omit<CloudProps, "ref"> & React.RefAttributes<Group<three.Object3DEventMap>>>;
928
- declare const Cloud: React.ForwardRefExoticComponent<Omit<CloudProps, "ref"> & React.RefAttributes<Group<three.Object3DEventMap>>>;
928
+ declare const Clouds: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<Group<three.Object3DEventMap>, _react_three_fiber.MathProps<Group<three.Object3DEventMap>> & _react_three_fiber.ReactProps<Group<three.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<Group<three.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<Group<three.Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
929
+ texture?: string;
930
+ limit?: number;
931
+ range?: number;
932
+ material?: typeof Material;
933
+ materialFactory?: (baseMaterial: typeof Material) => Material;
934
+ frustumCulled?: boolean;
935
+ } & React.RefAttributes<Group<three.Object3DEventMap>>>;
936
+ declare const CloudInstance: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<Group<three.Object3DEventMap>, _react_three_fiber.MathProps<Group<three.Object3DEventMap>> & _react_three_fiber.ReactProps<Group<three.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<Group<three.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<Group<three.Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
937
+ materialFactory?: (baseMaterial: typeof Material) => Material;
938
+ seed?: number;
939
+ segments?: number;
940
+ bounds?: ReactThreeFiber.Vector3;
941
+ concentrate?: "random" | "inside" | "outside";
942
+ scale?: ReactThreeFiber.Vector3;
943
+ volume?: number;
944
+ smallestVolume?: number;
945
+ distribute?: (cloud: CloudState, index: number) => {
946
+ point: Vector3$1;
947
+ volume?: number;
948
+ };
949
+ growth?: number;
950
+ speed?: number;
951
+ fade?: number;
952
+ opacity?: number;
953
+ color?: ReactThreeFiber.Color;
954
+ } & React.RefAttributes<Group<three.Object3DEventMap>>>;
955
+ declare const Cloud: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<Group<three.Object3DEventMap>, _react_three_fiber.MathProps<Group<three.Object3DEventMap>> & _react_three_fiber.ReactProps<Group<three.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<Group<three.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<Group<three.Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
956
+ materialFactory?: (baseMaterial: typeof Material) => Material;
957
+ seed?: number;
958
+ segments?: number;
959
+ bounds?: ReactThreeFiber.Vector3;
960
+ concentrate?: "random" | "inside" | "outside";
961
+ scale?: ReactThreeFiber.Vector3;
962
+ volume?: number;
963
+ smallestVolume?: number;
964
+ distribute?: (cloud: CloudState, index: number) => {
965
+ point: Vector3$1;
966
+ volume?: number;
967
+ };
968
+ growth?: number;
969
+ speed?: number;
970
+ fade?: number;
971
+ opacity?: number;
972
+ color?: ReactThreeFiber.Color;
973
+ } & React.RefAttributes<Group<three.Object3DEventMap>>>;
929
974
 
930
975
  type CatmullRomLineProps = Omit<LineProps, 'ref' | 'segments'> & {
931
976
  closed?: boolean;
@@ -1045,25 +1090,25 @@ type Args<T> = T extends new (...args: any) => any ? ConstructorParameters<T> :
1045
1090
  type ShapeProps<T> = Omit<ThreeElements['mesh'], 'ref' | 'args'> & {
1046
1091
  args?: Args<T>;
1047
1092
  };
1048
- declare const Box: ForwardRefComponent<ShapeProps<typeof THREE.BoxGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1049
- declare const Circle: ForwardRefComponent<ShapeProps<typeof THREE.CircleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1050
- declare const Cone: ForwardRefComponent<ShapeProps<typeof THREE.ConeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1051
- declare const Cylinder: ForwardRefComponent<ShapeProps<typeof THREE.CylinderGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1052
- declare const Sphere: ForwardRefComponent<ShapeProps<typeof THREE.SphereGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1053
- declare const Plane: ForwardRefComponent<ShapeProps<typeof THREE.PlaneGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1054
- declare const Tube: ForwardRefComponent<ShapeProps<typeof THREE.TubeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1055
- declare const Torus: ForwardRefComponent<ShapeProps<typeof THREE.TorusGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1056
- declare const TorusKnot: ForwardRefComponent<ShapeProps<typeof THREE.TorusKnotGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1057
- declare const Tetrahedron: ForwardRefComponent<ShapeProps<typeof THREE.TetrahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1058
- declare const Ring: ForwardRefComponent<ShapeProps<typeof THREE.RingGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1059
- declare const Polyhedron: ForwardRefComponent<ShapeProps<typeof THREE.PolyhedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1060
- declare const Icosahedron: ForwardRefComponent<ShapeProps<typeof THREE.IcosahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1061
- declare const Octahedron: ForwardRefComponent<ShapeProps<typeof THREE.OctahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1062
- declare const Dodecahedron: ForwardRefComponent<ShapeProps<typeof THREE.DodecahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1063
- declare const Extrude: ForwardRefComponent<ShapeProps<typeof THREE.ExtrudeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1064
- declare const Lathe: ForwardRefComponent<ShapeProps<typeof THREE.LatheGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1065
- declare const Capsule: ForwardRefComponent<ShapeProps<typeof THREE.CapsuleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1066
- declare const Shape: ForwardRefComponent<ShapeProps<typeof THREE.ShapeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1093
+ declare const Box: ForwardRefComponent<ShapeProps<typeof THREE.BoxGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1094
+ declare const Circle: ForwardRefComponent<ShapeProps<typeof THREE.CircleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1095
+ declare const Cone: ForwardRefComponent<ShapeProps<typeof THREE.ConeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1096
+ declare const Cylinder: ForwardRefComponent<ShapeProps<typeof THREE.CylinderGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1097
+ declare const Sphere: ForwardRefComponent<ShapeProps<typeof THREE.SphereGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1098
+ declare const Plane: ForwardRefComponent<ShapeProps<typeof THREE.PlaneGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1099
+ declare const Tube: ForwardRefComponent<ShapeProps<typeof THREE.TubeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1100
+ declare const Torus: ForwardRefComponent<ShapeProps<typeof THREE.TorusGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1101
+ declare const TorusKnot: ForwardRefComponent<ShapeProps<typeof THREE.TorusKnotGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1102
+ declare const Tetrahedron: ForwardRefComponent<ShapeProps<typeof THREE.TetrahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1103
+ declare const Ring: ForwardRefComponent<ShapeProps<typeof THREE.RingGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1104
+ declare const Polyhedron: ForwardRefComponent<ShapeProps<typeof THREE.PolyhedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1105
+ declare const Icosahedron: ForwardRefComponent<ShapeProps<typeof THREE.IcosahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1106
+ declare const Octahedron: ForwardRefComponent<ShapeProps<typeof THREE.OctahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1107
+ declare const Dodecahedron: ForwardRefComponent<ShapeProps<typeof THREE.DodecahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1108
+ declare const Extrude: ForwardRefComponent<ShapeProps<typeof THREE.ExtrudeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1109
+ declare const Lathe: ForwardRefComponent<ShapeProps<typeof THREE.LatheGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1110
+ declare const Capsule: ForwardRefComponent<ShapeProps<typeof THREE.CapsuleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1111
+ declare const Shape: ForwardRefComponent<ShapeProps<typeof THREE.ShapeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1067
1112
 
1068
1113
  type Glyph = {
1069
1114
  _cachedOutline: string[];
@@ -1102,60 +1147,13 @@ type Text3DProps = Omit<ThreeElements['mesh'], 'ref'> & {
1102
1147
  font: FontData | string;
1103
1148
  bevelSegments?: number;
1104
1149
  smooth?: number;
1105
- } & Omit<TextGeometryParameters, 'font'>;
1150
+ height?: number;
1151
+ } & Omit<TextGeometryParameters, 'font' | 'depth'>;
1106
1152
  declare const Text3D: ForwardRefComponent<React.PropsWithChildren<Text3DProps & {
1107
1153
  letterSpacing?: number;
1108
1154
  lineHeight?: number;
1109
1155
  }>, THREE.Mesh>;
1110
1156
 
1111
- interface WireframeMaterialProps$1 extends THREE.ShaderMaterialParameters {
1112
- fillOpacity?: number;
1113
- fillMix?: number;
1114
- strokeOpacity?: number;
1115
- thickness?: number;
1116
- colorBackfaces?: boolean;
1117
- dashInvert?: boolean;
1118
- dash?: boolean;
1119
- dashRepeats?: number;
1120
- dashLength?: number;
1121
- squeeze?: boolean;
1122
- squeezeMin?: number;
1123
- squeezeMax?: number;
1124
- stroke?: THREE.ColorRepresentation;
1125
- backfaceStroke?: THREE.ColorRepresentation;
1126
- fill?: THREE.ColorRepresentation;
1127
- }
1128
- declare const WireframeMaterial$1: _react_three_fiber.ConstructorRepresentation<THREE.ShaderMaterial & {
1129
- strokeOpacity: number;
1130
- fillOpacity: number;
1131
- fillMix: number;
1132
- thickness: number;
1133
- colorBackfaces: boolean;
1134
- dashInvert: boolean;
1135
- dash: boolean;
1136
- dashRepeats: number;
1137
- dashLength: number;
1138
- squeeze: boolean;
1139
- squeezeMin: number;
1140
- squeezeMax: number;
1141
- stroke: THREE.Color;
1142
- backfaceStroke: THREE.Color;
1143
- fill: THREE.Color;
1144
- }> & {
1145
- key: string;
1146
- };
1147
-
1148
- declare module '@react-three/fiber' {
1149
- interface ThreeElements {
1150
- meshWireframeMaterial: ThreeElement<typeof WireframeMaterial$1>;
1151
- }
1152
- }
1153
- interface WireframeProps {
1154
- geometry?: THREE.BufferGeometry | React.RefObject<THREE.BufferGeometry>;
1155
- simplify?: boolean;
1156
- }
1157
- declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProps & WireframeMaterialProps$1): React.JSX.Element;
1158
-
1159
1157
  type GizmoHelperContext = {
1160
1158
  tweenCamera: (direction: Vector3$1) => void;
1161
1159
  };
@@ -1202,6 +1200,17 @@ type OnDragStartProps = {
1202
1200
  origin: THREE.Vector3;
1203
1201
  directions: THREE.Vector3[];
1204
1202
  };
1203
+ type OnDragProps = {
1204
+ local: THREE.Matrix4;
1205
+ deltaLocal: THREE.Matrix4;
1206
+ world: THREE.Matrix4;
1207
+ deltaWorld: THREE.Matrix4;
1208
+ };
1209
+ type OnHoverProps = {
1210
+ component: 'Arrow' | 'Slider' | 'Rotator' | 'Sphere';
1211
+ axis: 0 | 1 | 2;
1212
+ hovering: boolean;
1213
+ };
1205
1214
 
1206
1215
  type PivotControlsProps = {
1207
1216
  enabled?: boolean;
@@ -1211,6 +1220,7 @@ type PivotControlsProps = {
1211
1220
  offset?: [number, number, number];
1212
1221
  rotation?: [number, number, number];
1213
1222
  matrix?: THREE.Matrix4;
1223
+ object?: THREE.Object3D | React.MutableRefObject<THREE.Object3D>;
1214
1224
  anchor?: [number, number, number];
1215
1225
  autoTransform?: boolean;
1216
1226
  activeAxes?: [boolean, boolean, boolean];
@@ -1226,8 +1236,9 @@ type PivotControlsProps = {
1226
1236
  annotations?: boolean;
1227
1237
  annotationsClass?: string;
1228
1238
  onDragStart?: (props: OnDragStartProps) => void;
1229
- onDrag?: (l: THREE.Matrix4, deltaL: THREE.Matrix4, w: THREE.Matrix4, deltaW: THREE.Matrix4) => void;
1230
- onDragEnd?: () => void;
1239
+ onDrag?: (props: OnDragProps) => void;
1240
+ onDragEnd?: (props: OnDragProps) => void;
1241
+ onHover?: (props: OnHoverProps) => void;
1231
1242
  depthTest?: boolean;
1232
1243
  renderOrder?: number;
1233
1244
  opacity?: number;
@@ -1269,8 +1280,8 @@ type HelperType = Object3D & {
1269
1280
  dispose: () => void;
1270
1281
  };
1271
1282
  type HelperConstructor = new (...args: any[]) => any;
1272
- type HelperArgs<T> = T extends [infer _, ...infer R] ? R : never;
1273
- declare function useHelper<T extends HelperConstructor>(object3D: React.RefObject<Object3D> | Falsey, helperConstructor: T, ...args: HelperArgs<ConstructorParameters<T>>): React.RefObject<HelperType | null>;
1283
+ type HelperArgs<T> = T extends [infer _, ...infer R] ? R : [];
1284
+ declare function useHelper<T extends HelperConstructor>(object3D: React.RefObject<Object3D | null> | Falsey, helperConstructor: T, ...args: HelperArgs<ConstructorParameters<T>>): React.RefObject<HelperType | null>;
1274
1285
  type HelperProps<T extends HelperConstructor> = {
1275
1286
  type: T;
1276
1287
  args?: HelperArgs<ConstructorParameters<T>>;
@@ -1313,6 +1324,7 @@ type InstancedAttributeProps = Omit<ThreeElements['instancedBufferAttribute'], '
1313
1324
  defaultValue: any;
1314
1325
  normalized?: boolean;
1315
1326
  usage?: number;
1327
+ type?: 'float' | 'int' | 'uint' | 'short' | 'ushort' | 'byte';
1316
1328
  };
1317
1329
  type InstancedMesh = Omit<THREE.InstancedMesh, 'instanceMatrix' | 'instanceColor'> & {
1318
1330
  instanceMatrix: THREE.InstancedBufferAttribute;
@@ -1326,7 +1338,7 @@ declare class PositionMesh extends THREE.Group {
1326
1338
  get geometry(): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap> | undefined;
1327
1339
  raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
1328
1340
  }
1329
- declare const Instance: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1341
+ declare const Instance: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<PositionMesh>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1330
1342
  context?: React.Context<Api$1>;
1331
1343
  } & React.RefAttributes<unknown>>;
1332
1344
  declare const Instances: ForwardRefComponent<InstancesProps, THREE.InstancedMesh>;
@@ -1335,10 +1347,21 @@ interface MergedProps extends Omit<InstancesProps, 'children'> {
1335
1347
  children: (...instances: [React.FC<InstanceProps> & Record<string, React.FC<InstanceProps>>, ...React.FC<InstanceProps>[]]) => React.ReactNode;
1336
1348
  }
1337
1349
  declare const Merged: ForwardRefComponent<MergedProps, THREE.Group>;
1338
- declare function createInstances<T = InstanceProps>(): readonly [React.ForwardRefExoticComponent<Omit<InstancesProps, "ref"> & React.RefAttributes<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.InstancedMeshEventMap>>>, React.ForwardRefExoticComponent<React.PropsWithoutRef<T & Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1350
+ declare function createInstances<T = InstanceProps>(): readonly [React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>, _react_three_fiber.MathProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>> & _react_three_fiber.ReactProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>>>>, Omit<_react_three_fiber.InstanceProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>, typeof THREE.InstancedMesh>, "object">>>, "ref" | "args"> & {
1351
+ context?: React.Context<Api$1>;
1352
+ range?: number;
1353
+ limit?: number;
1354
+ frames?: number;
1355
+ } & React.RefAttributes<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>>>, React.ForwardRefExoticComponent<React.PropsWithoutRef<T & Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<PositionMesh>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1339
1356
  context?: React.Context<Api$1>;
1340
1357
  }> & React.RefAttributes<PositionMesh & T>>];
1341
- declare const InstancedAttribute: React.ForwardRefExoticComponent<Omit<InstancedAttributeProps, "ref"> & React.RefAttributes<THREE.InstancedBufferAttribute>>;
1358
+ declare const InstancedAttribute: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.InstancedBufferAttribute, _react_three_fiber.MathProps<THREE.InstancedBufferAttribute> & _react_three_fiber.ReactProps<THREE.InstancedBufferAttribute> & _react_three_fiber.NodeProps<THREE.InstancedBufferAttribute>>>, Omit<_react_three_fiber.InstanceProps<THREE.InstancedBufferAttribute, typeof THREE.InstancedBufferAttribute>, "object">>>, "ref" | "args"> & {
1359
+ name: string;
1360
+ defaultValue: any;
1361
+ normalized?: boolean;
1362
+ usage?: number;
1363
+ type?: "float" | "int" | "uint" | "short" | "ushort" | "byte";
1364
+ } & React.RefAttributes<THREE.InstancedBufferAttribute>>;
1342
1365
 
1343
1366
  type Size = {
1344
1367
  w: number;
@@ -1442,7 +1465,40 @@ type SpriteAnimatorState = {
1442
1465
  ref: React.Ref<THREE.Group>;
1443
1466
  };
1444
1467
  declare function useSpriteAnimator(): SpriteAnimatorState | null;
1445
- declare const SpriteAnimator: React.ForwardRefExoticComponent<Omit<SpriteAnimatorProps, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1468
+ declare const SpriteAnimator: React.ForwardRefExoticComponent<{
1469
+ startFrame?: number;
1470
+ endFrame?: number;
1471
+ fps?: number;
1472
+ frameName?: string;
1473
+ textureDataURL?: string;
1474
+ textureImageURL?: string;
1475
+ loop?: boolean;
1476
+ numberOfFrames?: number;
1477
+ autoPlay?: boolean;
1478
+ animationNames?: Array<string>;
1479
+ onStart?: (data: AnimationEventData) => void;
1480
+ onEnd?: (data: AnimationEventData) => void;
1481
+ onLoopEnd?: (data: AnimationEventData) => void;
1482
+ onFrame?: (data: AnimationEventData) => void;
1483
+ play?: boolean;
1484
+ pause?: boolean;
1485
+ flipX?: boolean;
1486
+ alphaTest?: number;
1487
+ asSprite?: boolean;
1488
+ offset?: number;
1489
+ playBackwards?: boolean;
1490
+ resetOnEnd?: boolean;
1491
+ instanceItems?: Vector3[];
1492
+ maxItems?: number;
1493
+ spriteDataset?: {
1494
+ spriteTexture: THREE.Texture;
1495
+ spriteData: SpriteData | null;
1496
+ aspect: Vector3;
1497
+ } | null;
1498
+ canvasRenderingContext2DSettings?: CanvasRenderingContext2DSettings;
1499
+ roundFramePosition?: boolean;
1500
+ meshProps?: CommonMeshProps;
1501
+ } & Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.Group<THREE.Object3DEventMap>, _react_three_fiber.MathProps<THREE.Group<THREE.Object3DEventMap>> & _react_three_fiber.ReactProps<THREE.Group<THREE.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<THREE.Group<THREE.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<THREE.Group<THREE.Object3DEventMap>, typeof THREE.Group>, "object">>>, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1446
1502
 
1447
1503
  type Api<T extends AnimationClip> = {
1448
1504
  ref: React.RefObject<Object3D | undefined | null>;
@@ -1528,7 +1584,7 @@ declare const Svg: ForwardRefComponent<SvgProps, Object3D>;
1528
1584
  declare function useDepthBuffer({ size, frames }?: {
1529
1585
  size?: number;
1530
1586
  frames?: number;
1531
- }): DepthTexture | null;
1587
+ }): DepthTexture<three.DepthTextureImageData> | null;
1532
1588
 
1533
1589
  interface CubeTextureOptions {
1534
1590
  path: string;
@@ -1627,33 +1683,52 @@ declare function Fbx({ path, ...props }: {
1627
1683
  type Path = string | string[];
1628
1684
  type UseDraco = boolean | string;
1629
1685
  type UseMeshopt = boolean;
1630
- type ExtendLoader = (loader: GLTFLoader) => void;
1631
- declare const useGLTF: {
1632
- <T extends Path>(path: T, useDraco?: UseDraco, useMeshopt?: UseMeshopt, extendLoader?: ExtendLoader): T extends any[] ? (GLTF & ObjectMap)[] : GLTF & ObjectMap;
1633
- preload(path: Path, useDraco?: UseDraco, useMeshopt?: UseMeshopt, extendLoader?: ExtendLoader): void;
1634
- clear(path: Path): void;
1635
- setDecoderPath(path: string): void;
1636
- };
1686
+ type UseKTX2 = boolean | string;
1687
+ type ExtendLoader$1 = (loader: GLTFLoader) => void;
1688
+ interface UseGLTFOptions {
1689
+ draco?: UseDraco;
1690
+ meshopt?: UseMeshopt;
1691
+ ktx2?: UseKTX2;
1692
+ extendLoader?: ExtendLoader$1;
1693
+ }
1694
+ declare function useGLTF<T extends Path>(path: T, optionsOrDraco?: UseGLTFOptions | UseDraco, useMeshoptArg?: UseMeshopt, useKTX2Arg?: UseKTX2, extendLoaderArg?: ExtendLoader$1): T extends any[] ? (GLTF & ObjectMap)[] : GLTF & ObjectMap;
1695
+ declare namespace useGLTF {
1696
+ var preload: (path: Path, optionsOrDraco?: UseGLTFOptions | UseDraco, useMeshoptArg?: UseMeshopt, useKTX2Arg?: UseKTX2, extendLoaderArg?: ExtendLoader$1) => void;
1697
+ var clear: (path: Path) => void;
1698
+ var setDecoderPath: (path: string) => void;
1699
+ var setKTX2TranscoderPath: (path: string) => void;
1700
+ }
1637
1701
  type GltfProps = Omit<CloneProps, 'object'> & {
1638
1702
  src: string;
1639
1703
  useDraco?: UseDraco;
1640
1704
  useMeshOpt?: UseMeshopt;
1641
- extendLoader?: ExtendLoader;
1705
+ extendLoader?: ExtendLoader$1;
1706
+ options?: UseGLTFOptions;
1642
1707
  };
1643
- declare const Gltf: React.ForwardRefExoticComponent<Omit<GltfProps, "ref"> & React.RefAttributes<three.Group<three.Object3DEventMap>>>;
1708
+ declare const Gltf: React.ForwardRefExoticComponent<Omit<CloneProps, "object"> & {
1709
+ src: string;
1710
+ useDraco?: UseDraco;
1711
+ useMeshOpt?: UseMeshopt;
1712
+ extendLoader?: ExtendLoader$1;
1713
+ options?: UseGLTFOptions;
1714
+ } & React.RefAttributes<three.Group<three.Object3DEventMap>>>;
1644
1715
 
1645
- declare function useKTX2<Url extends string[] | string | Record<string, string>>(input: Url, basisPath?: string): Url extends any[] ? Texture$1[] : Url extends object ? {
1716
+ type ExtendLoader = (loader: KTX2Loader) => void;
1717
+ declare function useKTX2<Url extends string[] | string | Record<string, string>>(input: Url, basisPath?: boolean | string, extendLoader?: ExtendLoader): Url extends any[] ? Texture$1[] : Url extends object ? {
1646
1718
  [key in keyof Url]: Texture$1;
1647
1719
  } : Texture$1;
1648
1720
  declare namespace useKTX2 {
1649
- var preload: (url: string extends any[] ? string[] : string, basisPath?: string) => void;
1721
+ var preload: (url: string | string[], basisPath?: boolean | string, extendLoader?: ExtendLoader) => void;
1650
1722
  var clear: (input: string | string[]) => void;
1723
+ var setTranscoderPath: (path: string) => void;
1651
1724
  }
1652
- declare const Ktx2: ({ children, input, basisPath, }: {
1725
+ type Ktx2Props = {
1653
1726
  children?: (texture: ReturnType<typeof useKTX2>) => React.ReactNode;
1654
1727
  input: Parameters<typeof useKTX2>[0];
1655
1728
  basisPath?: Parameters<typeof useKTX2>[1];
1656
- }) => React.JSX.Element;
1729
+ extendLoader?: ExtendLoader;
1730
+ };
1731
+ declare const Ktx2: ({ children, input, basisPath, extendLoader }: Ktx2Props) => React.JSX.Element;
1657
1732
 
1658
1733
  type Data = {
1659
1734
  errors: string[];
@@ -1684,6 +1759,13 @@ declare const Texture: ({ children, input, onLoad, }: {
1684
1759
  onLoad?: Parameters<typeof useTexture>[1];
1685
1760
  }) => React.JSX.Element;
1686
1761
 
1762
+ declare const useVariants: (model: GLTF, inVariant?: string) => {
1763
+ variants: any;
1764
+ activeVariant: string | null;
1765
+ setVariant: (variantName: string | null) => void;
1766
+ materials: Material$1<three.MaterialEventMap>[];
1767
+ };
1768
+
1687
1769
  type WebcamVideoTextureProps = Omit<VideoTextureProps, 'src'> & {
1688
1770
  constraints?: MediaStreamConstraints;
1689
1771
  };
@@ -1769,7 +1851,7 @@ declare const StatsGl: ForwardRefComponent<StatsGlProps, HTMLDivElement>;
1769
1851
  type FBOSettings = {
1770
1852
  depth?: boolean;
1771
1853
  } & RenderTargetOptions;
1772
- declare function useFBO(width?: number | FBOSettings, height?: number, settings?: FBOSettings): THREE.WebGLRenderTarget<THREE.Texture<unknown>>;
1854
+ declare function useFBO(width?: number | FBOSettings, height?: number, settings?: FBOSettings): THREE.WebGLRenderTarget<THREE.Texture<unknown, THREE.TextureEventMap>>;
1773
1855
  type UseFBOParams = Parameters<typeof useFBO>;
1774
1856
  type FboProps = {
1775
1857
  children?: (target: Fbo) => React.ReactNode;
@@ -1783,7 +1865,7 @@ declare const Fbo: React.ForwardRefExoticComponent<{
1783
1865
  height?: UseFBOParams[1];
1784
1866
  } & {
1785
1867
  depth?: boolean;
1786
- } & THREE.RenderTargetOptions & React.RefAttributes<THREE.WebGLRenderTarget<THREE.Texture<unknown>>>>;
1868
+ } & THREE.RenderTargetOptions & React.RefAttributes<THREE.WebGLRenderTarget<THREE.Texture<unknown, THREE.TextureEventMap>>>>;
1787
1869
 
1788
1870
  type FisheyeProps = ThreeElements['mesh'] & {
1789
1871
  zoom?: number;
@@ -1803,7 +1885,7 @@ declare const Mask: ForwardRefComponent<MaskProps, THREE.Mesh>;
1803
1885
  declare function useMask(id: number, inverse?: boolean): {
1804
1886
  stencilWrite: boolean;
1805
1887
  stencilRef: number;
1806
- stencilFunc: 517 | 514;
1888
+ stencilFunc: 514 | 517;
1807
1889
  stencilFail: 7680;
1808
1890
  stencilZFail: 7680;
1809
1891
  stencilZPass: 7680;
@@ -1956,7 +2038,7 @@ type EnvironmentLoaderProps = {
1956
2038
  extensions?: (loader: Loader$1) => void;
1957
2039
  colorSpace?: ColorSpace;
1958
2040
  };
1959
- declare function useEnvironment({ files, path, preset, colorSpace, extensions, }?: Partial<EnvironmentLoaderProps>): Texture$1<unknown> | CubeTexture$1<unknown>;
2041
+ declare function useEnvironment({ files, path, preset, colorSpace, extensions, }?: Partial<EnvironmentLoaderProps>): Texture$1<unknown, three.TextureEventMap> | CubeTexture$1<unknown>;
1960
2042
  declare namespace useEnvironment {
1961
2043
  var preload: (preloadOptions?: EnvironmentLoaderPreloadOptions) => void;
1962
2044
  var clear: (clearOptions?: EnvironmentLoaderClearOptions) => void;
@@ -2027,7 +2109,13 @@ type ResizeProps = Omit<ThreeElements['group'], 'ref'> & {
2027
2109
  box3?: THREE.Box3;
2028
2110
  precise?: boolean;
2029
2111
  };
2030
- declare const Resize: React.ForwardRefExoticComponent<Omit<ResizeProps, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
2112
+ declare const Resize: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.Group<THREE.Object3DEventMap>, _react_three_fiber.MathProps<THREE.Group<THREE.Object3DEventMap>> & _react_three_fiber.ReactProps<THREE.Group<THREE.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<THREE.Group<THREE.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<THREE.Group<THREE.Object3DEventMap>, typeof THREE.Group>, "object">>>, "ref"> & {
2113
+ width?: boolean;
2114
+ height?: boolean;
2115
+ depth?: boolean;
2116
+ box3?: THREE.Box3;
2117
+ precise?: boolean;
2118
+ } & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
2031
2119
 
2032
2120
  type ScreenSizerProps = Omit<ThreeElements['object3D'], 'ref'> & {
2033
2121
  scale?: number;
@@ -2132,6 +2220,7 @@ interface HtmlProps extends Omit<Assign<React.HTMLAttributes<HTMLDivElement>, Th
2132
2220
  geometry?: React.ReactNode;
2133
2221
  castShadow?: boolean;
2134
2222
  receiveShadow?: boolean;
2223
+ pixelPerfect?: boolean;
2135
2224
  }
2136
2225
  declare const Html: ForwardRefComponent<HtmlProps, HTMLDivElement>;
2137
2226
 
@@ -2158,36 +2247,116 @@ type SelectProps = Omit<ThreeElements['group'], 'ref'> & {
2158
2247
  declare function Select({ box, multiple, children, onChange, onChangePointerUp, border, backgroundColor, filter: customFilter, ...props }: SelectProps): React.JSX.Element;
2159
2248
  declare function useSelect(): THREE.Object3D[];
2160
2249
 
2161
- declare function BakeShadows(): null;
2162
-
2163
- declare class ConvolutionMaterial$1 extends THREE.ShaderMaterial {
2164
- readonly kernel: Float32Array;
2165
- constructor(texelSize?: THREE.Vector2);
2166
- setTexelSize(x: number, y: number): void;
2167
- setResolution(resolution: THREE.Vector2): void;
2250
+ interface WireframeMaterialProps {
2251
+ fillOpacity?: number;
2252
+ fillMix?: number;
2253
+ strokeOpacity?: number;
2254
+ thickness?: number;
2255
+ colorBackfaces?: boolean;
2256
+ dashInvert?: boolean;
2257
+ dash?: boolean;
2258
+ dashRepeats?: number;
2259
+ dashLength?: number;
2260
+ squeeze?: boolean;
2261
+ squeezeMin?: number;
2262
+ squeezeMax?: number;
2263
+ stroke?: THREE.ColorRepresentation;
2264
+ backfaceStroke?: THREE.ColorRepresentation;
2265
+ fill?: THREE.ColorRepresentation;
2168
2266
  }
2169
-
2170
- interface BlurPassProps {
2171
- gl: WebGLRenderer;
2172
- resolution: number;
2173
- width?: number;
2174
- height?: number;
2175
- minDepthThreshold?: number;
2176
- maxDepthThreshold?: number;
2177
- depthScale?: number;
2178
- depthToBlurRatioBias?: number;
2267
+ type WireframeMaterialType = Omit<ThreeElements['meshBasicMaterial'], 'args'> & WireframeMaterialProps;
2268
+ declare module '@react-three/fiber' {
2269
+ interface ThreeElements {
2270
+ wireframeMaterial: WireframeMaterialType;
2271
+ }
2179
2272
  }
2180
- declare class BlurPass {
2181
- readonly renderTargetA: WebGLRenderTarget;
2182
- readonly renderTargetB: WebGLRenderTarget;
2183
- readonly convolutionMaterial: ConvolutionMaterial$1;
2184
- readonly scene: Scene;
2185
- readonly camera: Camera;
2186
- readonly screen: Mesh;
2187
- renderToScreen: boolean;
2188
- constructor({ gl, resolution, width, height, minDepthThreshold, maxDepthThreshold, depthScale, depthToBlurRatioBias, }: BlurPassProps);
2189
- render(renderer: any, inputBuffer: any, outputBuffer: any): void;
2273
+ declare class WireframeMaterialImpl extends MeshBasicNodeMaterial {
2274
+ private _strokeOpacity;
2275
+ private _fillOpacity;
2276
+ private _fillMix;
2277
+ private _thickness;
2278
+ private _colorBackfaces;
2279
+ private _dashInvert;
2280
+ private _dash;
2281
+ private _dashRepeats;
2282
+ private _dashLength;
2283
+ private _squeeze;
2284
+ private _squeezeMin;
2285
+ private _squeezeMax;
2286
+ private _stroke;
2287
+ private _backfaceStroke;
2288
+ private _fill;
2289
+ readonly isWireframeMaterial = true;
2290
+ constructor();
2291
+ private _buildWireframeShader;
2292
+ get strokeOpacity(): number;
2293
+ set strokeOpacity(v: number);
2294
+ get fillOpacity(): number;
2295
+ set fillOpacity(v: number);
2296
+ get fillMix(): number;
2297
+ set fillMix(v: number);
2298
+ get thickness(): number;
2299
+ set thickness(v: number);
2300
+ get colorBackfaces(): boolean;
2301
+ set colorBackfaces(v: boolean);
2302
+ get dashInvert(): boolean;
2303
+ set dashInvert(v: boolean);
2304
+ get dash(): boolean;
2305
+ set dash(v: boolean);
2306
+ get dashRepeats(): number;
2307
+ set dashRepeats(v: number);
2308
+ get dashLength(): number;
2309
+ set dashLength(v: number);
2310
+ get squeeze(): boolean;
2311
+ set squeeze(v: boolean);
2312
+ get squeezeMin(): number;
2313
+ set squeezeMin(v: number);
2314
+ get squeezeMax(): number;
2315
+ set squeezeMax(v: number);
2316
+ get stroke(): THREE.Color;
2317
+ set stroke(v: THREE.Color | THREE.ColorRepresentation);
2318
+ get backfaceStroke(): THREE.Color;
2319
+ set backfaceStroke(v: THREE.Color | THREE.ColorRepresentation);
2320
+ get fill(): THREE.Color;
2321
+ set fill(v: THREE.Color | THREE.ColorRepresentation);
2190
2322
  }
2323
+ declare function setBarycentricCoordinates(geometry: THREE.BufferGeometry): THREE.BufferGeometry;
2324
+ declare const WireframeMaterial: ForwardRefComponent<WireframeMaterialProps, WireframeMaterialImpl>;
2325
+ declare const WireframeMaterialShaders: {
2326
+ uniforms: {
2327
+ strokeOpacity: number;
2328
+ fillOpacity: number;
2329
+ fillMix: number;
2330
+ thickness: number;
2331
+ colorBackfaces: boolean;
2332
+ dashInvert: boolean;
2333
+ dash: boolean;
2334
+ dashRepeats: number;
2335
+ dashLength: number;
2336
+ squeeze: boolean;
2337
+ squeezeMin: number;
2338
+ squeezeMax: number;
2339
+ stroke: THREE.Color;
2340
+ backfaceStroke: THREE.Color;
2341
+ fill: THREE.Color;
2342
+ };
2343
+ vertex: string;
2344
+ fragment: string;
2345
+ };
2346
+ declare function setWireframeOverride(_material: THREE.Material, _uniforms: {
2347
+ [key: string]: THREE.Uniform<any>;
2348
+ }): void;
2349
+ declare function useWireframeUniforms(_uniforms: {
2350
+ [key: string]: THREE.Uniform<any>;
2351
+ }, _props: WireframeMaterialProps): void;
2352
+
2353
+ interface WireframeProps {
2354
+ geometry?: THREE.BufferGeometry | React.RefObject<THREE.BufferGeometry>;
2355
+ simplify?: boolean;
2356
+ }
2357
+ declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProps & WireframeMaterialProps): React.JSX.Element;
2358
+
2359
+ declare function BakeShadows(): null;
2191
2360
 
2192
2361
  declare class ConvolutionMaterial extends MeshBasicNodeMaterial {
2193
2362
  private _inputBuffer;
@@ -2253,7 +2422,7 @@ type GradientTextureProps = {
2253
2422
  type?: GradientType;
2254
2423
  innerCircleRadius?: number;
2255
2424
  outerCircleRadius?: number | 'auto';
2256
- } & Omit<ThreeElements['canvasTexture'], 'args'>;
2425
+ } & Omit<ThreeElements['canvasTexture'], 'args' | 'type'>;
2257
2426
  declare function GradientTexture({ stops, colors, size, width, type, innerCircleRadius, outerCircleRadius, ...props }: GradientTextureProps): React.JSX.Element;
2258
2427
 
2259
2428
  type ImageProps = Omit<ThreeElements['mesh'], 'scale'> & {
@@ -2276,13 +2445,6 @@ type ImageProps = Omit<ThreeElements['mesh'], 'scale'> & {
2276
2445
  });
2277
2446
  declare const Image: ForwardRefComponent<ImageProps, THREE.Mesh>;
2278
2447
 
2279
- type SoftShadowsProps = {
2280
- size?: number;
2281
- samples?: number;
2282
- focus?: number;
2283
- };
2284
- declare function SoftShadows({ focus, samples, size }: SoftShadowsProps): null;
2285
-
2286
2448
  declare class SpotLightMaterial extends MeshBasicNodeMaterial {
2287
2449
  private _depth;
2288
2450
  private _opacity;
@@ -2315,108 +2477,9 @@ declare class SpotLightMaterial extends MeshBasicNodeMaterial {
2315
2477
  set resolution(v: THREE.Vector2);
2316
2478
  }
2317
2479
 
2318
- interface WireframeMaterialProps {
2319
- fillOpacity?: number;
2320
- fillMix?: number;
2321
- strokeOpacity?: number;
2322
- thickness?: number;
2323
- colorBackfaces?: boolean;
2324
- dashInvert?: boolean;
2325
- dash?: boolean;
2326
- dashRepeats?: number;
2327
- dashLength?: number;
2328
- squeeze?: boolean;
2329
- squeezeMin?: number;
2330
- squeezeMax?: number;
2331
- stroke?: THREE.ColorRepresentation;
2332
- backfaceStroke?: THREE.ColorRepresentation;
2333
- fill?: THREE.ColorRepresentation;
2334
- }
2335
- type WireframeMaterialType = Omit<ThreeElements['meshBasicMaterial'], 'args'> & WireframeMaterialProps;
2336
- declare module '@react-three/fiber' {
2337
- interface ThreeElements {
2338
- wireframeMaterial: WireframeMaterialType;
2339
- }
2340
- }
2341
- declare class WireframeMaterialImpl extends MeshBasicNodeMaterial {
2342
- private _strokeOpacity;
2343
- private _fillOpacity;
2344
- private _fillMix;
2345
- private _thickness;
2346
- private _colorBackfaces;
2347
- private _dashInvert;
2348
- private _dash;
2349
- private _dashRepeats;
2350
- private _dashLength;
2351
- private _squeeze;
2352
- private _squeezeMin;
2353
- private _squeezeMax;
2354
- private _stroke;
2355
- private _backfaceStroke;
2356
- private _fill;
2357
- readonly isWireframeMaterial = true;
2358
- constructor();
2359
- private _buildWireframeShader;
2360
- get strokeOpacity(): number;
2361
- set strokeOpacity(v: number);
2362
- get fillOpacity(): number;
2363
- set fillOpacity(v: number);
2364
- get fillMix(): number;
2365
- set fillMix(v: number);
2366
- get thickness(): number;
2367
- set thickness(v: number);
2368
- get colorBackfaces(): boolean;
2369
- set colorBackfaces(v: boolean);
2370
- get dashInvert(): boolean;
2371
- set dashInvert(v: boolean);
2372
- get dash(): boolean;
2373
- set dash(v: boolean);
2374
- get dashRepeats(): number;
2375
- set dashRepeats(v: number);
2376
- get dashLength(): number;
2377
- set dashLength(v: number);
2378
- get squeeze(): boolean;
2379
- set squeeze(v: boolean);
2380
- get squeezeMin(): number;
2381
- set squeezeMin(v: number);
2382
- get squeezeMax(): number;
2383
- set squeezeMax(v: number);
2384
- get stroke(): THREE.Color;
2385
- set stroke(v: THREE.Color | THREE.ColorRepresentation);
2386
- get backfaceStroke(): THREE.Color;
2387
- set backfaceStroke(v: THREE.Color | THREE.ColorRepresentation);
2388
- get fill(): THREE.Color;
2389
- set fill(v: THREE.Color | THREE.ColorRepresentation);
2390
- }
2391
- declare function setBarycentricCoordinates(geometry: THREE.BufferGeometry): THREE.BufferGeometry;
2392
- declare const WireframeMaterial: ForwardRefComponent<WireframeMaterialProps, WireframeMaterialImpl>;
2393
- declare const WireframeMaterialShaders: {
2394
- uniforms: {
2395
- strokeOpacity: number;
2396
- fillOpacity: number;
2397
- fillMix: number;
2398
- thickness: number;
2399
- colorBackfaces: boolean;
2400
- dashInvert: boolean;
2401
- dash: boolean;
2402
- dashRepeats: number;
2403
- dashLength: number;
2404
- squeeze: boolean;
2405
- squeezeMin: number;
2406
- squeezeMax: number;
2407
- stroke: THREE.Color;
2408
- backfaceStroke: THREE.Color;
2409
- fill: THREE.Color;
2410
- };
2411
- vertex: string;
2412
- fragment: string;
2413
- };
2414
- declare function setWireframeOverride(_material: THREE.Material, _uniforms: {
2415
- [key: string]: THREE.Uniform<any>;
2416
- }): void;
2417
- declare function useWireframeUniforms(_uniforms: {
2418
- [key: string]: THREE.Uniform<any>;
2419
- }, _props: WireframeMaterialProps): void;
2480
+ declare const HtmlMaterial: ({ transform }: {
2481
+ transform: boolean;
2482
+ }) => React.JSX.Element;
2420
2483
 
2421
2484
  declare class StarfieldMaterial extends SpriteNodeMaterial {
2422
2485
  private _time;
@@ -2465,6 +2528,27 @@ type GridProps = Omit<ThreeElements['mesh'], 'ref' | 'args'> & GridMaterialType
2465
2528
  };
2466
2529
  declare const Grid: ForwardRefComponent<GridProps, THREE.Mesh>;
2467
2530
 
2531
+ type PCSSShadowNodeOptions = {
2532
+ size?: number;
2533
+ samples?: number;
2534
+ focus?: number;
2535
+ };
2536
+ declare class PCSSShadowNode extends ShadowNode {
2537
+ size: number;
2538
+ samples: number;
2539
+ focus: number;
2540
+ constructor(light: Light, { size, samples, focus }?: PCSSShadowNodeOptions);
2541
+ setupRenderTarget(shadow: any, builder: any): any;
2542
+ getShadowFilterFn(_type: number): ShaderCallable<THREE.Node>;
2543
+ }
2544
+
2545
+ type SoftShadowsProps = {
2546
+ size?: number;
2547
+ samples?: number;
2548
+ focus?: number;
2549
+ };
2550
+ declare function SoftShadows({ size, samples, focus }: SoftShadowsProps): null;
2551
+
2468
2552
  type SpotLightProps = Omit<ThreeElements['spotLight'], 'ref'> & {
2469
2553
  depthBuffer?: Texture$1;
2470
2554
  attenuation?: number;
@@ -2510,5 +2594,5 @@ type SparklesProps = Omit<ThreeElements['mesh'], 'ref'> & {
2510
2594
  };
2511
2595
  declare const Sparkles: ForwardRefComponent<SparklesProps, THREE.InstancedMesh>;
2512
2596
 
2513
- export { AccumulativeShadows, AdaptiveDpr, AdaptiveEvents, ArcballControls, BBAnchor, Backdrop, BakeShadows, Billboard, BlurPass, Bounds, Box, CameraShake, Capsule, CatmullRomLine, Caustics, CausticsMaterial, CausticsNormalMaterial, CausticsProjectionMaterial, Center, Circle, Clone, Cloud, CloudInstance, Clouds, ComputedAttribute, Cone, ContactShadows, ConvolutionMaterial, CubeCamera, CubeTexture, CubicBezierLine, CurveModifier, CycleRaycast, Cylinder, Decal, Detailed, DetectGPU, DeviceOrientationControls, DiscardMaterial, Dodecahedron, DragControls, Edges, Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, Example, Extrude, FakeCloudMaterial, Fbo, Fbx, FirstPersonControls, Fisheye, Float, FlyControls, GizmoHelper, GizmoViewcube, GizmoViewport, Gltf, GradientTexture, GradientType, Grid, Helper, Html, Hud, Icosahedron, Image, Instance, InstancedAttribute, Instances, IsObject, KeyboardControls, Ktx2, Lathe, Lightformer, Line, Loader, MapControls, Mask, MatcapTexture, Merged, MeshDistortMaterial, MeshPortalMaterial, MeshReflectorMaterial, MeshReflectorMaterial$1 as MeshReflectorMaterialImpl, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, MotionPathControls, NormalTexture, Octahedron, OrbitControls, OrthographicCamera, Outlines, PerformanceMonitor, PerspectiveCamera, PivotControls, Plane, Point, PointMaterial, PointMaterialImpl, PointerLockControls, Points, PointsBuffer, Polyhedron, PositionMesh, PositionPoint, PositionalAudio, Preload, PresentationControls, Progress, QuadraticBezierLine, RandomizedLight, RenderCubeTexture, RenderTexture, Resize, Ring, RoundedBox, RoundedBoxGeometry, Sampler, ScreenQuad, ScreenSizer, ScreenSpace, ScreenVideoTexture, Scroll, ScrollControls, Segment, SegmentObject, Segments, Select, Shadow, Shape, Sky, SoftShadows, Sparkles, SparklesMaterial, Sphere, SpotLight, SpotLightMaterial, SpriteAnimator, Stage, StarfieldMaterial, Stars, Stats, StatsGl, Svg, Tetrahedron, Text3D, Texture, Torus, TorusKnot, TrackballControls, Trail, TrailTexture, TransformControls, Tube, VideoTexture, View, WebcamVideoTexture, Wireframe, WireframeMaterial, WireframeMaterialShaders, accumulativeContext, calcPosFromAngles, checkIfFrameIsEmpty, createInstances, getFirstFrame, meshBounds, presetsObj, setBarycentricCoordinates, setWireframeOverride, useAnimations, useAspect, useBounds, useContextBridge, useCubeCamera, useCubeTexture, useCursor, useCustomRaycast, useDepthBuffer, useDetectGPU, useEnvironment, useFBO, useFBX, useFont, useGLTF, useGizmoContext, useHelper, useIntersect, useKTX2, useKeyboardControls, useMask, useMatcapTexture, useMotion, useNormalTexture, usePerformanceMonitor, useProgress, useScroll, useSelect, useSpriteAnimator, useSpriteLoader, useSurfaceSampler, useTexture, useTrail, useTrailTexture, useVideoTexture, useWireframeUniforms };
2514
- export type { AccumulativeShadowsProps, ArcballControlsProps, Args, BBAnchorProps, BackdropProps, BillboardProps, BlurPassProps, BoundsApi, BoundsProps, CalculatePosition, CameraShakeProps, CatmullRomLineProps, CausticsProps, CenterProps, CloneProps, CloudProps, CloudsProps, ComputedAttributeProps, ContactShadowsProps, ContainerProps, CubeCameraOptions, CubeCameraProps, CubeTextureProps, CubicBezierLineProps, CurveModifierProps, CurveModifierRef, CycleRaycastProps, DecalProps, DetailedProps, DetectGPUProps, DeviceOrientationControlsProps, DragControlsProps, EdgesProps, EnvironmentLoaderProps, EnvironmentProps, ExampleApi, ExampleProps, FboProps, FirstPersonControlsProps, FisheyeProps, FloatProps, FlyControlsProps, FontData, FrameData, GizmoHelperProps, GltfProps, Glyph, GradientTextureProps, GridMaterialType, GridProps, HelperProps, HtmlProps, HudProps, ImageProps, InstanceProps, InstancedAttributeProps, InstancesProps, KeyboardControlsEntry, KeyboardControlsProps, LightProps, LineProps, LoaderOptions, MapControlsProps, MaskProps, MergedProps, MeshDistortMaterialProps, MeshReflectorMaterialProps, MeshRefractionMaterialProps, MeshRefractionMaterialType, MeshTransmissionMaterialProps, MetaData, MotionPathProps, MotionPathRef, OnCenterCallbackProps, OrbitControlsChangeEvent, OrbitControlsProps, OrthographicCameraProps, OutlinesProps, PerformanceMonitorApi, PerformanceMonitorProps, PerspectiveCameraProps, PivotControlsProps, PointMaterialProps, PointerLockControlsProps, PointsBuffersProps, PointsInstancesProps, PortalProps, PositionalAudioProps, PreloadProps, PresentationControlProps, PresetsType, QuadraticBezierLineProps, QuadraticBezierLineRef, RandomizedLightProps, RenderCubeTextureApi, RenderCubeTextureProps, RenderTextureProps, ResizeProps, RoundedBoxGeometryProps, RoundedBoxProps, SamplerProps, ScreenQuadProps, ScreenSizerProps, ScreenSpaceProps, ScreenVideoTextureProps, ScrollControlsProps, ScrollControlsState, ScrollProps, SegmentProps, SegmentsProps, SelectProps, ShadowProps, ShadowType, ShakeController, ShapeProps, Size, SizeProps, SkyProps, SoftShadowsProps, SparklesProps, SpotLightProps, SpriteAnimatorProps, SpriteData, StageProps, StarsProps, StatsGlProps, StatsProps, SvgProps, Text3DProps, TrackballControlsProps, TrailProps, TrailTextureProps, TransformControlsProps, TransformFn, VideoTextureProps, ViewProps, ViewportProps, WebcamVideoTextureProps, WireframeMaterialProps, WireframeMaterialType, WobbleMaterialProps, useSurfaceSamplerProps };
2597
+ export { AccumulativeShadows, AdaptiveDpr, AdaptiveEvents, ArcballControls, BBAnchor, Backdrop, BakeShadows, Billboard, Bounds, Box, CameraShake, Capsule, CatmullRomLine, Caustics, CausticsMaterial, CausticsNormalMaterial, CausticsProjectionMaterial, Center, Circle, Clone, Cloud, CloudInstance, Clouds, ComputedAttribute, Cone, ContactShadows, ConvolutionMaterial, CubeCamera, CubeTexture, CubicBezierLine, CurveModifier, CycleRaycast, Cylinder, Decal, Detailed, DetectGPU, DeviceOrientationControls, DiscardMaterial, Dodecahedron, DragControls, Edges, Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, Example, Extrude, FakeCloudMaterial, Fbo, Fbx, FirstPersonControls, Fisheye, Float, FlyControls, GizmoHelper, GizmoViewcube, GizmoViewport, Gltf, GradientTexture, GradientType, Grid, Helper, Html, HtmlMaterial, Hud, Icosahedron, Image, Instance, InstancedAttribute, Instances, IsObject, KeyboardControls, Ktx2, Lathe, Lightformer, Line, Loader, MapControls, Mask, MatcapTexture, Merged, MeshDistortMaterial, MeshPortalMaterial, MeshReflectorMaterial, MeshReflectorMaterial$1 as MeshReflectorMaterialImpl, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, MotionPathControls, NormalTexture, Octahedron, OrbitControls, OrthographicCamera, Outlines, PCSSShadowNode, PerformanceMonitor, PerspectiveCamera, PivotControls, Plane, Point, PointMaterial, PointMaterialImpl, PointerLockControls, Points, PointsBuffer, Polyhedron, PositionMesh, PositionPoint, PositionalAudio, Preload, PresentationControls, Progress, QuadraticBezierLine, RandomizedLight, RenderCubeTexture, RenderTexture, Resize, Ring, RoundedBox, RoundedBoxGeometry, Sampler, ScreenQuad, ScreenSizer, ScreenSpace, ScreenVideoTexture, Scroll, ScrollControls, Segment, SegmentObject, Segments, Select, Shadow, Shape, Sky, SoftShadows, Sparkles, SparklesMaterial, Sphere, SpotLight, SpotLightMaterial, SpriteAnimator, Stage, StarfieldMaterial, Stars, Stats, StatsGl, Svg, Tetrahedron, Text3D, Texture, Torus, TorusKnot, TrackballControls, Trail, TrailTexture, TransformControls, Tube, VideoTexture, View, WebcamVideoTexture, Wireframe, WireframeMaterial, WireframeMaterialShaders, accumulativeContext, calcPosFromAngles, checkIfFrameIsEmpty, createInstances, getFirstFrame, meshBounds, presetsObj, setBarycentricCoordinates, setWireframeOverride, useAnimations, useAspect, useBounds, useContextBridge, useCubeCamera, useCubeTexture, useCursor, useCustomRaycast, useDepthBuffer, useDetectGPU, useEnvironment, useFBO, useFBX, useFont, useGLTF, useGizmoContext, useHelper, useIntersect, useKTX2, useKeyboardControls, useMask, useMatcapTexture, useMotion, useNormalTexture, usePerformanceMonitor, useProgress, useScroll, useSelect, useSpriteAnimator, useSpriteLoader, useSurfaceSampler, useTexture, useTrail, useTrailTexture, useVariants, useVideoTexture, useWireframeUniforms };
2598
+ export type { AccumulativeShadowsProps, ArcballControlsProps, Args, BBAnchorProps, BackdropProps, BillboardProps, BoundsApi, BoundsProps, CalculatePosition, CameraShakeProps, CatmullRomLineProps, CausticsProps, CenterProps, CloneProps, CloudProps, CloudsProps, ComputedAttributeProps, ContactShadowsProps, ContainerProps, CubeCameraOptions, CubeCameraProps, CubeTextureProps, CubicBezierLineProps, CurveModifierProps, CurveModifierRef, CycleRaycastProps, DecalProps, DetailedProps, DetectGPUProps, DeviceOrientationControlsProps, DragConfig, DragControlsProps, EdgesProps, EdgesRef, EnvironmentLoaderProps, EnvironmentProps, ExampleApi, ExampleProps, FboProps, FirstPersonControlsProps, FisheyeProps, FloatProps, FlyControlsProps, FontData, FrameData, GizmoHelperProps, GltfProps, Glyph, GradientTextureProps, GridMaterialType, GridProps, HelperProps, HtmlProps, HudProps, ImageProps, InstanceProps, InstancedAttributeProps, InstancesProps, KeyboardControlsEntry, KeyboardControlsProps, Ktx2Props, LightProps, LineProps, LoaderOptions, MapControlsProps, MaskProps, MergedProps, MeshDistortMaterialProps, MeshReflectorMaterialProps, MeshRefractionMaterialProps, MeshRefractionMaterialType, MeshTransmissionMaterialProps, MetaData, MotionPathProps, MotionPathRef, OnCenterCallbackProps, OnDragProps, OnDragStartProps, OnHoverProps, OrbitControlsChangeEvent, OrbitControlsProps, OrthographicCameraProps, OutlinesProps, PCSSShadowNodeOptions, PerformanceMonitorApi, PerformanceMonitorProps, PerspectiveCameraProps, PivotControlsProps, PointMaterialProps, PointerLockControlsProps, PointsBuffersProps, PointsInstancesProps, PortalProps, PositionalAudioProps, PreloadProps, PresentationControlProps, PresetsType, QuadraticBezierLineProps, QuadraticBezierLineRef, RandomizedLightProps, RenderCubeTextureApi, RenderCubeTextureProps, RenderTextureProps, ResizeProps, RoundedBoxGeometryProps, RoundedBoxProps, SamplerProps, ScreenQuadProps, ScreenSizerProps, ScreenSpaceProps, ScreenVideoTextureProps, ScrollControlsProps, ScrollControlsState, ScrollProps, SegmentProps, SegmentsProps, SelectProps, ShadowProps, ShadowType, ShakeController, ShapeProps, Size, SizeProps, SkyProps, SoftShadowsProps, SparklesProps, SpotLightProps, SpriteAnimatorProps, SpriteData, StageProps, StarsProps, StatsGlProps, StatsOptions, StatsProps, SvgProps, Text3DProps, TrackballControlsProps, TrailProps, TrailTextureProps, TransformControlsProps, TransformFn, UseGLTFOptions, VideoTextureProps, ViewProps, ViewportProps, WebcamVideoTextureProps, WireframeMaterialProps, WireframeMaterialType, WobbleMaterialProps, useSurfaceSamplerProps };