@react-three/drei 7.14.1 → 7.15.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/index.js CHANGED
@@ -2,6 +2,7 @@ export { Html } from './web/Html.js';
2
2
  export { CycleRaycast } from './web/CycleRaycast.js';
3
3
  export { useCursor } from './web/useCursor.js';
4
4
  export { Loader } from './web/Loader.js';
5
+ export { Scroll, ScrollControls, useScroll } from './web/ScrollControls.js';
5
6
  export { Billboard } from './core/Billboard.js';
6
7
  export { Cloud } from './core/Cloud.js';
7
8
  export { QuadraticBezierLine } from './core/QuadraticBezierLine.js';
@@ -12,6 +13,7 @@ export { Text } from './core/Text.js';
12
13
  export { Environment } from './core/Environment.js';
13
14
  export { Effects, isWebGL2Available } from './core/Effects.js';
14
15
  export { GradientTexture } from './core/GradientTexture.js';
16
+ export { Image } from './core/Image.js';
15
17
  export { OrthographicCamera } from './core/OrthographicCamera.js';
16
18
  export { PerspectiveCamera } from './core/PerspectiveCamera.js';
17
19
  export { CameraShake } from './core/CameraShake.js';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../core/Billboard.cjs.js"),r=require("../core/Cloud.cjs.js"),s=require("../core/QuadraticBezierLine.cjs.js"),o=require("../core/CubicBezierLine.cjs.js"),t=require("../core/Line.cjs.js"),i=require("../core/PositionalAudio.cjs.js"),c=require("../core/Text.cjs.js"),a=require("../core/Environment.cjs.js"),u=require("../core/Effects.cjs.js"),j=require("../core/GradientTexture.cjs.js"),p=require("../core/OrthographicCamera.cjs.js"),n=require("../core/PerspectiveCamera.cjs.js"),l=require("../core/CameraShake.cjs.js"),x=require("../core/CubeCamera.cjs.js"),q=require("../core/DeviceOrientationControls.cjs.js"),d=require("../core/FlyControls.cjs.js"),h=require("../core/MapControls.cjs.js"),C=require("../core/OrbitControls.cjs.js"),m=require("../core/TrackballControls.cjs.js"),b=require("../core/ArcballControls.cjs.js"),S=require("../core/TransformControls.cjs.js"),P=require("../core/PointerLockControls.cjs.js"),M=require("../core/FirstPersonControls.cjs.js"),T=require("../core/GizmoHelper.cjs.js"),f=require("../core/GizmoViewcube.cjs.js"),B=require("../core/GizmoViewport.cjs.js"),g=require("../core/useCubeTexture.cjs.js"),v=require("../core/useFBX.cjs.js"),L=require("../core/useGLTF.cjs.js"),A=require("../core/useProgress.cjs.js"),G=require("../core/useTexture.cjs.js"),D=require("../core/Reflector.cjs.js"),w=require("../core/Shadow.cjs.js"),z=require("../core/Stats.cjs.js"),k=require("../core/Center.cjs.js"),F=require("../core/DepthBuffer.cjs.js"),O=require("../core/useAspect.cjs.js"),E=require("../core/useCamera.cjs.js"),y=require("../core/useDetectGPU.cjs.js"),I=require("../core/useHelper.cjs.js"),R=require("../core/useBVH.cjs.js"),H=require("../core/useContextBridge.cjs.js"),V=require("../core/useAnimations.cjs.js"),Q=require("../core/useFBO.cjs.js"),W=require("../core/useSimplification.cjs.js"),N=require("../core/useTessellation.cjs.js"),U=require("../core/useEdgeSplit.cjs.js"),X=require("../core/CurveModifier.cjs.js"),K=require("../core/MeshDistortMaterial.cjs.js"),_=require("../core/MeshWobbleMaterial.cjs.js"),J=require("../core/PointMaterial.cjs.js"),Y=require("../core/shaderMaterial.cjs.js"),Z=require("../core/Sky.cjs.js"),$=require("../core/softShadows.cjs.js"),ee=require("../core/Stars.cjs.js"),re=require("../core/ContactShadows.cjs.js"),se=require("../core/SpotLight.cjs.js"),oe=require("../core/shapes.cjs.js"),te=require("../core/RoundedBox.cjs.js"),ie=require("../core/ScreenQuad.cjs.js"),ce=require("../core/useMatcapTexture.cjs.js"),ae=require("../core/useNormalTexture.cjs.js"),ue=require("../core/Stage.cjs.js"),je=require("../core/Points.cjs.js"),pe=require("../core/Instances.cjs.js"),ne=require("../core/Detailed.cjs.js"),le=require("../core/Preload.cjs.js"),xe=require("../core/BakeShadows.cjs.js"),qe=require("../core/meshBounds.cjs.js"),de=require("../core/AdaptiveDpr.cjs.js"),he=require("../core/AdaptiveEvents.cjs.js"),Ce=require("../materials/MeshReflectorMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("../assets/cloud.base64.cjs.js"),require("../helpers/base64.cjs.js"),require("blob-polyfill"),require("three"),require("three-stdlib"),require("troika-three-text"),require("use-asset"),require("../helpers/environment-assets.cjs.js"),require("lodash.omit"),require("lodash.pick"),require("zustand"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/matcap-assets.cjs.js"),require("../helpers/normal-assets.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.Cloud=r.Cloud,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=o.CubicBezierLine,exports.Line=t.Line,exports.PositionalAudio=i.PositionalAudio,exports.Text=c.Text,exports.Environment=a.Environment,exports.Effects=u.Effects,exports.isWebGL2Available=u.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.OrthographicCamera=p.OrthographicCamera,exports.PerspectiveCamera=n.PerspectiveCamera,exports.CameraShake=l.CameraShake,exports.CubeCamera=x.CubeCamera,exports.DeviceOrientationControls=q.DeviceOrientationControls,exports.FlyControls=d.FlyControls,exports.MapControls=h.MapControls,exports.OrbitControls=C.OrbitControls,exports.TrackballControls=m.TrackballControls,exports.ArcballControls=b.ArcballControls,exports.TransformControls=S.TransformControls,exports.PointerLockControls=P.PointerLockControls,exports.FirstPersonControls=M.FirstPersonControls,exports.GizmoHelper=T.GizmoHelper,exports.useGizmoContext=T.useGizmoContext,exports.GizmoViewcube=f.GizmoViewcube,exports.GizmoViewport=B.GizmoViewport,exports.useCubeTexture=g.useCubeTexture,exports.useFBX=v.useFBX,exports.useGLTF=L.useGLTF,exports.useProgress=A.useProgress,exports.IsObject=G.IsObject,exports.useTexture=G.useTexture,exports.Reflector=D.Reflector,exports.Shadow=w.Shadow,exports.Stats=z.Stats,exports.Center=k.Center,exports.DepthBuffer=F.DepthBuffer,exports.useAspect=O.useAspect,exports.useCamera=E.useCamera,exports.useDetectGPU=y.useDetectGPU,exports.useHelper=I.useHelper,exports.useBVH=R.useBVH,exports.useContextBridge=H.useContextBridge,exports.useAnimations=V.useAnimations,exports.useFBO=Q.useFBO,exports.useSimplification=W.useSimplification,exports.useTessellation=N.useTessellation,exports.useEdgeSplit=U.useEdgeSplit,exports.CurveModifier=X.CurveModifier,exports.MeshDistortMaterial=K.MeshDistortMaterial,exports.MeshWobbleMaterial=_.MeshWobbleMaterial,exports.PointMaterial=J.PointMaterial,exports.PointMaterialImpl=J.PointMaterialImpl,exports.shaderMaterial=Y.shaderMaterial,exports.Sky=Z.Sky,exports.calcPosFromAngles=Z.calcPosFromAngles,exports.softShadows=$.softShadows,exports.Stars=ee.Stars,exports.ContactShadows=re.ContactShadows,exports.SpotLight=se.SpotLight,exports.Box=oe.Box,exports.Circle=oe.Circle,exports.Cone=oe.Cone,exports.Cylinder=oe.Cylinder,exports.Dodecahedron=oe.Dodecahedron,exports.Extrude=oe.Extrude,exports.Icosahedron=oe.Icosahedron,exports.Lathe=oe.Lathe,exports.Octahedron=oe.Octahedron,exports.Parametric=oe.Parametric,exports.Plane=oe.Plane,exports.Polyhedron=oe.Polyhedron,exports.Ring=oe.Ring,exports.Sphere=oe.Sphere,exports.Tetrahedron=oe.Tetrahedron,exports.Torus=oe.Torus,exports.TorusKnot=oe.TorusKnot,exports.Tube=oe.Tube,exports.RoundedBox=te.RoundedBox,exports.ScreenQuad=ie.ScreenQuad,exports.useMatcapTexture=ce.useMatcapTexture,exports.useNormalTexture=ae.useNormalTexture,exports.Stage=ue.Stage,exports.Point=je.Point,exports.Points=je.Points,exports.Instance=pe.Instance,exports.Instances=pe.Instances,exports.Merged=pe.Merged,exports.Detailed=ne.Detailed,exports.Preload=le.Preload,exports.BakeShadows=xe.BakeShadows,exports.meshBounds=qe.meshBounds,exports.AdaptiveDpr=de.AdaptiveDpr,exports.AdaptiveEvents=he.AdaptiveEvents,exports.MeshReflectorMaterial=Ce.MeshReflectorMaterial;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../core/Billboard.cjs.js"),r=require("../core/Cloud.cjs.js"),s=require("../core/QuadraticBezierLine.cjs.js"),o=require("../core/CubicBezierLine.cjs.js"),t=require("../core/Line.cjs.js"),i=require("../core/PositionalAudio.cjs.js"),c=require("../core/Text.cjs.js"),a=require("../core/Environment.cjs.js"),u=require("../core/Effects.cjs.js"),j=require("../core/GradientTexture.cjs.js"),p=require("../core/Image.cjs.js"),n=require("../core/OrthographicCamera.cjs.js"),l=require("../core/PerspectiveCamera.cjs.js"),x=require("../core/CameraShake.cjs.js"),q=require("../core/CubeCamera.cjs.js"),d=require("../core/DeviceOrientationControls.cjs.js"),h=require("../core/FlyControls.cjs.js"),C=require("../core/MapControls.cjs.js"),m=require("../core/OrbitControls.cjs.js"),b=require("../core/TrackballControls.cjs.js"),S=require("../core/ArcballControls.cjs.js"),P=require("../core/TransformControls.cjs.js"),M=require("../core/PointerLockControls.cjs.js"),T=require("../core/FirstPersonControls.cjs.js"),f=require("../core/GizmoHelper.cjs.js"),B=require("../core/GizmoViewcube.cjs.js"),g=require("../core/GizmoViewport.cjs.js"),v=require("../core/useCubeTexture.cjs.js"),L=require("../core/useFBX.cjs.js"),A=require("../core/useGLTF.cjs.js"),G=require("../core/useProgress.cjs.js"),D=require("../core/useTexture.cjs.js"),w=require("../core/Reflector.cjs.js"),z=require("../core/Shadow.cjs.js"),k=require("../core/Stats.cjs.js"),F=require("../core/Center.cjs.js"),O=require("../core/DepthBuffer.cjs.js"),E=require("../core/useAspect.cjs.js"),I=require("../core/useCamera.cjs.js"),y=require("../core/useDetectGPU.cjs.js"),R=require("../core/useHelper.cjs.js"),H=require("../core/useBVH.cjs.js"),V=require("../core/useContextBridge.cjs.js"),Q=require("../core/useAnimations.cjs.js"),W=require("../core/useFBO.cjs.js"),N=require("../core/useSimplification.cjs.js"),U=require("../core/useTessellation.cjs.js"),X=require("../core/useEdgeSplit.cjs.js"),K=require("../core/CurveModifier.cjs.js"),_=require("../core/MeshDistortMaterial.cjs.js"),J=require("../core/MeshWobbleMaterial.cjs.js"),Y=require("../core/PointMaterial.cjs.js"),Z=require("../core/shaderMaterial.cjs.js"),$=require("../core/Sky.cjs.js"),ee=require("../core/softShadows.cjs.js"),re=require("../core/Stars.cjs.js"),se=require("../core/ContactShadows.cjs.js"),oe=require("../core/SpotLight.cjs.js"),te=require("../core/shapes.cjs.js"),ie=require("../core/RoundedBox.cjs.js"),ce=require("../core/ScreenQuad.cjs.js"),ae=require("../core/useMatcapTexture.cjs.js"),ue=require("../core/useNormalTexture.cjs.js"),je=require("../core/Stage.cjs.js"),pe=require("../core/Points.cjs.js"),ne=require("../core/Instances.cjs.js"),le=require("../core/Detailed.cjs.js"),xe=require("../core/Preload.cjs.js"),qe=require("../core/BakeShadows.cjs.js"),de=require("../core/meshBounds.cjs.js"),he=require("../core/AdaptiveDpr.cjs.js"),Ce=require("../core/AdaptiveEvents.cjs.js"),me=require("../materials/MeshReflectorMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("../assets/cloud.base64.cjs.js"),require("three"),require("three-stdlib"),require("troika-three-text"),require("use-asset"),require("../helpers/environment-assets.cjs.js"),require("lodash.omit"),require("lodash.pick"),require("zustand"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/matcap-assets.cjs.js"),require("../helpers/normal-assets.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.Cloud=r.Cloud,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=o.CubicBezierLine,exports.Line=t.Line,exports.PositionalAudio=i.PositionalAudio,exports.Text=c.Text,exports.Environment=a.Environment,exports.Effects=u.Effects,exports.isWebGL2Available=u.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.Image=p.Image,exports.OrthographicCamera=n.OrthographicCamera,exports.PerspectiveCamera=l.PerspectiveCamera,exports.CameraShake=x.CameraShake,exports.CubeCamera=q.CubeCamera,exports.DeviceOrientationControls=d.DeviceOrientationControls,exports.FlyControls=h.FlyControls,exports.MapControls=C.MapControls,exports.OrbitControls=m.OrbitControls,exports.TrackballControls=b.TrackballControls,exports.ArcballControls=S.ArcballControls,exports.TransformControls=P.TransformControls,exports.PointerLockControls=M.PointerLockControls,exports.FirstPersonControls=T.FirstPersonControls,exports.GizmoHelper=f.GizmoHelper,exports.useGizmoContext=f.useGizmoContext,exports.GizmoViewcube=B.GizmoViewcube,exports.GizmoViewport=g.GizmoViewport,exports.useCubeTexture=v.useCubeTexture,exports.useFBX=L.useFBX,exports.useGLTF=A.useGLTF,exports.useProgress=G.useProgress,exports.IsObject=D.IsObject,exports.useTexture=D.useTexture,exports.Reflector=w.Reflector,exports.Shadow=z.Shadow,exports.Stats=k.Stats,exports.Center=F.Center,exports.DepthBuffer=O.DepthBuffer,exports.useAspect=E.useAspect,exports.useCamera=I.useCamera,exports.useDetectGPU=y.useDetectGPU,exports.useHelper=R.useHelper,exports.useBVH=H.useBVH,exports.useContextBridge=V.useContextBridge,exports.useAnimations=Q.useAnimations,exports.useFBO=W.useFBO,exports.useSimplification=N.useSimplification,exports.useTessellation=U.useTessellation,exports.useEdgeSplit=X.useEdgeSplit,exports.CurveModifier=K.CurveModifier,exports.MeshDistortMaterial=_.MeshDistortMaterial,exports.MeshWobbleMaterial=J.MeshWobbleMaterial,exports.PointMaterial=Y.PointMaterial,exports.PointMaterialImpl=Y.PointMaterialImpl,exports.shaderMaterial=Z.shaderMaterial,exports.Sky=$.Sky,exports.calcPosFromAngles=$.calcPosFromAngles,exports.softShadows=ee.softShadows,exports.Stars=re.Stars,exports.ContactShadows=se.ContactShadows,exports.SpotLight=oe.SpotLight,exports.Box=te.Box,exports.Circle=te.Circle,exports.Cone=te.Cone,exports.Cylinder=te.Cylinder,exports.Dodecahedron=te.Dodecahedron,exports.Extrude=te.Extrude,exports.Icosahedron=te.Icosahedron,exports.Lathe=te.Lathe,exports.Octahedron=te.Octahedron,exports.Parametric=te.Parametric,exports.Plane=te.Plane,exports.Polyhedron=te.Polyhedron,exports.Ring=te.Ring,exports.Sphere=te.Sphere,exports.Tetrahedron=te.Tetrahedron,exports.Torus=te.Torus,exports.TorusKnot=te.TorusKnot,exports.Tube=te.Tube,exports.RoundedBox=ie.RoundedBox,exports.ScreenQuad=ce.ScreenQuad,exports.useMatcapTexture=ae.useMatcapTexture,exports.useNormalTexture=ue.useNormalTexture,exports.Stage=je.Stage,exports.Point=pe.Point,exports.Points=pe.Points,exports.Instance=ne.Instance,exports.Instances=ne.Instances,exports.Merged=ne.Merged,exports.Detailed=le.Detailed,exports.Preload=xe.Preload,exports.BakeShadows=qe.BakeShadows,exports.meshBounds=de.meshBounds,exports.AdaptiveDpr=he.AdaptiveDpr,exports.AdaptiveEvents=Ce.AdaptiveEvents,exports.MeshReflectorMaterial=me.MeshReflectorMaterial;
package/native/index.js CHANGED
@@ -8,6 +8,7 @@ export { Text } from '../core/Text.js';
8
8
  export { Environment } from '../core/Environment.js';
9
9
  export { Effects, isWebGL2Available } from '../core/Effects.js';
10
10
  export { GradientTexture } from '../core/GradientTexture.js';
11
+ export { Image } from '../core/Image.js';
11
12
  export { OrthographicCamera } from '../core/OrthographicCamera.js';
12
13
  export { PerspectiveCamera } from '../core/PerspectiveCamera.js';
13
14
  export { CameraShake } from '../core/CameraShake.js';
@@ -75,8 +76,6 @@ import 'react';
75
76
  import '@react-three/fiber';
76
77
  import 'react-merge-refs';
77
78
  import '../assets/cloud.base64.js';
78
- import '../helpers/base64.js';
79
- import 'blob-polyfill';
80
79
  import 'three';
81
80
  import 'three-stdlib';
82
81
  import 'troika-three-text';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/drei",
3
- "version": "7.14.1",
3
+ "version": "7.15.0",
4
4
  "private": false,
5
5
  "description": "useful add-ons for react-three-fiber",
6
6
  "keywords": [
@@ -40,7 +40,6 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@babel/runtime": "^7.11.2",
43
- "blob-polyfill": "^5.0.20210201",
44
43
  "detect-gpu": "^3.1.21",
45
44
  "glsl-noise": "^0.0.0",
46
45
  "lodash.omit": "^4.5.0",
@@ -49,7 +48,7 @@
49
48
  "react-merge-refs": "^1.1.0",
50
49
  "stats.js": "^0.17.0",
51
50
  "three-mesh-bvh": "^0.5.0",
52
- "three-stdlib": "^2.5.3",
51
+ "three-stdlib": "^2.5.4",
53
52
  "troika-three-text": "^0.43.0",
54
53
  "use-asset": "^1.0.4",
55
54
  "utility-types": "^3.10.0",
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),s=require("react-dom"),o=require("@react-three/fiber"),n=require("react-merge-refs");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=l(e),u=a(t),f=a(r),c=a(s),d=l(n);const p=f.createContext(null);function h(){return f.useContext(p)}const m=f.forwardRef((({html:e,...t},r)=>{const s=e?v:g;return f.createElement(s,i.default({ref:r},t))})),g=f.forwardRef((({children:e},t)=>{const r=f.useRef(null),s=h(),{width:n,height:l}=o.useThree((e=>e.viewport));return o.useFrame((()=>{r.current.position.x=s.horizontal?-n*(s.pages-1)*s.offset:0,r.current.position.y=s.horizontal?0:l*(s.pages-1)*s.offset})),f.createElement("group",{ref:d.default([t,r])},e)})),v=f.forwardRef((({children:e,style:t,...r},s)=>{const n=h(),l=f.useRef(null),{width:a,height:u}=o.useThree((e=>e.size)),m=f.useContext(o.context);return o.useFrame((()=>{n.delta>n.eps&&(l.current.style.transform=`translate3d(${n.horizontal?-a*(n.pages-1)*n.offset:0}px,${n.horizontal?0:u*(n.pages-1)*-n.offset}px,0)`)})),c.render(f.createElement("div",i.default({ref:d.default([s,l]),style:{...t,position:"absolute",top:0,left:0,willChange:"transform"}},r),f.createElement(p.Provider,{value:n},f.createElement(o.context.Provider,{value:m},e))),n.fixed),null}));exports.Scroll=m,exports.ScrollControls=function({eps:e=1e-5,horizontal:t,pages:r=1,distance:s=1,damping:n=4,children:l}){const a=o.useThree((e=>e.gl)),i=o.useThree((e=>e.invalidate)),c=o.useThree((e=>e.events)),d=o.useThree((e=>e.raycaster)),[h]=f.useState((()=>document.createElement("div"))),[m]=f.useState((()=>document.createElement("div"))),[g]=f.useState((()=>document.createElement("div"))),v=a.domElement.parentNode,y=f.useRef(0),x=f.useMemo((()=>({el:h,eps:e,fill:m,fixed:g,horizontal:t,damping:n,offset:0,delta:0,pages:r,range(e,t){const r=e+t;return this.offset<e?0:this.offset>r?1:(this.offset-e)/(r-e)},visible(e,t){const r=e+t;return this.offset>=e&&this.offset<=r}})),[e,n,t,r]);f.useEffect((()=>{h.style.position="absolute",h.style.width="100%",h.style.height="100%",h.style[t?"overflowX":"overflowY"]="auto",h.style.top="0px",h.style.left="0px",g.style.position="sticky",g.style.top="0px",g.style.left="0px",h.appendChild(g),m.style.height=t?"100%":r*s*100+"%",m.style.width=t?r*s*100+"%":"100%",m.style.pointerEvents="none",h.appendChild(m);const e=e=>{i(),y.current=t?e.target.scrollLeft/(e.target.scrollWidth-e.target.clientWidth):e.target.scrollTop/(e.target.scrollHeight-e.target.clientHeight)};return h.addEventListener("scroll",e,{passive:!0}),v.appendChild(h),requestAnimationFrame((()=>null==c.connect?void 0:c.connect(h))),d.computeOffsets=({clientX:e,clientY:t})=>({offsetX:e,offsetY:t}),()=>{v.removeChild(h),h.removeEventListener("scroll",e)}}),[i,s,n,r,t]);let b=0;return o.useFrame(((t,r)=>{x.offset=u.MathUtils.damp(b=x.offset,y.current,n,r),x.delta=u.MathUtils.damp(x.delta,Math.abs(b-x.offset),n,r),x.delta>e&&i()})),f.createElement(p.Provider,{value:x},l)},exports.useScroll=h;
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ export declare type ScrollControlsProps = {
3
+ eps?: number;
4
+ horizontal?: boolean;
5
+ pages?: number;
6
+ distance?: number;
7
+ damping?: number;
8
+ children: React.ReactNode;
9
+ };
10
+ export declare type ScrollControlsState = {
11
+ el: HTMLDivElement;
12
+ eps: number;
13
+ fill: HTMLDivElement;
14
+ fixed: HTMLDivElement;
15
+ horizontal: boolean | undefined;
16
+ damping: number;
17
+ offset: number;
18
+ delta: number;
19
+ pages: number;
20
+ range(start: number, range: number): number;
21
+ visible(start: number, range: number): boolean;
22
+ };
23
+ export declare function useScroll(): ScrollControlsState;
24
+ export declare function ScrollControls({ eps, horizontal, pages, distance, damping, children, }: ScrollControlsProps): JSX.Element;
25
+ export declare const Scroll: React.ForwardRefExoticComponent<{
26
+ html?: boolean | undefined;
27
+ } & React.RefAttributes<unknown>>;
@@ -0,0 +1,165 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as THREE from 'three';
3
+ import * as React from 'react';
4
+ import * as ReactDOM from 'react-dom';
5
+ import { useThree, useFrame, context as context$1 } from '@react-three/fiber';
6
+ import mergeRefs from 'react-merge-refs';
7
+
8
+ const context = /*#__PURE__*/React.createContext(null);
9
+ function useScroll() {
10
+ return React.useContext(context);
11
+ }
12
+ function ScrollControls({
13
+ eps = 0.00001,
14
+ horizontal,
15
+ pages = 1,
16
+ distance = 1,
17
+ damping = 4,
18
+ children
19
+ }) {
20
+ const gl = useThree(state => state.gl);
21
+ const invalidate = useThree(state => state.invalidate);
22
+ const events = useThree(state => state.events);
23
+ const raycaster = useThree(state => state.raycaster);
24
+ const [el] = React.useState(() => document.createElement('div'));
25
+ const [fill] = React.useState(() => document.createElement('div'));
26
+ const [fixed] = React.useState(() => document.createElement('div'));
27
+ const target = gl.domElement.parentNode;
28
+ const scroll = React.useRef(0);
29
+ const state = React.useMemo(() => {
30
+ const state = {
31
+ el,
32
+ eps,
33
+ fill,
34
+ fixed,
35
+ horizontal,
36
+ damping,
37
+ offset: 0,
38
+ delta: 0,
39
+ pages,
40
+
41
+ // 0 - 1 for a range between start -> start + range
42
+ range(start, range) {
43
+ const end = start + range;
44
+ return this.offset < start ? 0 : this.offset > end ? 1 : (this.offset - start) / (end - start);
45
+ },
46
+
47
+ // true/false for a range between start -> start + range
48
+ visible(start, range) {
49
+ const end = start + range;
50
+ return this.offset >= start && this.offset <= end;
51
+ }
52
+
53
+ };
54
+ return state;
55
+ }, [eps, damping, horizontal, pages]);
56
+ React.useEffect(() => {
57
+ el.style.position = 'absolute';
58
+ el.style.width = '100%';
59
+ el.style.height = '100%';
60
+ el.style[horizontal ? 'overflowX' : 'overflowY'] = 'auto';
61
+ el.style.top = '0px';
62
+ el.style.left = '0px';
63
+ fixed.style.position = 'sticky';
64
+ fixed.style.top = '0px';
65
+ fixed.style.left = '0px';
66
+ el.appendChild(fixed);
67
+ fill.style.height = horizontal ? '100%' : `${pages * distance * 100}%`;
68
+ fill.style.width = horizontal ? `${pages * distance * 100}%` : '100%';
69
+ fill.style.pointerEvents = 'none';
70
+ el.appendChild(fill);
71
+
72
+ const onScroll = e => {
73
+ invalidate();
74
+ scroll.current = horizontal ? e.target.scrollLeft / (e.target.scrollWidth - e.target.clientWidth) : e.target.scrollTop / (e.target.scrollHeight - e.target.clientHeight);
75
+ };
76
+
77
+ el.addEventListener('scroll', onScroll, {
78
+ passive: true
79
+ });
80
+ target.appendChild(el);
81
+ requestAnimationFrame(() => events.connect == null ? void 0 : events.connect(el));
82
+
83
+ raycaster.computeOffsets = ({
84
+ clientX,
85
+ clientY
86
+ }) => ({
87
+ offsetX: clientX,
88
+ offsetY: clientY
89
+ });
90
+
91
+ return () => {
92
+ target.removeChild(el);
93
+ el.removeEventListener('scroll', onScroll);
94
+ };
95
+ }, [invalidate, distance, damping, pages, horizontal]);
96
+ let last = 0;
97
+ useFrame((_, delta) => {
98
+ state.offset = THREE.MathUtils.damp(last = state.offset, scroll.current, damping, delta);
99
+ state.delta = THREE.MathUtils.damp(state.delta, Math.abs(last - state.offset), damping, delta);
100
+ if (state.delta > eps) invalidate();
101
+ });
102
+ return /*#__PURE__*/React.createElement(context.Provider, {
103
+ value: state
104
+ }, children);
105
+ }
106
+ const Scroll = /*#__PURE__*/React.forwardRef(({
107
+ html,
108
+ ...props
109
+ }, ref) => {
110
+ const El = html ? ScrollHtml : ScrollCanvas;
111
+ return /*#__PURE__*/React.createElement(El, _extends({
112
+ ref: ref
113
+ }, props));
114
+ });
115
+ const ScrollCanvas = /*#__PURE__*/React.forwardRef(({
116
+ children
117
+ }, ref) => {
118
+ const group = React.useRef(null);
119
+ const state = useScroll();
120
+ const {
121
+ width,
122
+ height
123
+ } = useThree(state => state.viewport);
124
+ useFrame(() => {
125
+ group.current.position.x = state.horizontal ? -width * (state.pages - 1) * state.offset : 0;
126
+ group.current.position.y = state.horizontal ? 0 : height * (state.pages - 1) * state.offset;
127
+ });
128
+ return /*#__PURE__*/React.createElement("group", {
129
+ ref: mergeRefs([ref, group])
130
+ }, children);
131
+ });
132
+ const ScrollHtml = /*#__PURE__*/React.forwardRef(({
133
+ children,
134
+ style,
135
+ ...props
136
+ }, ref) => {
137
+ const state = useScroll();
138
+ const group = React.useRef(null);
139
+ const {
140
+ width,
141
+ height
142
+ } = useThree(state => state.size);
143
+ const fiberState = React.useContext(context$1);
144
+ useFrame(() => {
145
+ if (state.delta > state.eps) {
146
+ group.current.style.transform = `translate3d(${state.horizontal ? -width * (state.pages - 1) * state.offset : 0}px,${state.horizontal ? 0 : height * (state.pages - 1) * -state.offset}px,0)`;
147
+ }
148
+ });
149
+ ReactDOM.render( /*#__PURE__*/React.createElement("div", _extends({
150
+ ref: mergeRefs([ref, group]),
151
+ style: { ...style,
152
+ position: 'absolute',
153
+ top: 0,
154
+ left: 0,
155
+ willChange: 'transform'
156
+ }
157
+ }, props), /*#__PURE__*/React.createElement(context.Provider, {
158
+ value: state
159
+ }, /*#__PURE__*/React.createElement(context$1.Provider, {
160
+ value: fiberState
161
+ }, children))), state.fixed);
162
+ return null;
163
+ });
164
+
165
+ export { Scroll, ScrollControls, useScroll };
package/web/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Html.cjs.js"),r=require("./CycleRaycast.cjs.js"),s=require("./useCursor.cjs.js"),o=require("./Loader.cjs.js"),t=require("../core/Billboard.cjs.js"),i=require("../core/Cloud.cjs.js"),c=require("../core/QuadraticBezierLine.cjs.js"),a=require("../core/CubicBezierLine.cjs.js"),u=require("../core/Line.cjs.js"),j=require("../core/PositionalAudio.cjs.js"),p=require("../core/Text.cjs.js"),l=require("../core/Environment.cjs.js"),n=require("../core/Effects.cjs.js"),x=require("../core/GradientTexture.cjs.js"),q=require("../core/OrthographicCamera.cjs.js"),d=require("../core/PerspectiveCamera.cjs.js"),C=require("../core/CameraShake.cjs.js"),h=require("../core/CubeCamera.cjs.js"),m=require("../core/DeviceOrientationControls.cjs.js"),b=require("../core/FlyControls.cjs.js"),S=require("../core/MapControls.cjs.js"),P=require("../core/OrbitControls.cjs.js"),M=require("../core/TrackballControls.cjs.js"),T=require("../core/ArcballControls.cjs.js"),f=require("../core/TransformControls.cjs.js"),B=require("../core/PointerLockControls.cjs.js"),g=require("../core/FirstPersonControls.cjs.js"),v=require("../core/GizmoHelper.cjs.js"),L=require("../core/GizmoViewcube.cjs.js"),A=require("../core/GizmoViewport.cjs.js"),G=require("../core/useCubeTexture.cjs.js"),D=require("../core/useFBX.cjs.js"),w=require("../core/useGLTF.cjs.js"),y=require("../core/useProgress.cjs.js"),z=require("../core/useTexture.cjs.js"),k=require("../core/Reflector.cjs.js"),F=require("../core/Shadow.cjs.js"),O=require("../core/Stats.cjs.js"),E=require("../core/Center.cjs.js"),R=require("../core/DepthBuffer.cjs.js"),H=require("../core/useAspect.cjs.js"),I=require("../core/useCamera.cjs.js"),V=require("../core/useDetectGPU.cjs.js"),Q=require("../core/useHelper.cjs.js"),W=require("../core/useBVH.cjs.js"),N=require("../core/useContextBridge.cjs.js"),U=require("../core/useAnimations.cjs.js"),X=require("../core/useFBO.cjs.js"),K=require("../core/useSimplification.cjs.js"),_=require("../core/useTessellation.cjs.js"),J=require("../core/useEdgeSplit.cjs.js"),Y=require("../core/CurveModifier.cjs.js"),Z=require("../core/MeshDistortMaterial.cjs.js"),$=require("../core/MeshWobbleMaterial.cjs.js"),ee=require("../core/PointMaterial.cjs.js"),re=require("../core/shaderMaterial.cjs.js"),se=require("../core/Sky.cjs.js"),oe=require("../core/softShadows.cjs.js"),te=require("../core/Stars.cjs.js"),ie=require("../core/ContactShadows.cjs.js"),ce=require("../core/SpotLight.cjs.js"),ae=require("../core/shapes.cjs.js"),ue=require("../core/RoundedBox.cjs.js"),je=require("../core/ScreenQuad.cjs.js"),pe=require("../core/useMatcapTexture.cjs.js"),le=require("../core/useNormalTexture.cjs.js"),ne=require("../core/Stage.cjs.js"),xe=require("../core/Points.cjs.js"),qe=require("../core/Instances.cjs.js"),de=require("../core/Detailed.cjs.js"),Ce=require("../core/Preload.cjs.js"),he=require("../core/BakeShadows.cjs.js"),me=require("../core/meshBounds.cjs.js"),be=require("../core/AdaptiveDpr.cjs.js"),Se=require("../core/AdaptiveEvents.cjs.js"),Pe=require("../materials/MeshReflectorMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("react-dom"),require("three"),require("@react-three/fiber"),require("zustand"),require("react-merge-refs"),require("../assets/cloud.base64.cjs.js"),require("../helpers/base64.cjs.js"),require("blob-polyfill"),require("three-stdlib"),require("troika-three-text"),require("use-asset"),require("../helpers/environment-assets.cjs.js"),require("lodash.omit"),require("lodash.pick"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/matcap-assets.cjs.js"),require("../helpers/normal-assets.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Html=e.Html,exports.CycleRaycast=r.CycleRaycast,exports.useCursor=s.useCursor,exports.Loader=o.Loader,exports.Billboard=t.Billboard,exports.Cloud=i.Cloud,exports.QuadraticBezierLine=c.QuadraticBezierLine,exports.CubicBezierLine=a.CubicBezierLine,exports.Line=u.Line,exports.PositionalAudio=j.PositionalAudio,exports.Text=p.Text,exports.Environment=l.Environment,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=x.GradientTexture,exports.OrthographicCamera=q.OrthographicCamera,exports.PerspectiveCamera=d.PerspectiveCamera,exports.CameraShake=C.CameraShake,exports.CubeCamera=h.CubeCamera,exports.DeviceOrientationControls=m.DeviceOrientationControls,exports.FlyControls=b.FlyControls,exports.MapControls=S.MapControls,exports.OrbitControls=P.OrbitControls,exports.TrackballControls=M.TrackballControls,exports.ArcballControls=T.ArcballControls,exports.TransformControls=f.TransformControls,exports.PointerLockControls=B.PointerLockControls,exports.FirstPersonControls=g.FirstPersonControls,exports.GizmoHelper=v.GizmoHelper,exports.useGizmoContext=v.useGizmoContext,exports.GizmoViewcube=L.GizmoViewcube,exports.GizmoViewport=A.GizmoViewport,exports.useCubeTexture=G.useCubeTexture,exports.useFBX=D.useFBX,exports.useGLTF=w.useGLTF,exports.useProgress=y.useProgress,exports.IsObject=z.IsObject,exports.useTexture=z.useTexture,exports.Reflector=k.Reflector,exports.Shadow=F.Shadow,exports.Stats=O.Stats,exports.Center=E.Center,exports.DepthBuffer=R.DepthBuffer,exports.useAspect=H.useAspect,exports.useCamera=I.useCamera,exports.useDetectGPU=V.useDetectGPU,exports.useHelper=Q.useHelper,exports.useBVH=W.useBVH,exports.useContextBridge=N.useContextBridge,exports.useAnimations=U.useAnimations,exports.useFBO=X.useFBO,exports.useSimplification=K.useSimplification,exports.useTessellation=_.useTessellation,exports.useEdgeSplit=J.useEdgeSplit,exports.CurveModifier=Y.CurveModifier,exports.MeshDistortMaterial=Z.MeshDistortMaterial,exports.MeshWobbleMaterial=$.MeshWobbleMaterial,exports.PointMaterial=ee.PointMaterial,exports.PointMaterialImpl=ee.PointMaterialImpl,exports.shaderMaterial=re.shaderMaterial,exports.Sky=se.Sky,exports.calcPosFromAngles=se.calcPosFromAngles,exports.softShadows=oe.softShadows,exports.Stars=te.Stars,exports.ContactShadows=ie.ContactShadows,exports.SpotLight=ce.SpotLight,exports.Box=ae.Box,exports.Circle=ae.Circle,exports.Cone=ae.Cone,exports.Cylinder=ae.Cylinder,exports.Dodecahedron=ae.Dodecahedron,exports.Extrude=ae.Extrude,exports.Icosahedron=ae.Icosahedron,exports.Lathe=ae.Lathe,exports.Octahedron=ae.Octahedron,exports.Parametric=ae.Parametric,exports.Plane=ae.Plane,exports.Polyhedron=ae.Polyhedron,exports.Ring=ae.Ring,exports.Sphere=ae.Sphere,exports.Tetrahedron=ae.Tetrahedron,exports.Torus=ae.Torus,exports.TorusKnot=ae.TorusKnot,exports.Tube=ae.Tube,exports.RoundedBox=ue.RoundedBox,exports.ScreenQuad=je.ScreenQuad,exports.useMatcapTexture=pe.useMatcapTexture,exports.useNormalTexture=le.useNormalTexture,exports.Stage=ne.Stage,exports.Point=xe.Point,exports.Points=xe.Points,exports.Instance=qe.Instance,exports.Instances=qe.Instances,exports.Merged=qe.Merged,exports.Detailed=de.Detailed,exports.Preload=Ce.Preload,exports.BakeShadows=he.BakeShadows,exports.meshBounds=me.meshBounds,exports.AdaptiveDpr=be.AdaptiveDpr,exports.AdaptiveEvents=Se.AdaptiveEvents,exports.MeshReflectorMaterial=Pe.MeshReflectorMaterial;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Html.cjs.js"),r=require("./CycleRaycast.cjs.js"),s=require("./useCursor.cjs.js"),o=require("./Loader.cjs.js"),t=require("./ScrollControls.cjs.js"),i=require("../core/Billboard.cjs.js"),c=require("../core/Cloud.cjs.js"),a=require("../core/QuadraticBezierLine.cjs.js"),u=require("../core/CubicBezierLine.cjs.js"),j=require("../core/Line.cjs.js"),p=require("../core/PositionalAudio.cjs.js"),l=require("../core/Text.cjs.js"),n=require("../core/Environment.cjs.js"),x=require("../core/Effects.cjs.js"),q=require("../core/GradientTexture.cjs.js"),d=require("../core/Image.cjs.js"),C=require("../core/OrthographicCamera.cjs.js"),h=require("../core/PerspectiveCamera.cjs.js"),m=require("../core/CameraShake.cjs.js"),S=require("../core/CubeCamera.cjs.js"),b=require("../core/DeviceOrientationControls.cjs.js"),P=require("../core/FlyControls.cjs.js"),M=require("../core/MapControls.cjs.js"),T=require("../core/OrbitControls.cjs.js"),f=require("../core/TrackballControls.cjs.js"),B=require("../core/ArcballControls.cjs.js"),g=require("../core/TransformControls.cjs.js"),v=require("../core/PointerLockControls.cjs.js"),L=require("../core/FirstPersonControls.cjs.js"),A=require("../core/GizmoHelper.cjs.js"),G=require("../core/GizmoViewcube.cjs.js"),D=require("../core/GizmoViewport.cjs.js"),w=require("../core/useCubeTexture.cjs.js"),z=require("../core/useFBX.cjs.js"),k=require("../core/useGLTF.cjs.js"),y=require("../core/useProgress.cjs.js"),F=require("../core/useTexture.cjs.js"),O=require("../core/Reflector.cjs.js"),E=require("../core/Shadow.cjs.js"),I=require("../core/Stats.cjs.js"),R=require("../core/Center.cjs.js"),H=require("../core/DepthBuffer.cjs.js"),V=require("../core/useAspect.cjs.js"),Q=require("../core/useCamera.cjs.js"),W=require("../core/useDetectGPU.cjs.js"),N=require("../core/useHelper.cjs.js"),U=require("../core/useBVH.cjs.js"),X=require("../core/useContextBridge.cjs.js"),K=require("../core/useAnimations.cjs.js"),_=require("../core/useFBO.cjs.js"),J=require("../core/useSimplification.cjs.js"),Y=require("../core/useTessellation.cjs.js"),Z=require("../core/useEdgeSplit.cjs.js"),$=require("../core/CurveModifier.cjs.js"),ee=require("../core/MeshDistortMaterial.cjs.js"),re=require("../core/MeshWobbleMaterial.cjs.js"),se=require("../core/PointMaterial.cjs.js"),oe=require("../core/shaderMaterial.cjs.js"),te=require("../core/Sky.cjs.js"),ie=require("../core/softShadows.cjs.js"),ce=require("../core/Stars.cjs.js"),ae=require("../core/ContactShadows.cjs.js"),ue=require("../core/SpotLight.cjs.js"),je=require("../core/shapes.cjs.js"),pe=require("../core/RoundedBox.cjs.js"),le=require("../core/ScreenQuad.cjs.js"),ne=require("../core/useMatcapTexture.cjs.js"),xe=require("../core/useNormalTexture.cjs.js"),qe=require("../core/Stage.cjs.js"),de=require("../core/Points.cjs.js"),Ce=require("../core/Instances.cjs.js"),he=require("../core/Detailed.cjs.js"),me=require("../core/Preload.cjs.js"),Se=require("../core/BakeShadows.cjs.js"),be=require("../core/meshBounds.cjs.js"),Pe=require("../core/AdaptiveDpr.cjs.js"),Me=require("../core/AdaptiveEvents.cjs.js"),Te=require("../materials/MeshReflectorMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("react-dom"),require("three"),require("@react-three/fiber"),require("zustand"),require("react-merge-refs"),require("../assets/cloud.base64.cjs.js"),require("three-stdlib"),require("troika-three-text"),require("use-asset"),require("../helpers/environment-assets.cjs.js"),require("lodash.omit"),require("lodash.pick"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/matcap-assets.cjs.js"),require("../helpers/normal-assets.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Html=e.Html,exports.CycleRaycast=r.CycleRaycast,exports.useCursor=s.useCursor,exports.Loader=o.Loader,exports.Scroll=t.Scroll,exports.ScrollControls=t.ScrollControls,exports.useScroll=t.useScroll,exports.Billboard=i.Billboard,exports.Cloud=c.Cloud,exports.QuadraticBezierLine=a.QuadraticBezierLine,exports.CubicBezierLine=u.CubicBezierLine,exports.Line=j.Line,exports.PositionalAudio=p.PositionalAudio,exports.Text=l.Text,exports.Environment=n.Environment,exports.Effects=x.Effects,exports.isWebGL2Available=x.isWebGL2Available,exports.GradientTexture=q.GradientTexture,exports.Image=d.Image,exports.OrthographicCamera=C.OrthographicCamera,exports.PerspectiveCamera=h.PerspectiveCamera,exports.CameraShake=m.CameraShake,exports.CubeCamera=S.CubeCamera,exports.DeviceOrientationControls=b.DeviceOrientationControls,exports.FlyControls=P.FlyControls,exports.MapControls=M.MapControls,exports.OrbitControls=T.OrbitControls,exports.TrackballControls=f.TrackballControls,exports.ArcballControls=B.ArcballControls,exports.TransformControls=g.TransformControls,exports.PointerLockControls=v.PointerLockControls,exports.FirstPersonControls=L.FirstPersonControls,exports.GizmoHelper=A.GizmoHelper,exports.useGizmoContext=A.useGizmoContext,exports.GizmoViewcube=G.GizmoViewcube,exports.GizmoViewport=D.GizmoViewport,exports.useCubeTexture=w.useCubeTexture,exports.useFBX=z.useFBX,exports.useGLTF=k.useGLTF,exports.useProgress=y.useProgress,exports.IsObject=F.IsObject,exports.useTexture=F.useTexture,exports.Reflector=O.Reflector,exports.Shadow=E.Shadow,exports.Stats=I.Stats,exports.Center=R.Center,exports.DepthBuffer=H.DepthBuffer,exports.useAspect=V.useAspect,exports.useCamera=Q.useCamera,exports.useDetectGPU=W.useDetectGPU,exports.useHelper=N.useHelper,exports.useBVH=U.useBVH,exports.useContextBridge=X.useContextBridge,exports.useAnimations=K.useAnimations,exports.useFBO=_.useFBO,exports.useSimplification=J.useSimplification,exports.useTessellation=Y.useTessellation,exports.useEdgeSplit=Z.useEdgeSplit,exports.CurveModifier=$.CurveModifier,exports.MeshDistortMaterial=ee.MeshDistortMaterial,exports.MeshWobbleMaterial=re.MeshWobbleMaterial,exports.PointMaterial=se.PointMaterial,exports.PointMaterialImpl=se.PointMaterialImpl,exports.shaderMaterial=oe.shaderMaterial,exports.Sky=te.Sky,exports.calcPosFromAngles=te.calcPosFromAngles,exports.softShadows=ie.softShadows,exports.Stars=ce.Stars,exports.ContactShadows=ae.ContactShadows,exports.SpotLight=ue.SpotLight,exports.Box=je.Box,exports.Circle=je.Circle,exports.Cone=je.Cone,exports.Cylinder=je.Cylinder,exports.Dodecahedron=je.Dodecahedron,exports.Extrude=je.Extrude,exports.Icosahedron=je.Icosahedron,exports.Lathe=je.Lathe,exports.Octahedron=je.Octahedron,exports.Parametric=je.Parametric,exports.Plane=je.Plane,exports.Polyhedron=je.Polyhedron,exports.Ring=je.Ring,exports.Sphere=je.Sphere,exports.Tetrahedron=je.Tetrahedron,exports.Torus=je.Torus,exports.TorusKnot=je.TorusKnot,exports.Tube=je.Tube,exports.RoundedBox=pe.RoundedBox,exports.ScreenQuad=le.ScreenQuad,exports.useMatcapTexture=ne.useMatcapTexture,exports.useNormalTexture=xe.useNormalTexture,exports.Stage=qe.Stage,exports.Point=de.Point,exports.Points=de.Points,exports.Instance=Ce.Instance,exports.Instances=Ce.Instances,exports.Merged=Ce.Merged,exports.Detailed=he.Detailed,exports.Preload=me.Preload,exports.BakeShadows=Se.BakeShadows,exports.meshBounds=be.meshBounds,exports.AdaptiveDpr=Pe.AdaptiveDpr,exports.AdaptiveEvents=Me.AdaptiveEvents,exports.MeshReflectorMaterial=Te.MeshReflectorMaterial;
package/web/index.d.ts CHANGED
@@ -2,5 +2,6 @@ export { Html } from './Html';
2
2
  export { CycleRaycast } from './CycleRaycast';
3
3
  export { useCursor } from './useCursor';
4
4
  export { Loader } from './Loader';
5
+ export * from './ScrollControls';
5
6
  export * from '../core';
6
7
  export * from '../materials';
package/web/index.js CHANGED
@@ -2,6 +2,7 @@ export { Html } from './Html.js';
2
2
  export { CycleRaycast } from './CycleRaycast.js';
3
3
  export { useCursor } from './useCursor.js';
4
4
  export { Loader } from './Loader.js';
5
+ export { Scroll, ScrollControls, useScroll } from './ScrollControls.js';
5
6
  export { Billboard } from '../core/Billboard.js';
6
7
  export { Cloud } from '../core/Cloud.js';
7
8
  export { QuadraticBezierLine } from '../core/QuadraticBezierLine.js';
@@ -12,6 +13,7 @@ export { Text } from '../core/Text.js';
12
13
  export { Environment } from '../core/Environment.js';
13
14
  export { Effects, isWebGL2Available } from '../core/Effects.js';
14
15
  export { GradientTexture } from '../core/GradientTexture.js';
16
+ export { Image } from '../core/Image.js';
15
17
  export { OrthographicCamera } from '../core/OrthographicCamera.js';
16
18
  export { PerspectiveCamera } from '../core/PerspectiveCamera.js';
17
19
  export { CameraShake } from '../core/CameraShake.js';
@@ -82,8 +84,6 @@ import '@react-three/fiber';
82
84
  import 'zustand';
83
85
  import 'react-merge-refs';
84
86
  import '../assets/cloud.base64.js';
85
- import '../helpers/base64.js';
86
- import 'blob-polyfill';
87
87
  import 'three-stdlib';
88
88
  import 'troika-three-text';
89
89
  import 'use-asset';
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("blob-polyfill");function r(e){for(var r=e.length,t=new ArrayBuffer(r),n=new Uint8Array(t),o=0;o<r;o++)n[o]=e.charCodeAt(o);return t}exports.createImageUrl=(t,n)=>{return URL.createObjectURL(new e.Blob([r((o=t,"undefined"==typeof window?Buffer.from(o,"base64").toString("binary"):atob(o)))],{type:n}));var o};
@@ -1 +0,0 @@
1
- export declare const createImageUrl: (blob: string, type: string) => string;
package/helpers/base64.js DELETED
@@ -1,22 +0,0 @@
1
- import { Blob } from 'blob-polyfill';
2
-
3
- function fixBinary(bin) {
4
- var length = bin.length;
5
- var buf = new ArrayBuffer(length);
6
- var arr = new Uint8Array(buf);
7
-
8
- for (var i = 0; i < length; i++) {
9
- arr[i] = bin.charCodeAt(i);
10
- }
11
-
12
- return buf;
13
- } // polyfill for SSR as atob is not available - https://gist.github.com/jmshal/b14199f7402c8f3a4568733d8bed0f25
14
-
15
-
16
- const atobPolyfill = a => typeof window === 'undefined' ? Buffer.from(a, 'base64').toString('binary') : atob(a);
17
-
18
- const createImageUrl = (blob, type) => URL.createObjectURL(new Blob([fixBinary(atobPolyfill(blob))], {
19
- type
20
- }));
21
-
22
- export { createImageUrl };