@react-three/drei 9.121.6-rc.1 → 9.122.0

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.
Files changed (201) hide show
  1. package/core/AccumulativeShadows.d.ts +10 -8
  2. package/core/ArcballControls.d.ts +4 -4
  3. package/core/AsciiRenderer.d.ts +2 -1
  4. package/core/BBAnchor.d.ts +3 -3
  5. package/core/Backdrop.d.ts +1 -2
  6. package/core/Billboard.cjs.js +1 -1
  7. package/core/Billboard.d.ts +2 -3
  8. package/core/Billboard.js +1 -1
  9. package/core/Bounds.d.ts +1 -2
  10. package/core/Bvh.d.ts +2 -3
  11. package/core/CameraControls.d.ts +4 -4
  12. package/core/CatmullRomLine.d.ts +3 -2
  13. package/core/Caustics.d.ts +17 -14
  14. package/core/Center.d.ts +2 -3
  15. package/core/Clone.d.ts +4 -4
  16. package/core/Cloud.cjs.js +1 -1
  17. package/core/Cloud.d.ts +12 -50
  18. package/core/Cloud.js +3 -3
  19. package/core/ComputedAttribute.cjs.js +1 -1
  20. package/core/ComputedAttribute.d.ts +4 -3
  21. package/core/ComputedAttribute.js +1 -1
  22. package/core/ContactShadows.d.ts +2 -3
  23. package/core/CubeCamera.d.ts +3 -3
  24. package/core/CubeTexture.d.ts +6 -5
  25. package/core/CubeTexture.js +7 -2
  26. package/core/CubicBezierLine.d.ts +3 -2
  27. package/core/CurveModifier.d.ts +1 -2
  28. package/core/Decal.d.ts +2 -2
  29. package/core/Detailed.d.ts +3 -3
  30. package/core/DetectGPU.d.ts +2 -1
  31. package/core/DeviceOrientationControls.d.ts +2 -2
  32. package/core/Edges.cjs.js +1 -1
  33. package/core/Edges.d.ts +2 -2
  34. package/core/Edges.js +2 -2
  35. package/core/Effects.cjs.js +1 -1
  36. package/core/Effects.d.ts +13 -9
  37. package/core/Effects.js +3 -3
  38. package/core/Environment.cjs.js +1 -1
  39. package/core/Environment.d.ts +7 -5
  40. package/core/Fbo.d.ts +4 -1
  41. package/core/Fbo.js +2 -0
  42. package/core/Fbx.d.ts +1 -1
  43. package/core/FirstPersonControls.d.ts +2 -2
  44. package/core/Fisheye.d.ts +1 -2
  45. package/core/Float.d.ts +1 -2
  46. package/core/FlyControls.d.ts +2 -2
  47. package/core/GizmoHelper.d.ts +1 -2
  48. package/core/GizmoViewport.d.ts +2 -2
  49. package/core/Gltf.d.ts +5 -9
  50. package/core/GradientTexture.d.ts +4 -4
  51. package/core/GradientTexture.js +2 -0
  52. package/core/Grid.d.ts +7 -6
  53. package/core/Helper.cjs.js +1 -1
  54. package/core/Helper.d.ts +1 -1
  55. package/core/Helper.js +1 -1
  56. package/core/Hud.d.ts +2 -1
  57. package/core/Image.d.ts +8 -6
  58. package/core/Instances.cjs.js +1 -1
  59. package/core/Instances.d.ts +35 -27
  60. package/core/Instances.js +30 -35
  61. package/core/Ktx2.d.ts +1 -1
  62. package/core/Lightformer.d.ts +3 -3
  63. package/core/Line.d.ts +4 -4
  64. package/core/MapControls.d.ts +4 -4
  65. package/core/MarchingCubes.d.ts +6 -6
  66. package/core/Mask.d.ts +3 -3
  67. package/core/MeshDiscardMaterial.d.ts +7 -6
  68. package/core/MeshDistortMaterial.d.ts +17 -15
  69. package/core/MeshPortalMaterial.cjs.js +1 -1
  70. package/core/MeshPortalMaterial.d.ts +17 -14
  71. package/core/MeshPortalMaterial.js +2 -2
  72. package/core/MeshReflectorMaterial.cjs.js +1 -1
  73. package/core/MeshReflectorMaterial.d.ts +22 -9
  74. package/core/MeshReflectorMaterial.js +4 -2
  75. package/core/MeshRefractionMaterial.cjs.js +1 -1
  76. package/core/MeshRefractionMaterial.d.ts +8 -5
  77. package/core/MeshRefractionMaterial.js +2 -2
  78. package/core/MeshTransmissionMaterial.cjs.js +1 -1
  79. package/core/MeshTransmissionMaterial.d.ts +8 -7
  80. package/core/MeshTransmissionMaterial.js +1 -2
  81. package/core/MeshWobbleMaterial.d.ts +17 -15
  82. package/core/MotionPathControls.cjs.js +1 -1
  83. package/core/MotionPathControls.d.ts +11 -18
  84. package/core/MotionPathControls.js +32 -24
  85. package/core/MultiMaterial.cjs.js +1 -1
  86. package/core/MultiMaterial.d.ts +1 -3
  87. package/core/MultiMaterial.js +3 -2
  88. package/core/OrbitControls.d.ts +4 -4
  89. package/core/OrthographicCamera.d.ts +3 -3
  90. package/core/Outlines.cjs.js +1 -1
  91. package/core/Outlines.d.ts +3 -2
  92. package/core/Outlines.js +2 -2
  93. package/core/PerformanceMonitor.d.ts +2 -2
  94. package/core/PerspectiveCamera.d.ts +3 -3
  95. package/core/PointMaterial.d.ts +11 -3
  96. package/core/PointerLockControls.d.ts +2 -2
  97. package/core/Points.cjs.js +1 -1
  98. package/core/Points.d.ts +13 -10
  99. package/core/Points.js +16 -6
  100. package/core/PositionalAudio.d.ts +3 -3
  101. package/core/Preload.d.ts +3 -2
  102. package/core/QuadraticBezierLine.d.ts +7 -5
  103. package/core/Reflector.cjs.js +1 -0
  104. package/core/Reflector.d.ts +30 -0
  105. package/core/Reflector.js +180 -0
  106. package/core/RenderCubeTexture.d.ts +2 -2
  107. package/core/RenderTexture.cjs.js +1 -1
  108. package/core/RenderTexture.d.ts +3 -3
  109. package/core/RenderTexture.js +2 -3
  110. package/core/Resize.d.ts +2 -9
  111. package/core/RoundedBox.d.ts +4 -4
  112. package/core/Sampler.d.ts +4 -4
  113. package/core/ScreenQuad.d.ts +3 -3
  114. package/core/ScreenSizer.d.ts +3 -3
  115. package/core/ScreenSpace.d.ts +2 -3
  116. package/core/Segments.d.ts +8 -6
  117. package/core/Shadow.d.ts +3 -3
  118. package/core/ShadowAlpha.cjs.js +1 -1
  119. package/core/ShadowAlpha.d.ts +2 -1
  120. package/core/ShadowAlpha.js +1 -1
  121. package/core/Sky.d.ts +3 -2
  122. package/core/Sparkles.d.ts +16 -14
  123. package/core/Splat.d.ts +8 -6
  124. package/core/SpotLight.d.ts +1 -2
  125. package/core/SpriteAnimator.cjs.js +1 -1
  126. package/core/SpriteAnimator.d.ts +3 -36
  127. package/core/Stage.cjs.js +1 -1
  128. package/core/Stage.d.ts +2 -3
  129. package/core/Stars.cjs.js +1 -1
  130. package/core/Stars.d.ts +8 -6
  131. package/core/Stars.js +1 -1
  132. package/core/Stats.d.ts +3 -2
  133. package/core/StatsGl.d.ts +2 -2
  134. package/core/Svg.d.ts +6 -6
  135. package/core/Text.d.ts +4 -3
  136. package/core/Text3D.d.ts +10 -7
  137. package/core/Texture.d.ts +1 -1
  138. package/core/TrackballControls.d.ts +4 -4
  139. package/core/Trail.cjs.js +1 -1
  140. package/core/Trail.d.ts +3 -3
  141. package/core/Trail.js +3 -3
  142. package/core/TrailTexture.d.ts +2 -3
  143. package/core/TransformControls.cjs.js +1 -1
  144. package/core/TransformControls.d.ts +3 -3
  145. package/core/TransformControls.js +5 -4
  146. package/core/VideoTexture.cjs.js +1 -1
  147. package/core/VideoTexture.js +1 -1
  148. package/core/Wireframe.d.ts +7 -5
  149. package/core/index.cjs.js +1 -1
  150. package/core/index.d.ts +1 -0
  151. package/core/index.js +3 -1
  152. package/core/shapes.d.ts +20 -21
  153. package/core/softShadows.d.ts +2 -1
  154. package/core/useAnimations.cjs.js +1 -1
  155. package/core/useAnimations.d.ts +2 -2
  156. package/core/useAnimations.js +1 -1
  157. package/core/useBoxProjectedEnv.d.ts +1 -1
  158. package/core/useCamera.cjs.js +1 -1
  159. package/core/useCamera.d.ts +1 -1
  160. package/core/useCamera.js +8 -1
  161. package/core/useContextBridge.d.ts +1 -1
  162. package/core/useEnvironment.cjs.js +1 -1
  163. package/core/useEnvironment.d.ts +4 -3
  164. package/core/useEnvironment.js +19 -11
  165. package/core/useIntersect.d.ts +1 -1
  166. package/core/useSpriteLoader.d.ts +1 -1
  167. package/helpers/deprecated.cjs.js +1 -1
  168. package/helpers/deprecated.d.ts +4 -1
  169. package/helpers/deprecated.js +14 -2
  170. package/helpers/ts-utils.d.ts +0 -4
  171. package/helpers/useEffectfulState.d.ts +1 -1
  172. package/index.cjs.js +1 -1
  173. package/index.js +1 -0
  174. package/materials/BlurPass.js +1 -0
  175. package/materials/MeshReflectorMaterial.d.ts +16 -0
  176. package/native/index.cjs.js +1 -1
  177. package/native/index.js +3 -1
  178. package/package.json +8 -7
  179. package/web/CycleRaycast.d.ts +1 -1
  180. package/web/FaceLandmarker.d.ts +2 -1
  181. package/web/Facemesh.d.ts +2 -3
  182. package/web/Html.cjs.js +1 -1
  183. package/web/Html.d.ts +4 -4
  184. package/web/Html.js +1 -1
  185. package/web/KeyboardControls.d.ts +1 -1
  186. package/web/PresentationControls.cjs.js +1 -1
  187. package/web/PresentationControls.d.ts +4 -3
  188. package/web/PresentationControls.js +28 -20
  189. package/web/ScrollControls.d.ts +1 -1
  190. package/web/Select.d.ts +3 -3
  191. package/web/Select.js +2 -6
  192. package/web/View.cjs.js +1 -1
  193. package/web/View.d.ts +10 -8
  194. package/web/View.js +34 -4
  195. package/web/index.cjs.js +1 -1
  196. package/web/index.js +3 -0
  197. package/web/pivotControls/AxisArrow.js +2 -0
  198. package/web/pivotControls/AxisRotator.js +2 -0
  199. package/web/pivotControls/PlaneSlider.js +2 -0
  200. package/web/pivotControls/ScalingSphere.js +1 -0
  201. package/web/pivotControls/index.d.ts +2 -1
@@ -1,8 +1,8 @@
1
1
  import * as THREE from 'three';
2
2
  import * as React from 'react';
3
- import { ReactThreeFiber, ThreeElements } from '@react-three/fiber';
3
+ import { ReactThreeFiber } from '@react-three/fiber';
4
4
  import { ForwardRefComponent } from '../helpers/ts-utils';
5
- export type AccumulativeShadowsProps = Omit<ThreeElements['group'], 'ref'> & {
5
+ export type AccumulativeShadowsProps = {
6
6
  frames?: number;
7
7
  blend?: number;
8
8
  limit?: number;
@@ -34,14 +34,16 @@ type SoftShadowMaterialProps = {
34
34
  alphaTest?: number;
35
35
  blend?: number;
36
36
  };
37
- declare module '@react-three/fiber' {
38
- interface ThreeElements {
39
- softShadowMaterial: ThreeElements['shaderMaterial'] & SoftShadowMaterialProps;
37
+ declare global {
38
+ namespace JSX {
39
+ interface IntrinsicElements {
40
+ softShadowMaterial: JSX.IntrinsicElements['shaderMaterial'] & SoftShadowMaterialProps;
41
+ }
40
42
  }
41
43
  }
42
44
  export declare const accumulativeContext: React.Context<AccumulativeContext>;
43
- export declare const AccumulativeShadows: ForwardRefComponent<AccumulativeShadowsProps, AccumulativeContext>;
44
- export type RandomizedLightProps = Omit<ThreeElements['group'], 'ref'> & {
45
+ export declare const AccumulativeShadows: ForwardRefComponent<JSX.IntrinsicElements['group'] & AccumulativeShadowsProps, AccumulativeContext>;
46
+ export type RandomizedLightProps = {
45
47
  frames?: number;
46
48
  position?: [x: number, y: number, z: number];
47
49
  radius?: number;
@@ -55,5 +57,5 @@ export type RandomizedLightProps = Omit<ThreeElements['group'], 'ref'> & {
55
57
  near?: number;
56
58
  far?: number;
57
59
  };
58
- export declare const RandomizedLight: ForwardRefComponent<RandomizedLightProps, AccumulativeLightContext>;
60
+ export declare const RandomizedLight: ForwardRefComponent<JSX.IntrinsicElements['group'] & RandomizedLightProps, AccumulativeLightContext>;
59
61
  export {};
@@ -1,8 +1,8 @@
1
- import { ReactThreeFiber, ThreeElement } from '@react-three/fiber';
1
+ import { ReactThreeFiber } from '@react-three/fiber';
2
2
  import { ArcballControls as ArcballControlsImpl } from 'three-stdlib';
3
3
  import type { Event, OrthographicCamera, PerspectiveCamera } from 'three';
4
- import { ForwardRefComponent, Overwrite } from '../helpers/ts-utils';
5
- export type ArcballControlsProps = Omit<Overwrite<ThreeElement<typeof ArcballControlsImpl>, {
4
+ import { ForwardRefComponent } from '../helpers/ts-utils';
5
+ export type ArcballControlsProps = Omit<ReactThreeFiber.Overwrite<ReactThreeFiber.Object3DNode<ArcballControlsImpl, typeof ArcballControlsImpl>, {
6
6
  target?: ReactThreeFiber.Vector3;
7
7
  camera?: OrthographicCamera | PerspectiveCamera;
8
8
  domElement?: HTMLElement;
@@ -11,5 +11,5 @@ export type ArcballControlsProps = Omit<Overwrite<ThreeElement<typeof ArcballCon
11
11
  onChange?: (e?: Event) => void;
12
12
  onStart?: (e?: Event) => void;
13
13
  onEnd?: (e?: Event) => void;
14
- }>, 'ref' | 'args'>;
14
+ }>, 'ref'>;
15
15
  export declare const ArcballControls: ForwardRefComponent<ArcballControlsProps, ArcballControlsImpl>;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- export type AsciiRendererProps = {
2
+ type AsciiRendererProps = {
3
3
  renderIndex?: number;
4
4
  bgColor?: string;
5
5
  fgColor?: string;
@@ -9,3 +9,4 @@ export type AsciiRendererProps = {
9
9
  resolution?: number;
10
10
  };
11
11
  export declare function AsciiRenderer({ renderIndex, bgColor, fgColor, characters, invert, color, resolution, }: AsciiRendererProps): React.JSX.Element;
12
+ export {};
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import * as THREE from 'three';
3
- import { ThreeElements } from '@react-three/fiber';
4
- export type BBAnchorProps = ThreeElements['group'] & {
3
+ import { GroupProps } from '@react-three/fiber';
4
+ export interface BBAnchorProps extends GroupProps {
5
5
  anchor: THREE.Vector3 | [number, number, number];
6
- };
6
+ }
7
7
  export declare const BBAnchor: ({ anchor, ...props }: BBAnchorProps) => React.JSX.Element;
@@ -1,6 +1,5 @@
1
- import { ThreeElements } from '@react-three/fiber';
2
1
  import * as React from 'react';
3
- export type BackdropProps = ThreeElements['group'] & {
2
+ export type BackdropProps = JSX.IntrinsicElements['group'] & {
4
3
  floor?: number;
5
4
  segments?: number;
6
5
  receiveShadow?: boolean;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=u(e),a=o(r);const i=a.forwardRef((function({children:e,follow:r=!0,lockX:u=!1,lockY:o=!1,lockZ:i=!1,...l},f){const d=a.useRef(null),s=a.useRef(null),p=new t.Quaternion;return n.useFrame((({camera:e})=>{if(!r||!s.current)return;const t=d.current.rotation.clone();s.current.updateMatrix(),s.current.updateWorldMatrix(!1,!1),s.current.getWorldQuaternion(p),e.getWorldQuaternion(d.current.quaternion).premultiply(p.invert()),u&&(d.current.rotation.x=t.x),o&&(d.current.rotation.y=t.y),i&&(d.current.rotation.z=t.z)})),a.useImperativeHandle(f,(()=>s.current),[]),a.createElement("group",c.default({ref:s},l),a.createElement("group",{ref:d},e))}));exports.Billboard=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("@react-three/fiber"),t=require("react"),n=require("three");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=u(e),a=o(t);const i=a.forwardRef((function({children:e,follow:t=!0,lockX:u=!1,lockY:o=!1,lockZ:i=!1,...l},f){const d=a.useRef(null),s=a.useRef(null),p=new n.Quaternion;return r.useFrame((({camera:e})=>{if(!t||!s.current)return;const r=d.current.rotation.clone();s.current.updateMatrix(),s.current.updateWorldMatrix(!1,!1),s.current.getWorldQuaternion(p),e.getWorldQuaternion(d.current.quaternion).premultiply(p.invert()),u&&(d.current.rotation.x=r.x),o&&(d.current.rotation.y=r.y),i&&(d.current.rotation.z=r.z)})),a.useImperativeHandle(f,(()=>s.current),[]),a.createElement("group",c.default({ref:s},l),a.createElement("group",{ref:d},e))}));exports.Billboard=i;
@@ -1,10 +1,9 @@
1
1
  import { Group } from 'three';
2
- import { ThreeElements } from '@react-three/fiber';
3
2
  import { ForwardRefComponent } from '../helpers/ts-utils';
4
- export type BillboardProps = Omit<ThreeElements['group'], 'ref'> & {
3
+ export type BillboardProps = {
5
4
  follow?: boolean;
6
5
  lockX?: boolean;
7
6
  lockY?: boolean;
8
7
  lockZ?: boolean;
9
- };
8
+ } & JSX.IntrinsicElements['group'];
10
9
  export declare const Billboard: ForwardRefComponent<BillboardProps, Group>;
package/core/Billboard.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import { useFrame } from '@react-three/fiber';
2
3
  import * as React from 'react';
3
4
  import { Quaternion } from 'three';
4
- import { useFrame } from '@react-three/fiber';
5
5
 
6
6
  /**
7
7
  * Wraps children in a billboarded group. Sample usage:
package/core/Bounds.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import * as THREE from 'three';
3
- import { ThreeElements } from '@react-three/fiber';
4
3
  export type SizeProps = {
5
4
  box: THREE.Box3;
6
5
  size: THREE.Vector3;
@@ -23,7 +22,7 @@ export type BoundsApi = {
23
22
  fit(): BoundsApi;
24
23
  clip(): BoundsApi;
25
24
  };
26
- export type BoundsProps = Omit<ThreeElements['group'], 'ref'> & {
25
+ export type BoundsProps = JSX.IntrinsicElements['group'] & {
27
26
  maxDuration?: number;
28
27
  margin?: number;
29
28
  observe?: boolean;
package/core/Bvh.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { ThreeElements } from '@react-three/fiber';
2
1
  import * as React from 'react';
3
2
  import { Mesh, Group } from 'three';
4
3
  import { SplitStrategy } from 'three-mesh-bvh';
@@ -11,9 +10,9 @@ export interface BVHOptions {
11
10
  maxLeafTris?: number;
12
11
  indirect?: boolean;
13
12
  }
14
- export type BvhProps = BVHOptions & ThreeElements['group'] & {
13
+ export type BvhProps = BVHOptions & JSX.IntrinsicElements['group'] & {
15
14
  enabled?: boolean;
16
15
  firstHitOnly?: boolean;
17
16
  };
18
- export declare function useBVH(mesh: React.RefObject<Mesh | undefined>, options?: BVHOptions): void;
17
+ export declare function useBVH(mesh: React.MutableRefObject<Mesh | undefined>, options?: BVHOptions): void;
19
18
  export declare const Bvh: ForwardRefComponent<BvhProps, Group>;
@@ -1,8 +1,8 @@
1
1
  import { EventDispatcher, OrthographicCamera, PerspectiveCamera } from 'three';
2
- import { ThreeElement } from '@react-three/fiber';
2
+ import { ReactThreeFiber } from '@react-three/fiber';
3
3
  import CameraControlsImpl from 'camera-controls';
4
- import { ForwardRefComponent, Overwrite } from '../helpers/ts-utils';
5
- export type CameraControlsProps = Omit<Overwrite<ThreeElement<typeof CameraControlsImpl>, {
4
+ import { ForwardRefComponent } from '../helpers/ts-utils';
5
+ export type CameraControlsProps = Omit<ReactThreeFiber.Overwrite<ReactThreeFiber.Node<CameraControlsImpl, typeof CameraControlsImpl>, {
6
6
  camera?: PerspectiveCamera | OrthographicCamera;
7
7
  domElement?: HTMLElement;
8
8
  makeDefault?: boolean;
@@ -17,6 +17,6 @@ export type CameraControlsProps = Omit<Overwrite<ThreeElement<typeof CameraContr
17
17
  }) => void;
18
18
  events?: boolean;
19
19
  regress?: boolean;
20
- }>, 'ref' | 'args' | keyof EventDispatcher>;
20
+ }>, 'ref' | keyof EventDispatcher>;
21
21
  export declare const CameraControls: ForwardRefComponent<CameraControlsProps, CameraControlsImpl>;
22
22
  export type CameraControls = CameraControlsImpl;
@@ -1,10 +1,11 @@
1
1
  import { Line2 } from 'three-stdlib';
2
2
  import { LineProps } from './Line';
3
3
  import { ForwardRefComponent } from '../helpers/ts-utils';
4
- export type CatmullRomLineProps = Omit<LineProps, 'ref'> & {
4
+ type Props = Omit<LineProps, 'ref'> & {
5
5
  closed?: boolean;
6
6
  curveType?: 'centripetal' | 'chordal' | 'catmullrom';
7
7
  tension?: number;
8
8
  segments?: number;
9
9
  };
10
- export declare const CatmullRomLine: ForwardRefComponent<CatmullRomLineProps, Line2>;
10
+ export declare const CatmullRomLine: ForwardRefComponent<Props, Line2>;
11
+ export {};
@@ -1,8 +1,8 @@
1
1
  import * as THREE from 'three';
2
2
  import * as React from 'react';
3
- import { ReactThreeFiber, ThreeElements } from '@react-three/fiber';
3
+ import { ReactThreeFiber } from '@react-three/fiber';
4
4
  import { ForwardRefComponent } from '../helpers/ts-utils';
5
- export type CausticsProps = Omit<ThreeElements['group'], 'ref'> & {
5
+ type CausticsProps = JSX.IntrinsicElements['group'] & {
6
6
  frames?: number;
7
7
  debug?: boolean;
8
8
  causticsOnly: boolean;
@@ -13,20 +13,23 @@ export type CausticsProps = Omit<ThreeElements['group'], 'ref'> & {
13
13
  intensity?: number;
14
14
  color?: ReactThreeFiber.Color;
15
15
  resolution?: number;
16
- lightSource?: [x: number, y: number, z: number] | React.RefObject<THREE.Object3D>;
16
+ lightSource?: [x: number, y: number, z: number] | React.MutableRefObject<THREE.Object3D>;
17
17
  };
18
- declare module '@react-three/fiber' {
19
- interface ThreeElements {
20
- causticsProjectionMaterial: ThreeElements['meshNormalMaterial'] & {
21
- viewMatrix?: {
22
- value: THREE.Matrix4;
18
+ declare global {
19
+ namespace JSX {
20
+ interface IntrinsicElements {
21
+ causticsProjectionMaterial: ReactThreeFiber.MeshNormalMaterialProps & {
22
+ viewMatrix?: {
23
+ value: THREE.Matrix4;
24
+ };
25
+ color?: ReactThreeFiber.Color;
26
+ causticsTexture?: THREE.Texture;
27
+ causticsTextureB?: THREE.Texture;
28
+ lightProjMatrix?: THREE.Matrix4;
29
+ lightViewMatrix?: THREE.Matrix4;
23
30
  };
24
- color?: ReactThreeFiber.Color;
25
- causticsTexture?: THREE.Texture;
26
- causticsTextureB?: THREE.Texture;
27
- lightProjMatrix?: THREE.Matrix4;
28
- lightViewMatrix?: THREE.Matrix4;
29
- };
31
+ }
30
32
  }
31
33
  }
32
34
  export declare const Caustics: ForwardRefComponent<CausticsProps, THREE.Group>;
35
+ export {};
package/core/Center.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { Box3, Vector3, Sphere, Group, Object3D } from 'three';
2
- import { ThreeElements } from '@react-three/fiber';
3
2
  import { ForwardRefComponent } from '../helpers/ts-utils';
4
3
  export type OnCenterCallbackProps = {
5
4
  parent: Object3D;
@@ -14,7 +13,7 @@ export type OnCenterCallbackProps = {
14
13
  horizontalAlignment: number;
15
14
  depthAlignment: number;
16
15
  };
17
- export type CenterProps = Omit<ThreeElements['group'], 'ref'> & {
16
+ export type CenterProps = {
18
17
  top?: boolean;
19
18
  right?: boolean;
20
19
  bottom?: boolean;
@@ -29,4 +28,4 @@ export type CenterProps = Omit<ThreeElements['group'], 'ref'> & {
29
28
  onCentered?: (props: OnCenterCallbackProps) => void;
30
29
  cacheKey?: any;
31
30
  };
32
- export declare const Center: ForwardRefComponent<CenterProps, Group>;
31
+ export declare const Center: ForwardRefComponent<JSX.IntrinsicElements['group'] & CenterProps, Group>;
package/core/Clone.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  import * as THREE from 'three';
2
2
  import * as React from 'react';
3
+ import { MeshProps } from '@react-three/fiber';
3
4
  import { ForwardRefComponent } from '../helpers/ts-utils';
4
- import { ThreeElements } from '@react-three/fiber';
5
- export type CloneProps = Omit<ThreeElements['group'], 'ref' | 'children'> & {
5
+ export type CloneProps = {
6
6
  object: THREE.Object3D | THREE.Object3D[];
7
7
  children?: React.ReactNode;
8
8
  deep?: boolean | 'materialsOnly' | 'geometriesOnly';
9
9
  keys?: string[];
10
- inject?: ThreeElements['mesh'] | React.ReactNode | ((object: THREE.Object3D) => React.ReactNode);
10
+ inject?: MeshProps | React.ReactNode | ((object: THREE.Object3D) => React.ReactNode);
11
11
  castShadow?: boolean;
12
12
  receiveShadow?: boolean;
13
13
  isChild?: boolean;
14
14
  };
15
- export declare const Clone: ForwardRefComponent<CloneProps, THREE.Group>;
15
+ export declare const Clone: ForwardRefComponent<Omit<JSX.IntrinsicElements['group'], 'children'> & CloneProps, THREE.Group>;
package/core/Cloud.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("@react-three/fiber"),a=require("./Texture.cjs.js"),o=require("../helpers/deprecated.cjs.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l=u(e),i=c(t);const s=new r.Matrix4,d=new r.Vector3,f=new r.Quaternion,m=new r.Vector3,p=new r.Quaternion,g=new r.Vector3,h=i.createContext(null),y=i.forwardRef((({children:e,material:t=r.MeshLambertMaterial,texture:u="https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png",range:c,limit:y=200,frustumCulled:x,...v},b)=>{var M,w;const C=i.useMemo((()=>class extends t{constructor(){super();const e=parseInt(r.REVISION.replace(/\D+/g,""))>=154?"opaque_fragment":"output_fragment";this.onBeforeCompile=t=>{t.vertexShader="attribute float cloudOpacity;\n varying float vOpacity;\n "+t.vertexShader.replace("#include <fog_vertex>","#include <fog_vertex>\n vOpacity = cloudOpacity;\n "),t.fragmentShader="varying float vOpacity;\n "+t.fragmentShader.replace(`#include <${e}>`,`#include <${e}>\n gl_FragColor = vec4(outgoingLight, diffuseColor.a * vOpacity);\n `)}}}),[t]);n.extend({CloudMaterial:C});const E=i.useRef(null),O=i.useRef([]),A=i.useMemo((()=>new Float32Array(Array.from({length:y},(()=>1)))),[y]),j=i.useMemo((()=>new Float32Array(Array.from({length:y},(()=>[1,1,1])).flat())),[y]),R=a.useTexture(u);let U,V=0,_=0;const q=new r.Quaternion,F=new r.Vector3(0,0,1),I=new r.Vector3;n.useFrame(((e,t)=>{for(V=e.clock.elapsedTime,s.copy(E.current.matrixWorld).invert(),e.camera.matrixWorld.decompose(m,p,g),_=0;_<O.current.length;_++)U=O.current[_],U.ref.current.matrixWorld.decompose(d,f,g),d.add(I.copy(U.position).applyQuaternion(f).multiply(g)),f.copy(p).multiply(q.setFromAxisAngle(F,U.rotation+=t*U.rotationFactor)),g.multiplyScalar(U.volume+(1+Math.sin(V*U.density*U.speed))/2*U.growth),U.matrix.compose(d,f,g).premultiply(s),U.dist=d.distanceTo(m);for(O.current.sort(((e,t)=>t.dist-e.dist)),_=0;_<O.current.length;_++)U=O.current[_],A[_]=U.opacity*(U.dist<U.fade-1?U.dist/U.fade:1),E.current.setMatrixAt(_,U.matrix),E.current.setColorAt(_,U.color);E.current.geometry.attributes.cloudOpacity.needsUpdate=!0,E.current.instanceMatrix.needsUpdate=!0,E.current.instanceColor&&(E.current.instanceColor.needsUpdate=!0)})),i.useLayoutEffect((()=>{const e=Math.min(y,void 0!==c?c:y,O.current.length);E.current.count=e,o.setUpdateRange(E.current.instanceMatrix,{start:0,count:16*e}),E.current.instanceColor&&o.setUpdateRange(E.current.instanceColor,{start:0,count:3*e}),o.setUpdateRange(E.current.geometry.attributes.cloudOpacity,{start:0,count:e})}));let D=[null!==(M=R.image.width)&&void 0!==M?M:1,null!==(w=R.image.height)&&void 0!==w?w:1];const P=Math.max(D[0],D[1]);return D=[D[0]/P,D[1]/P],i.createElement("group",l.default({ref:b},v),i.createElement(h.Provider,{value:O},e,i.createElement("instancedMesh",{matrixAutoUpdate:!1,ref:E,args:[null,null,y],frustumCulled:x},i.createElement("instancedBufferAttribute",{usage:r.DynamicDrawUsage,attach:"instanceColor",args:[j,3]}),i.createElement("planeGeometry",{args:[...D]},i.createElement("instancedBufferAttribute",{usage:r.DynamicDrawUsage,attach:"attributes-cloudOpacity",args:[A,1]})),i.createElement("cloudMaterial",{key:t.name,map:R,transparent:!0,depthWrite:!1}))))})),x=i.forwardRef((({opacity:e=1,speed:t=0,bounds:a=[5,1,1],segments:o=20,color:u="#ffffff",fade:c=10,volume:s=6,smallestVolume:d=.25,distribute:f=null,growth:m=4,concentrate:p="inside",seed:g=Math.random(),...y},x)=>{function v(){const e=1e4*Math.sin(g++);return e-Math.floor(e)}const b=i.useContext(h),M=i.useRef(null),w=i.useId(),C=i.useMemo((()=>[...new Array(o)].map(((e,t)=>({segments:o,bounds:new r.Vector3(1,1,1),position:new r.Vector3,uuid:w,index:t,ref:M,dist:0,matrix:new r.Matrix4,color:new r.Color,rotation:t*(Math.PI/o)})))),[o,w]);return i.useLayoutEffect((()=>{C.forEach(((r,l)=>{n.applyProps(r,{volume:s,color:u,speed:t,growth:m,opacity:e,fade:c,bounds:a,density:Math.max(.5,v()),rotationFactor:Math.max(.2,.5*v())*t});const i=null==f?void 0:f(r,l);var g;(i||o>1)&&r.position.copy(r.bounds).multiply(null!==(g=null==i?void 0:i.point)&&void 0!==g?g:{x:2*v()-1,y:2*v()-1,z:2*v()-1});const h=Math.abs(r.position.x),y=Math.abs(r.position.y),x=Math.abs(r.position.z),b=Math.max(h,y,x);r.length=1,h===b&&(r.length-=h/r.bounds.x),y===b&&(r.length-=y/r.bounds.y),x===b&&(r.length-=x/r.bounds.z),r.volume=(void 0!==(null==i?void 0:i.volume)?i.volume:Math.max(Math.max(0,d),"random"===p?v():"inside"===p?r.length:1-r.length))*s}))}),[p,a,c,u,e,m,s,g,o,t]),i.useLayoutEffect((()=>{const e=C;return b.current=[...b.current,...e],()=>{b.current=b.current.filter((e=>e.uuid!==w))}}),[C]),i.useImperativeHandle(x,(()=>M.current),[]),i.createElement("group",l.default({ref:M},y))})),v=i.forwardRef(((e,t)=>i.useContext(h)?i.createElement(x,l.default({ref:t},e)):i.createElement(y,null,i.createElement(x,l.default({ref:t},e)))));exports.Cloud=v,exports.CloudInstance=x,exports.Clouds=y;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("@react-three/fiber"),a=require("./Texture.cjs.js"),o=require("../helpers/deprecated.cjs.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l=u(e),i=c(t);const s=new r.Matrix4,d=new r.Vector3,f=new r.Quaternion,m=new r.Vector3,p=new r.Quaternion,g=new r.Vector3,h=i.createContext(null),y=i.forwardRef((({children:e,material:t=r.MeshLambertMaterial,texture:u="https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png",range:c,limit:y=200,frustumCulled:x,...v},b)=>{var M,w;const C=i.useMemo((()=>class extends t{constructor(){super();const e=parseInt(r.REVISION.replace(/\D+/g,""))>=154?"opaque_fragment":"output_fragment";this.onBeforeCompile=t=>{t.vertexShader="attribute float cloudOpacity;\n varying float vOpacity;\n "+t.vertexShader.replace("#include <fog_vertex>","#include <fog_vertex>\n vOpacity = cloudOpacity;\n "),t.fragmentShader="varying float vOpacity;\n "+t.fragmentShader.replace(`#include <${e}>`,`#include <${e}>\n gl_FragColor = vec4(outgoingLight, diffuseColor.a * vOpacity);\n `)}}}),[t]);n.extend({CloudMaterial:C});const E=i.useRef(null),O=i.useRef([]),A=i.useMemo((()=>new Float32Array(Array.from({length:y},(()=>1)))),[y]),j=i.useMemo((()=>new Float32Array(Array.from({length:y},(()=>[1,1,1])).flat())),[y]),R=a.useTexture(u);let U,V=0,_=0;const q=new r.Quaternion,F=new r.Vector3(0,0,1),I=new r.Vector3;n.useFrame(((e,t)=>{for(V=e.clock.elapsedTime,s.copy(E.current.matrixWorld).invert(),e.camera.matrixWorld.decompose(m,p,g),_=0;_<O.current.length;_++)U=O.current[_],U.ref.current.matrixWorld.decompose(d,f,g),d.add(I.copy(U.position).applyQuaternion(f).multiply(g)),f.copy(p).multiply(q.setFromAxisAngle(F,U.rotation+=t*U.rotationFactor)),g.multiplyScalar(U.volume+(1+Math.sin(V*U.density*U.speed))/2*U.growth),U.matrix.compose(d,f,g).premultiply(s),U.dist=d.distanceTo(m);for(O.current.sort(((e,t)=>t.dist-e.dist)),_=0;_<O.current.length;_++)U=O.current[_],A[_]=U.opacity*(U.dist<U.fade-1?U.dist/U.fade:1),E.current.setMatrixAt(_,U.matrix),E.current.setColorAt(_,U.color);E.current.geometry.attributes.cloudOpacity.needsUpdate=!0,E.current.instanceMatrix.needsUpdate=!0,E.current.instanceColor&&(E.current.instanceColor.needsUpdate=!0)})),i.useLayoutEffect((()=>{const e=Math.min(y,void 0!==c?c:y,O.current.length);E.current.count=e,o.setUpdateRange(E.current.instanceMatrix,{offset:0,count:16*e}),E.current.instanceColor&&o.setUpdateRange(E.current.instanceColor,{offset:0,count:3*e}),o.setUpdateRange(E.current.geometry.attributes.cloudOpacity,{offset:0,count:e})}));let D=[null!==(M=R.image.width)&&void 0!==M?M:1,null!==(w=R.image.height)&&void 0!==w?w:1];const P=Math.max(D[0],D[1]);return D=[D[0]/P,D[1]/P],i.createElement("group",l.default({ref:b},v),i.createElement(h.Provider,{value:O},e,i.createElement("instancedMesh",{matrixAutoUpdate:!1,ref:E,args:[null,null,y],frustumCulled:x},i.createElement("instancedBufferAttribute",{usage:r.DynamicDrawUsage,attach:"instanceColor",args:[j,3]}),i.createElement("planeGeometry",{args:[...D]},i.createElement("instancedBufferAttribute",{usage:r.DynamicDrawUsage,attach:"attributes-cloudOpacity",args:[A,1]})),i.createElement("cloudMaterial",{key:t.name,map:R,transparent:!0,depthWrite:!1}))))})),x=i.forwardRef((({opacity:e=1,speed:t=0,bounds:a=[5,1,1],segments:o=20,color:u="#ffffff",fade:c=10,volume:s=6,smallestVolume:d=.25,distribute:f=null,growth:m=4,concentrate:p="inside",seed:g=Math.random(),...y},x)=>{function v(){const e=1e4*Math.sin(g++);return e-Math.floor(e)}const b=i.useContext(h),M=i.useRef(null),w=i.useId(),C=i.useMemo((()=>[...new Array(o)].map(((e,t)=>({segments:o,bounds:new r.Vector3(1,1,1),position:new r.Vector3,uuid:w,index:t,ref:M,dist:0,matrix:new r.Matrix4,color:new r.Color,rotation:t*(Math.PI/o)})))),[o,w]);return i.useLayoutEffect((()=>{C.forEach(((r,l)=>{n.applyProps(r,{volume:s,color:u,speed:t,growth:m,opacity:e,fade:c,bounds:a,density:Math.max(.5,v()),rotationFactor:Math.max(.2,.5*v())*t});const i=null==f?void 0:f(r,l);var g;(i||o>1)&&r.position.copy(r.bounds).multiply(null!==(g=null==i?void 0:i.point)&&void 0!==g?g:{x:2*v()-1,y:2*v()-1,z:2*v()-1});const h=Math.abs(r.position.x),y=Math.abs(r.position.y),x=Math.abs(r.position.z),b=Math.max(h,y,x);r.length=1,h===b&&(r.length-=h/r.bounds.x),y===b&&(r.length-=y/r.bounds.y),x===b&&(r.length-=x/r.bounds.z),r.volume=(void 0!==(null==i?void 0:i.volume)?i.volume:Math.max(Math.max(0,d),"random"===p?v():"inside"===p?r.length:1-r.length))*s}))}),[p,a,c,u,e,m,s,g,o,t]),i.useLayoutEffect((()=>{const e=C;return b.current=[...b.current,...e],()=>{b.current=b.current.filter((e=>e.uuid!==w))}}),[C]),i.useImperativeHandle(x,(()=>M.current),[]),i.createElement("group",l.default({ref:M},y))})),v=i.forwardRef(((e,t)=>i.useContext(h)?i.createElement(x,l.default({ref:t},e)):i.createElement(y,null,i.createElement(x,l.default({ref:t},e)))));exports.Cloud=v,exports.CloudInstance=x,exports.Clouds=y;
package/core/Cloud.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { Color, Group, Vector3, Material, MeshLambertMaterial, Matrix4 } from 'three';
3
- import { ReactThreeFiber, ThreeElement, ThreeElements } from '@react-three/fiber';
4
- declare module '@react-three/fiber' {
5
- interface ThreeElements {
6
- cloudMaterial: ThreeElement<typeof MeshLambertMaterial>;
3
+ import { MaterialNode, ReactThreeFiber } from '@react-three/fiber';
4
+ declare global {
5
+ namespace JSX {
6
+ interface IntrinsicElements {
7
+ cloudMaterial: MaterialNode<MeshLambertMaterial, typeof MeshLambertMaterial>;
8
+ }
7
9
  }
8
10
  }
9
11
  type CloudState = {
@@ -16,7 +18,7 @@ type CloudState = {
16
18
  position: Vector3;
17
19
  volume: number;
18
20
  length: number;
19
- ref: React.RefObject<Group>;
21
+ ref: React.MutableRefObject<Group>;
20
22
  speed: number;
21
23
  growth: number;
22
24
  opacity: number;
@@ -26,14 +28,14 @@ type CloudState = {
26
28
  rotationFactor: number;
27
29
  color: Color;
28
30
  };
29
- export type CloudsProps = Omit<ThreeElements['group'], 'ref'> & {
31
+ type CloudsProps = JSX.IntrinsicElements['group'] & {
30
32
  texture?: string;
31
33
  limit?: number;
32
34
  range?: number;
33
35
  material?: typeof Material;
34
36
  frustumCulled?: boolean;
35
37
  };
36
- export type CloudProps = Omit<ThreeElements['group'], 'ref'> & {
38
+ type CloudProps = JSX.IntrinsicElements['group'] & {
37
39
  seed?: number;
38
40
  segments?: number;
39
41
  bounds?: ReactThreeFiber.Vector3;
@@ -51,47 +53,7 @@ export type CloudProps = Omit<ThreeElements['group'], 'ref'> & {
51
53
  opacity?: number;
52
54
  color?: ReactThreeFiber.Color;
53
55
  };
54
- export declare const Clouds: React.ForwardRefExoticComponent<Omit<import("@react-three/fiber/dist/declarations/src/core/utils").Mutable<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Partial<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Group<import("three").Object3DEventMap>, ReactThreeFiber.MathProps<Group<import("three").Object3DEventMap>> & ReactThreeFiber.ReactProps<Group<import("three").Object3DEventMap>> & Partial<import("@react-three/fiber").EventHandlers>>>, Omit<import("@react-three/fiber").InstanceProps<Group<import("three").Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
55
- texture?: string;
56
- limit?: number;
57
- range?: number;
58
- material?: typeof Material;
59
- frustumCulled?: boolean;
60
- } & React.RefAttributes<Group<import("three").Object3DEventMap>>>;
61
- export declare const CloudInstance: React.ForwardRefExoticComponent<Omit<import("@react-three/fiber/dist/declarations/src/core/utils").Mutable<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Partial<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Group<import("three").Object3DEventMap>, ReactThreeFiber.MathProps<Group<import("three").Object3DEventMap>> & ReactThreeFiber.ReactProps<Group<import("three").Object3DEventMap>> & Partial<import("@react-three/fiber").EventHandlers>>>, Omit<import("@react-three/fiber").InstanceProps<Group<import("three").Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
62
- seed?: number;
63
- segments?: number;
64
- bounds?: ReactThreeFiber.Vector3;
65
- concentrate?: "random" | "inside" | "outside";
66
- scale?: ReactThreeFiber.Vector3;
67
- volume?: number;
68
- smallestVolume?: number;
69
- distribute?: (cloud: CloudState, index: number) => {
70
- point: Vector3;
71
- volume?: number;
72
- };
73
- growth?: number;
74
- speed?: number;
75
- fade?: number;
76
- opacity?: number;
77
- color?: ReactThreeFiber.Color;
78
- } & React.RefAttributes<Group<import("three").Object3DEventMap>>>;
79
- export declare const Cloud: React.ForwardRefExoticComponent<Omit<import("@react-three/fiber/dist/declarations/src/core/utils").Mutable<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Partial<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Group<import("three").Object3DEventMap>, ReactThreeFiber.MathProps<Group<import("three").Object3DEventMap>> & ReactThreeFiber.ReactProps<Group<import("three").Object3DEventMap>> & Partial<import("@react-three/fiber").EventHandlers>>>, Omit<import("@react-three/fiber").InstanceProps<Group<import("three").Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
80
- seed?: number;
81
- segments?: number;
82
- bounds?: ReactThreeFiber.Vector3;
83
- concentrate?: "random" | "inside" | "outside";
84
- scale?: ReactThreeFiber.Vector3;
85
- volume?: number;
86
- smallestVolume?: number;
87
- distribute?: (cloud: CloudState, index: number) => {
88
- point: Vector3;
89
- volume?: number;
90
- };
91
- growth?: number;
92
- speed?: number;
93
- fade?: number;
94
- opacity?: number;
95
- color?: ReactThreeFiber.Color;
96
- } & React.RefAttributes<Group<import("three").Object3DEventMap>>>;
56
+ export declare const Clouds: React.ForwardRefExoticComponent<Omit<CloudsProps, "ref"> & React.RefAttributes<Group>>;
57
+ export declare const CloudInstance: React.ForwardRefExoticComponent<Omit<CloudProps, "ref"> & React.RefAttributes<Group>>;
58
+ export declare const Cloud: React.ForwardRefExoticComponent<Omit<CloudProps, "ref"> & React.RefAttributes<Group>>;
97
59
  export {};
package/core/Cloud.js CHANGED
@@ -92,17 +92,17 @@ const Clouds = /* @__PURE__ */React.forwardRef(({
92
92
  const count = Math.min(limit, range !== undefined ? range : limit, clouds.current.length);
93
93
  instance.current.count = count;
94
94
  setUpdateRange(instance.current.instanceMatrix, {
95
- start: 0,
95
+ offset: 0,
96
96
  count: count * 16
97
97
  });
98
98
  if (instance.current.instanceColor) {
99
99
  setUpdateRange(instance.current.instanceColor, {
100
- start: 0,
100
+ offset: 0,
101
101
  count: count * 3
102
102
  });
103
103
  }
104
104
  setUpdateRange(instance.current.geometry.attributes.cloudOpacity, {
105
- start: 0,
105
+ offset: 0,
106
106
  count: count
107
107
  });
108
108
  });
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var u=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,u.get?u:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=u(e),a=n(t);exports.ComputedAttribute=({compute:e,name:t,...u})=>{const[n]=a.useState((()=>new r.BufferAttribute(new Float32Array(0),1))),o=a.useRef(null);return a.useLayoutEffect((()=>{if(o.current){var t;const r=null!==(t=o.current.parent)&&void 0!==t?t:o.current.__r3f.parent.object,u=e(r);o.current.copy(u)}}),[e]),a.createElement("primitive",c.default({ref:o,object:n,attach:`attributes-${t}`},u))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var u=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,u.get?u:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=u(e),a=n(t);exports.ComputedAttribute=({compute:e,name:t,...u})=>{const[n]=a.useState((()=>new r.BufferAttribute(new Float32Array(0),1))),f=a.useRef(null);return a.useLayoutEffect((()=>{if(f.current){var t;const r=null!==(t=f.current.parent)&&void 0!==t?t:f.current.__r3f.parent,u=e(r);f.current.copy(u)}}),[e]),a.createElement("primitive",c.default({ref:f,object:n,attach:`attributes-${t}`},u))};
@@ -1,8 +1,9 @@
1
- import { ThreeElements } from '@react-three/fiber';
1
+ import { BufferAttributeProps } from '@react-three/fiber';
2
2
  import * as React from 'react';
3
3
  import { BufferAttribute, BufferGeometry } from 'three';
4
- export type ComputedAttributeProps = Omit<ThreeElements['bufferAttribute'], 'args'> & {
4
+ type Props = {
5
5
  compute: (geometry: BufferGeometry) => BufferAttribute;
6
6
  name: string;
7
7
  };
8
- export declare const ComputedAttribute: ({ compute, name, ...props }: ComputedAttributeProps) => React.JSX.Element;
8
+ export declare const ComputedAttribute: ({ compute, name, ...props }: React.PropsWithChildren<Props & BufferAttributeProps>) => React.JSX.Element;
9
+ export {};
@@ -18,7 +18,7 @@ const ComputedAttribute = ({
18
18
  if (primitive.current) {
19
19
  var _ref;
20
20
  // @ts-expect-error brittle
21
- const parent = (_ref = primitive.current.parent) !== null && _ref !== void 0 ? _ref : primitive.current.__r3f.parent.object;
21
+ const parent = (_ref = primitive.current.parent) !== null && _ref !== void 0 ? _ref : primitive.current.__r3f.parent;
22
22
  const attr = compute(parent);
23
23
  primitive.current.copy(attr);
24
24
  }
@@ -1,7 +1,6 @@
1
1
  import * as THREE from 'three';
2
- import { ThreeElements } from '@react-three/fiber';
3
2
  import { ForwardRefComponent } from '../helpers/ts-utils';
4
- export type ContactShadowsProps = Omit<ThreeElements['group'], 'ref' | 'scale'> & {
3
+ export type ContactShadowsProps = {
5
4
  opacity?: number;
6
5
  width?: number;
7
6
  height?: number;
@@ -15,4 +14,4 @@ export type ContactShadowsProps = Omit<ThreeElements['group'], 'ref' | 'scale'>
15
14
  color?: THREE.ColorRepresentation;
16
15
  depthWrite?: boolean;
17
16
  };
18
- export declare const ContactShadows: ForwardRefComponent<ContactShadowsProps, THREE.Group>;
17
+ export declare const ContactShadows: ForwardRefComponent<Omit<JSX.IntrinsicElements['group'], 'scale'> & ContactShadowsProps, THREE.Group>;
@@ -1,7 +1,6 @@
1
1
  import * as THREE from 'three';
2
2
  import { Fog, FogExp2, Texture } from 'three';
3
3
  import * as React from 'react';
4
- import { ThreeElements } from '@react-three/fiber';
5
4
  export type CubeCameraOptions = {
6
5
  resolution?: number;
7
6
  near?: number;
@@ -14,8 +13,9 @@ export declare function useCubeCamera({ resolution, near, far, envMap, fog }?: C
14
13
  camera: THREE.CubeCamera;
15
14
  update: () => void;
16
15
  };
17
- export type CubeCameraProps = Omit<ThreeElements['group'], 'children'> & {
16
+ type Props = Omit<JSX.IntrinsicElements['group'], 'children'> & {
18
17
  children?: (tex: Texture) => React.ReactNode;
19
18
  frames?: number;
20
19
  } & CubeCameraOptions;
21
- export declare function CubeCamera({ children, frames, resolution, near, far, envMap, fog, ...props }: CubeCameraProps): React.JSX.Element;
20
+ export declare function CubeCamera({ children, frames, resolution, near, far, envMap, fog, ...props }: Props): React.JSX.Element;
21
+ export {};
@@ -1,14 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { CubeTexture as _CubeTexture, Texture } from 'three';
3
- export type CubeTextureOptions = {
3
+ type Options = {
4
4
  path: string;
5
5
  };
6
- export declare function useCubeTexture(files: string[], { path }: CubeTextureOptions): _CubeTexture;
6
+ export declare function useCubeTexture(files: string[], { path }: Options): _CubeTexture;
7
7
  export declare namespace useCubeTexture {
8
- var preload: (files: string[], { path }: CubeTextureOptions) => void;
8
+ var preload: (files: string[], { path }: Options) => undefined;
9
9
  }
10
- export type CubeTextureProps = CubeTextureOptions & {
10
+ type CubeTextureProps = {
11
11
  children?: (tex: Texture) => React.ReactNode;
12
12
  files: Parameters<typeof useCubeTexture>[0];
13
- };
13
+ } & Options;
14
14
  export declare function CubeTexture({ children, files, ...options }: CubeTextureProps): React.JSX.Element;
15
+ export {};
@@ -5,12 +5,17 @@ import { useLoader } from '@react-three/fiber';
5
5
  function useCubeTexture(files, {
6
6
  path
7
7
  }) {
8
- const [cubeTexture] = useLoader(CubeTextureLoader, [files], loader => loader.setPath(path));
8
+ // @ts-ignore
9
+ const [cubeTexture] = useLoader(
10
+ // @ts-ignore
11
+ CubeTextureLoader, [files], loader => loader.setPath(path));
9
12
  return cubeTexture;
10
13
  }
11
14
  useCubeTexture.preload = (files, {
12
15
  path
13
- }) => useLoader.preload(CubeTextureLoader, [files], loader => loader.setPath(path));
16
+ }) => useLoader.preload(
17
+ // @ts-ignore
18
+ CubeTextureLoader, [files], loader => loader.setPath(path));
14
19
  function CubeTexture({
15
20
  children,
16
21
  files,
@@ -2,11 +2,12 @@ import { Vector3 } from 'three';
2
2
  import { Line2 } from 'three-stdlib';
3
3
  import { LineProps } from './Line';
4
4
  import { ForwardRefComponent } from '../helpers/ts-utils';
5
- export type CubicBezierLineProps = Omit<LineProps, 'points' | 'ref'> & {
5
+ type Props = Omit<LineProps, 'points' | 'ref'> & {
6
6
  start: Vector3 | [number, number, number];
7
7
  end: Vector3 | [number, number, number];
8
8
  midA: Vector3 | [number, number, number];
9
9
  midB: Vector3 | [number, number, number];
10
10
  segments?: number;
11
11
  };
12
- export declare const CubicBezierLine: ForwardRefComponent<CubicBezierLineProps, Line2>;
12
+ export declare const CubicBezierLine: ForwardRefComponent<Props, Line2>;
13
+ export {};
@@ -1,10 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import * as THREE from 'three';
3
- import { ThreeElements } from '@react-three/fiber';
4
3
  import { Flow } from 'three-stdlib';
5
4
  import { ForwardRefComponent } from '../helpers/ts-utils';
6
5
  export interface CurveModifierProps {
7
- children: React.ReactElement<ThreeElements['mesh']>;
6
+ children: React.ReactElement<JSX.IntrinsicElements['mesh']>;
8
7
  curve?: THREE.Curve<THREE.Vector3>;
9
8
  }
10
9
  export type CurveModifierRef = Flow;
package/core/Decal.d.ts CHANGED
@@ -2,9 +2,9 @@ import * as React from 'react';
2
2
  import * as THREE from 'three';
3
3
  import * as FIBER from '@react-three/fiber';
4
4
  import { ForwardRefComponent } from '../helpers/ts-utils';
5
- export type DecalProps = Omit<FIBER.ThreeElements['mesh'], 'ref' | 'children'> & {
5
+ export type DecalProps = Omit<JSX.IntrinsicElements['mesh'], 'children'> & {
6
6
  debug?: boolean;
7
- mesh?: React.RefObject<THREE.Mesh>;
7
+ mesh?: React.MutableRefObject<THREE.Mesh>;
8
8
  position?: FIBER.Vector3;
9
9
  rotation?: FIBER.Euler | number;
10
10
  scale?: FIBER.Vector3;
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { LOD, Object3D } from 'three';
3
- import { ThreeElements } from '@react-three/fiber';
4
3
  import { ForwardRefComponent } from '../helpers/ts-utils';
5
- export type DetailedProps = Omit<ThreeElements['lOD'], 'ref'> & {
4
+ type Props = JSX.IntrinsicElements['lOD'] & {
6
5
  children: React.ReactElement<Object3D>[];
7
6
  hysteresis?: number;
8
7
  distances: number[];
9
8
  };
10
- export declare const Detailed: ForwardRefComponent<DetailedProps, LOD>;
9
+ export declare const Detailed: ForwardRefComponent<Props, LOD>;
10
+ export {};
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { GetGPUTier } from 'detect-gpu';
3
3
  export declare const useDetectGPU: (props?: GetGPUTier) => import("detect-gpu").TierResult;
4
- export type DetectGPUProps = {
4
+ type DetectGPUProps = {
5
5
  children?: (result: ReturnType<typeof useDetectGPU>) => React.ReactNode;
6
6
  } & Parameters<typeof useDetectGPU>[0];
7
7
  export declare function DetectGPU({ children, ...options }: DetectGPUProps): React.JSX.Element;
8
+ export {};
@@ -1,8 +1,8 @@
1
- import { ThreeElement } from '@react-three/fiber';
1
+ import { ReactThreeFiber } from '@react-three/fiber';
2
2
  import * as THREE from 'three';
3
3
  import { DeviceOrientationControls as DeviceOrientationControlsImp } from 'three-stdlib';
4
4
  import { ForwardRefComponent } from '../helpers/ts-utils';
5
- export type DeviceOrientationControlsProps = Omit<ThreeElement<typeof DeviceOrientationControlsImp>, 'ref' | 'args'> & {
5
+ export type DeviceOrientationControlsProps = ReactThreeFiber.Object3DNode<DeviceOrientationControlsImp, typeof DeviceOrientationControlsImp> & {
6
6
  camera?: THREE.Camera;
7
7
  onChange?: (e?: THREE.Event) => void;
8
8
  makeDefault?: boolean;