@react-three/drei 9.106.2 → 9.107.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.
package/README.md CHANGED
@@ -63,7 +63,7 @@ The `native` route of the library **does not** export `Html` or `Loader`. The de
63
63
  <li><a href="#dragcontrols">DragControls</a></li>
64
64
  <li><a href="#transformcontrols">TransformControls</a></li>
65
65
  <li><a href="#grid">Grid</a></li>
66
- <li><a href="#usehelper">useHelper</a></li>
66
+ <li><a href="#helper--usehelper">Helper / useHelper</a></li>
67
67
  <li><a href="#helper">Helper</a></li>
68
68
  </ul>
69
69
  <li><a href="#abstractions">Abstractions</a></li>
@@ -119,29 +119,29 @@ The `native` route of the library **does not** export `Html` or `Loader`. The de
119
119
  <li><a href="#wireframe">Wireframe</a></li>
120
120
  <li><a href="#usedepthbuffer">useDepthBuffer</a></li>
121
121
  <li><a href="#usecontextbridge">useContextBridge</a></li>
122
- <li><a href="#usefbo">useFBO</a></li>
122
+ <li><a href="#fbo--usefbo">Fbo / useFBO</a></li>
123
123
  <li><a href="#usecamera">useCamera</a></li>
124
- <li><a href="#usecubecamera">useCubeCamera</a></li>
125
- <li><a href="#usedetectgpu">useDetectGPU</a></li>
124
+ <li><a href="#cubecamera--usecubecamera">CubeCamera / useCubeCamera</a></li>
125
+ <li><a href="#detectgpu--usedetectgpu">DetectGPU / useDetectGPU</a></li>
126
126
  <li><a href="#useaspect">useAspect</a></li>
127
127
  <li><a href="#usecursor">useCursor</a></li>
128
128
  <li><a href="#useintersect">useIntersect</a></li>
129
129
  <li><a href="#useboxprojectedenv">useBoxProjectedEnv</a></li>
130
- <li><a href="#useTrail">useTrail</a></li>
130
+ <li><a href="#trail--useTrail">Trail / useTrail</a></li>
131
131
  <li><a href="#useSurfaceSampler">useSurfaceSampler</a></li>
132
132
  <li><a href="#facelandmarker">FaceLandmarker</a></li>
133
133
  </ul>
134
134
  <li><a href="#loading">Loaders</a></li>
135
135
  <ul>
136
136
  <li><a href="#loader">Loader</a></li>
137
- <li><a href="#useprogress">useProgress</a></li>
138
- <li><a href="#usegltf">useGLTF</a></li>
139
- <li><a href="#usefbx">useFBX</a></li>
140
- <li><a href="#usetexture">useTexture</a></li>
141
- <li><a href="#usektx2">useKTX2</a></li>
142
- <li><a href="#usecubetexture">useCubeTexture</a></li>
143
- <li><a href="#usevideotexture">useVideoTexture</a></li>
144
- <li><a href="#usetrailtexture">useTrailTexture</a></li>
137
+ <li><a href="#progress--useprogress">Progress / useProgress</a></li>
138
+ <li><a href="#gltf--usegltf">Gltf / useGLTF</a></li>
139
+ <li><a href="#fbx--usefbx">FBX / useFBX</a></li>
140
+ <li><a href="#texture--usetexture">Texture / useTexture</a></li>
141
+ <li><a href="#ktx2--usektx2">Ktx2 / useKTX2</a></li>
142
+ <li><a href="#cubetexture--usecubetexture">CubeTexture / useCubeTexture</a></li>
143
+ <li><a href="#videotexture--usevideotexture">VideoTexture / useVideoTexture</a></li>
144
+ <li><a href="#trailtexture--usetrailtexture">TrailTexture / useTrailTexture</a></li>
145
145
  <li><a href="#usefont">useFont</a></li>
146
146
  <li><a href="#usespriteloader">useSpriteLoader</a></li>
147
147
  </ul>
@@ -230,8 +230,8 @@ The `native` route of the library **does not** export `Html` or `Loader`. The de
230
230
  <li><a href="#sparkles">Sparkles</a></li>
231
231
  <li><a href="#cloud">Cloud</a></li>
232
232
  <li><a href="#useenvironment">useEnvironment</a></li>
233
- <li><a href="#usematcaptexture">useMatcapTexture</a></li>
234
- <li><a href="#usenormaltexture">useNormalTexture</a></li>
233
+ <li><a href="#matcaptexture--usematcaptexture">MatcapTexture / useMatcapTexture</a></li>
234
+ <li><a href="#normaltexture--usenormaltexture">NormalTexture / useNormalTexture</a></li>
235
235
  <li><a href="#shadowalpha">ShadowAlpha</a></li>
236
236
  </ul>
237
237
  </ul>
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber");function a(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 a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=a(e),u=n(t);let o=function(e){return e.Linear="linear",e.Radial="radial",e}({});exports.GradientTexture=function({stops:e,colors:t,size:a=1024,width:n=16,type:c=o.Linear,innerCircleRadius:l=0,outerCircleRadius:s="auto",...d}){const f=r.useThree((e=>e.gl)),p=u.useMemo((()=>{const r=document.createElement("canvas"),i=r.getContext("2d");let u;if(r.width=n,r.height=a,c===o.Linear)u=i.createLinearGradient(0,0,0,a);else{const e=r.width/2,t=r.height/2,a="auto"!==s?Math.abs(Number(s)):Math.sqrt(e**2+t**2);u=i.createRadialGradient(e,t,Math.abs(l),e,t,a)}let d=e.length;for(;d--;)u.addColorStop(e[d],t[d]);return i.save(),i.fillStyle=u,i.fillRect(0,0,n,a),i.restore(),r}),[e]);return u.createElement("canvasTexture",i.default({colorSpace:f.outputColorSpace,args:[p],attach:"map"},d))},exports.GradientType=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),a=require("three");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=n(e),u=i(t),c=i(a);let l=function(e){return e.Linear="linear",e.Radial="radial",e}({});exports.GradientTexture=function({stops:e,colors:t,size:a=1024,width:n=16,type:i=l.Linear,innerCircleRadius:s=0,outerCircleRadius:d="auto",...f}){const h=r.useThree((e=>e.gl)),p=u.useMemo((()=>{const r=document.createElement("canvas"),o=r.getContext("2d");let u;if(r.width=n,r.height=a,i===l.Linear)u=o.createLinearGradient(0,0,0,a);else{const e=r.width/2,t=r.height/2,a="auto"!==d?Math.abs(Number(d)):Math.sqrt(e**2+t**2);u=o.createRadialGradient(e,t,Math.abs(s),e,t,a)}const f=new c.Color;let h=e.length;for(;h--;)u.addColorStop(e[h],f.set(t[h]).getStyle());return o.save(),o.fillStyle=u,o.fillRect(0,0,n,a),o.restore(),r}),[e]);return u.createElement("canvasTexture",o.default({colorSpace:h.outputColorSpace,args:[p],attach:"map"},f))},exports.GradientType=l;
@@ -1,11 +1,12 @@
1
1
  import * as React from 'react';
2
+ import * as THREE from 'three';
2
3
  export declare enum GradientType {
3
4
  Linear = "linear",
4
5
  Radial = "radial"
5
6
  }
6
7
  type Props = {
7
8
  stops: Array<number>;
8
- colors: Array<string>;
9
+ colors: Array<THREE.ColorRepresentation>;
9
10
  attach?: string;
10
11
  size?: number;
11
12
  width?: number;
@@ -1,6 +1,7 @@
1
1
  import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import * as React from 'react';
3
3
  import { useThree } from '@react-three/fiber';
4
+ import * as THREE from 'three';
4
5
 
5
6
  let GradientType = /*#__PURE__*/function (GradientType) {
6
7
  GradientType["Linear"] = "linear";
@@ -33,9 +34,10 @@ function GradientTexture({
33
34
  const radius = outerCircleRadius !== 'auto' ? Math.abs(Number(outerCircleRadius)) : Math.sqrt(canvasCenterX ** 2 + canvasCenterY ** 2);
34
35
  gradient = context.createRadialGradient(canvasCenterX, canvasCenterY, Math.abs(innerCircleRadius), canvasCenterX, canvasCenterY, radius);
35
36
  }
37
+ const tempColor = new THREE.Color(); // reuse instance for performance
36
38
  let i = stops.length;
37
39
  while (i--) {
38
- gradient.addColorStop(stops[i], colors[i]);
40
+ gradient.addColorStop(stops[i], tempColor.set(colors[i]).getStyle());
39
41
  }
40
42
  context.save();
41
43
  context.fillStyle = gradient;
package/core/Stats.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("stats.js"),n=require("../helpers/useEffectfulState.cjs.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function f(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 c=f(e),a=u(r);exports.Stats=function({showPanel:e=0,className:r,parent:u}){const f=n.useEffectfulState((()=>new a.default),[]);return c.useEffect((()=>{if(f){const n=u&&u.current||document.body;f.showPanel(e),null==n||n.appendChild(f.dom),r&&f.dom.classList.add(...r.split(" ").filter((e=>e)));const c=t.addEffect((()=>f.begin())),a=t.addAfterEffect((()=>f.end()));return()=>{null==n||n.removeChild(f.dom),c(),a()}}}),[u,f,r,e]),null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("stats.js"),n=require("../helpers/useEffectfulState.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 f=c(e),l=u(r);exports.Stats=function({showPanel:e=0,className:r,parent:u}){const c=n.useEffectfulState((()=>new l.default),[]);return f.useEffect((()=>{if(c){const n=u&&u.current||document.body;c.showPanel(e),null==n||n.appendChild(c.dom);const f=(null!=r?r:"").split(" ").filter((e=>e));f.length&&c.dom.classList.add(...f);const l=t.addEffect((()=>c.begin())),s=t.addAfterEffect((()=>c.end()));return()=>{f.length&&c.dom.classList.remove(...f),null==n||n.removeChild(c.dom),l(),s()}}}),[u,c,r,e]),null};
package/core/Stats.js CHANGED
@@ -14,10 +14,12 @@ function Stats({
14
14
  const node = parent && parent.current || document.body;
15
15
  stats.showPanel(showPanel);
16
16
  node == null || node.appendChild(stats.dom);
17
- if (className) stats.dom.classList.add(...className.split(' ').filter(cls => cls));
17
+ const classNames = (className !== null && className !== void 0 ? className : '').split(' ').filter(cls => cls);
18
+ if (classNames.length) stats.dom.classList.add(...classNames);
18
19
  const begin = addEffect(() => stats.begin());
19
20
  const end = addAfterEffect(() => stats.end());
20
21
  return () => {
22
+ if (classNames.length) stats.dom.classList.remove(...classNames);
21
23
  node == null || node.removeChild(stats.dom);
22
24
  begin();
23
25
  end();
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("stats-gl");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(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 c=u(e),o=n(r);exports.StatsGl=function({className:e,parent:r,...n}){const u=t.useThree((e=>e.gl)),a=c.useMemo((()=>{const e=new o.default({...n});return e.init(u),e}),[u]);return c.useEffect((()=>{if(a){const n=r&&r.current||document.body;null==n||n.appendChild(a.dom),e&&a.container.classList.add(...e.split(" ").filter((e=>e)));const u=t.addAfterEffect((()=>a.update()));return()=>{null==n||n.removeChild(a.dom),u()}}}),[r,a,e]),null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("stats-gl");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(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),c=n(r);exports.StatsGl=function({className:e,parent:r,...n}){const u=t.useThree((e=>e.gl)),o=l.useMemo((()=>{const e=new c.default({...n});return e.init(u),e}),[u]);return l.useEffect((()=>{if(o){const n=r&&r.current||document.body;null==n||n.appendChild(o.dom);const u=(null!=e?e:"").split(" ").filter((e=>e));u.length&&o.dom.classList.add(...u);const l=t.addAfterEffect((()=>o.update()));return()=>{u.length&&o.dom.classList.remove(...u),null==n||n.removeChild(o.dom),l()}}}),[r,o,e]),null};
package/core/StatsGl.js CHANGED
@@ -19,9 +19,11 @@ function StatsGl({
19
19
  if (stats) {
20
20
  const node = parent && parent.current || document.body;
21
21
  node == null || node.appendChild(stats.dom);
22
- if (className) stats.container.classList.add(...className.split(' ').filter(cls => cls));
22
+ const classNames = (className !== null && className !== void 0 ? className : '').split(' ').filter(cls => cls);
23
+ if (classNames.length) stats.dom.classList.add(...classNames);
23
24
  const end = addAfterEffect(() => stats.update());
24
25
  return () => {
26
+ if (classNames.length) stats.dom.classList.remove(...classNames);
25
27
  node == null || node.removeChild(stats.dom);
26
28
  end();
27
29
  };