@react-three/postprocessing 2.0.4-alpha.1 → 2.1.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.
@@ -12,4 +12,6 @@ export declare const SSAO: React.ForwardRefExoticComponent<{
12
12
  radius?: number;
13
13
  scale?: number;
14
14
  bias?: number;
15
+ intensity?: number;
16
+ color?: string;
15
17
  } & React.RefAttributes<SSAOEffect>>;
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("postprocessing"),t=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),r=require("react"),n=require("three"),o=require("@babel/runtime/helpers/extends"),u=require("@babel/runtime/helpers/construct"),i=require("@react-three/fiber");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=f(t),a=f(r),l=f(o),s=f(u),d=["blendFunction","opacity"],p=function(t,n){return void 0===n&&(n=e.BlendFunction.NORMAL),r.forwardRef((function(e,o){var u=e.blendFunction,i=e.opacity,f=c.default(e,d),l=r.useMemo((function(){return new t(f)}),[f]);return r.useLayoutEffect((function(){l.blendMode.blendFunction=u||n,void 0!==i&&(l.blendMode.opacity.value=i)}),[u,l.blendMode,i]),a.default.createElement("primitive",{ref:o,object:l,dispose:null})}))},m=function(e,t){var o=e[t];return r.useMemo((function(){if(o instanceof n.Vector2)return(new n.Vector2).set(o.x,o.y);if(Array.isArray(o)){var e=o[0],t=o[1];return(new n.Vector2).set(e,t)}}),[o])},v=function(){try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}},E=p(e.BloomEffect,e.BlendFunction.SCREEN),h=p(e.BrightnessContrastEffect),x=r.forwardRef((function(t,n){var o=m(t,"offset"),u=r.useMemo((function(){return new e.ChromaticAberrationEffect(l.default({},t,{offset:o}))}),[o,t]);return a.default.createElement("primitive",{ref:n,object:u,dispose:null})})),g=r.forwardRef((function(t,n){var o=t.blendFunction,u=void 0===o?e.BlendFunction.NORMAL:o,i=r.useMemo((function(){return new e.ColorAverageEffect(u)}),[u]);return a.default.createElement("primitive",{ref:n,object:i,dispose:null})})),b=p(e.ColorDepthEffect),w=p(e.DepthEffect),S=r.createContext(null),y=a.default.memo(r.forwardRef((function(t,n){var o=t.children,u=t.camera,f=t.scene,c=t.renderPriority,l=void 0===c?1:c,d=t.autoClear,p=void 0===d||d,m=t.depthBuffer,E=t.disableNormalPass,h=void 0===E||E,x=t.stencilBuffer,g=t.multisampling,b=void 0===g?0:g,w=t.frameBufferType,y=i.useThree(),C=y.gl,M=y.scene,R=y.camera,L=y.size;f=f||M,u=u||R;var A=r.useMemo((function(){var t=new e.EffectComposer(C,{depthBuffer:m,stencilBuffer:x,multisampling:v()?b:0,frameBufferType:w});t.addPass(new e.RenderPass(f,u));var r=h?null:new e.NormalPass(f,u);return r&&t.addPass(r),[t,r]}),[u,C,m,x,b,w,f,h]),T=A[0],B=A[1];r.useEffect((function(){return null==T?void 0:T.setSize(L.width,L.height)}),[T,L]),i.useFrame((function(e,t){return C.autoClear=p,void T.render(t)}),l);var F=r.useRef(null);r.useEffect((function(){var t;return F.current&&F.current.__r3f&&T&&(t=s.default(e.EffectPass,[u].concat(F.current.__r3f.objects)),T.addPass(t),t.renderToScreen=!0),function(){t&&(null==T||T.removePass(t))}}),[T,o,u]);var P=r.useMemo((function(){return{composer:T,normalPass:B,camera:u,scene:f}}),[T,B,u,f]);return r.useImperativeHandle(n,(function(){return T}),[T]),a.default.createElement(S.Provider,{value:P},a.default.createElement("group",{ref:F},o))}))),C=["target","depthTexture"],M=r.forwardRef((function(t,o){var u=t.target,i=t.depthTexture,f=c.default(t,C),l=r.useContext(S).camera,s=r.useMemo((function(){return new e.DepthOfFieldEffect(l,f)}),[l,f]);return r.useLayoutEffect((function(){if(u){var e=u instanceof n.Vector3?(new n.Vector3).set(u.x,u.y,u.z):(new n.Vector3).set(u[0],u[1],u[2]);s.target=e}i&&s.setDepthTexture(i.texture,i.packing)}),[u,i,s]),a.default.createElement("primitive",{ref:o,object:s,dispose:null})})),R=p(e.DotScreenEffect),L=["active"],A=r.forwardRef((function(t,n){var o=t.active,u=void 0===o||o,i=c.default(t,L),f=m(i,"delay"),s=m(i,"duration"),d=m(i,"strength"),p=r.useMemo((function(){return new e.GlitchEffect(l.default({},i,{delay:f,duration:s,strength:d}))}),[f,s,i,d]);return r.useLayoutEffect((function(){p.mode=u?i.mode||e.GlitchMode.SPORADIC:e.GlitchMode.DISABLED}),[u,p,i.mode]),a.default.createElement("primitive",{ref:n,object:p,dispose:null})})),T=r.forwardRef((function(t,n){var o=r.useContext(S).camera,u=r.useMemo((function(){return new e.GodRaysEffect(o,t.sun,t)}),[o,t]);return a.default.createElement("primitive",{ref:n,object:u,dispose:null})})),B=["size"],F=r.forwardRef((function(t,n){var o=t.size,u=c.default(t,B),i=r.useMemo((function(){return new e.GridEffect(u)}),[u]);return r.useLayoutEffect((function(){o&&i.setSize(o.width,o.height)}),[i,o]),a.default.createElement("primitive",{ref:n,object:i,dispose:null})})),P=p(e.HueSaturationEffect),j=p(e.NoiseEffect,e.BlendFunction.COLOR_DODGE),O=["selection","selectionLayer","blendFunction","patternTexture","edgeStrength","pulseSpeed","visibleEdgeColor","hiddenEdgeColor","width","height","kernelSize","blur","xRay"],D=r.forwardRef((function(t,n){var o=t.selection,u=void 0===o?[]:o,i=t.selectionLayer,f=void 0===i?10:i,l=t.blendFunction,s=t.patternTexture,d=t.edgeStrength,p=t.pulseSpeed,m=t.visibleEdgeColor,v=t.hiddenEdgeColor,E=t.width,h=t.height,x=t.kernelSize,g=t.blur,b=t.xRay;c.default(t,O);var w=r.useContext(S),y=w.scene,C=w.camera,M=r.useMemo((function(){return new e.OutlineEffect(y,C,{blendFunction:l,patternTexture:s,edgeStrength:d,pulseSpeed:p,visibleEdgeColor:m,hiddenEdgeColor:v,width:E,height:h,kernelSize:x,blur:g,xRay:b})}),[l,g,C,d,h,v,x,s,p,y,m,E,b]);return r.useEffect((function(){M.clearSelection(),M.setSelection(Array.isArray(u)?u.map((function(e){return e.current})):[u.current])}),[M,u]),r.useEffect((function(){M.selectionLayer=f}),[M,f]),a.default.createElement("primitive",{ref:n,object:M,dispose:null})})),G=r.forwardRef((function(t,n){var o=t.granularity,u=void 0===o?5:o,i=r.useMemo((function(){return new e.PixelationEffect(u)}),[u]);return a.default.createElement("primitive",{ref:n,object:i,dispose:null})})),z=p(e.ScanlineEffect,e.BlendFunction.OVERLAY),k=r.forwardRef((function(t,n){var o=t.selection,u=void 0===o?[]:o,i=t.selectionLayer,f=void 0===i?10:i,c=t.lights,l=void 0===c?[]:c,s=t.luminanceThreshold,d=t.luminanceSmoothing,p=t.intensity,m=t.width,v=t.height,E=t.kernelSize;0===l.length&&console.warn("SelectiveBloom requires lights to work.");var h=r.useContext(S),x=h.scene,g=h.camera,b=r.useMemo((function(){return new e.SelectiveBloomEffect(x,g,{blendFunction:e.BlendFunction.SCREEN,luminanceThreshold:s,luminanceSmoothing:d,intensity:p,width:m,height:v,kernelSize:E})}),[g,v,p,E,d,s,x,m]);return r.useEffect((function(){b.selection.set(Array.isArray(u)?u.map((function(e){return e.current})):[u.current])}),[b,u]),r.useEffect((function(){b.selection.layer=f}),[b,f]),r.useEffect((function(){return l.forEach((function(e){return function(e,t){e.current&&e.current.layers.enable(t.selection.layer)}(e,b)})),function(){return l.forEach((function(e){return function(e,t){e.current&&e.current.layers.disable(t.selection.layer)}(e,b)}))}}),[b,l,f]),a.default.createElement("primitive",{ref:n,object:b,dispose:null})})),N=p(e.SepiaEffect),V=r.forwardRef((function(t,n){var o=r.useContext(S),u=o.camera,i=o.normalPass,f=r.useMemo((function(){return null===i?(console.error("Please enable the NormalPass in the EffectComposer in order to use SSAO."),null):new e.SSAOEffect(u,i.renderTarget.texture,l.default({blendFunction:e.BlendFunction.MULTIPLY,samples:30,rings:4,distanceThreshold:1,distanceFalloff:0,rangeThreshold:.5,rangeFalloff:.1,luminanceInfluence:.9,radius:20,scale:.5,bias:.5},t))}),[u,i,t]);return a.default.createElement("primitive",{ref:n,object:f,dispose:null})})),q=r.forwardRef((function(t,n){var o=t.preset,u=void 0===o?e.SMAAPreset.HIGH:o,f=t.edgeDetectionMode,c=void 0===f?e.EdgeDetectionMode.COLOR:f,l=i.useLoader(e.SMAAImageLoader,""),d=r.useMemo((function(){return s.default(e.SMAAEffect,l.concat([u,c]))}),[l,u,c]);return a.default.createElement("primitive",{ref:n,object:d,dispose:null})})),I=["textureSrc","texture"],_=r.forwardRef((function(t,o){var u=t.textureSrc,f=t.texture,s=c.default(t,I),d=i.useLoader(n.TextureLoader,u);r.useLayoutEffect((function(){d.encoding=n.sRGBEncoding,d.wrapS=d.wrapT=n.RepeatWrapping}),[d]);var p=r.useMemo((function(){return new e.TextureEffect(l.default({},s,{texture:d||f}))}),[s,d,f]);return a.default.createElement("primitive",{ref:o,object:p,dispose:null})})),H=p(e.ToneMappingEffect),W=p(e.VignetteEffect),U=p(e.ShockWaveEffect),Y=["lut"],J=r.forwardRef((function(t,n){var o=t.lut,u=c.default(t,Y),i=r.useMemo((function(){return new e.LUTEffect(o,u)}),[o,u]);return r.useLayoutEffect((function(){o&&i.setLUT(o)}),[i,o]),a.default.createElement("primitive",{ref:n,object:i,dispose:null})}));exports.Bloom=E,exports.BrightnessContrast=h,exports.ChromaticAberration=x,exports.ColorAverage=g,exports.ColorDepth=b,exports.Depth=w,exports.DepthOfField=M,exports.DotScreen=R,exports.EffectComposer=y,exports.EffectComposerContext=S,exports.Glitch=A,exports.GodRays=T,exports.Grid=F,exports.HueSaturation=P,exports.LUT=J,exports.Noise=j,exports.Outline=D,exports.Pixelation=G,exports.SMAA=q,exports.SSAO=V,exports.Scanline=z,exports.SelectiveBloom=k,exports.Sepia=N,exports.ShockWave=U,exports.Texture=_,exports.ToneMapping=H,exports.Vignette=W;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("postprocessing"),t=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),r=require("react"),n=require("three"),o=require("@babel/runtime/helpers/extends"),i=require("@babel/runtime/helpers/construct"),u=require("@react-three/fiber"),a=require("three-stdlib");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=f(t),l=f(r),s=f(o),d=f(i),p=["blendFunction","opacity"],m=function(t,n){return void 0===n&&(n=e.BlendFunction.NORMAL),r.forwardRef((function(e,o){var i=e.blendFunction,u=e.opacity,a=c.default(e,p),f=r.useMemo((function(){return new t(a)}),[a]);return r.useLayoutEffect((function(){f.blendMode.blendFunction=i||n,void 0!==u&&(f.blendMode.opacity.value=u)}),[i,f.blendMode,u]),l.default.createElement("primitive",{ref:o,object:f,dispose:null})}))},h=function(e,t){var o=e[t];return r.useMemo((function(){if(o instanceof n.Vector2)return(new n.Vector2).set(o.x,o.y);if(Array.isArray(o)){var e=o[0],t=o[1];return(new n.Vector2).set(e,t)}}),[o])},v=m(e.BloomEffect,e.BlendFunction.SCREEN),E=m(e.BrightnessContrastEffect),x=r.forwardRef((function(t,n){var o=h(t,"offset"),i=r.useMemo((function(){return new e.ChromaticAberrationEffect(s.default({},t,{offset:o}))}),[o,t]);return l.default.createElement("primitive",{ref:n,object:i,dispose:null})})),b=r.forwardRef((function(t,n){var o=t.blendFunction,i=void 0===o?e.BlendFunction.NORMAL:o,u=r.useMemo((function(){return new e.ColorAverageEffect(i)}),[i]);return l.default.createElement("primitive",{ref:n,object:u,dispose:null})})),g=m(e.ColorDepthEffect),S=m(e.DepthEffect),w=r.createContext(null),y=l.default.memo(r.forwardRef((function(t,n){var o=t.children,i=t.camera,f=t.scene,c=t.renderPriority,s=void 0===c?1:c,p=t.autoClear,m=void 0===p||p,h=t.depthBuffer,v=t.disableNormalPass,E=t.stencilBuffer,x=t.multisampling,b=void 0===x?8:x,g=t.frameBufferType,S=u.useThree(),y=S.gl,M=S.scene,C=S.camera,R=S.size;f=f||M,i=i||C;var A=r.useMemo((function(){var t=new e.EffectComposer(y,{depthBuffer:h,stencilBuffer:E,multisampling:a.isWebGL2Available()?b:0,frameBufferType:g});t.addPass(new e.RenderPass(f,i));var r=v?null:new e.NormalPass(f,i);return r&&t.addPass(r),[t,r]}),[i,y,h,E,b,g,f,v]),L=A[0],T=A[1];r.useEffect((function(){return null==L?void 0:L.setSize(R.width,R.height)}),[L,R]),u.useFrame((function(e,t){return y.autoClear=m,void L.render(t)}),s);var B=r.useRef(null);r.useEffect((function(){var t;return B.current&&B.current.__r3f&&L&&(t=d.default(e.EffectPass,[i].concat(B.current.__r3f.objects)),L.addPass(t),t.renderToScreen=!0),function(){t&&(null==L||L.removePass(t))}}),[L,o,i]);var F=r.useMemo((function(){return{composer:L,normalPass:T,camera:i,scene:f}}),[L,T,i,f]);return r.useImperativeHandle(n,(function(){return L}),[L]),l.default.createElement(w.Provider,{value:F},l.default.createElement("group",{ref:B},o))}))),M=["target","depthTexture"],C=r.forwardRef((function(t,o){var i=t.target,u=t.depthTexture,a=c.default(t,M),f=r.useContext(w).camera,s=r.useMemo((function(){return new e.DepthOfFieldEffect(f,a)}),[f,a]);return r.useLayoutEffect((function(){if(i){var e=i instanceof n.Vector3?(new n.Vector3).set(i.x,i.y,i.z):(new n.Vector3).set(i[0],i[1],i[2]);s.target=e}u&&s.setDepthTexture(u.texture,u.packing)}),[i,u,s]),l.default.createElement("primitive",{ref:o,object:s,dispose:null})})),R=m(e.DotScreenEffect),A=["active"],L=r.forwardRef((function(t,n){var o=t.active,i=void 0===o||o,u=c.default(t,A),a=h(u,"delay"),f=h(u,"duration"),d=h(u,"strength"),p=r.useMemo((function(){return new e.GlitchEffect(s.default({},u,{delay:a,duration:f,strength:d}))}),[a,f,u,d]);return r.useLayoutEffect((function(){p.mode=i?u.mode||e.GlitchMode.SPORADIC:e.GlitchMode.DISABLED}),[i,p,u.mode]),l.default.createElement("primitive",{ref:n,object:p,dispose:null})})),T=r.forwardRef((function(t,n){var o=r.useContext(w).camera,i=r.useMemo((function(){return new e.GodRaysEffect(o,t.sun,t)}),[o,t]);return l.default.createElement("primitive",{ref:n,object:i,dispose:null})})),B=["size"],F=r.forwardRef((function(t,n){var o=t.size,i=c.default(t,B),u=r.useMemo((function(){return new e.GridEffect(i)}),[i]);return r.useLayoutEffect((function(){o&&u.setSize(o.width,o.height)}),[u,o]),l.default.createElement("primitive",{ref:n,object:u,dispose:null})})),P=m(e.HueSaturationEffect),j=m(e.NoiseEffect,e.BlendFunction.COLOR_DODGE),O=["selection","selectionLayer","blendFunction","patternTexture","edgeStrength","pulseSpeed","visibleEdgeColor","hiddenEdgeColor","width","height","kernelSize","blur","xRay"],D=r.forwardRef((function(t,n){var o=t.selection,i=void 0===o?[]:o,u=t.selectionLayer,a=void 0===u?10:u,f=t.blendFunction,s=t.patternTexture,d=t.edgeStrength,p=t.pulseSpeed,m=t.visibleEdgeColor,h=t.hiddenEdgeColor,v=t.width,E=t.height,x=t.kernelSize,b=t.blur,g=t.xRay;c.default(t,O);var S=r.useContext(w),y=S.scene,M=S.camera,C=r.useMemo((function(){return new e.OutlineEffect(y,M,{blendFunction:f,patternTexture:s,edgeStrength:d,pulseSpeed:p,visibleEdgeColor:m,hiddenEdgeColor:h,width:v,height:E,kernelSize:x,blur:b,xRay:g})}),[f,b,M,d,E,h,x,s,p,y,m,v,g]);return r.useEffect((function(){C.clearSelection(),C.setSelection(Array.isArray(i)?i.map((function(e){return e.current})):[i.current])}),[C,i]),r.useEffect((function(){C.selectionLayer=a}),[C,a]),l.default.createElement("primitive",{ref:n,object:C,dispose:null})})),G=r.forwardRef((function(t,n){var o=t.granularity,i=void 0===o?5:o,u=r.useMemo((function(){return new e.PixelationEffect(i)}),[i]);return l.default.createElement("primitive",{ref:n,object:u,dispose:null})})),z=m(e.ScanlineEffect,e.BlendFunction.OVERLAY),I=r.forwardRef((function(t,n){var o=t.selection,i=void 0===o?[]:o,u=t.selectionLayer,a=void 0===u?10:u,f=t.lights,c=void 0===f?[]:f,s=t.luminanceThreshold,d=t.luminanceSmoothing,p=t.intensity,m=t.width,h=t.height,v=t.kernelSize;0===c.length&&console.warn("SelectiveBloom requires lights to work.");var E=r.useContext(w),x=E.scene,b=E.camera,g=r.useMemo((function(){return new e.SelectiveBloomEffect(x,b,{blendFunction:e.BlendFunction.SCREEN,luminanceThreshold:s,luminanceSmoothing:d,intensity:p,width:m,height:h,kernelSize:v})}),[b,h,p,v,d,s,x,m]);return r.useEffect((function(){g.selection.set(Array.isArray(i)?i.map((function(e){return e.current})):[i.current])}),[g,i]),r.useEffect((function(){g.selection.layer=a}),[g,a]),r.useEffect((function(){return c.forEach((function(e){return function(e,t){e.current&&e.current.layers.enable(t.selection.layer)}(e,g)})),function(){return c.forEach((function(e){return function(e,t){e.current&&e.current.layers.disable(t.selection.layer)}(e,g)}))}}),[g,c,a]),l.default.createElement("primitive",{ref:n,object:g,dispose:null})})),k=m(e.SepiaEffect),q=r.forwardRef((function(t,n){var o=r.useContext(w),i=o.camera,u=o.normalPass,a=r.useMemo((function(){return null===u?(console.error("Please enable the NormalPass in the EffectComposer in order to use SSAO."),null):new e.SSAOEffect(i,u.renderTarget.texture,s.default({blendFunction:e.BlendFunction.MULTIPLY,samples:30,rings:4,distanceThreshold:1,distanceFalloff:0,rangeThreshold:.5,rangeFalloff:.1,luminanceInfluence:.9,radius:20,scale:.5,bias:.5,intensity:1,color:null},t))}),[i,u,t]);return l.default.createElement("primitive",{ref:n,object:a,dispose:null})})),N=r.forwardRef((function(t,n){var o=t.preset,i=void 0===o?e.SMAAPreset.HIGH:o,a=t.edgeDetectionMode,f=void 0===a?e.EdgeDetectionMode.COLOR:a,c=u.useLoader(e.SMAAImageLoader,""),s=r.useMemo((function(){return d.default(e.SMAAEffect,c.concat([i,f]))}),[c,i,f]);return l.default.createElement("primitive",{ref:n,object:s,dispose:null})})),V=["textureSrc","texture"],_=r.forwardRef((function(t,o){var i=t.textureSrc,a=t.texture,f=c.default(t,V),d=u.useLoader(n.TextureLoader,i);r.useLayoutEffect((function(){d.encoding=n.sRGBEncoding,d.wrapS=d.wrapT=n.RepeatWrapping}),[d]);var p=r.useMemo((function(){return new e.TextureEffect(s.default({},f,{texture:d||a}))}),[f,d,a]);return l.default.createElement("primitive",{ref:o,object:p,dispose:null})})),H=m(e.ToneMappingEffect),W=m(e.VignetteEffect),U=m(e.ShockWaveEffect),Y=["lut","tetrahedralInterpolation"],J=r.forwardRef((function(t,n){var o=t.lut,i=t.tetrahedralInterpolation,u=c.default(t,Y),a=r.useMemo((function(){return new e.LUTEffect(o,u)}),[o,u]);return r.useLayoutEffect((function(){o&&a.setLUT(o),i&&a.setTetrahedralInterpolationEnabled(i)}),[a,o,i]),l.default.createElement("primitive",{ref:n,object:a,dispose:null})}));exports.Bloom=v,exports.BrightnessContrast=E,exports.ChromaticAberration=x,exports.ColorAverage=b,exports.ColorDepth=g,exports.Depth=S,exports.DepthOfField=C,exports.DotScreen=R,exports.EffectComposer=y,exports.EffectComposerContext=w,exports.Glitch=L,exports.GodRays=T,exports.Grid=F,exports.HueSaturation=P,exports.LUT=J,exports.Noise=j,exports.Outline=D,exports.Pixelation=G,exports.SMAA=N,exports.SSAO=q,exports.Scanline=z,exports.SelectiveBloom=I,exports.Sepia=k,exports.ShockWave=U,exports.Texture=_,exports.ToneMapping=H,exports.Vignette=W;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{BlendFunction as e,BloomEffect as t,BrightnessContrastEffect as n,ChromaticAberrationEffect as r,ColorAverageEffect as i,ColorDepthEffect as o,DepthEffect as c,EffectComposer as l,RenderPass as s,NormalPass as a,EffectPass as u,DepthOfFieldEffect as d,DotScreenEffect as m,GlitchEffect as f,GlitchMode as p,GodRaysEffect as h,GridEffect as g,HueSaturationEffect as b,NoiseEffect as w,OutlineEffect as E,PixelationEffect as y,ScanlineEffect as v,SelectiveBloomEffect as S,SepiaEffect as x,SSAOEffect as j,SMAAPreset as C,EdgeDetectionMode as T,SMAAImageLoader as L,SMAAEffect as P,TextureEffect as A,ToneMappingEffect as R,VignetteEffect as O,ShockWaveEffect as z,LUTEffect as F}from"postprocessing";import B,{forwardRef as D,useMemo as M,useLayoutEffect as k,createContext as N,useEffect as I,useRef as _,useImperativeHandle as G,useContext as H}from"react";import{Vector2 as U,Vector3 as Y,TextureLoader as q,sRGBEncoding as V,RepeatWrapping as W}from"three";import{useThree as J,useFrame as K,useLoader as Q}from"@react-three/fiber";const X=(t,n=e.NORMAL)=>D((function({blendFunction:e,opacity:r,...i},o){const c=M((()=>new t(i)),[i]);return k((()=>{c.blendMode.blendFunction=e||n,void 0!==r&&(c.blendMode.opacity.value=r)}),[e,c.blendMode,r]),B.createElement("primitive",{ref:o,object:c,dispose:null})})),Z=(e,t)=>{const n=e[t];return M((()=>{if(n instanceof U)return(new U).set(n.x,n.y);if(Array.isArray(n)){const[e,t]=n;return(new U).set(e,t)}}),[n])},$=()=>{try{const e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}},ee=X(t,e.SCREEN),te=X(n),ne=D((function(e,t){const n=Z(e,"offset"),i=M((()=>new r({...e,offset:n})),[n,e]);return B.createElement("primitive",{ref:t,object:i,dispose:null})})),re=D((function({blendFunction:t=e.NORMAL},n){const r=M((()=>new i(t)),[t]);return B.createElement("primitive",{ref:n,object:r,dispose:null})})),ie=X(o),oe=X(c),ce=N(null),le=B.memo(D((({children:e,camera:t,scene:n,renderPriority:r=1,autoClear:i=!0,depthBuffer:o,disableNormalPass:c=!0,stencilBuffer:d,multisampling:m=0,frameBufferType:f},p)=>{const{gl:h,scene:g,camera:b,size:w}=J();n=n||g,t=t||b;const[E,y]=M((()=>{const e=new l(h,{depthBuffer:o,stencilBuffer:d,multisampling:$()?m:0,frameBufferType:f});e.addPass(new s(n,t));const r=c?null:new a(n,t);return r&&e.addPass(r),[e,r]}),[t,h,o,d,m,f,n,c]);I((()=>null==E?void 0:E.setSize(w.width,w.height)),[E,w]),K(((e,t)=>(h.autoClear=i,void E.render(t))),r);const v=_(null);I((()=>{let e;return v.current&&v.current.__r3f&&E&&(e=new u(t,...v.current.__r3f.objects),E.addPass(e),e.renderToScreen=!0),()=>{e&&(null==E||E.removePass(e))}}),[E,e,t]);const S=M((()=>({composer:E,normalPass:y,camera:t,scene:n})),[E,y,t,n]);return G(p,(()=>E),[E]),B.createElement(ce.Provider,{value:S},B.createElement("group",{ref:v},e))}))),se=D((function({target:e,depthTexture:t,...n},r){const{camera:i}=H(ce),o=M((()=>new d(i,n)),[i,n]);return k((()=>{if(e){const t=e instanceof Y?(new Y).set(e.x,e.y,e.z):(new Y).set(e[0],e[1],e[2]);o.target=t}t&&o.setDepthTexture(t.texture,t.packing)}),[e,t,o]),B.createElement("primitive",{ref:r,object:o,dispose:null})})),ae=X(m),ue=D((function({active:e=!0,...t},n){const r=Z(t,"delay"),i=Z(t,"duration"),o=Z(t,"strength"),c=M((()=>new f({...t,delay:r,duration:i,strength:o})),[r,i,t,o]);return k((()=>{c.mode=e?t.mode||p.SPORADIC:p.DISABLED}),[e,c,t.mode]),B.createElement("primitive",{ref:n,object:c,dispose:null})})),de=D((function(e,t){const{camera:n}=H(ce),r=M((()=>new h(n,e.sun,e)),[n,e]);return B.createElement("primitive",{ref:t,object:r,dispose:null})})),me=D((function({size:e,...t},n){const r=M((()=>new g(t)),[t]);return k((()=>{e&&r.setSize(e.width,e.height)}),[r,e]),B.createElement("primitive",{ref:n,object:r,dispose:null})})),fe=X(b),pe=X(w,e.COLOR_DODGE),he=D((function({selection:e=[],selectionLayer:t=10,blendFunction:n,patternTexture:r,edgeStrength:i,pulseSpeed:o,visibleEdgeColor:c,hiddenEdgeColor:l,width:s,height:a,kernelSize:u,blur:d,xRay:m,...f},p){const{scene:h,camera:g}=H(ce),b=M((()=>new E(h,g,{blendFunction:n,patternTexture:r,edgeStrength:i,pulseSpeed:o,visibleEdgeColor:c,hiddenEdgeColor:l,width:s,height:a,kernelSize:u,blur:d,xRay:m})),[n,d,g,i,a,l,u,r,o,h,c,s,m]);return I((()=>{b.clearSelection(),b.setSelection(Array.isArray(e)?e.map((e=>e.current)):[e.current])}),[b,e]),I((()=>{b.selectionLayer=t}),[b,t]),B.createElement("primitive",{ref:p,object:b,dispose:null})})),ge=D((function({granularity:e=5},t){const n=M((()=>new y(e)),[e]);return B.createElement("primitive",{ref:t,object:n,dispose:null})})),be=X(v,e.OVERLAY),we=D((function({selection:t=[],selectionLayer:n=10,lights:r=[],luminanceThreshold:i,luminanceSmoothing:o,intensity:c,width:l,height:s,kernelSize:a},u){0===r.length&&console.warn("SelectiveBloom requires lights to work.");const{scene:d,camera:m}=H(ce),f=M((()=>new S(d,m,{blendFunction:e.SCREEN,luminanceThreshold:i,luminanceSmoothing:o,intensity:c,width:l,height:s,kernelSize:a})),[m,s,c,a,o,i,d,l]);return I((()=>{f.selection.set(Array.isArray(t)?t.map((e=>e.current)):[t.current])}),[f,t]),I((()=>{f.selection.layer=n}),[f,n]),I((()=>(r.forEach((e=>((e,t)=>{e.current&&e.current.layers.enable(t.selection.layer)})(e,f))),()=>r.forEach((e=>((e,t)=>{e.current&&e.current.layers.disable(t.selection.layer)})(e,f))))),[f,r,n]),B.createElement("primitive",{ref:u,object:f,dispose:null})})),Ee=X(x),ye=D((function(t,n){const{camera:r,normalPass:i}=H(ce),o=M((()=>null===i?(console.error("Please enable the NormalPass in the EffectComposer in order to use SSAO."),null):new j(r,i.renderTarget.texture,{blendFunction:e.MULTIPLY,samples:30,rings:4,distanceThreshold:1,distanceFalloff:0,rangeThreshold:.5,rangeFalloff:.1,luminanceInfluence:.9,radius:20,scale:.5,bias:.5,...t})),[r,i,t]);return B.createElement("primitive",{ref:n,object:o,dispose:null})})),ve=D((function({preset:e=C.HIGH,edgeDetectionMode:t=T.COLOR},n){const r=Q(L,""),i=M((()=>new P(...r,e,t)),[r,e,t]);return B.createElement("primitive",{ref:n,object:i,dispose:null})})),Se=D((function({textureSrc:e,texture:t,...n},r){const i=Q(q,e);k((()=>{i.encoding=V,i.wrapS=i.wrapT=W}),[i]);const o=M((()=>new A({...n,texture:i||t})),[n,i,t]);return B.createElement("primitive",{ref:r,object:o,dispose:null})})),xe=X(R),je=X(O),Ce=X(z),Te=D((function({lut:e,...t},n){const r=M((()=>new F(e,t)),[e,t]);return k((()=>{e&&r.setLUT(e)}),[r,e]),B.createElement("primitive",{ref:n,object:r,dispose:null})}));export{ee as Bloom,te as BrightnessContrast,ne as ChromaticAberration,re as ColorAverage,ie as ColorDepth,oe as Depth,se as DepthOfField,ae as DotScreen,le as EffectComposer,ce as EffectComposerContext,ue as Glitch,de as GodRays,me as Grid,fe as HueSaturation,Te as LUT,pe as Noise,he as Outline,ge as Pixelation,ve as SMAA,ye as SSAO,be as Scanline,we as SelectiveBloom,Ee as Sepia,Ce as ShockWave,Se as Texture,xe as ToneMapping,je as Vignette};
1
+ import{BlendFunction as e,BloomEffect as t,BrightnessContrastEffect as n,ChromaticAberrationEffect as r,ColorAverageEffect as i,ColorDepthEffect as o,DepthEffect as l,EffectComposer as s,RenderPass as c,NormalPass as a,EffectPass as u,DepthOfFieldEffect as d,DotScreenEffect as m,GlitchEffect as f,GlitchMode as p,GodRaysEffect as h,GridEffect as b,HueSaturationEffect as g,NoiseEffect as w,OutlineEffect as E,PixelationEffect as y,ScanlineEffect as v,SelectiveBloomEffect as S,SepiaEffect as T,SSAOEffect as j,SMAAPreset as x,EdgeDetectionMode as C,SMAAImageLoader as P,SMAAEffect as A,TextureEffect as L,ToneMappingEffect as O,VignetteEffect as R,ShockWaveEffect as z,LUTEffect as F}from"postprocessing";import B,{forwardRef as D,useMemo as I,useLayoutEffect as M,createContext as k,useEffect as N,useRef as _,useImperativeHandle as G,useContext as H}from"react";import{Vector2 as U,Vector3 as Y,TextureLoader as q,sRGBEncoding as V,RepeatWrapping as J}from"three";import{useThree as K,useFrame as Q,useLoader as W}from"@react-three/fiber";import{isWebGL2Available as X}from"three-stdlib";const Z=(t,n=e.NORMAL)=>D((function({blendFunction:e,opacity:r,...i},o){const l=I((()=>new t(i)),[i]);return M((()=>{l.blendMode.blendFunction=e||n,void 0!==r&&(l.blendMode.opacity.value=r)}),[e,l.blendMode,r]),B.createElement("primitive",{ref:o,object:l,dispose:null})})),$=(e,t)=>{const n=e[t];return I((()=>{if(n instanceof U)return(new U).set(n.x,n.y);if(Array.isArray(n)){const[e,t]=n;return(new U).set(e,t)}}),[n])},ee=Z(t,e.SCREEN),te=Z(n),ne=D((function(e,t){const n=$(e,"offset"),i=I((()=>new r({...e,offset:n})),[n,e]);return B.createElement("primitive",{ref:t,object:i,dispose:null})})),re=D((function({blendFunction:t=e.NORMAL},n){const r=I((()=>new i(t)),[t]);return B.createElement("primitive",{ref:n,object:r,dispose:null})})),ie=Z(o),oe=Z(l),le=k(null),se=B.memo(D((({children:e,camera:t,scene:n,renderPriority:r=1,autoClear:i=!0,depthBuffer:o,disableNormalPass:l,stencilBuffer:d,multisampling:m=8,frameBufferType:f},p)=>{const{gl:h,scene:b,camera:g,size:w}=K();n=n||b,t=t||g;const[E,y]=I((()=>{const e=new s(h,{depthBuffer:o,stencilBuffer:d,multisampling:X()?m:0,frameBufferType:f});e.addPass(new c(n,t));const r=l?null:new a(n,t);return r&&e.addPass(r),[e,r]}),[t,h,o,d,m,f,n,l]);N((()=>null==E?void 0:E.setSize(w.width,w.height)),[E,w]),Q(((e,t)=>(h.autoClear=i,void E.render(t))),r);const v=_(null);N((()=>{let e;return v.current&&v.current.__r3f&&E&&(e=new u(t,...v.current.__r3f.objects),E.addPass(e),e.renderToScreen=!0),()=>{e&&(null==E||E.removePass(e))}}),[E,e,t]);const S=I((()=>({composer:E,normalPass:y,camera:t,scene:n})),[E,y,t,n]);return G(p,(()=>E),[E]),B.createElement(le.Provider,{value:S},B.createElement("group",{ref:v},e))}))),ce=D((function({target:e,depthTexture:t,...n},r){const{camera:i}=H(le),o=I((()=>new d(i,n)),[i,n]);return M((()=>{if(e){const t=e instanceof Y?(new Y).set(e.x,e.y,e.z):(new Y).set(e[0],e[1],e[2]);o.target=t}t&&o.setDepthTexture(t.texture,t.packing)}),[e,t,o]),B.createElement("primitive",{ref:r,object:o,dispose:null})})),ae=Z(m),ue=D((function({active:e=!0,...t},n){const r=$(t,"delay"),i=$(t,"duration"),o=$(t,"strength"),l=I((()=>new f({...t,delay:r,duration:i,strength:o})),[r,i,t,o]);return M((()=>{l.mode=e?t.mode||p.SPORADIC:p.DISABLED}),[e,l,t.mode]),B.createElement("primitive",{ref:n,object:l,dispose:null})})),de=D((function(e,t){const{camera:n}=H(le),r=I((()=>new h(n,e.sun,e)),[n,e]);return B.createElement("primitive",{ref:t,object:r,dispose:null})})),me=D((function({size:e,...t},n){const r=I((()=>new b(t)),[t]);return M((()=>{e&&r.setSize(e.width,e.height)}),[r,e]),B.createElement("primitive",{ref:n,object:r,dispose:null})})),fe=Z(g),pe=Z(w,e.COLOR_DODGE),he=D((function({selection:e=[],selectionLayer:t=10,blendFunction:n,patternTexture:r,edgeStrength:i,pulseSpeed:o,visibleEdgeColor:l,hiddenEdgeColor:s,width:c,height:a,kernelSize:u,blur:d,xRay:m,...f},p){const{scene:h,camera:b}=H(le),g=I((()=>new E(h,b,{blendFunction:n,patternTexture:r,edgeStrength:i,pulseSpeed:o,visibleEdgeColor:l,hiddenEdgeColor:s,width:c,height:a,kernelSize:u,blur:d,xRay:m})),[n,d,b,i,a,s,u,r,o,h,l,c,m]);return N((()=>{g.clearSelection(),g.setSelection(Array.isArray(e)?e.map((e=>e.current)):[e.current])}),[g,e]),N((()=>{g.selectionLayer=t}),[g,t]),B.createElement("primitive",{ref:p,object:g,dispose:null})})),be=D((function({granularity:e=5},t){const n=I((()=>new y(e)),[e]);return B.createElement("primitive",{ref:t,object:n,dispose:null})})),ge=Z(v,e.OVERLAY),we=D((function({selection:t=[],selectionLayer:n=10,lights:r=[],luminanceThreshold:i,luminanceSmoothing:o,intensity:l,width:s,height:c,kernelSize:a},u){0===r.length&&console.warn("SelectiveBloom requires lights to work.");const{scene:d,camera:m}=H(le),f=I((()=>new S(d,m,{blendFunction:e.SCREEN,luminanceThreshold:i,luminanceSmoothing:o,intensity:l,width:s,height:c,kernelSize:a})),[m,c,l,a,o,i,d,s]);return N((()=>{f.selection.set(Array.isArray(t)?t.map((e=>e.current)):[t.current])}),[f,t]),N((()=>{f.selection.layer=n}),[f,n]),N((()=>(r.forEach((e=>((e,t)=>{e.current&&e.current.layers.enable(t.selection.layer)})(e,f))),()=>r.forEach((e=>((e,t)=>{e.current&&e.current.layers.disable(t.selection.layer)})(e,f))))),[f,r,n]),B.createElement("primitive",{ref:u,object:f,dispose:null})})),Ee=Z(T),ye=D((function(t,n){const{camera:r,normalPass:i}=H(le),o=I((()=>null===i?(console.error("Please enable the NormalPass in the EffectComposer in order to use SSAO."),null):new j(r,i.renderTarget.texture,{blendFunction:e.MULTIPLY,samples:30,rings:4,distanceThreshold:1,distanceFalloff:0,rangeThreshold:.5,rangeFalloff:.1,luminanceInfluence:.9,radius:20,scale:.5,bias:.5,intensity:1,color:null,...t})),[r,i,t]);return B.createElement("primitive",{ref:n,object:o,dispose:null})})),ve=D((function({preset:e=x.HIGH,edgeDetectionMode:t=C.COLOR},n){const r=W(P,""),i=I((()=>new A(...r,e,t)),[r,e,t]);return B.createElement("primitive",{ref:n,object:i,dispose:null})})),Se=D((function({textureSrc:e,texture:t,...n},r){const i=W(q,e);M((()=>{i.encoding=V,i.wrapS=i.wrapT=J}),[i]);const o=I((()=>new L({...n,texture:i||t})),[n,i,t]);return B.createElement("primitive",{ref:r,object:o,dispose:null})})),Te=Z(O),je=Z(R),xe=Z(z),Ce=D((function({lut:e,tetrahedralInterpolation:t,...n},r){const i=I((()=>new F(e,n)),[e,n]);return M((()=>{e&&i.setLUT(e),t&&i.setTetrahedralInterpolationEnabled(t)}),[i,e,t]),B.createElement("primitive",{ref:r,object:i,dispose:null})}));export{ee as Bloom,te as BrightnessContrast,ne as ChromaticAberration,re as ColorAverage,ie as ColorDepth,oe as Depth,ce as DepthOfField,ae as DotScreen,se as EffectComposer,le as EffectComposerContext,ue as Glitch,de as GodRays,me as Grid,fe as HueSaturation,Ce as LUT,pe as Noise,he as Outline,be as Pixelation,ve as SMAA,ye as SSAO,ge as Scanline,we as SelectiveBloom,Ee as Sepia,xe as ShockWave,Se as Texture,Te as ToneMapping,je as Vignette};
package/dist/util.d.ts CHANGED
@@ -6,4 +6,3 @@ export declare const wrapEffect: <T extends new (...args: any[]) => Effect>(effe
6
6
  opacity: number;
7
7
  }>> & React.RefAttributes<T>>;
8
8
  export declare const useVector2: (props: any, key: string) => Vector2;
9
- export declare const isWebGL2Available: () => boolean;
package/package.json CHANGED
@@ -1,94 +1,95 @@
1
1
  {
2
- "name": "@react-three/postprocessing",
3
- "version": "2.0.4-alpha.1",
4
- "description": "postprocessing wrapper for React and @react-three/fiber",
5
- "keywords": [
6
- "postprocessing",
7
- "react",
8
- "three",
9
- "@react-three/fiber",
10
- "webgl",
11
- "3d"
12
- ],
13
- "license": "MIT",
14
- "main": "dist/index.cjs.js",
15
- "module": "dist/index.js",
16
- "types": "dist/index.d.ts",
17
- "sideEffects": false,
18
- "files": [
19
- "dist"
20
- ],
21
- "repository": {
22
- "type": "git",
23
- "url": "git+https://github.com/react-spring/react-postprocessing.git"
24
- },
25
- "lint-staged": {
26
- "*.{js,jsx,ts,tsx}": [
27
- "eslint --fix"
28
- ]
29
- },
30
- "dependencies": {
31
- "postprocessing": "^6.22.0",
32
- "react-merge-refs": "^1.1.0"
33
- },
34
- "devDependencies": {
35
- "@babel/core": "^7.14.3",
36
- "@babel/plugin-transform-modules-commonjs": "7.14.0",
37
- "@babel/plugin-transform-parameters": "7.14.2",
38
- "@babel/plugin-transform-runtime": "7.14.3",
39
- "@babel/plugin-transform-template-literals": "7.13.0",
40
- "@babel/preset-env": "^7.14.4",
41
- "@babel/preset-react": "7.13.13",
42
- "@babel/preset-typescript": "^7.13.0",
43
- "@react-three/fiber": "^6.2.2",
44
- "@rollup/plugin-babel": "^5.3.0",
45
- "@rollup/plugin-commonjs": "^19.0.0",
46
- "@rollup/plugin-json": "^4.1.0",
47
- "@rollup/plugin-node-resolve": "^13.0.0",
48
- "@types/react": "^17.0.9",
49
- "@types/react-dom": "^17.0.6",
50
- "@types/react-test-renderer": "^17.0.1",
51
- "@types/three": "^0.129.1",
52
- "@typescript-eslint/eslint-plugin": "^4.26.0",
53
- "@typescript-eslint/parser": "^4.26.0",
54
- "eslint": "^7.28.0",
55
- "eslint-config-prettier": "^8.3.0",
56
- "eslint-import-resolver-alias": "^1.1.2",
57
- "eslint-plugin-import": "^2.23.4",
58
- "eslint-plugin-prettier": "^3.4.0",
59
- "eslint-plugin-react": "^7.24.0",
60
- "eslint-plugin-react-hooks": "^4.2.0",
61
- "husky": "^6.0.0",
62
- "husky-run": "^0.0.0",
63
- "lint-staged": "^11.0.0",
64
- "prettier": "^2.3.1",
65
- "react": "^17.0.2",
66
- "react-dom": "^17.0.2",
67
- "rimraf": "^3.0.2",
68
- "rollup": "^2.50.6",
69
- "rollup-plugin-filesize": "^9.1.1",
70
- "rollup-plugin-terser": "^7.0.2",
71
- "three": "^0.129.0",
72
- "typescript": "^4.3.2"
73
- },
74
- "peerDependencies": {
75
- "@react-three/fiber": ">=6.0",
76
- "react": ">=17.0",
77
- "react-dom": ">=17.0",
78
- "three": ">=0.126.0"
79
- },
80
- "peerDependenciesMeta": {
81
- "react-dom": {
82
- "optional": true
83
- }
84
- },
85
- "scripts": {
86
- "prebuild": "rimraf dist && yarn typegen",
87
- "build": "rollup -c",
88
- "eslint": "eslint . --fix --ext=js,ts,jsx,tsx",
89
- "eslint:ci": "eslint . --ext=js,ts,jsx,tsx",
90
- "test": "echo no tests yet",
91
- "typecheck": "tsc --noEmit --emitDeclarationOnly false --strict --jsx react",
92
- "typegen": "tsc --emitDeclarationOnly || true"
93
- }
2
+ "name": "@react-three/postprocessing",
3
+ "version": "2.1.0",
4
+ "description": "postprocessing wrapper for React and @react-three/fiber",
5
+ "keywords": [
6
+ "postprocessing",
7
+ "react",
8
+ "three",
9
+ "@react-three/fiber",
10
+ "webgl",
11
+ "3d"
12
+ ],
13
+ "license": "MIT",
14
+ "main": "dist/index.cjs.js",
15
+ "module": "dist/index.js",
16
+ "types": "dist/index.d.ts",
17
+ "sideEffects": false,
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/react-spring/react-postprocessing.git"
24
+ },
25
+ "lint-staged": {
26
+ "*.{js,jsx,ts,tsx}": [
27
+ "eslint --fix"
28
+ ]
29
+ },
30
+ "scripts": {
31
+ "prebuild": "rimraf dist && yarn typegen",
32
+ "build": "rollup -c",
33
+ "prepare": "yarn build",
34
+ "eslint": "eslint . --fix --ext=js,ts,jsx,tsx",
35
+ "eslint:ci": "eslint . --ext=js,ts,jsx,tsx",
36
+ "test": "echo no tests yet",
37
+ "typecheck": "tsc --noEmit --emitDeclarationOnly false --strict --jsx react",
38
+ "typegen": "tsc --emitDeclarationOnly || true"
39
+ },
40
+ "dependencies": {
41
+ "postprocessing": "^6.22.2",
42
+ "react-merge-refs": "^1.1.0",
43
+ "three-stdlib": "^2.6.2"
44
+ },
45
+ "devDependencies": {
46
+ "@babel/core": "^7.14.6",
47
+ "@babel/plugin-transform-modules-commonjs": "7.14.5",
48
+ "@babel/plugin-transform-parameters": "7.14.5",
49
+ "@babel/plugin-transform-runtime": "7.14.5",
50
+ "@babel/plugin-transform-template-literals": "7.14.5",
51
+ "@babel/preset-env": "^7.14.7",
52
+ "@babel/preset-react": "7.14.5",
53
+ "@babel/preset-typescript": "^7.14.5",
54
+ "@react-three/fiber": "^6.0.1",
55
+ "@rollup/plugin-babel": "^5.3.0",
56
+ "@rollup/plugin-commonjs": "^19.0.1",
57
+ "@rollup/plugin-json": "^4.1.0",
58
+ "@rollup/plugin-node-resolve": "^13.0.2",
59
+ "@types/react": "^17.0.14",
60
+ "@types/react-dom": "^17.0.9",
61
+ "@types/react-test-renderer": "^17.0.1",
62
+ "@types/three": "^0.130.0",
63
+ "@typescript-eslint/eslint-plugin": "^4.28.4",
64
+ "@typescript-eslint/parser": "^4.28.4",
65
+ "eslint": "^7.31.0",
66
+ "eslint-config-prettier": "^8.3.0",
67
+ "eslint-import-resolver-alias": "^1.1.2",
68
+ "eslint-plugin-import": "^2.23.4",
69
+ "eslint-plugin-prettier": "^3.4.0",
70
+ "eslint-plugin-react": "^7.24.0",
71
+ "eslint-plugin-react-hooks": "^4.2.0",
72
+ "husky": "^7.0.1",
73
+ "husky-run": "^0.0.0",
74
+ "lint-staged": "^11.0.1",
75
+ "prettier": "^2.3.2",
76
+ "react": "^17.0.2",
77
+ "react-dom": "^17.0.2",
78
+ "rimraf": "^3.0.2",
79
+ "rollup": "^2.53.2",
80
+ "rollup-plugin-filesize": "^9.1.1",
81
+ "rollup-plugin-terser": "^7.0.2",
82
+ "typescript": "^4.3.5"
83
+ },
84
+ "peerDependencies": {
85
+ "@react-three/fiber": ">=7.0",
86
+ "react": ">=17.0",
87
+ "react-dom": ">=17.0",
88
+ "three": ">=0.130.1"
89
+ },
90
+ "peerDependenciesMeta": {
91
+ "react-dom": {
92
+ "optional": true
93
+ }
94
+ }
94
95
  }