@react-three/rapier 0.14.0-rc.2 → 0.14.0-rc.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.
@@ -1,9 +1,9 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import { PhysicsProps } from "./Physics";
3
3
  interface FrameStepperProps {
4
4
  type?: PhysicsProps["updateLoop"];
5
5
  onStep: (dt: number) => void;
6
6
  updatePriority?: number;
7
7
  }
8
- declare const _default: import("react").MemoExoticComponent<({ onStep, type, updatePriority }: FrameStepperProps) => JSX.Element>;
8
+ declare const _default: React.MemoExoticComponent<({ onStep, type, updatePriority }: FrameStepperProps) => JSX.Element>;
9
9
  export default _default;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var rapier3dCompat = require('@dimforge/rapier3d-compat');
6
6
  var fiber = require('@react-three/fiber');
7
- var React$1 = require('react');
7
+ var React = require('react');
8
8
  var three = require('three');
9
9
  var useAsset = require('use-asset');
10
10
  var threeStdlib = require('three-stdlib');
@@ -29,7 +29,7 @@ function _interopNamespace(e) {
29
29
  return Object.freeze(n);
30
30
  }
31
31
 
32
- var React__default = /*#__PURE__*/_interopDefault(React$1);
32
+ var React__default = /*#__PURE__*/_interopDefault(React);
33
33
 
34
34
  function _defineProperty(obj, key, value) {
35
35
  if (key in obj) {
@@ -167,7 +167,7 @@ const vectorToTuple = v => {
167
167
  return [v];
168
168
  };
169
169
  function useConst(initialValue) {
170
- const ref = React$1.useRef();
170
+ const ref = React.useRef();
171
171
 
172
172
  if (ref.current === undefined) {
173
173
  ref.current = {
@@ -344,10 +344,10 @@ const setColliderOptions = (collider, options, states) => {
344
344
  };
345
345
  const useUpdateColliderOptions = (getCollider, props, states) => {
346
346
  // TODO: Improve this, split each prop into its own effect
347
- const mutablePropsAsFlatArray = React$1.useMemo(() => mutableColliderOptionKeys.flatMap(key => {
347
+ const mutablePropsAsFlatArray = React.useMemo(() => mutableColliderOptionKeys.flatMap(key => {
348
348
  return vectorToTuple(props[key]);
349
349
  }), [props]);
350
- React$1.useEffect(() => {
350
+ React.useEffect(() => {
351
351
  const collider = getCollider();
352
352
  setColliderOptions(collider, props, states);
353
353
  }, mutablePropsAsFlatArray);
@@ -493,7 +493,7 @@ activeEvents = {}) => {
493
493
  onIntersectionExit,
494
494
  onContactForce
495
495
  } = props;
496
- React$1.useEffect(() => {
496
+ React.useEffect(() => {
497
497
  const collider = getCollider();
498
498
 
499
499
  if (collider) {
@@ -535,8 +535,8 @@ const cleanRigidBodyPropsForCollider = (props = {}) => {
535
535
  };
536
536
 
537
537
  const useMutableCallback = fn => {
538
- const ref = React$1.useRef(fn);
539
- React$1.useEffect(() => {
538
+ const ref = React.useRef(fn);
539
+ React.useEffect(() => {
540
540
  ref.current = fn;
541
541
  }, [fn]);
542
542
  return ref;
@@ -549,7 +549,7 @@ const useMutableCallback = fn => {
549
549
 
550
550
 
551
551
  const useRapier = () => {
552
- return React$1.useContext(rapierContext);
552
+ return React.useContext(rapierContext);
553
553
  };
554
554
  /**
555
555
  * Registers a callback to be called before the physics step
@@ -561,7 +561,7 @@ const useBeforePhysicsStep = callback => {
561
561
  beforeStepCallbacks
562
562
  } = useRapier();
563
563
  const ref = useMutableCallback(callback);
564
- React$1.useEffect(() => {
564
+ React.useEffect(() => {
565
565
  beforeStepCallbacks.add(ref);
566
566
  return () => {
567
567
  beforeStepCallbacks.delete(ref);
@@ -578,7 +578,7 @@ const useAfterPhysicsStep = callback => {
578
578
  afterStepCallbacks
579
579
  } = useRapier();
580
580
  const ref = useMutableCallback(callback);
581
- React$1.useEffect(() => {
581
+ React.useEffect(() => {
582
582
  afterStepCallbacks.add(ref);
583
583
  return () => {
584
584
  afterStepCallbacks.delete(ref);
@@ -591,8 +591,8 @@ const useAfterPhysicsStep = callback => {
591
591
  */
592
592
 
593
593
  const useChildColliderProps = (ref, options, ignoreMeshColliders = true) => {
594
- const [colliderProps, setColliderProps] = React$1.useState([]);
595
- React$1.useEffect(() => {
594
+ const [colliderProps, setColliderProps] = React.useState([]);
595
+ React.useEffect(() => {
596
596
  const object = ref.current;
597
597
 
598
598
  if (object && options.colliders !== false) {
@@ -652,7 +652,7 @@ const applyAttractorForceOnRigidBody = (rigidBody, {
652
652
  }
653
653
  }
654
654
  };
655
- const Attractor = /*#__PURE__*/React$1.memo(props => {
655
+ const Attractor = /*#__PURE__*/React.memo(props => {
656
656
  const {
657
657
  position = [0, 0, 0],
658
658
  strength = 1,
@@ -664,8 +664,8 @@ const Attractor = /*#__PURE__*/React$1.memo(props => {
664
664
  const {
665
665
  attractorStates
666
666
  } = useRapier();
667
- const object = React$1.useRef(null);
668
- React$1.useEffect(() => {
667
+ const object = React.useRef(null);
668
+ React.useEffect(() => {
669
669
  var _object$current;
670
670
 
671
671
  let uuid = ((_object$current = object.current) === null || _object$current === void 0 ? void 0 : _object$current.uuid) || "_";
@@ -692,13 +692,13 @@ const Attractor = /*#__PURE__*/React$1.memo(props => {
692
692
  });
693
693
 
694
694
  const useRaf = callback => {
695
- const cb = React$1.useRef(callback);
696
- const raf = React$1.useRef(0);
697
- const lastFrame = React$1.useRef(0);
698
- React$1.useEffect(() => {
695
+ const cb = React.useRef(callback);
696
+ const raf = React.useRef(0);
697
+ const lastFrame = React.useRef(0);
698
+ React.useEffect(() => {
699
699
  cb.current = callback;
700
700
  }, [callback]);
701
- React$1.useEffect(() => {
701
+ React.useEffect(() => {
702
702
  const loop = () => {
703
703
  const now = performance.now();
704
704
  const delta = now - lastFrame.current;
@@ -736,17 +736,17 @@ const FrameStepper = ({
736
736
  type,
737
737
  updatePriority
738
738
  }) => {
739
- return type === "independent" ? /*#__PURE__*/React.createElement(RafStepper, {
739
+ return type === "independent" ? /*#__PURE__*/React__default["default"].createElement(RafStepper, {
740
740
  onStep: onStep
741
- }) : /*#__PURE__*/React.createElement(UseFrameStepper, {
741
+ }) : /*#__PURE__*/React__default["default"].createElement(UseFrameStepper, {
742
742
  onStep: onStep,
743
743
  updatePriority: updatePriority
744
744
  });
745
745
  };
746
746
 
747
- var FrameStepper$1 = /*#__PURE__*/React$1.memo(FrameStepper);
747
+ var FrameStepper$1 = /*#__PURE__*/React.memo(FrameStepper);
748
748
 
749
- const rapierContext = /*#__PURE__*/React$1.createContext(undefined);
749
+ const rapierContext = /*#__PURE__*/React.createContext(undefined);
750
750
 
751
751
  const getCollisionPayloadFromSource = (target, other) => {
752
752
  var _target$collider$stat, _target$rigidBody$sta, _other$collider$state, _other$rigidBody$stat, _other$collider$state2, _other$rigidBody$stat2;
@@ -795,8 +795,8 @@ const Physics = ({
795
795
  const {
796
796
  invalidate
797
797
  } = fiber.useThree();
798
- const worldRef = React$1.useRef();
799
- const getWorldRef = React$1.useRef(() => {
798
+ const worldRef = React.useRef();
799
+ const getWorldRef = React.useRef(() => {
800
800
  if (!worldRef.current) {
801
801
  const world = new rapier.World(vectorArrayToVector3(_gravity));
802
802
  worldRef.current = world;
@@ -813,7 +813,7 @@ const Physics = ({
813
813
  const beforeStepCallbacks = useConst(() => new Set());
814
814
  const afterStepCallbacks = useConst(() => new Set()); // Init world
815
815
 
816
- React$1.useEffect(() => {
816
+ React.useEffect(() => {
817
817
  const world = getWorldRef.current();
818
818
  return () => {
819
819
  if (world) {
@@ -823,15 +823,15 @@ const Physics = ({
823
823
  };
824
824
  }, []); // Update gravity
825
825
 
826
- React$1.useEffect(() => {
826
+ React.useEffect(() => {
827
827
  const world = worldRef.current;
828
828
 
829
829
  if (world) {
830
830
  world.gravity = vectorArrayToVector3(_gravity);
831
831
  }
832
832
  }, [_gravity]);
833
- const api = React$1.useMemo(() => createWorldApi(getWorldRef), []);
834
- const getSourceFromColliderHandle = React$1.useCallback(handle => {
833
+ const api = React.useMemo(() => createWorldApi(getWorldRef), []);
834
+ const getSourceFromColliderHandle = React.useCallback(handle => {
835
835
  const world = worldRef.current;
836
836
 
837
837
  if (world) {
@@ -859,11 +859,11 @@ const Physics = ({
859
859
  return source;
860
860
  }
861
861
  }, []);
862
- const [steppingState] = React$1.useState({
862
+ const [steppingState] = React.useState({
863
863
  previousState: {},
864
864
  accumulator: 0
865
865
  });
866
- const step = React$1.useCallback(dt => {
866
+ const step = React.useCallback(dt => {
867
867
  const world = worldRef.current;
868
868
  if (!world) return;
869
869
  /* Check if the timestep is supposed to be variable. We'll do this here
@@ -1079,7 +1079,7 @@ const Physics = ({
1079
1079
  invalidate();
1080
1080
  });
1081
1081
  }, [_paused, _timeStep, _interpolate]);
1082
- const context = React$1.useMemo(() => ({
1082
+ const context = React.useMemo(() => ({
1083
1083
  rapier,
1084
1084
  world: api,
1085
1085
  physicsOptions: {
@@ -1096,7 +1096,7 @@ const Physics = ({
1096
1096
  isPaused: _paused,
1097
1097
  step
1098
1098
  }), [_paused, step]);
1099
- const stepCallback = React$1.useCallback(delta => {
1099
+ const stepCallback = React.useCallback(delta => {
1100
1100
  if (!_paused) {
1101
1101
  step(delta);
1102
1102
  }
@@ -1132,15 +1132,15 @@ function _extends() {
1132
1132
  */
1133
1133
 
1134
1134
  const useImperativeInstance = (createFn, destroyFn) => {
1135
- const ref = React$1.useRef();
1136
- const refGetter = React$1.useMemo(() => () => {
1135
+ const ref = React.useRef();
1136
+ const refGetter = React.useMemo(() => () => {
1137
1137
  if (!ref.current) {
1138
1138
  ref.current = createFn();
1139
1139
  }
1140
1140
 
1141
1141
  return ref.current;
1142
1142
  }, []);
1143
- React$1.useEffect(() => {
1143
+ React.useEffect(() => {
1144
1144
  const instance = refGetter();
1145
1145
  return () => {
1146
1146
  destroyFn(instance);
@@ -1207,7 +1207,7 @@ const euler = ({
1207
1207
  * A collider is a shape that can be attached to a rigid body to define its physical properties.
1208
1208
  * @internal
1209
1209
  */
1210
- const AnyCollider = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((props, forwardedRef) => {
1210
+ const AnyCollider = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
1211
1211
  const {
1212
1212
  children,
1213
1213
  position,
@@ -1222,7 +1222,7 @@ const AnyCollider = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((
1222
1222
  colliderStates
1223
1223
  } = useRapier();
1224
1224
  const rigidBodyContext = useRigidBodyContext();
1225
- const ref = React$1.useRef(null);
1225
+ const ref = React.useRef(null);
1226
1226
  const getInstance = useImperativeInstance(() => {
1227
1227
  const worldScale = ref.current.getWorldScale(vec3());
1228
1228
  const collider = createColliderFromOptions(props, world, worldScale, rigidBodyContext === null || rigidBodyContext === void 0 ? void 0 : rigidBodyContext.getRigidBody);
@@ -1230,15 +1230,15 @@ const AnyCollider = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((
1230
1230
  }, collider => {
1231
1231
  world.removeCollider(collider);
1232
1232
  });
1233
- React$1.useEffect(() => {
1233
+ React.useEffect(() => {
1234
1234
  const collider = getInstance();
1235
1235
  colliderStates.set(collider.handle, createColliderState(collider, ref.current, rigidBodyContext === null || rigidBodyContext === void 0 ? void 0 : rigidBodyContext.ref.current));
1236
1236
  return () => {
1237
1237
  colliderStates.delete(collider.handle);
1238
1238
  };
1239
1239
  }, []);
1240
- React$1.useImperativeHandle(forwardedRef, () => getInstance());
1241
- const mergedProps = React$1.useMemo(() => {
1240
+ React.useImperativeHandle(forwardedRef, () => getInstance());
1241
+ const mergedProps = React.useMemo(() => {
1242
1242
  return _objectSpread2(_objectSpread2({}, cleanRigidBodyPropsForCollider(rigidBodyContext === null || rigidBodyContext === void 0 ? void 0 : rigidBodyContext.options)), props);
1243
1243
  }, [props, rigidBodyContext === null || rigidBodyContext === void 0 ? void 0 : rigidBodyContext.options]);
1244
1244
  useUpdateColliderOptions(getInstance, mergedProps, colliderStates);
@@ -1475,10 +1475,10 @@ const setRigidBodyOptions = (rigidBody, options, states, updateTranslations = tr
1475
1475
  };
1476
1476
  const useUpdateRigidBodyOptions = (getRigidBody, props, states, updateTranslations = true) => {
1477
1477
  // TODO: Improve this, split each prop into its own effect
1478
- const mutablePropsAsFlatArray = React$1.useMemo(() => mutableRigidBodyOptionKeys.flatMap(key => {
1478
+ const mutablePropsAsFlatArray = React.useMemo(() => mutableRigidBodyOptionKeys.flatMap(key => {
1479
1479
  return vectorToTuple(props[key]);
1480
1480
  }), [props]);
1481
- React$1.useEffect(() => {
1481
+ React.useEffect(() => {
1482
1482
  const rigidBody = getRigidBody();
1483
1483
  setRigidBodyOptions(rigidBody, props, states, updateTranslations);
1484
1484
  }, mutablePropsAsFlatArray);
@@ -1502,7 +1502,7 @@ const useRigidBodyEvents = (getRigidBody, props, events) => {
1502
1502
  onIntersectionExit,
1503
1503
  onContactForce
1504
1504
  };
1505
- React$1.useEffect(() => {
1505
+ React.useEffect(() => {
1506
1506
  const rigidBody = getRigidBody();
1507
1507
  events.set(rigidBody.handle, eventHandlers);
1508
1508
  return () => {
@@ -1512,14 +1512,14 @@ const useRigidBodyEvents = (getRigidBody, props, events) => {
1512
1512
  };
1513
1513
 
1514
1514
  const _excluded$1 = ["children", "type", "position", "rotation", "scale", "quaternion", "transformState"];
1515
- const RigidBodyContext = /*#__PURE__*/React$1.createContext(undefined);
1516
- const useRigidBodyContext = () => React$1.useContext(RigidBodyContext);
1515
+ const RigidBodyContext = /*#__PURE__*/React.createContext(undefined);
1516
+ const useRigidBodyContext = () => React.useContext(RigidBodyContext);
1517
1517
 
1518
1518
  /**
1519
1519
  * A rigid body is a physical object that can be simulated by the physics engine.
1520
1520
  * @category Components
1521
1521
  */
1522
- const RigidBody = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((props, forwardedRef) => {
1522
+ const RigidBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
1523
1523
  const {
1524
1524
  children,
1525
1525
  type,
@@ -1531,14 +1531,14 @@ const RigidBody = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((pr
1531
1531
  } = props,
1532
1532
  objectProps = _objectWithoutProperties(props, _excluded$1);
1533
1533
 
1534
- const ref = React$1.useRef(null);
1534
+ const ref = React.useRef(null);
1535
1535
  const {
1536
1536
  world,
1537
1537
  rigidBodyStates,
1538
1538
  physicsOptions,
1539
1539
  rigidBodyEvents
1540
1540
  } = useRapier();
1541
- const mergedOptions = React$1.useMemo(() => {
1541
+ const mergedOptions = React.useMemo(() => {
1542
1542
  return _objectSpread2(_objectSpread2(_objectSpread2({}, physicsOptions), props), {}, {
1543
1543
  children: undefined
1544
1544
  });
@@ -1553,7 +1553,7 @@ const RigidBody = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((pr
1553
1553
  world.removeRigidBody(rigidBody);
1554
1554
  }); // Only provide a object state after the ref has been set
1555
1555
 
1556
- React$1.useEffect(() => {
1556
+ React.useEffect(() => {
1557
1557
  const rigidBody = getInstance();
1558
1558
  const state = createRigidBodyState({
1559
1559
  rigidBody,
@@ -1566,8 +1566,8 @@ const RigidBody = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((pr
1566
1566
  }, []);
1567
1567
  useUpdateRigidBodyOptions(getInstance, mergedOptions, rigidBodyStates);
1568
1568
  useRigidBodyEvents(getInstance, mergedOptions, rigidBodyEvents);
1569
- React$1.useImperativeHandle(forwardedRef, () => getInstance());
1570
- const contextValue = React$1.useMemo(() => {
1569
+ React.useImperativeHandle(forwardedRef, () => getInstance());
1570
+ const contextValue = React.useMemo(() => {
1571
1571
  return {
1572
1572
  ref,
1573
1573
  getRigidBody: getInstance,
@@ -1593,7 +1593,7 @@ RigidBody.displayName = "RigidBody";
1593
1593
  * A mesh collider is a collider that is automatically generated from the geometry of the children.
1594
1594
  * @category Colliders
1595
1595
  */
1596
- const MeshCollider = /*#__PURE__*/React$1.memo(props => {
1596
+ const MeshCollider = /*#__PURE__*/React.memo(props => {
1597
1597
  const {
1598
1598
  children,
1599
1599
  type
@@ -1601,11 +1601,11 @@ const MeshCollider = /*#__PURE__*/React$1.memo(props => {
1601
1601
  const {
1602
1602
  physicsOptions
1603
1603
  } = useRapier();
1604
- const object = React$1.useRef(null);
1604
+ const object = React.useRef(null);
1605
1605
  const {
1606
1606
  options
1607
1607
  } = useRigidBodyContext();
1608
- const mergedOptions = React$1.useMemo(() => {
1608
+ const mergedOptions = React.useMemo(() => {
1609
1609
  return _objectSpread2(_objectSpread2(_objectSpread2({}, physicsOptions), options), {}, {
1610
1610
  children: undefined,
1611
1611
  colliders: type
@@ -1645,10 +1645,10 @@ const AttractorHelper = props => {
1645
1645
  const {
1646
1646
  scene
1647
1647
  } = fiber.useThree();
1648
- const ref = React$1.useRef(null);
1649
- const normalsHelper = React$1.useRef();
1648
+ const ref = React.useRef(null);
1649
+ const normalsHelper = React.useRef();
1650
1650
  const color = props.strength > 0 ? 0x0000ff : 0xff0000;
1651
- React$1.useEffect(() => {
1651
+ React.useEffect(() => {
1652
1652
  if (ref.current) {
1653
1653
  normalsHelper.current = new threeStdlib.VertexNormalsHelper(ref.current, props.range, color);
1654
1654
  normalsHelper.current.frustumCulled = false;
@@ -1682,14 +1682,14 @@ const AttractorHelper = props => {
1682
1682
  }));
1683
1683
  };
1684
1684
 
1685
- const Debug = /*#__PURE__*/React$1.memo(() => {
1685
+ const Debug = /*#__PURE__*/React.memo(() => {
1686
1686
  const {
1687
1687
  world,
1688
1688
  attractorStates
1689
1689
  } = useRapier();
1690
- const ref = React$1.useRef(null);
1691
- const [attractors, setAttractors] = React$1.useState([]);
1692
- const currMap = React$1.useRef(new Map());
1690
+ const ref = React.useRef(null);
1691
+ const [attractors, setAttractors] = React.useState([]);
1692
+ const currMap = React.useRef(new Map());
1693
1693
  fiber.useFrame(() => {
1694
1694
  const mesh = ref.current;
1695
1695
  if (!mesh) return;
@@ -1714,9 +1714,9 @@ const Debug = /*#__PURE__*/React$1.memo(() => {
1714
1714
  });
1715
1715
 
1716
1716
  const _excluded = ["children", "instances", "colliderNodes", "position", "rotation", "quaternion", "scale"];
1717
- const InstancedRigidBodies = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((props, ref) => {
1718
- const object = React$1.useRef(null);
1719
- const instancedWrapper = React$1.useRef(null);
1717
+ const InstancedRigidBodies = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef((props, ref) => {
1718
+ const object = React.useRef(null);
1719
+ const instancedWrapper = React.useRef(null);
1720
1720
 
1721
1721
  const {
1722
1722
  // instanced props
@@ -1731,8 +1731,8 @@ const InstancedRigidBodies = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.for
1731
1731
  } = props,
1732
1732
  rigidBodyProps = _objectWithoutProperties(props, _excluded);
1733
1733
 
1734
- const rigidBodyApis = React$1.useRef([]);
1735
- React$1.useImperativeHandle(ref, () => rigidBodyApis.current, [instances]);
1734
+ const rigidBodyApis = React.useRef([]);
1735
+ React.useImperativeHandle(ref, () => rigidBodyApis.current, [instances]);
1736
1736
  const childColliderProps = useChildColliderProps(object, _objectSpread2(_objectSpread2({}, props), {}, {
1737
1737
  children: undefined
1738
1738
  }));
@@ -1747,7 +1747,7 @@ const InstancedRigidBodies = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.for
1747
1747
  return undefined;
1748
1748
  };
1749
1749
 
1750
- React$1.useEffect(() => {
1750
+ React.useEffect(() => {
1751
1751
  const instancedMesh = getInstancedMesh();
1752
1752
 
1753
1753
  if (instancedMesh) {
@@ -1789,7 +1789,7 @@ const InstancedRigidBodies = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.for
1789
1789
  }, children), instances === null || instances === void 0 ? void 0 : instances.map((instance, index) => /*#__PURE__*/React__default["default"].createElement(RigidBody, _extends({}, rigidBodyProps, instance, {
1790
1790
  ref: body => rigidBodyApis.current[index] = body,
1791
1791
  transformState: state => applyInstancedState(state, index)
1792
- }), /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, colliderNodes.map((node, index) => /*#__PURE__*/React__default["default"].createElement(React$1.Fragment, {
1792
+ }), /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, colliderNodes.map((node, index) => /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
1793
1793
  key: index
1794
1794
  }, node)), childColliderProps.map((colliderProps, colliderIndex) => /*#__PURE__*/React__default["default"].createElement(AnyCollider, _extends({
1795
1795
  key: colliderIndex
@@ -1805,7 +1805,7 @@ const useImpulseJoint = (body1, body2, params) => {
1805
1805
  const {
1806
1806
  world
1807
1807
  } = useRapier();
1808
- const jointRef = React$1.useRef();
1808
+ const jointRef = React.useRef();
1809
1809
  useImperativeInstance(() => {
1810
1810
  if (body1.current && body2.current) {
1811
1811
  const newJoint = world.createImpulseJoint(params, body1.current, body2.current);
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var rapier3dCompat = require('@dimforge/rapier3d-compat');
6
6
  var fiber = require('@react-three/fiber');
7
- var React$1 = require('react');
7
+ var React = require('react');
8
8
  var three = require('three');
9
9
  var useAsset = require('use-asset');
10
10
  var threeStdlib = require('three-stdlib');
@@ -29,7 +29,7 @@ function _interopNamespace(e) {
29
29
  return Object.freeze(n);
30
30
  }
31
31
 
32
- var React__default = /*#__PURE__*/_interopDefault(React$1);
32
+ var React__default = /*#__PURE__*/_interopDefault(React);
33
33
 
34
34
  function _defineProperty(obj, key, value) {
35
35
  if (key in obj) {
@@ -167,7 +167,7 @@ const vectorToTuple = v => {
167
167
  return [v];
168
168
  };
169
169
  function useConst(initialValue) {
170
- const ref = React$1.useRef();
170
+ const ref = React.useRef();
171
171
 
172
172
  if (ref.current === undefined) {
173
173
  ref.current = {
@@ -344,10 +344,10 @@ const setColliderOptions = (collider, options, states) => {
344
344
  };
345
345
  const useUpdateColliderOptions = (getCollider, props, states) => {
346
346
  // TODO: Improve this, split each prop into its own effect
347
- const mutablePropsAsFlatArray = React$1.useMemo(() => mutableColliderOptionKeys.flatMap(key => {
347
+ const mutablePropsAsFlatArray = React.useMemo(() => mutableColliderOptionKeys.flatMap(key => {
348
348
  return vectorToTuple(props[key]);
349
349
  }), [props]);
350
- React$1.useEffect(() => {
350
+ React.useEffect(() => {
351
351
  const collider = getCollider();
352
352
  setColliderOptions(collider, props, states);
353
353
  }, mutablePropsAsFlatArray);
@@ -493,7 +493,7 @@ activeEvents = {}) => {
493
493
  onIntersectionExit,
494
494
  onContactForce
495
495
  } = props;
496
- React$1.useEffect(() => {
496
+ React.useEffect(() => {
497
497
  const collider = getCollider();
498
498
 
499
499
  if (collider) {
@@ -535,8 +535,8 @@ const cleanRigidBodyPropsForCollider = (props = {}) => {
535
535
  };
536
536
 
537
537
  const useMutableCallback = fn => {
538
- const ref = React$1.useRef(fn);
539
- React$1.useEffect(() => {
538
+ const ref = React.useRef(fn);
539
+ React.useEffect(() => {
540
540
  ref.current = fn;
541
541
  }, [fn]);
542
542
  return ref;
@@ -549,7 +549,7 @@ const useMutableCallback = fn => {
549
549
 
550
550
 
551
551
  const useRapier = () => {
552
- return React$1.useContext(rapierContext);
552
+ return React.useContext(rapierContext);
553
553
  };
554
554
  /**
555
555
  * Registers a callback to be called before the physics step
@@ -561,7 +561,7 @@ const useBeforePhysicsStep = callback => {
561
561
  beforeStepCallbacks
562
562
  } = useRapier();
563
563
  const ref = useMutableCallback(callback);
564
- React$1.useEffect(() => {
564
+ React.useEffect(() => {
565
565
  beforeStepCallbacks.add(ref);
566
566
  return () => {
567
567
  beforeStepCallbacks.delete(ref);
@@ -578,7 +578,7 @@ const useAfterPhysicsStep = callback => {
578
578
  afterStepCallbacks
579
579
  } = useRapier();
580
580
  const ref = useMutableCallback(callback);
581
- React$1.useEffect(() => {
581
+ React.useEffect(() => {
582
582
  afterStepCallbacks.add(ref);
583
583
  return () => {
584
584
  afterStepCallbacks.delete(ref);
@@ -591,8 +591,8 @@ const useAfterPhysicsStep = callback => {
591
591
  */
592
592
 
593
593
  const useChildColliderProps = (ref, options, ignoreMeshColliders = true) => {
594
- const [colliderProps, setColliderProps] = React$1.useState([]);
595
- React$1.useEffect(() => {
594
+ const [colliderProps, setColliderProps] = React.useState([]);
595
+ React.useEffect(() => {
596
596
  const object = ref.current;
597
597
 
598
598
  if (object && options.colliders !== false) {
@@ -652,7 +652,7 @@ const applyAttractorForceOnRigidBody = (rigidBody, {
652
652
  }
653
653
  }
654
654
  };
655
- const Attractor = /*#__PURE__*/React$1.memo(props => {
655
+ const Attractor = /*#__PURE__*/React.memo(props => {
656
656
  const {
657
657
  position = [0, 0, 0],
658
658
  strength = 1,
@@ -664,8 +664,8 @@ const Attractor = /*#__PURE__*/React$1.memo(props => {
664
664
  const {
665
665
  attractorStates
666
666
  } = useRapier();
667
- const object = React$1.useRef(null);
668
- React$1.useEffect(() => {
667
+ const object = React.useRef(null);
668
+ React.useEffect(() => {
669
669
  var _object$current;
670
670
 
671
671
  let uuid = ((_object$current = object.current) === null || _object$current === void 0 ? void 0 : _object$current.uuid) || "_";
@@ -692,13 +692,13 @@ const Attractor = /*#__PURE__*/React$1.memo(props => {
692
692
  });
693
693
 
694
694
  const useRaf = callback => {
695
- const cb = React$1.useRef(callback);
696
- const raf = React$1.useRef(0);
697
- const lastFrame = React$1.useRef(0);
698
- React$1.useEffect(() => {
695
+ const cb = React.useRef(callback);
696
+ const raf = React.useRef(0);
697
+ const lastFrame = React.useRef(0);
698
+ React.useEffect(() => {
699
699
  cb.current = callback;
700
700
  }, [callback]);
701
- React$1.useEffect(() => {
701
+ React.useEffect(() => {
702
702
  const loop = () => {
703
703
  const now = performance.now();
704
704
  const delta = now - lastFrame.current;
@@ -736,17 +736,17 @@ const FrameStepper = ({
736
736
  type,
737
737
  updatePriority
738
738
  }) => {
739
- return type === "independent" ? /*#__PURE__*/React.createElement(RafStepper, {
739
+ return type === "independent" ? /*#__PURE__*/React__default["default"].createElement(RafStepper, {
740
740
  onStep: onStep
741
- }) : /*#__PURE__*/React.createElement(UseFrameStepper, {
741
+ }) : /*#__PURE__*/React__default["default"].createElement(UseFrameStepper, {
742
742
  onStep: onStep,
743
743
  updatePriority: updatePriority
744
744
  });
745
745
  };
746
746
 
747
- var FrameStepper$1 = /*#__PURE__*/React$1.memo(FrameStepper);
747
+ var FrameStepper$1 = /*#__PURE__*/React.memo(FrameStepper);
748
748
 
749
- const rapierContext = /*#__PURE__*/React$1.createContext(undefined);
749
+ const rapierContext = /*#__PURE__*/React.createContext(undefined);
750
750
 
751
751
  const getCollisionPayloadFromSource = (target, other) => {
752
752
  var _target$collider$stat, _target$rigidBody$sta, _other$collider$state, _other$rigidBody$stat, _other$collider$state2, _other$rigidBody$stat2;
@@ -795,8 +795,8 @@ const Physics = ({
795
795
  const {
796
796
  invalidate
797
797
  } = fiber.useThree();
798
- const worldRef = React$1.useRef();
799
- const getWorldRef = React$1.useRef(() => {
798
+ const worldRef = React.useRef();
799
+ const getWorldRef = React.useRef(() => {
800
800
  if (!worldRef.current) {
801
801
  const world = new rapier.World(vectorArrayToVector3(_gravity));
802
802
  worldRef.current = world;
@@ -813,7 +813,7 @@ const Physics = ({
813
813
  const beforeStepCallbacks = useConst(() => new Set());
814
814
  const afterStepCallbacks = useConst(() => new Set()); // Init world
815
815
 
816
- React$1.useEffect(() => {
816
+ React.useEffect(() => {
817
817
  const world = getWorldRef.current();
818
818
  return () => {
819
819
  if (world) {
@@ -823,15 +823,15 @@ const Physics = ({
823
823
  };
824
824
  }, []); // Update gravity
825
825
 
826
- React$1.useEffect(() => {
826
+ React.useEffect(() => {
827
827
  const world = worldRef.current;
828
828
 
829
829
  if (world) {
830
830
  world.gravity = vectorArrayToVector3(_gravity);
831
831
  }
832
832
  }, [_gravity]);
833
- const api = React$1.useMemo(() => createWorldApi(getWorldRef), []);
834
- const getSourceFromColliderHandle = React$1.useCallback(handle => {
833
+ const api = React.useMemo(() => createWorldApi(getWorldRef), []);
834
+ const getSourceFromColliderHandle = React.useCallback(handle => {
835
835
  const world = worldRef.current;
836
836
 
837
837
  if (world) {
@@ -859,11 +859,11 @@ const Physics = ({
859
859
  return source;
860
860
  }
861
861
  }, []);
862
- const [steppingState] = React$1.useState({
862
+ const [steppingState] = React.useState({
863
863
  previousState: {},
864
864
  accumulator: 0
865
865
  });
866
- const step = React$1.useCallback(dt => {
866
+ const step = React.useCallback(dt => {
867
867
  const world = worldRef.current;
868
868
  if (!world) return;
869
869
  /* Check if the timestep is supposed to be variable. We'll do this here
@@ -1079,7 +1079,7 @@ const Physics = ({
1079
1079
  invalidate();
1080
1080
  });
1081
1081
  }, [_paused, _timeStep, _interpolate]);
1082
- const context = React$1.useMemo(() => ({
1082
+ const context = React.useMemo(() => ({
1083
1083
  rapier,
1084
1084
  world: api,
1085
1085
  physicsOptions: {
@@ -1096,7 +1096,7 @@ const Physics = ({
1096
1096
  isPaused: _paused,
1097
1097
  step
1098
1098
  }), [_paused, step]);
1099
- const stepCallback = React$1.useCallback(delta => {
1099
+ const stepCallback = React.useCallback(delta => {
1100
1100
  if (!_paused) {
1101
1101
  step(delta);
1102
1102
  }
@@ -1132,15 +1132,15 @@ function _extends() {
1132
1132
  */
1133
1133
 
1134
1134
  const useImperativeInstance = (createFn, destroyFn) => {
1135
- const ref = React$1.useRef();
1136
- const refGetter = React$1.useMemo(() => () => {
1135
+ const ref = React.useRef();
1136
+ const refGetter = React.useMemo(() => () => {
1137
1137
  if (!ref.current) {
1138
1138
  ref.current = createFn();
1139
1139
  }
1140
1140
 
1141
1141
  return ref.current;
1142
1142
  }, []);
1143
- React$1.useEffect(() => {
1143
+ React.useEffect(() => {
1144
1144
  const instance = refGetter();
1145
1145
  return () => {
1146
1146
  destroyFn(instance);
@@ -1207,7 +1207,7 @@ const euler = ({
1207
1207
  * A collider is a shape that can be attached to a rigid body to define its physical properties.
1208
1208
  * @internal
1209
1209
  */
1210
- const AnyCollider = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((props, forwardedRef) => {
1210
+ const AnyCollider = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
1211
1211
  const {
1212
1212
  children,
1213
1213
  position,
@@ -1222,7 +1222,7 @@ const AnyCollider = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((
1222
1222
  colliderStates
1223
1223
  } = useRapier();
1224
1224
  const rigidBodyContext = useRigidBodyContext();
1225
- const ref = React$1.useRef(null);
1225
+ const ref = React.useRef(null);
1226
1226
  const getInstance = useImperativeInstance(() => {
1227
1227
  const worldScale = ref.current.getWorldScale(vec3());
1228
1228
  const collider = createColliderFromOptions(props, world, worldScale, rigidBodyContext === null || rigidBodyContext === void 0 ? void 0 : rigidBodyContext.getRigidBody);
@@ -1230,15 +1230,15 @@ const AnyCollider = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((
1230
1230
  }, collider => {
1231
1231
  world.removeCollider(collider);
1232
1232
  });
1233
- React$1.useEffect(() => {
1233
+ React.useEffect(() => {
1234
1234
  const collider = getInstance();
1235
1235
  colliderStates.set(collider.handle, createColliderState(collider, ref.current, rigidBodyContext === null || rigidBodyContext === void 0 ? void 0 : rigidBodyContext.ref.current));
1236
1236
  return () => {
1237
1237
  colliderStates.delete(collider.handle);
1238
1238
  };
1239
1239
  }, []);
1240
- React$1.useImperativeHandle(forwardedRef, () => getInstance());
1241
- const mergedProps = React$1.useMemo(() => {
1240
+ React.useImperativeHandle(forwardedRef, () => getInstance());
1241
+ const mergedProps = React.useMemo(() => {
1242
1242
  return _objectSpread2(_objectSpread2({}, cleanRigidBodyPropsForCollider(rigidBodyContext === null || rigidBodyContext === void 0 ? void 0 : rigidBodyContext.options)), props);
1243
1243
  }, [props, rigidBodyContext === null || rigidBodyContext === void 0 ? void 0 : rigidBodyContext.options]);
1244
1244
  useUpdateColliderOptions(getInstance, mergedProps, colliderStates);
@@ -1475,10 +1475,10 @@ const setRigidBodyOptions = (rigidBody, options, states, updateTranslations = tr
1475
1475
  };
1476
1476
  const useUpdateRigidBodyOptions = (getRigidBody, props, states, updateTranslations = true) => {
1477
1477
  // TODO: Improve this, split each prop into its own effect
1478
- const mutablePropsAsFlatArray = React$1.useMemo(() => mutableRigidBodyOptionKeys.flatMap(key => {
1478
+ const mutablePropsAsFlatArray = React.useMemo(() => mutableRigidBodyOptionKeys.flatMap(key => {
1479
1479
  return vectorToTuple(props[key]);
1480
1480
  }), [props]);
1481
- React$1.useEffect(() => {
1481
+ React.useEffect(() => {
1482
1482
  const rigidBody = getRigidBody();
1483
1483
  setRigidBodyOptions(rigidBody, props, states, updateTranslations);
1484
1484
  }, mutablePropsAsFlatArray);
@@ -1502,7 +1502,7 @@ const useRigidBodyEvents = (getRigidBody, props, events) => {
1502
1502
  onIntersectionExit,
1503
1503
  onContactForce
1504
1504
  };
1505
- React$1.useEffect(() => {
1505
+ React.useEffect(() => {
1506
1506
  const rigidBody = getRigidBody();
1507
1507
  events.set(rigidBody.handle, eventHandlers);
1508
1508
  return () => {
@@ -1512,14 +1512,14 @@ const useRigidBodyEvents = (getRigidBody, props, events) => {
1512
1512
  };
1513
1513
 
1514
1514
  const _excluded$1 = ["children", "type", "position", "rotation", "scale", "quaternion", "transformState"];
1515
- const RigidBodyContext = /*#__PURE__*/React$1.createContext(undefined);
1516
- const useRigidBodyContext = () => React$1.useContext(RigidBodyContext);
1515
+ const RigidBodyContext = /*#__PURE__*/React.createContext(undefined);
1516
+ const useRigidBodyContext = () => React.useContext(RigidBodyContext);
1517
1517
 
1518
1518
  /**
1519
1519
  * A rigid body is a physical object that can be simulated by the physics engine.
1520
1520
  * @category Components
1521
1521
  */
1522
- const RigidBody = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((props, forwardedRef) => {
1522
+ const RigidBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
1523
1523
  const {
1524
1524
  children,
1525
1525
  type,
@@ -1531,14 +1531,14 @@ const RigidBody = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((pr
1531
1531
  } = props,
1532
1532
  objectProps = _objectWithoutProperties(props, _excluded$1);
1533
1533
 
1534
- const ref = React$1.useRef(null);
1534
+ const ref = React.useRef(null);
1535
1535
  const {
1536
1536
  world,
1537
1537
  rigidBodyStates,
1538
1538
  physicsOptions,
1539
1539
  rigidBodyEvents
1540
1540
  } = useRapier();
1541
- const mergedOptions = React$1.useMemo(() => {
1541
+ const mergedOptions = React.useMemo(() => {
1542
1542
  return _objectSpread2(_objectSpread2(_objectSpread2({}, physicsOptions), props), {}, {
1543
1543
  children: undefined
1544
1544
  });
@@ -1553,7 +1553,7 @@ const RigidBody = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((pr
1553
1553
  world.removeRigidBody(rigidBody);
1554
1554
  }); // Only provide a object state after the ref has been set
1555
1555
 
1556
- React$1.useEffect(() => {
1556
+ React.useEffect(() => {
1557
1557
  const rigidBody = getInstance();
1558
1558
  const state = createRigidBodyState({
1559
1559
  rigidBody,
@@ -1566,8 +1566,8 @@ const RigidBody = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((pr
1566
1566
  }, []);
1567
1567
  useUpdateRigidBodyOptions(getInstance, mergedOptions, rigidBodyStates);
1568
1568
  useRigidBodyEvents(getInstance, mergedOptions, rigidBodyEvents);
1569
- React$1.useImperativeHandle(forwardedRef, () => getInstance());
1570
- const contextValue = React$1.useMemo(() => {
1569
+ React.useImperativeHandle(forwardedRef, () => getInstance());
1570
+ const contextValue = React.useMemo(() => {
1571
1571
  return {
1572
1572
  ref,
1573
1573
  getRigidBody: getInstance,
@@ -1593,7 +1593,7 @@ RigidBody.displayName = "RigidBody";
1593
1593
  * A mesh collider is a collider that is automatically generated from the geometry of the children.
1594
1594
  * @category Colliders
1595
1595
  */
1596
- const MeshCollider = /*#__PURE__*/React$1.memo(props => {
1596
+ const MeshCollider = /*#__PURE__*/React.memo(props => {
1597
1597
  const {
1598
1598
  children,
1599
1599
  type
@@ -1601,11 +1601,11 @@ const MeshCollider = /*#__PURE__*/React$1.memo(props => {
1601
1601
  const {
1602
1602
  physicsOptions
1603
1603
  } = useRapier();
1604
- const object = React$1.useRef(null);
1604
+ const object = React.useRef(null);
1605
1605
  const {
1606
1606
  options
1607
1607
  } = useRigidBodyContext();
1608
- const mergedOptions = React$1.useMemo(() => {
1608
+ const mergedOptions = React.useMemo(() => {
1609
1609
  return _objectSpread2(_objectSpread2(_objectSpread2({}, physicsOptions), options), {}, {
1610
1610
  children: undefined,
1611
1611
  colliders: type
@@ -1645,10 +1645,10 @@ const AttractorHelper = props => {
1645
1645
  const {
1646
1646
  scene
1647
1647
  } = fiber.useThree();
1648
- const ref = React$1.useRef(null);
1649
- const normalsHelper = React$1.useRef();
1648
+ const ref = React.useRef(null);
1649
+ const normalsHelper = React.useRef();
1650
1650
  const color = props.strength > 0 ? 0x0000ff : 0xff0000;
1651
- React$1.useEffect(() => {
1651
+ React.useEffect(() => {
1652
1652
  if (ref.current) {
1653
1653
  normalsHelper.current = new threeStdlib.VertexNormalsHelper(ref.current, props.range, color);
1654
1654
  normalsHelper.current.frustumCulled = false;
@@ -1682,14 +1682,14 @@ const AttractorHelper = props => {
1682
1682
  }));
1683
1683
  };
1684
1684
 
1685
- const Debug = /*#__PURE__*/React$1.memo(() => {
1685
+ const Debug = /*#__PURE__*/React.memo(() => {
1686
1686
  const {
1687
1687
  world,
1688
1688
  attractorStates
1689
1689
  } = useRapier();
1690
- const ref = React$1.useRef(null);
1691
- const [attractors, setAttractors] = React$1.useState([]);
1692
- const currMap = React$1.useRef(new Map());
1690
+ const ref = React.useRef(null);
1691
+ const [attractors, setAttractors] = React.useState([]);
1692
+ const currMap = React.useRef(new Map());
1693
1693
  fiber.useFrame(() => {
1694
1694
  const mesh = ref.current;
1695
1695
  if (!mesh) return;
@@ -1714,9 +1714,9 @@ const Debug = /*#__PURE__*/React$1.memo(() => {
1714
1714
  });
1715
1715
 
1716
1716
  const _excluded = ["children", "instances", "colliderNodes", "position", "rotation", "quaternion", "scale"];
1717
- const InstancedRigidBodies = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.forwardRef((props, ref) => {
1718
- const object = React$1.useRef(null);
1719
- const instancedWrapper = React$1.useRef(null);
1717
+ const InstancedRigidBodies = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef((props, ref) => {
1718
+ const object = React.useRef(null);
1719
+ const instancedWrapper = React.useRef(null);
1720
1720
 
1721
1721
  const {
1722
1722
  // instanced props
@@ -1731,8 +1731,8 @@ const InstancedRigidBodies = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.for
1731
1731
  } = props,
1732
1732
  rigidBodyProps = _objectWithoutProperties(props, _excluded);
1733
1733
 
1734
- const rigidBodyApis = React$1.useRef([]);
1735
- React$1.useImperativeHandle(ref, () => rigidBodyApis.current, [instances]);
1734
+ const rigidBodyApis = React.useRef([]);
1735
+ React.useImperativeHandle(ref, () => rigidBodyApis.current, [instances]);
1736
1736
  const childColliderProps = useChildColliderProps(object, _objectSpread2(_objectSpread2({}, props), {}, {
1737
1737
  children: undefined
1738
1738
  }));
@@ -1747,7 +1747,7 @@ const InstancedRigidBodies = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.for
1747
1747
  return undefined;
1748
1748
  };
1749
1749
 
1750
- React$1.useEffect(() => {
1750
+ React.useEffect(() => {
1751
1751
  const instancedMesh = getInstancedMesh();
1752
1752
 
1753
1753
  if (instancedMesh) {
@@ -1789,7 +1789,7 @@ const InstancedRigidBodies = /*#__PURE__*/React$1.memo( /*#__PURE__*/React$1.for
1789
1789
  }, children), instances === null || instances === void 0 ? void 0 : instances.map((instance, index) => /*#__PURE__*/React__default["default"].createElement(RigidBody, _extends({}, rigidBodyProps, instance, {
1790
1790
  ref: body => rigidBodyApis.current[index] = body,
1791
1791
  transformState: state => applyInstancedState(state, index)
1792
- }), /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, colliderNodes.map((node, index) => /*#__PURE__*/React__default["default"].createElement(React$1.Fragment, {
1792
+ }), /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, colliderNodes.map((node, index) => /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
1793
1793
  key: index
1794
1794
  }, node)), childColliderProps.map((colliderProps, colliderIndex) => /*#__PURE__*/React__default["default"].createElement(AnyCollider, _extends({
1795
1795
  key: colliderIndex
@@ -1805,7 +1805,7 @@ const useImpulseJoint = (body1, body2, params) => {
1805
1805
  const {
1806
1806
  world
1807
1807
  } = useRapier();
1808
- const jointRef = React$1.useRef();
1808
+ const jointRef = React.useRef();
1809
1809
  useImperativeInstance(() => {
1810
1810
  if (body1.current && body2.current) {
1811
1811
  const newJoint = world.createImpulseJoint(params, body1.current, body2.current);
@@ -1,7 +1,7 @@
1
1
  import { ActiveEvents, ColliderDesc, EventQueue, RigidBodyDesc } from '@dimforge/rapier3d-compat';
2
2
  export { CoefficientCombineRule, Collider as RapierCollider, RigidBody as RapierRigidBody } from '@dimforge/rapier3d-compat';
3
3
  import { useFrame, useThree } from '@react-three/fiber';
4
- import React$1, { useRef, useMemo, useEffect, useContext, useState, memo, createContext, useCallback, forwardRef, useImperativeHandle, Fragment } from 'react';
4
+ import React, { useRef, useMemo, useEffect, useContext, useState, memo, createContext, useCallback, forwardRef, useImperativeHandle, Fragment } from 'react';
5
5
  import { Quaternion, Euler, Vector3, Object3D, Matrix4, MathUtils, BufferAttribute, DynamicDrawUsage } from 'three';
6
6
  import { useAsset } from 'use-asset';
7
7
  import { mergeVertices, VertexNormalsHelper } from 'three-stdlib';
@@ -660,7 +660,7 @@ const Attractor = /*#__PURE__*/memo(props => {
660
660
  attractorStates.delete(uuid);
661
661
  };
662
662
  }, [props]);
663
- return /*#__PURE__*/React$1.createElement("object3D", {
663
+ return /*#__PURE__*/React.createElement("object3D", {
664
664
  ref: object,
665
665
  position: position
666
666
  });
@@ -1076,9 +1076,9 @@ const Physics = ({
1076
1076
  step(delta);
1077
1077
  }
1078
1078
  }, [_paused, step]);
1079
- return /*#__PURE__*/React$1.createElement(rapierContext.Provider, {
1079
+ return /*#__PURE__*/React.createElement(rapierContext.Provider, {
1080
1080
  value: context
1081
- }, /*#__PURE__*/React$1.createElement(FrameStepper$1, {
1081
+ }, /*#__PURE__*/React.createElement(FrameStepper$1, {
1082
1082
  onStep: stepCallback,
1083
1083
  type: _updateLoop,
1084
1084
  updatePriority: updatePriority
@@ -1218,7 +1218,7 @@ const AnyCollider = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, forwarded
1218
1218
  }, [props, rigidBodyContext === null || rigidBodyContext === void 0 ? void 0 : rigidBodyContext.options]);
1219
1219
  useUpdateColliderOptions(getInstance, mergedProps, colliderStates);
1220
1220
  useColliderEvents(getInstance, mergedProps, colliderEvents, getActiveCollisionEventsFromProps(rigidBodyContext === null || rigidBodyContext === void 0 ? void 0 : rigidBodyContext.options));
1221
- return /*#__PURE__*/React$1.createElement("object3D", {
1221
+ return /*#__PURE__*/React.createElement("object3D", {
1222
1222
  position: position,
1223
1223
  rotation: rotation,
1224
1224
  quaternion: quaternion,
@@ -1232,8 +1232,8 @@ const AnyCollider = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, forwarded
1232
1232
  * A cuboid collider shape
1233
1233
  * @category Colliders
1234
1234
  */
1235
- const CuboidCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1236
- return /*#__PURE__*/React$1.createElement(AnyCollider, _extends({}, props, {
1235
+ const CuboidCollider = /*#__PURE__*/React.forwardRef((props, ref) => {
1236
+ return /*#__PURE__*/React.createElement(AnyCollider, _extends({}, props, {
1237
1237
  shape: "cuboid",
1238
1238
  ref: ref
1239
1239
  }));
@@ -1243,8 +1243,8 @@ const CuboidCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1243
1243
  * @category Colliders
1244
1244
  */
1245
1245
 
1246
- const RoundCuboidCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1247
- return /*#__PURE__*/React$1.createElement(AnyCollider, _extends({}, props, {
1246
+ const RoundCuboidCollider = /*#__PURE__*/React.forwardRef((props, ref) => {
1247
+ return /*#__PURE__*/React.createElement(AnyCollider, _extends({}, props, {
1248
1248
  shape: "roundCuboid",
1249
1249
  ref: ref
1250
1250
  }));
@@ -1254,8 +1254,8 @@ const RoundCuboidCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1254
1254
  * @category Colliders
1255
1255
  */
1256
1256
 
1257
- const BallCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1258
- return /*#__PURE__*/React$1.createElement(AnyCollider, _extends({}, props, {
1257
+ const BallCollider = /*#__PURE__*/React.forwardRef((props, ref) => {
1258
+ return /*#__PURE__*/React.createElement(AnyCollider, _extends({}, props, {
1259
1259
  shape: "ball",
1260
1260
  ref: ref
1261
1261
  }));
@@ -1265,8 +1265,8 @@ const BallCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1265
1265
  * @category Colliders
1266
1266
  */
1267
1267
 
1268
- const CapsuleCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1269
- return /*#__PURE__*/React$1.createElement(AnyCollider, _extends({}, props, {
1268
+ const CapsuleCollider = /*#__PURE__*/React.forwardRef((props, ref) => {
1269
+ return /*#__PURE__*/React.createElement(AnyCollider, _extends({}, props, {
1270
1270
  shape: "capsule",
1271
1271
  ref: ref
1272
1272
  }));
@@ -1276,8 +1276,8 @@ const CapsuleCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1276
1276
  * @category Colliders
1277
1277
  */
1278
1278
 
1279
- const HeightfieldCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1280
- return /*#__PURE__*/React$1.createElement(AnyCollider, _extends({}, props, {
1279
+ const HeightfieldCollider = /*#__PURE__*/React.forwardRef((props, ref) => {
1280
+ return /*#__PURE__*/React.createElement(AnyCollider, _extends({}, props, {
1281
1281
  shape: "heightfield",
1282
1282
  ref: ref
1283
1283
  }));
@@ -1287,8 +1287,8 @@ const HeightfieldCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1287
1287
  * @category Colliders
1288
1288
  */
1289
1289
 
1290
- const TrimeshCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1291
- return /*#__PURE__*/React$1.createElement(AnyCollider, _extends({}, props, {
1290
+ const TrimeshCollider = /*#__PURE__*/React.forwardRef((props, ref) => {
1291
+ return /*#__PURE__*/React.createElement(AnyCollider, _extends({}, props, {
1292
1292
  shape: "trimesh",
1293
1293
  ref: ref
1294
1294
  }));
@@ -1298,8 +1298,8 @@ const TrimeshCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1298
1298
  * @category Colliders
1299
1299
  */
1300
1300
 
1301
- const ConeCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1302
- return /*#__PURE__*/React$1.createElement(AnyCollider, _extends({}, props, {
1301
+ const ConeCollider = /*#__PURE__*/React.forwardRef((props, ref) => {
1302
+ return /*#__PURE__*/React.createElement(AnyCollider, _extends({}, props, {
1303
1303
  shape: "cone",
1304
1304
  ref: ref
1305
1305
  }));
@@ -1309,8 +1309,8 @@ const ConeCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1309
1309
  * @category Colliders
1310
1310
  */
1311
1311
 
1312
- const CylinderCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1313
- return /*#__PURE__*/React$1.createElement(AnyCollider, _extends({}, props, {
1312
+ const CylinderCollider = /*#__PURE__*/React.forwardRef((props, ref) => {
1313
+ return /*#__PURE__*/React.createElement(AnyCollider, _extends({}, props, {
1314
1314
  shape: "cylinder",
1315
1315
  ref: ref
1316
1316
  }));
@@ -1320,8 +1320,8 @@ const CylinderCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1320
1320
  * @category Colliders
1321
1321
  */
1322
1322
 
1323
- const ConvexHullCollider = /*#__PURE__*/React$1.forwardRef((props, ref) => {
1324
- return /*#__PURE__*/React$1.createElement(AnyCollider, _extends({}, props, {
1323
+ const ConvexHullCollider = /*#__PURE__*/React.forwardRef((props, ref) => {
1324
+ return /*#__PURE__*/React.createElement(AnyCollider, _extends({}, props, {
1325
1325
  shape: "convexHull",
1326
1326
  ref: ref
1327
1327
  }));
@@ -1549,16 +1549,16 @@ const RigidBody = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, forwardedRe
1549
1549
  options: mergedOptions
1550
1550
  };
1551
1551
  }, [mergedOptions]);
1552
- return /*#__PURE__*/React$1.createElement(RigidBodyContext.Provider, {
1552
+ return /*#__PURE__*/React.createElement(RigidBodyContext.Provider, {
1553
1553
  value: contextValue
1554
- }, /*#__PURE__*/React$1.createElement("object3D", _extends({
1554
+ }, /*#__PURE__*/React.createElement("object3D", _extends({
1555
1555
  ref: ref
1556
1556
  }, objectProps, {
1557
1557
  position: position,
1558
1558
  rotation: rotation,
1559
1559
  quaternion: quaternion,
1560
1560
  scale: scale
1561
- }), children, childColliderProps.map((colliderProps, index) => /*#__PURE__*/React$1.createElement(AnyCollider, _extends({
1561
+ }), children, childColliderProps.map((colliderProps, index) => /*#__PURE__*/React.createElement(AnyCollider, _extends({
1562
1562
  key: index
1563
1563
  }, colliderProps)))));
1564
1564
  }));
@@ -1587,12 +1587,12 @@ const MeshCollider = /*#__PURE__*/memo(props => {
1587
1587
  });
1588
1588
  }, [physicsOptions, options]);
1589
1589
  const childColliderProps = useChildColliderProps(object, mergedOptions, false);
1590
- return /*#__PURE__*/React$1.createElement("object3D", {
1590
+ return /*#__PURE__*/React.createElement("object3D", {
1591
1591
  ref: object,
1592
1592
  userData: {
1593
1593
  r3RapierType: "MeshCollider"
1594
1594
  }
1595
- }, children, childColliderProps.map((colliderProps, index) => /*#__PURE__*/React$1.createElement(AnyCollider, _extends({
1595
+ }, children, childColliderProps.map((colliderProps, index) => /*#__PURE__*/React.createElement(AnyCollider, _extends({
1596
1596
  key: index
1597
1597
  }, colliderProps))));
1598
1598
  });
@@ -1645,13 +1645,13 @@ const AttractorHelper = props => {
1645
1645
  (_normalsHelper$curren = normalsHelper.current) === null || _normalsHelper$curren === void 0 ? void 0 : _normalsHelper$curren.update();
1646
1646
  }
1647
1647
  });
1648
- return /*#__PURE__*/React$1.createElement("mesh", {
1648
+ return /*#__PURE__*/React.createElement("mesh", {
1649
1649
  ref: ref,
1650
1650
  position: props.object.position,
1651
1651
  frustumCulled: false
1652
- }, /*#__PURE__*/React$1.createElement("sphereGeometry", {
1652
+ }, /*#__PURE__*/React.createElement("sphereGeometry", {
1653
1653
  args: [0.2, 6, 6]
1654
- }), /*#__PURE__*/React$1.createElement("meshBasicMaterial", {
1654
+ }), /*#__PURE__*/React.createElement("meshBasicMaterial", {
1655
1655
  color: color,
1656
1656
  wireframe: true
1657
1657
  }));
@@ -1677,13 +1677,13 @@ const Debug = /*#__PURE__*/memo(() => {
1677
1677
  currMap.current = new Map(attractorStates);
1678
1678
  }
1679
1679
  });
1680
- return /*#__PURE__*/React$1.createElement("group", null, /*#__PURE__*/React$1.createElement("lineSegments", {
1680
+ return /*#__PURE__*/React.createElement("group", null, /*#__PURE__*/React.createElement("lineSegments", {
1681
1681
  ref: ref,
1682
1682
  frustumCulled: false
1683
- }, /*#__PURE__*/React$1.createElement("lineBasicMaterial", {
1683
+ }, /*#__PURE__*/React.createElement("lineBasicMaterial", {
1684
1684
  color: 0xffffff,
1685
1685
  vertexColors: true
1686
- }), /*#__PURE__*/React$1.createElement("bufferGeometry", null)), attractors.map((attractor, i) => /*#__PURE__*/React$1.createElement(AttractorHelper, _extends({
1686
+ }), /*#__PURE__*/React.createElement("bufferGeometry", null)), attractors.map((attractor, i) => /*#__PURE__*/React.createElement(AttractorHelper, _extends({
1687
1687
  key: attractor.object.uuid
1688
1688
  }, attractor))));
1689
1689
  });
@@ -1752,21 +1752,21 @@ const InstancedRigidBodies = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props,
1752
1752
  return state;
1753
1753
  };
1754
1754
 
1755
- return /*#__PURE__*/React$1.createElement("object3D", _extends({
1755
+ return /*#__PURE__*/React.createElement("object3D", _extends({
1756
1756
  ref: object
1757
1757
  }, rigidBodyProps, {
1758
1758
  position: position,
1759
1759
  rotation: rotation,
1760
1760
  quaternion: quaternion,
1761
1761
  scale: scale
1762
- }), /*#__PURE__*/React$1.createElement("object3D", {
1762
+ }), /*#__PURE__*/React.createElement("object3D", {
1763
1763
  ref: instancedWrapper
1764
- }, children), instances === null || instances === void 0 ? void 0 : instances.map((instance, index) => /*#__PURE__*/React$1.createElement(RigidBody, _extends({}, rigidBodyProps, instance, {
1764
+ }, children), instances === null || instances === void 0 ? void 0 : instances.map((instance, index) => /*#__PURE__*/React.createElement(RigidBody, _extends({}, rigidBodyProps, instance, {
1765
1765
  ref: body => rigidBodyApis.current[index] = body,
1766
1766
  transformState: state => applyInstancedState(state, index)
1767
- }), /*#__PURE__*/React$1.createElement(React$1.Fragment, null, colliderNodes.map((node, index) => /*#__PURE__*/React$1.createElement(Fragment, {
1767
+ }), /*#__PURE__*/React.createElement(React.Fragment, null, colliderNodes.map((node, index) => /*#__PURE__*/React.createElement(Fragment, {
1768
1768
  key: index
1769
- }, node)), childColliderProps.map((colliderProps, colliderIndex) => /*#__PURE__*/React$1.createElement(AnyCollider, _extends({
1769
+ }, node)), childColliderProps.map((colliderProps, colliderIndex) => /*#__PURE__*/React.createElement(AnyCollider, _extends({
1770
1770
  key: colliderIndex
1771
1771
  }, colliderProps)))))));
1772
1772
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/rapier",
3
- "version": "0.14.0-rc.2",
3
+ "version": "0.14.0-rc.4",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/react-three-rapier.cjs.js",
6
6
  "module": "dist/react-three-rapier.esm.js",
@@ -31,7 +31,7 @@
31
31
  "three": ">=0.139.2"
32
32
  },
33
33
  "dependencies": {
34
- "@dimforge/rapier3d-compat": "0.11.1",
34
+ "@dimforge/rapier3d-compat": "0.11.2",
35
35
  "three-stdlib": "2.21.6",
36
36
  "use-asset": "1.0.4"
37
37
  },