@react-three/drei 8.6.1 → 8.7.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
@@ -531,7 +531,7 @@ Adds a `<group />` that always faces the camera.
531
531
 
532
532
  #### GizmoHelper
533
533
 
534
- [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/gizmos-gizmohelper--default-story)
534
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/gizmos-gizmohelper--gizmo-helper-story)
535
535
 
536
536
  Used by widgets that visualize and control camera position.
537
537
 
@@ -874,10 +874,10 @@ For this to work properly your event handler have to call `event.stopPropagation
874
874
 
875
875
  ![](https://img.shields.io/badge/-Dom only-red)
876
876
 
877
- This component allows you to select/unselect objects by clicking on them. It keeps track of the currently selected objects and can select multiple objects (with the shift key). Nested components can request the current selection (which is always an array) with the `useSelect` hook. With the `box` prop it will let you shift-box-select objects by holding and draging the cursor over multiple objects.
877
+ This component allows you to select/unselect objects by clicking on them. It keeps track of the currently selected objects and can select multiple objects (with the shift key). Nested components can request the current selection (which is always an array) with the `useSelect` hook. With the `box` prop it will let you shift-box-select objects by holding and draging the cursor over multiple objects. Optionally you can filter the selected items as well as define in which shape they are stored by defining the `filter` prop.
878
878
 
879
879
  ```jsx
880
- <Select box multiple onChange={console.log}>
880
+ <Select box multiple onChange={console.log} filter={items => items}>
881
881
  <Foo />
882
882
  <Bar />
883
883
  </Select>
@@ -1387,7 +1387,7 @@ useBVH(mesh)
1387
1387
 
1388
1388
  #### Center
1389
1389
 
1390
- [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.vercel.app/?path=/story/misc-center--default-story)
1390
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/staging-center--default-story)
1391
1391
 
1392
1392
  Calculates a boundary box and centers its children accordingly. `alignTop` makes adjusts it so that it's sits flush on y=0.
1393
1393
 
@@ -1425,7 +1425,7 @@ function Foo() {
1425
1425
 
1426
1426
  #### CameraShake
1427
1427
 
1428
- [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.vercel.app/?path=/story/camera-camerashake--camera-shake-st)
1428
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/staging-camerashake--camera-shake-story)
1429
1429
 
1430
1430
  A component for applying a configurable camera shake effect. Currently only supports rotational camera shake. Pass a ref to recieve the `ShakeController` API.
1431
1431
 
@@ -1471,7 +1471,7 @@ This component makes its contents float or hover.
1471
1471
 
1472
1472
  #### Stage
1473
1473
 
1474
- [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/prototyping-stage--stage-st)
1474
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/staging-stage--stage-st)
1475
1475
 
1476
1476
  Creates a "stage" with proper studio lighting, content centered and planar, shadows and ground-contact shadows.
1477
1477
 
@@ -1513,7 +1513,7 @@ A cheap canvas-texture-based circular gradient.
1513
1513
 
1514
1514
  #### ContactShadows
1515
1515
 
1516
- [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.vercel.app/?path=/story/shaders-contactshadows--contact-shadow-st)
1516
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/staging-contactshadows--contact-shadow-st)
1517
1517
 
1518
1518
  A [contact shadow](https://threejs.org/examples/?q=con#webgl_shadow_contact) implementation, facing upwards (positive Y) by default. `scale` can be a positive number or a 2D array `[x: number, y: number]`.
1519
1519
 
@@ -1550,7 +1550,7 @@ function Foo() {
1550
1550
 
1551
1551
  #### Environment
1552
1552
 
1553
- [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/abstractions-environment--environment-st)
1553
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/staging-environment--environment-story)
1554
1554
 
1555
1555
  Sets up a global cubemap, which affects the default `scene.environment`, and optionally `scene.background`, unless a custom scene has been passed. A selection of [presets](src/helpers/environment-assets.ts) from [HDRI Haven](https://hdrihaven.com/) are available for convenience. If you pass an array of files it will use THREE.CubeTextureLoader.
1556
1556
 
@@ -1572,7 +1572,7 @@ If you provide a single string it will use THREE.RGBELoader.
1572
1572
 
1573
1573
  #### Sky
1574
1574
 
1575
- [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.vercel.app/?path=/story/shaders-sky--sky-st)
1575
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/staging-sky--sky-st)
1576
1576
 
1577
1577
  Adds a [sky](https://threejs.org/examples/webgl_shaders_sky.html) to your scene.
1578
1578
 
@@ -1582,7 +1582,7 @@ Adds a [sky](https://threejs.org/examples/webgl_shaders_sky.html) to your scene.
1582
1582
 
1583
1583
  #### Stars
1584
1584
 
1585
- [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.vercel.app/?path=/story/shaders-stars--stars-st)
1585
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/staging-stars--stars-st)
1586
1586
 
1587
1587
  Adds a blinking shader-based starfield to your scene.
1588
1588
 
@@ -1608,7 +1608,7 @@ Particle based cloud.
1608
1608
 
1609
1609
  #### useMatcapTexture
1610
1610
 
1611
- [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/prototyping-usematcaptexture) ![](https://img.shields.io/badge/-suspense-brightgreen)
1611
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/staging-usematcaptexture--use-matcap-texture-st) ![](https://img.shields.io/badge/-suspense-brightgreen)
1612
1612
 
1613
1613
  Loads matcap textures from this repository: https://github.com/emmelleppi/matcaps
1614
1614
 
@@ -1637,7 +1637,7 @@ const [matcap] = useMatcapTexture('3E2335_D36A1B_8E4A2E_2842A5')
1637
1637
 
1638
1638
  #### useNormalTexture
1639
1639
 
1640
- [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/prototyping-usenormaltexture) ![](https://img.shields.io/badge/-suspense-brightgreen)
1640
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/staging-usenormaltexture--use-normal-texture-st) ![](https://img.shields.io/badge/-suspense-brightgreen)
1641
1641
 
1642
1642
  Loads normal textures from this repository: https://github.com/emmelleppi/normal-maps
1643
1643
 
@@ -1 +1 @@
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-stdlib");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(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 a=o(e),c=s(t);const u=c.forwardRef((({makeDefault:e,camera:t,regress:o,domElement:s,onChange:u,onStart:i,onEnd:l,...d},f)=>{const b=r.useThree((({invalidate:e})=>e)),m=r.useThree((({camera:e})=>e)),v=r.useThree((({gl:e})=>e)),h=r.useThree((({events:e})=>e)),p=r.useThree((({set:e})=>e)),E=r.useThree((({get:e})=>e)),g=r.useThree((({performance:e})=>e)),j=t||m,O=s||("boolean"!=typeof h.connected?h.connected:v.domElement),T=c.useMemo((()=>new n.ArcballControls(j)),[j]);return r.useFrame((()=>{T.enabled&&T.update()})),c.useEffect((()=>{const e=e=>{b(),o&&g.regress(),u&&u(e)};return T.connect(O),T.addEventListener("change",e),i&&T.addEventListener("start",i),l&&T.addEventListener("end",l),()=>{T.removeEventListener("change",e),i&&T.removeEventListener("start",i),l&&T.removeEventListener("end",l),T.dispose()}}),[O,u,i,l,o,T,b]),c.useEffect((()=>{if(e){const e=E().controls;return p({controls:T}),()=>p({controls:e})}}),[e,T]),c.createElement("primitive",a.default({ref:f,object:T},d))}));exports.ArcballControls=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(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 a=s(e),c=o(r);const u=r.forwardRef((({camera:e,makeDefault:s,regress:o,domElement:u,onChange:i,onStart:l,onEnd:f,...d},b)=>{const m=t.useThree((({invalidate:e})=>e)),v=t.useThree((({camera:e})=>e)),h=t.useThree((({gl:e})=>e)),E=t.useThree((({events:e})=>e)),p=t.useThree((({set:e})=>e)),g=t.useThree((({get:e})=>e)),j=t.useThree((({performance:e})=>e)),O=e||v,T=u||("boolean"!=typeof E.connected?E.connected:h.domElement),y=r.useMemo((()=>new n.ArcballControls(O,T)),[O,T]);return t.useFrame((()=>{y.enabled&&y.update()})),r.useEffect((()=>{const e=e=>{m(),o&&j.regress(),i&&i(e)};return y.connect(T),y.addEventListener("change",e),l&&y.addEventListener("start",l),f&&y.addEventListener("end",f),()=>{y.removeEventListener("change",e),l&&y.removeEventListener("start",l),f&&y.removeEventListener("end",f),y.dispose()}}),[T,i,l,f,o,y,m]),r.useEffect((()=>{Object.assign(y,d)}),[d]),r.useEffect((()=>{if(s){const e=g().controls;return p({controls:y}),()=>p({controls:e})}}),[s,y]),c.createElement("primitive",a.default({ref:b,object:y},d))}));exports.ArcballControls=u;
@@ -1,15 +1,15 @@
1
1
  import { ReactThreeFiber } from '@react-three/fiber';
2
2
  import * as React from 'react';
3
- import * as THREE from 'three';
4
3
  import { ArcballControls as ArcballControlsImpl } from 'three-stdlib';
5
- export declare type ArcballControlsProps = ReactThreeFiber.Overwrite<ReactThreeFiber.Object3DNode<ArcballControlsImpl, typeof ArcballControlsImpl>, {
4
+ import type { Event, OrthographicCamera, PerspectiveCamera } from 'three';
5
+ export declare type ArcballControlsProps = Omit<ReactThreeFiber.Overwrite<ReactThreeFiber.Object3DNode<ArcballControlsImpl, typeof ArcballControlsImpl>, {
6
6
  target?: ReactThreeFiber.Vector3;
7
- camera?: THREE.Camera;
7
+ camera?: OrthographicCamera | PerspectiveCamera;
8
8
  domElement?: HTMLElement;
9
9
  regress?: boolean;
10
10
  makeDefault?: boolean;
11
- onChange?: (e?: THREE.Event) => void;
12
- onStart?: (e?: THREE.Event) => void;
13
- onEnd?: (e?: THREE.Event) => void;
14
- }>;
15
- export declare const ArcballControls: React.ForwardRefExoticComponent<Pick<ArcballControlsProps, string | number | symbol> & React.RefAttributes<ArcballControlsImpl>>;
11
+ onChange?: (e?: Event) => void;
12
+ onStart?: (e?: Event) => void;
13
+ onEnd?: (e?: Event) => void;
14
+ }>, 'ref'>;
15
+ export declare const ArcballControls: React.ForwardRefExoticComponent<ArcballControlsProps & React.RefAttributes<ArcballControlsImpl>>;
@@ -1,11 +1,12 @@
1
1
  import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import { useThree, useFrame } from '@react-three/fiber';
3
3
  import * as React from 'react';
4
+ import { forwardRef, useMemo, useEffect } from 'react';
4
5
  import { ArcballControls as ArcballControls$1 } from 'three-stdlib';
5
6
 
6
- const ArcballControls = /*#__PURE__*/React.forwardRef(({
7
- makeDefault,
7
+ const ArcballControls = /*#__PURE__*/forwardRef(({
8
8
  camera,
9
+ makeDefault,
9
10
  regress,
10
11
  domElement,
11
12
  onChange,
@@ -36,11 +37,11 @@ const ArcballControls = /*#__PURE__*/React.forwardRef(({
36
37
  }) => performance);
37
38
  const explCamera = camera || defaultCamera;
38
39
  const explDomElement = domElement || (typeof events.connected !== 'boolean' ? events.connected : gl.domElement);
39
- const controls = React.useMemo(() => new ArcballControls$1(explCamera), [explCamera]);
40
+ const controls = useMemo(() => new ArcballControls$1(explCamera, explDomElement), [explCamera, explDomElement]);
40
41
  useFrame(() => {
41
42
  if (controls.enabled) controls.update();
42
43
  });
43
- React.useEffect(() => {
44
+ useEffect(() => {
44
45
  const callback = e => {
45
46
  invalidate();
46
47
  if (regress) performance.regress();
@@ -58,7 +59,10 @@ const ArcballControls = /*#__PURE__*/React.forwardRef(({
58
59
  controls.dispose();
59
60
  };
60
61
  }, [explDomElement, onChange, onStart, onEnd, regress, controls, invalidate]);
61
- React.useEffect(() => {
62
+ useEffect(() => {
63
+ Object.assign(controls, restProps);
64
+ }, [restProps]);
65
+ useEffect(() => {
62
66
  if (makeDefault) {
63
67
  // @ts-expect-error new in @react-three/fiber@7.0.5
64
68
  const old = get().controls; // @ts-expect-error new in @react-three/fiber@7.0.5
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber"),n=require("three"),t=require("three-stdlib"),s=require("use-asset"),u=require("../helpers/environment-assets.cjs.js");function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:function(){return e[n]}})}})),r.default=e,Object.freeze(r)}var a=o(e);exports.Environment=function({background:e=!1,files:o=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:i="",preset:c,scene:d,extensions:p}){if(c){if(!(c in u.presetsObj))throw new Error("Preset must be one of: "+Object.keys(u.presetsObj).join(", "));o=u.presetsObj[c],i="https://rawcdn.githack.com/pmndrs/drei-assets/aa3600359ba664d546d05821bcbca42013587df2/hdri/"}const b=r.useThree((({scene:e})=>e)),f=r.useThree((({gl:e})=>e)),g=Array.isArray(o),l=g?n.CubeTextureLoader:t.RGBELoader,m=r.useLoader(l,g?[o]:o,(e=>{e.setPath(i),p&&p(e)})),h=g?m[0]:m,j=s.useAsset((()=>new Promise((e=>{const r=new n.PMREMGenerator(f),t=function(e,r,n){return n?(r.compileEquirectangularShader(),r.fromCubemap(e).texture):r.fromEquirectangular(e).texture}(h,r,g);r.dispose(),e(t)}))),h);return a.useLayoutEffect((()=>{const r=d?d.background:b.background,n=d?d.environment:b.environment;return d?(d.environment=j,e&&(d.background=j)):(b.environment=j,e&&(b.background=j)),()=>{d?(d.environment=n,d.background=r):(b.environment=n,b.background=r),s.useAsset.clear(h),j.dispose()}}),[j,e,d]),null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber"),n=require("three"),t=require("three-stdlib"),s=require("../helpers/environment-assets.cjs.js");function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:function(){return e[n]}})}})),r.default=e,Object.freeze(r)}var o=a(e);exports.Environment=function({background:e=!1,files:a=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:i="",preset:u,scene:c,extensions:p}){if(u){if(!(u in s.presetsObj))throw new Error("Preset must be one of: "+Object.keys(s.presetsObj).join(", "));a=s.presetsObj[u],i="https://rawcdn.githack.com/pmndrs/drei-assets/aa3600359ba664d546d05821bcbca42013587df2/hdri/"}const b=r.useThree((({scene:e})=>e)),d=Array.isArray(a),f=d?n.CubeTextureLoader:t.RGBELoader,g=r.useLoader(f,d?[a]:a,(e=>{e.setPath(i),null==e.setDataType||e.setDataType(n.FloatType),p&&p(e)})),l=d?g[0]:g;return l.mapping=n.EquirectangularReflectionMapping,o.useLayoutEffect((()=>{const r=c?c.background:b.background,n=c?c.environment:b.environment;return c?(c.environment=l,e&&(c.background=l)):(b.environment=l,e&&(b.background=l)),()=>{c?(c.environment=n,c.background=r):(b.environment=n,b.background=r),l.dispose()}}),[l,e,c]),null};
@@ -1,19 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import { useThree, useLoader } from '@react-three/fiber';
3
- import { PMREMGenerator, CubeTextureLoader } from 'three';
3
+ import { FloatType, EquirectangularReflectionMapping, CubeTextureLoader } from 'three';
4
4
  import { RGBELoader } from 'three-stdlib';
5
- import { useAsset } from 'use-asset';
6
5
  import { presetsObj } from '../helpers/environment-assets.js';
7
6
 
8
- function getTexture(texture, gen, isCubeMap) {
9
- if (isCubeMap) {
10
- gen.compileEquirectangularShader();
11
- return gen.fromCubemap(texture).texture;
12
- }
13
-
14
- return gen.fromEquirectangular(texture).texture;
15
- }
16
-
17
7
  const CUBEMAP_ROOT = 'https://rawcdn.githack.com/pmndrs/drei-assets/aa3600359ba664d546d05821bcbca42013587df2';
18
8
  function Environment({
19
9
  background = false,
@@ -35,25 +25,17 @@ function Environment({
35
25
  const defaultScene = useThree(({
36
26
  scene
37
27
  }) => scene);
38
- const gl = useThree(({
39
- gl
40
- }) => gl);
41
28
  const isCubeMap = Array.isArray(files);
42
29
  const loader = isCubeMap ? CubeTextureLoader : RGBELoader; // @ts-expect-error
43
30
 
44
31
  const loaderResult = useLoader(loader, isCubeMap ? [files] : files, loader => {
45
- loader.setPath(path);
32
+ loader.setPath(path); // @ts-expect-error
33
+
34
+ loader.setDataType == null ? void 0 : loader.setDataType(FloatType);
46
35
  if (extensions) extensions(loader);
47
36
  });
48
- const map = isCubeMap ? loaderResult[0] : loaderResult; // PMREMGenerator takes its sweet time to generate the env-map,
49
- // Let's make this part of suspense, or else it just yields a frame-skip
50
-
51
- const texture = useAsset(() => new Promise(res => {
52
- const gen = new PMREMGenerator(gl);
53
- const texture = getTexture(map, gen, isCubeMap);
54
- gen.dispose();
55
- res(texture);
56
- }), map);
37
+ const texture = isCubeMap ? loaderResult[0] : loaderResult;
38
+ texture.mapping = EquirectangularReflectionMapping;
57
39
  React.useLayoutEffect(() => {
58
40
  const oldbg = scene ? scene.background : defaultScene.background;
59
41
  const oldenv = scene ? scene.environment : defaultScene.environment;
@@ -76,7 +58,6 @@ function Environment({
76
58
  } // Environment textures are volatile, better dispose and uncache them
77
59
 
78
60
 
79
- useAsset.clear(map);
80
61
  texture.dispose();
81
62
  };
82
63
  }, [texture, background, scene]);
@@ -9,4 +9,4 @@ export declare type MapControlsProps = ReactThreeFiber.Overwrite<ReactThreeFiber
9
9
  onStart?: (e?: THREE.Event) => void;
10
10
  onEnd?: (e?: THREE.Event) => void;
11
11
  }>;
12
- export declare const MapControls: React.ForwardRefExoticComponent<Pick<MapControlsProps, "object" | "attach" | "attachArray" | "attachObject" | "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" | "reset" | "enabled" | "update" | "onStart" | "keys" | "target" | "touches" | "connect" | "domElement" | "minDistance" | "maxDistance" | "minZoom" | "maxZoom" | "minPolarAngle" | "maxPolarAngle" | "minAzimuthAngle" | "maxAzimuthAngle" | "enableDamping" | "dampingFactor" | "enableZoom" | "zoomSpeed" | "enableRotate" | "rotateSpeed" | "enablePan" | "panSpeed" | "screenSpacePanning" | "keyPanSpeed" | "autoRotate" | "autoRotateSpeed" | "mouseButtons" | "target0" | "position0" | "zoom0" | "_domElementKeyEvents" | "getPolarAngle" | "getAzimuthalAngle" | "setPolarAngle" | "setAzimuthalAngle" | "getDistance" | "listenToKeyEvents" | "saveState" | "onEnd"> & React.RefAttributes<MapControlsImpl>>;
12
+ export declare const MapControls: React.ForwardRefExoticComponent<Pick<MapControlsProps, "object" | "attach" | "attachArray" | "attachObject" | "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" | "reset" | "enabled" | "update" | "onStart" | "keys" | "target" | "touches" | "connect" | "domElement" | "minDistance" | "maxDistance" | "minZoom" | "maxZoom" | "minPolarAngle" | "maxPolarAngle" | "minAzimuthAngle" | "maxAzimuthAngle" | "enableDamping" | "dampingFactor" | "enableZoom" | "zoomSpeed" | "enableRotate" | "rotateSpeed" | "enablePan" | "panSpeed" | "screenSpacePanning" | "keyPanSpeed" | "autoRotate" | "autoRotateSpeed" | "reverseOrbit" | "mouseButtons" | "target0" | "position0" | "zoom0" | "_domElementKeyEvents" | "getPolarAngle" | "getAzimuthalAngle" | "setPolarAngle" | "setAzimuthalAngle" | "getDistance" | "listenToKeyEvents" | "saveState" | "onEnd"> & React.RefAttributes<MapControlsImpl>>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(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 a=o(e),u=s(r);const c=u.forwardRef((({makeDefault:e,camera:r,regress:o,domElement:s,enableDamping:c=!0,onChange:i,onStart:d,onEnd:l,...f},b)=>{const m=t.useThree((({invalidate:e})=>e)),v=t.useThree((({camera:e})=>e)),p=t.useThree((({gl:e})=>e)),h=t.useThree((({events:e})=>e)),E=t.useThree((({set:e})=>e)),g=t.useThree((({get:e})=>e)),O=t.useThree((({performance:e})=>e)),j=r||v,T=s||("boolean"!=typeof h.connected?h.connected:p.domElement),y=u.useMemo((()=>new n.OrbitControls(j)),[j]);return t.useFrame((()=>{y.enabled&&y.update()})),u.useEffect((()=>{const e=e=>{m(),o&&O.regress(),i&&i(e)};return y.connect(T),y.addEventListener("change",e),d&&y.addEventListener("start",d),l&&y.addEventListener("end",l),()=>{y.removeEventListener("change",e),d&&y.removeEventListener("start",d),l&&y.removeEventListener("end",l),y.dispose()}}),[T,i,d,l,o,y,m]),u.useEffect((()=>{if(e){const e=g().controls;return E({controls:y}),()=>E({controls:e})}}),[e,y]),u.createElement("primitive",a.default({ref:b,object:y,enableDamping:c},f))}));exports.OrbitControls=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(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 a=s(e),c=o(r);const u=r.forwardRef((({makeDefault:e,camera:s,regress:o,domElement:u,enableDamping:i=!0,onChange:f,onStart:d,onEnd:l,...b},m)=>{const v=t.useThree((({invalidate:e})=>e)),p=t.useThree((({camera:e})=>e)),h=t.useThree((({gl:e})=>e)),E=t.useThree((({events:e})=>e)),g=t.useThree((({set:e})=>e)),O=t.useThree((({get:e})=>e)),j=t.useThree((({performance:e})=>e)),T=s||p,y=u||("boolean"!=typeof E.connected?E.connected:h.domElement),L=r.useMemo((()=>new n.OrbitControls(T,y)),[T,y]);return t.useFrame((()=>{L.enabled&&L.update()})),r.useEffect((()=>{const e=e=>{v(),o&&j.regress(),f&&f(e)};return L.connect(y),L.addEventListener("change",e),d&&L.addEventListener("start",d),l&&L.addEventListener("end",l),()=>{L.removeEventListener("change",e),d&&L.removeEventListener("start",d),l&&L.removeEventListener("end",l),L.dispose()}}),[y,f,d,l,o,L,v]),r.useEffect((()=>{Object.assign(L,b)}),[b]),r.useEffect((()=>{if(e){const e=O().controls;return g({controls:L}),()=>g({controls:e})}}),[e,L]),c.createElement("primitive",a.default({ref:m,object:L,enableDamping:i},b))}));exports.OrbitControls=u;
@@ -1,16 +1,16 @@
1
1
  import { ReactThreeFiber } from '@react-three/fiber';
2
2
  import * as React from 'react';
3
- import * as THREE from 'three';
3
+ import type { Camera, Event } from 'three';
4
4
  import { OrbitControls as OrbitControlsImpl } from 'three-stdlib';
5
- export declare type OrbitControlsProps = ReactThreeFiber.Overwrite<ReactThreeFiber.Object3DNode<OrbitControlsImpl, typeof OrbitControlsImpl>, {
6
- target?: ReactThreeFiber.Vector3;
7
- camera?: THREE.Camera;
5
+ export declare type OrbitControlsProps = Omit<ReactThreeFiber.Overwrite<ReactThreeFiber.Object3DNode<OrbitControlsImpl, typeof OrbitControlsImpl>, {
6
+ camera?: Camera;
8
7
  domElement?: HTMLElement;
9
- regress?: boolean;
10
8
  enableDamping?: boolean;
11
9
  makeDefault?: boolean;
12
- onChange?: (e?: THREE.Event) => void;
13
- onStart?: (e?: THREE.Event) => void;
14
- onEnd?: (e?: THREE.Event) => void;
15
- }>;
16
- export declare const OrbitControls: React.ForwardRefExoticComponent<Pick<OrbitControlsProps, "object" | "attach" | "attachArray" | "attachObject" | "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" | "reset" | "enabled" | "update" | "onStart" | "keys" | "target" | "touches" | "connect" | "makeDefault" | "domElement" | "minDistance" | "maxDistance" | "minZoom" | "maxZoom" | "minPolarAngle" | "maxPolarAngle" | "minAzimuthAngle" | "maxAzimuthAngle" | "enableDamping" | "dampingFactor" | "enableZoom" | "zoomSpeed" | "enableRotate" | "rotateSpeed" | "enablePan" | "panSpeed" | "screenSpacePanning" | "keyPanSpeed" | "autoRotate" | "autoRotateSpeed" | "mouseButtons" | "target0" | "position0" | "zoom0" | "_domElementKeyEvents" | "getPolarAngle" | "getAzimuthalAngle" | "setPolarAngle" | "setAzimuthalAngle" | "getDistance" | "listenToKeyEvents" | "saveState" | "onEnd" | "regress"> & React.RefAttributes<OrbitControlsImpl>>;
10
+ onChange?: (e?: Event) => void;
11
+ onEnd?: (e?: Event) => void;
12
+ onStart?: (e?: Event) => void;
13
+ regress?: boolean;
14
+ target?: ReactThreeFiber.Vector3;
15
+ }>, 'ref'>;
16
+ export declare const OrbitControls: React.ForwardRefExoticComponent<OrbitControlsProps & React.RefAttributes<OrbitControlsImpl>>;
@@ -1,9 +1,10 @@
1
1
  import _extends from '@babel/runtime/helpers/esm/extends';
2
2
  import { useThree, useFrame } from '@react-three/fiber';
3
3
  import * as React from 'react';
4
+ import { forwardRef, useMemo, useEffect } from 'react';
4
5
  import { OrbitControls as OrbitControls$1 } from 'three-stdlib';
5
6
 
6
- const OrbitControls = /*#__PURE__*/React.forwardRef(({
7
+ const OrbitControls = /*#__PURE__*/forwardRef(({
7
8
  makeDefault,
8
9
  camera,
9
10
  regress,
@@ -37,11 +38,11 @@ const OrbitControls = /*#__PURE__*/React.forwardRef(({
37
38
  }) => performance);
38
39
  const explCamera = camera || defaultCamera;
39
40
  const explDomElement = domElement || (typeof events.connected !== 'boolean' ? events.connected : gl.domElement);
40
- const controls = React.useMemo(() => new OrbitControls$1(explCamera), [explCamera]);
41
+ const controls = useMemo(() => new OrbitControls$1(explCamera, explDomElement), [explCamera, explDomElement]);
41
42
  useFrame(() => {
42
43
  if (controls.enabled) controls.update();
43
44
  });
44
- React.useEffect(() => {
45
+ useEffect(() => {
45
46
  const callback = e => {
46
47
  invalidate();
47
48
  if (regress) performance.regress();
@@ -59,7 +60,10 @@ const OrbitControls = /*#__PURE__*/React.forwardRef(({
59
60
  controls.dispose();
60
61
  };
61
62
  }, [explDomElement, onChange, onStart, onEnd, regress, controls, invalidate]);
62
- React.useEffect(() => {
63
+ useEffect(() => {
64
+ Object.assign(controls, restProps);
65
+ }, [restProps]);
66
+ useEffect(() => {
63
67
  if (makeDefault) {
64
68
  // @ts-expect-error new in @react-three/fiber@7.0.5
65
69
  const old = get().controls; // @ts-expect-error new in @react-three/fiber@7.0.5
package/core/Stage.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"),i=require("./Environment.cjs.js"),a=require("./ContactShadows.cjs.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(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)}require("three-stdlib"),require("use-asset"),require("../helpers/environment-assets.cjs.js");var u=s(e),c=o(t),l=o(r);const f={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};exports.Stage=function({children:e,controls:t,shadows:r=!0,adjustCamera:s=!0,environment:o="city",intensity:d=1,preset:h="rembrandt",shadowBias:m=0,contactShadow:p={blur:2,opacity:.5,position:[0,0,0]},...b}){const g=f[h],y=n.useThree((e=>e.camera)),j=n.useThree((e=>e.controls)),w=c.useRef(null),E=c.useRef(null),[{radius:x,width:v,height:q},O]=c.useState({radius:0,width:0,height:0});return c.useLayoutEffect((()=>{w.current.position.set(0,0,0),w.current.updateWorldMatrix(!0,!0);const e=(new l.Box3).setFromObject(E.current),t=new l.Vector3,r=new l.Sphere,n=e.max.y-e.min.y,i=e.max.x-e.min.x;e.getCenter(t),e.getBoundingSphere(r),O({radius:r.radius,width:i,height:n}),w.current.position.set(-t.x,-t.y+n/2,-t.z)}),[e]),c.useLayoutEffect((()=>{if(s){const e=x/(q>v?1.5:2.5);y.position.set(0,.5*x,2.5*x),y.near=.1,y.far=Math.max(5e3,4*x),y.lookAt(0,e,0);const r=j||(null==t?void 0:t.current);r&&(r.target.set(0,e,0),r.update())}}),[j,x,q,v,s]),c.createElement("group",b,c.createElement("group",{ref:w},c.createElement("group",{ref:E},e)),p&&c.createElement(a.ContactShadows,u.default({width:2*x,height:2*x,far:x/2},p)),o&&c.createElement(i.Environment,{preset:o}),c.createElement("ambientLight",{intensity:d/3}),c.createElement("spotLight",{penumbra:1,position:[g.main[0]*x,g.main[1]*x,g.main[2]*x],intensity:2*d,castShadow:r,"shadow-bias":m}),c.createElement("pointLight",{position:[g.fill[0]*x,g.fill[1]*x,g.fill[2]*x],intensity:d}))};
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"),i=require("./Environment.cjs.js"),a=require("./ContactShadows.cjs.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(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)}require("three-stdlib"),require("../helpers/environment-assets.cjs.js");var u=o(e),c=s(t),l=s(r);const f={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};exports.Stage=function({children:e,controls:t,shadows:r=!0,adjustCamera:o=!0,environment:s="city",intensity:d=1,preset:h="rembrandt",shadowBias:m=0,contactShadow:p={blur:2,opacity:.5,position:[0,0,0]},...b}){const g=f[h],y=n.useThree((e=>e.camera)),j=n.useThree((e=>e.controls)),w=c.useRef(null),E=c.useRef(null),[{radius:x,width:v,height:q},O]=c.useState({radius:0,width:0,height:0});return c.useLayoutEffect((()=>{w.current.position.set(0,0,0),w.current.updateWorldMatrix(!0,!0);const e=(new l.Box3).setFromObject(E.current),t=new l.Vector3,r=new l.Sphere,n=e.max.y-e.min.y,i=e.max.x-e.min.x;e.getCenter(t),e.getBoundingSphere(r),O({radius:r.radius,width:i,height:n}),w.current.position.set(-t.x,-t.y+n/2,-t.z)}),[e]),c.useLayoutEffect((()=>{if(o){const e=x/(q>v?1.5:2.5);y.position.set(0,.5*x,2.5*x),y.near=.1,y.far=Math.max(5e3,4*x),y.lookAt(0,e,0);const r=j||(null==t?void 0:t.current);r&&(r.target.set(0,e,0),r.update())}}),[j,x,q,v,o]),c.createElement("group",b,c.createElement("group",{ref:w},c.createElement("group",{ref:E},e)),p&&c.createElement(a.ContactShadows,u.default({width:2*x,height:2*x,far:x/2},p)),s&&c.createElement(i.Environment,{preset:s}),c.createElement("ambientLight",{intensity:d/3}),c.createElement("spotLight",{penumbra:1,position:[g.main[0]*x,g.main[1]*x,g.main[2]*x],intensity:2*d,castShadow:r,"shadow-bias":m}),c.createElement("pointLight",{position:[g.fill[0]*x,g.fill[1]*x,g.fill[2]*x],intensity:d}))};
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("three/examples/js/libs/stats.min"),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);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 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);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};
package/core/Stats.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { addEffect, addAfterEffect } from '@react-three/fiber';
3
- import StatsImpl from 'three/examples/js/libs/stats.min';
3
+ import StatsImpl from 'stats.js';
4
4
  import { useEffectfulState } from '../helpers/useEffectfulState.js';
5
5
 
6
6
  function Stats({
@@ -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" | "attachArray" | "attachObject" | "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" | "enabled" | "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" | "attachArray" | "attachObject" | "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" | "enabled" | "update" | "axis" | "connect" | "setSize" | "domElement" | "isTransformControls" | "detach" | "getMode" | "setMode" | "setTranslationSnap" | "setRotationSnap" | "setScaleSnap" | "setSpace" | "onObjectChange" | "mode" | "translationSnap" | "rotationSnap" | "scaleSnap" | "showX" | "showY" | "showZ"> & React.RefAttributes<TransformControlsImpl<THREE.Camera>>>;
package/core/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./QuadraticBezierLine.cjs.js"),s=require("./CubicBezierLine.cjs.js"),t=require("./Line.cjs.js"),o=require("./PositionalAudio.cjs.js"),i=require("./Text.cjs.js"),u=require("./Effects.cjs.js"),a=require("./GradientTexture.cjs.js"),j=require("./Image.cjs.js"),c=require("./Edges.cjs.js"),n=require("./OrthographicCamera.cjs.js"),p=require("./PerspectiveCamera.cjs.js"),l=require("./CubeCamera.cjs.js"),x=require("./DeviceOrientationControls.cjs.js"),q=require("./FlyControls.cjs.js"),d=require("./MapControls.cjs.js"),C=require("./OrbitControls.cjs.js"),h=require("./TrackballControls.cjs.js"),m=require("./ArcballControls.cjs.js"),B=require("./TransformControls.cjs.js"),b=require("./PointerLockControls.cjs.js"),M=require("./FirstPersonControls.cjs.js"),P=require("./GizmoHelper.cjs.js"),S=require("./GizmoViewcube.cjs.js"),f=require("./GizmoViewport.cjs.js"),T=require("./useCubeTexture.cjs.js"),g=require("./useFBX.cjs.js"),v=require("./useGLTF.cjs.js"),L=require("./useProgress.cjs.js"),A=require("./useTexture.cjs.js"),G=require("./useKTX2.cjs.js"),k=require("./Stats.cjs.js"),D=require("./useDepthBuffer.cjs.js"),F=require("./useAspect.cjs.js"),w=require("./useCamera.cjs.js"),z=require("./useDetectGPU.cjs.js"),I=require("./useHelper.cjs.js"),O=require("./useBVH.cjs.js"),E=require("./useContextBridge.cjs.js"),R=require("./useAnimations.cjs.js"),y=require("./useFBO.cjs.js"),H=require("./useIntersect.cjs.js"),V=require("./CurveModifier.cjs.js"),Q=require("./MeshDistortMaterial.cjs.js"),X=require("./MeshWobbleMaterial.cjs.js"),K=require("./MeshReflectorMaterial.cjs.js"),W=require("./PointMaterial.cjs.js"),N=require("./shaderMaterial.cjs.js"),U=require("./softShadows.cjs.js"),_=require("./shapes.cjs.js"),J=require("./RoundedBox.cjs.js"),Y=require("./ScreenQuad.cjs.js"),Z=require("./Center.cjs.js"),$=require("./Bounds.cjs.js"),ee=require("./CameraShake.cjs.js"),re=require("./Float.cjs.js"),se=require("./Stage.cjs.js"),te=require("./Backdrop.cjs.js"),oe=require("./Shadow.cjs.js"),ie=require("./ContactShadows.cjs.js"),ue=require("./Reflector.cjs.js"),ae=require("./SpotLight.cjs.js"),je=require("./Environment.cjs.js"),ce=require("./Sky.cjs.js"),ne=require("./Stars.cjs.js"),pe=require("./Cloud.cjs.js"),le=require("./useMatcapTexture.cjs.js"),xe=require("./useNormalTexture.cjs.js"),qe=require("./Points.cjs.js"),de=require("./Instances.cjs.js"),Ce=require("./Segments.cjs.js"),he=require("./Detailed.cjs.js"),me=require("./Preload.cjs.js"),Be=require("./BakeShadows.cjs.js"),be=require("./meshBounds.cjs.js"),Me=require("./AdaptiveDpr.cjs.js"),Pe=require("./AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("lodash.omit"),require("lodash.pick"),require("zustand"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("use-asset"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.QuadraticBezierLine=r.QuadraticBezierLine,exports.CubicBezierLine=s.CubicBezierLine,exports.Line=t.Line,exports.PositionalAudio=o.PositionalAudio,exports.Text=i.Text,exports.Effects=u.Effects,exports.isWebGL2Available=u.isWebGL2Available,exports.GradientTexture=a.GradientTexture,exports.Image=j.Image,exports.Edges=c.Edges,exports.OrthographicCamera=n.OrthographicCamera,exports.PerspectiveCamera=p.PerspectiveCamera,exports.CubeCamera=l.CubeCamera,exports.DeviceOrientationControls=x.DeviceOrientationControls,exports.FlyControls=q.FlyControls,exports.MapControls=d.MapControls,exports.OrbitControls=C.OrbitControls,exports.TrackballControls=h.TrackballControls,exports.ArcballControls=m.ArcballControls,exports.TransformControls=B.TransformControls,exports.PointerLockControls=b.PointerLockControls,exports.FirstPersonControls=M.FirstPersonControls,exports.GizmoHelper=P.GizmoHelper,exports.useGizmoContext=P.useGizmoContext,exports.GizmoViewcube=S.GizmoViewcube,exports.GizmoViewport=f.GizmoViewport,exports.useCubeTexture=T.useCubeTexture,exports.useFBX=g.useFBX,exports.useGLTF=v.useGLTF,exports.useProgress=L.useProgress,exports.IsObject=A.IsObject,exports.useTexture=A.useTexture,exports.useKTX2=G.useKTX2,exports.Stats=k.Stats,exports.useDepthBuffer=D.useDepthBuffer,exports.useAspect=F.useAspect,exports.useCamera=w.useCamera,exports.useDetectGPU=z.useDetectGPU,exports.useHelper=I.useHelper,exports.useBVH=O.useBVH,exports.useContextBridge=E.useContextBridge,exports.useAnimations=R.useAnimations,exports.useFBO=y.useFBO,exports.useIntersect=H.useIntersect,exports.CurveModifier=V.CurveModifier,exports.MeshDistortMaterial=Q.MeshDistortMaterial,exports.MeshWobbleMaterial=X.MeshWobbleMaterial,exports.MeshReflectorMaterial=K.MeshReflectorMaterial,exports.PointMaterial=W.PointMaterial,exports.PointMaterialImpl=W.PointMaterialImpl,exports.shaderMaterial=N.shaderMaterial,exports.softShadows=U.softShadows,exports.Box=_.Box,exports.Circle=_.Circle,exports.Cone=_.Cone,exports.Cylinder=_.Cylinder,exports.Dodecahedron=_.Dodecahedron,exports.Extrude=_.Extrude,exports.Icosahedron=_.Icosahedron,exports.Lathe=_.Lathe,exports.Octahedron=_.Octahedron,exports.Plane=_.Plane,exports.Polyhedron=_.Polyhedron,exports.Ring=_.Ring,exports.Sphere=_.Sphere,exports.Tetrahedron=_.Tetrahedron,exports.Torus=_.Torus,exports.TorusKnot=_.TorusKnot,exports.Tube=_.Tube,exports.RoundedBox=J.RoundedBox,exports.ScreenQuad=Y.ScreenQuad,exports.Center=Z.Center,exports.Bounds=$.Bounds,exports.useBounds=$.useBounds,exports.CameraShake=ee.CameraShake,exports.Float=re.Float,exports.Stage=se.Stage,exports.Backdrop=te.Backdrop,exports.Shadow=oe.Shadow,exports.ContactShadows=ie.ContactShadows,exports.Reflector=ue.Reflector,exports.SpotLight=ae.SpotLight,exports.Environment=je.Environment,exports.Sky=ce.Sky,exports.calcPosFromAngles=ce.calcPosFromAngles,exports.Stars=ne.Stars,exports.Cloud=pe.Cloud,exports.useMatcapTexture=le.useMatcapTexture,exports.useNormalTexture=xe.useNormalTexture,exports.Point=qe.Point,exports.Points=qe.Points,exports.PointsBuffer=qe.PointsBuffer,exports.Instance=de.Instance,exports.Instances=de.Instances,exports.Merged=de.Merged,exports.Segment=Ce.Segment,exports.Segments=Ce.Segments,exports.Detailed=he.Detailed,exports.Preload=me.Preload,exports.BakeShadows=Be.BakeShadows,exports.meshBounds=be.meshBounds,exports.AdaptiveDpr=Me.AdaptiveDpr,exports.AdaptiveEvents=Pe.AdaptiveEvents;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./QuadraticBezierLine.cjs.js"),s=require("./CubicBezierLine.cjs.js"),t=require("./Line.cjs.js"),o=require("./PositionalAudio.cjs.js"),i=require("./Text.cjs.js"),u=require("./Effects.cjs.js"),a=require("./GradientTexture.cjs.js"),j=require("./Image.cjs.js"),c=require("./Edges.cjs.js"),n=require("./OrthographicCamera.cjs.js"),p=require("./PerspectiveCamera.cjs.js"),l=require("./CubeCamera.cjs.js"),x=require("./DeviceOrientationControls.cjs.js"),q=require("./FlyControls.cjs.js"),d=require("./MapControls.cjs.js"),C=require("./OrbitControls.cjs.js"),h=require("./TrackballControls.cjs.js"),m=require("./ArcballControls.cjs.js"),B=require("./TransformControls.cjs.js"),b=require("./PointerLockControls.cjs.js"),M=require("./FirstPersonControls.cjs.js"),P=require("./GizmoHelper.cjs.js"),S=require("./GizmoViewcube.cjs.js"),f=require("./GizmoViewport.cjs.js"),T=require("./useCubeTexture.cjs.js"),g=require("./useFBX.cjs.js"),v=require("./useGLTF.cjs.js"),L=require("./useProgress.cjs.js"),A=require("./useTexture.cjs.js"),G=require("./useKTX2.cjs.js"),k=require("./Stats.cjs.js"),D=require("./useDepthBuffer.cjs.js"),F=require("./useAspect.cjs.js"),w=require("./useCamera.cjs.js"),z=require("./useDetectGPU.cjs.js"),I=require("./useHelper.cjs.js"),O=require("./useBVH.cjs.js"),E=require("./useContextBridge.cjs.js"),R=require("./useAnimations.cjs.js"),y=require("./useFBO.cjs.js"),H=require("./useIntersect.cjs.js"),V=require("./CurveModifier.cjs.js"),Q=require("./MeshDistortMaterial.cjs.js"),X=require("./MeshWobbleMaterial.cjs.js"),K=require("./MeshReflectorMaterial.cjs.js"),W=require("./PointMaterial.cjs.js"),N=require("./shaderMaterial.cjs.js"),U=require("./softShadows.cjs.js"),_=require("./shapes.cjs.js"),J=require("./RoundedBox.cjs.js"),Y=require("./ScreenQuad.cjs.js"),Z=require("./Center.cjs.js"),$=require("./Bounds.cjs.js"),ee=require("./CameraShake.cjs.js"),re=require("./Float.cjs.js"),se=require("./Stage.cjs.js"),te=require("./Backdrop.cjs.js"),oe=require("./Shadow.cjs.js"),ie=require("./ContactShadows.cjs.js"),ue=require("./Reflector.cjs.js"),ae=require("./SpotLight.cjs.js"),je=require("./Environment.cjs.js"),ce=require("./Sky.cjs.js"),ne=require("./Stars.cjs.js"),pe=require("./Cloud.cjs.js"),le=require("./useMatcapTexture.cjs.js"),xe=require("./useNormalTexture.cjs.js"),qe=require("./Points.cjs.js"),de=require("./Instances.cjs.js"),Ce=require("./Segments.cjs.js"),he=require("./Detailed.cjs.js"),me=require("./Preload.cjs.js"),Be=require("./BakeShadows.cjs.js"),be=require("./meshBounds.cjs.js"),Me=require("./AdaptiveDpr.cjs.js"),Pe=require("./AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("lodash.omit"),require("lodash.pick"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("use-asset"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.QuadraticBezierLine=r.QuadraticBezierLine,exports.CubicBezierLine=s.CubicBezierLine,exports.Line=t.Line,exports.PositionalAudio=o.PositionalAudio,exports.Text=i.Text,exports.Effects=u.Effects,exports.isWebGL2Available=u.isWebGL2Available,exports.GradientTexture=a.GradientTexture,exports.Image=j.Image,exports.Edges=c.Edges,exports.OrthographicCamera=n.OrthographicCamera,exports.PerspectiveCamera=p.PerspectiveCamera,exports.CubeCamera=l.CubeCamera,exports.DeviceOrientationControls=x.DeviceOrientationControls,exports.FlyControls=q.FlyControls,exports.MapControls=d.MapControls,exports.OrbitControls=C.OrbitControls,exports.TrackballControls=h.TrackballControls,exports.ArcballControls=m.ArcballControls,exports.TransformControls=B.TransformControls,exports.PointerLockControls=b.PointerLockControls,exports.FirstPersonControls=M.FirstPersonControls,exports.GizmoHelper=P.GizmoHelper,exports.useGizmoContext=P.useGizmoContext,exports.GizmoViewcube=S.GizmoViewcube,exports.GizmoViewport=f.GizmoViewport,exports.useCubeTexture=T.useCubeTexture,exports.useFBX=g.useFBX,exports.useGLTF=v.useGLTF,exports.useProgress=L.useProgress,exports.IsObject=A.IsObject,exports.useTexture=A.useTexture,exports.useKTX2=G.useKTX2,exports.Stats=k.Stats,exports.useDepthBuffer=D.useDepthBuffer,exports.useAspect=F.useAspect,exports.useCamera=w.useCamera,exports.useDetectGPU=z.useDetectGPU,exports.useHelper=I.useHelper,exports.useBVH=O.useBVH,exports.useContextBridge=E.useContextBridge,exports.useAnimations=R.useAnimations,exports.useFBO=y.useFBO,exports.useIntersect=H.useIntersect,exports.CurveModifier=V.CurveModifier,exports.MeshDistortMaterial=Q.MeshDistortMaterial,exports.MeshWobbleMaterial=X.MeshWobbleMaterial,exports.MeshReflectorMaterial=K.MeshReflectorMaterial,exports.PointMaterial=W.PointMaterial,exports.PointMaterialImpl=W.PointMaterialImpl,exports.shaderMaterial=N.shaderMaterial,exports.softShadows=U.softShadows,exports.Box=_.Box,exports.Circle=_.Circle,exports.Cone=_.Cone,exports.Cylinder=_.Cylinder,exports.Dodecahedron=_.Dodecahedron,exports.Extrude=_.Extrude,exports.Icosahedron=_.Icosahedron,exports.Lathe=_.Lathe,exports.Octahedron=_.Octahedron,exports.Plane=_.Plane,exports.Polyhedron=_.Polyhedron,exports.Ring=_.Ring,exports.Sphere=_.Sphere,exports.Tetrahedron=_.Tetrahedron,exports.Torus=_.Torus,exports.TorusKnot=_.TorusKnot,exports.Tube=_.Tube,exports.RoundedBox=J.RoundedBox,exports.ScreenQuad=Y.ScreenQuad,exports.Center=Z.Center,exports.Bounds=$.Bounds,exports.useBounds=$.useBounds,exports.CameraShake=ee.CameraShake,exports.Float=re.Float,exports.Stage=se.Stage,exports.Backdrop=te.Backdrop,exports.Shadow=oe.Shadow,exports.ContactShadows=ie.ContactShadows,exports.Reflector=ue.Reflector,exports.SpotLight=ae.SpotLight,exports.Environment=je.Environment,exports.Sky=ce.Sky,exports.calcPosFromAngles=ce.calcPosFromAngles,exports.Stars=ne.Stars,exports.Cloud=pe.Cloud,exports.useMatcapTexture=le.useMatcapTexture,exports.useNormalTexture=xe.useNormalTexture,exports.Point=qe.Point,exports.Points=qe.Points,exports.PointsBuffer=qe.PointsBuffer,exports.Instance=de.Instance,exports.Instances=de.Instances,exports.Merged=de.Merged,exports.Segment=Ce.Segment,exports.Segments=Ce.Segments,exports.Detailed=he.Detailed,exports.Preload=me.Preload,exports.BakeShadows=Be.BakeShadows,exports.meshBounds=be.meshBounds,exports.AdaptiveDpr=Me.AdaptiveDpr,exports.AdaptiveEvents=Pe.AdaptiveEvents;
package/core/index.js CHANGED
@@ -85,7 +85,7 @@ import 'troika-three-text';
85
85
  import 'lodash.omit';
86
86
  import 'lodash.pick';
87
87
  import 'zustand';
88
- import 'three/examples/js/libs/stats.min';
88
+ import 'stats.js';
89
89
  import '../helpers/useEffectfulState.js';
90
90
  import 'detect-gpu';
91
91
  import 'use-asset';