@react-three/drei 9.23.1 → 9.23.4

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.
package/core/Text3D.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import * as THREE from 'three';
3
- import { MeshProps, Node } from '@react-three/fiber';
3
+ import { Node } from '@react-three/fiber';
4
4
  import { TextGeometryParameters } from 'three-stdlib';
5
5
  declare global {
6
6
  namespace JSX {
@@ -26,9 +26,29 @@ declare type FontData = {
26
26
  resolution: number;
27
27
  underlineThickness: number;
28
28
  };
29
- declare type Text3DProps = {
29
+ export declare const Text3D: React.ForwardRefExoticComponent<Pick<React.PropsWithChildren<{
30
30
  font: FontData | string;
31
31
  bevelSegments: number;
32
- } & Omit<TextGeometryParameters, 'font'> & MeshProps;
33
- export declare const Text3D: React.ForwardRefExoticComponent<Pick<React.PropsWithChildren<Text3DProps>, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "size" | "font" | "material" | "height" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "bevelEnabled" | "bevelOffset" | "bevelSize" | "bevelThickness" | "curveSegments" | "bevelSegments"> & React.RefAttributes<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>>;
32
+ } & Omit<TextGeometryParameters, "font"> & Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>, import("@react-three/fiber").NodeProps<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>, typeof THREE.Mesh>>>, import("@react-three/fiber").NonFunctionKeys<{
33
+ position?: import("@react-three/fiber").Vector3 | undefined;
34
+ up?: import("@react-three/fiber").Vector3 | undefined;
35
+ scale?: import("@react-three/fiber").Vector3 | undefined;
36
+ rotation?: import("@react-three/fiber").Euler | undefined;
37
+ matrix?: import("@react-three/fiber").Matrix4 | undefined;
38
+ quaternion?: import("@react-three/fiber").Quaternion | undefined;
39
+ layers?: import("@react-three/fiber").Layers | undefined;
40
+ dispose?: (() => void) | null | undefined;
41
+ }>> & {
42
+ position?: import("@react-three/fiber").Vector3 | undefined;
43
+ up?: import("@react-three/fiber").Vector3 | undefined;
44
+ scale?: import("@react-three/fiber").Vector3 | undefined;
45
+ rotation?: import("@react-three/fiber").Euler | undefined;
46
+ matrix?: import("@react-three/fiber").Matrix4 | undefined;
47
+ quaternion?: import("@react-three/fiber").Quaternion | undefined;
48
+ layers?: import("@react-three/fiber").Layers | undefined;
49
+ dispose?: (() => void) | null | undefined;
50
+ } & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers & {
51
+ letterSpacing?: number | undefined;
52
+ lineHeight?: number | undefined;
53
+ }>, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "size" | "font" | "material" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "height" | "letterSpacing" | "lineHeight" | "bevelEnabled" | "bevelOffset" | "bevelSize" | "bevelThickness" | "curveSegments" | "bevelSegments"> & React.RefAttributes<THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>>;
34
54
  export {};
package/core/Text3D.js CHANGED
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { useMemo } from 'react';
4
4
  import { extend } from '@react-three/fiber';
5
5
  import { suspend } from 'suspend-react';
6
- import { FontLoader, TextGeometry } from 'three-stdlib';
6
+ import { TextGeometry, FontLoader } from 'three-stdlib';
7
7
 
8
8
  const types = ['string', 'number'];
9
9
 
@@ -16,9 +16,10 @@ const getTextFromChildren = children => {
16
16
  return [label, ...rest];
17
17
  };
18
18
 
19
- const Text3DBase = /*#__PURE__*/React.forwardRef(({
20
- font,
21
- loader,
19
+ const Text3D = /*#__PURE__*/React.forwardRef(({
20
+ font: _font,
21
+ letterSpacing = 0,
22
+ lineHeight = 1,
22
23
  size = 1,
23
24
  height = 0.2,
24
25
  bevelThickness = 0.1,
@@ -30,17 +31,17 @@ const Text3DBase = /*#__PURE__*/React.forwardRef(({
30
31
  children,
31
32
  ...props
32
33
  }, ref) => {
33
- React.useMemo(() => {
34
- extend({
35
- RenamedTextGeometry: TextGeometry
36
- });
37
- }, []);
38
-
39
- const _font = React.useMemo(() => loader.parse(font), [font]);
40
-
34
+ React.useMemo(() => extend({
35
+ RenamedTextGeometry: TextGeometry
36
+ }), []);
37
+ const font = suspend(async () => {
38
+ let data = typeof _font === 'string' ? await (await fetch(_font)).json() : _font;
39
+ let loader = new FontLoader();
40
+ return loader.parse(data);
41
+ }, [_font]);
41
42
  const opts = useMemo(() => {
42
43
  return {
43
- font: _font,
44
+ font,
44
45
  size,
45
46
  height,
46
47
  bevelThickness,
@@ -48,9 +49,11 @@ const Text3DBase = /*#__PURE__*/React.forwardRef(({
48
49
  bevelEnabled,
49
50
  bevelSegments,
50
51
  bevelOffset,
51
- curveSegments
52
+ curveSegments,
53
+ letterSpacing,
54
+ lineHeight
52
55
  };
53
- }, [_font, size, height, bevelThickness, bevelSize, bevelEnabled, bevelOffset, curveSegments]);
56
+ }, [font, size, height, bevelThickness, bevelSize, bevelEnabled, bevelOffset, curveSegments, letterSpacing, lineHeight]);
54
57
  /**
55
58
  * We need the `children` in the deps because we
56
59
  * need to be able to do `<Text3d>{state}</Text3d>`.
@@ -64,36 +67,5 @@ const Text3DBase = /*#__PURE__*/React.forwardRef(({
64
67
  args: args
65
68
  }), rest);
66
69
  });
67
- const Text3DSuspend = /*#__PURE__*/React.forwardRef(({
68
- font,
69
- loader,
70
- ...props
71
- }, ref) => {
72
- const _font = suspend(async () => {
73
- const json = await (await fetch(font)).json();
74
- return json;
75
- }, [font]);
76
-
77
- return /*#__PURE__*/React.createElement(Text3DBase, _extends({}, props, {
78
- ref: ref,
79
- font: _font,
80
- loader: loader
81
- }));
82
- });
83
- const Text3D = /*#__PURE__*/React.forwardRef((props, ref) => {
84
- const loader = React.useMemo(() => new FontLoader(), []);
85
-
86
- if (typeof props.font === 'string') {
87
- return /*#__PURE__*/React.createElement(Text3DSuspend, _extends({}, props, {
88
- ref: ref,
89
- loader: loader
90
- }));
91
- } else {
92
- return /*#__PURE__*/React.createElement(Text3DBase, _extends({}, props, {
93
- ref: ref,
94
- loader: loader
95
- }));
96
- }
97
- });
98
70
 
99
71
  export { Text3D };
@@ -12,4 +12,4 @@ export declare type TrackballControlsProps = ReactThreeFiber.Overwrite<ReactThre
12
12
  onStart?: (e?: THREE.Event) => void;
13
13
  onEnd?: (e?: THREE.Event) => void;
14
14
  }>;
15
- export declare const TrackballControls: React.ForwardRefExoticComponent<Pick<TrackballControlsProps, "object" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "onChange" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "camera" | "screen" | "reset" | "enabled" | "connect" | "update" | "onStart" | "keys" | "target" | "makeDefault" | "domElement" | "minDistance" | "maxDistance" | "zoomSpeed" | "rotateSpeed" | "panSpeed" | "mouseButtons" | "onEnd" | "regress" | "noRotate" | "noZoom" | "noPan" | "staticMoving" | "dynamicDampingFactor" | "cursorZoom" | "handleResize"> & React.RefAttributes<TrackballControlsImpl>>;
15
+ export declare const TrackballControls: React.ForwardRefExoticComponent<Pick<TrackballControlsProps, "object" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "onChange" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "camera" | "screen" | "reset" | "enabled" | "connect" | "update" | "target" | "onStart" | "keys" | "makeDefault" | "domElement" | "minDistance" | "maxDistance" | "zoomSpeed" | "rotateSpeed" | "panSpeed" | "mouseButtons" | "onEnd" | "regress" | "noRotate" | "noZoom" | "noPan" | "staticMoving" | "dynamicDampingFactor" | "cursorZoom" | "handleResize"> & React.RefAttributes<TrackballControlsImpl>>;
@@ -23,4 +23,4 @@ export declare type TransformControlsProps = ReactThreeFiber.Object3DNode<Transf
23
23
  onMouseUp?: (e?: THREE.Event) => void;
24
24
  onObjectChange?: (e?: THREE.Event) => void;
25
25
  };
26
- export declare const TransformControls: React.ForwardRefExoticComponent<Pick<TransformControlsProps, "object" | "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "isGroup" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "onChange" | "onMouseDown" | "onMouseUp" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "camera" | "size" | "space" | "reset" | "enabled" | "connect" | "update" | "axis" | "setSize" | "domElement" | "isTransformControls" | "detach" | "getMode" | "setMode" | "setTranslationSnap" | "setRotationSnap" | "setScaleSnap" | "setSpace" | "onObjectChange" | "mode" | "translationSnap" | "rotationSnap" | "scaleSnap" | "showX" | "showY" | "showZ"> & React.RefAttributes<TransformControlsImpl<THREE.Camera>>>;
26
+ export declare const TransformControls: React.ForwardRefExoticComponent<Pick<TransformControlsProps, "object" | "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "isGroup" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "onChange" | "onMouseDown" | "onMouseUp" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "camera" | "size" | "space" | "reset" | "enabled" | "connect" | "update" | "setSize" | "axis" | "domElement" | "isTransformControls" | "detach" | "getMode" | "setMode" | "setTranslationSnap" | "setRotationSnap" | "setScaleSnap" | "setSpace" | "onObjectChange" | "mode" | "translationSnap" | "rotationSnap" | "scaleSnap" | "showX" | "showY" | "showZ"> & React.RefAttributes<TransformControlsImpl<THREE.Camera>>>;
@@ -5,5 +5,5 @@ declare type Props = {
5
5
  samples?: number;
6
6
  rings?: number;
7
7
  };
8
- export declare const softShadows: (props?: Props | undefined) => void;
8
+ export declare const softShadows: (props?: Props) => void;
9
9
  export {};
@@ -1,2 +1,2 @@
1
1
  import { GetGPUTier, TierResult } from 'detect-gpu';
2
- export declare const useDetectGPU: (props?: GetGPUTier | undefined) => TierResult;
2
+ export declare const useDetectGPU: (props?: GetGPUTier) => TierResult;