react-mouse-trails
Advanced tools
Comparing version 0.0.1 to 0.0.2-optimize.0
import { HTMLProps } from "react"; | ||
export interface MouseTrailProps extends HTMLProps<HTMLCanvasElement> { | ||
/** Trail color tuple RGB color values - 0.0 to 1.0 */ | ||
rgb?: [number, number, number]; | ||
@@ -4,0 +5,0 @@ } |
"use client"; | ||
"use strict";var A=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var x=(r,e)=>{for(var s in e)A(r,s,{get:e[s],enumerable:!0})},l=(r,e,s,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of P(e))!B.call(r,i)&&i!==s&&A(r,i,{get:()=>e[i],enumerable:!(c=w(e,i))||c.enumerable});return r};var M=r=>l(A({},"__esModule",{value:!0}),r);var U={};x(U,{MouseTrail:()=>H});module.exports=M(U);var h=require("react");var p={trail:"mouse-trail__trail"};var C=` | ||
attribute vec2 pos; | ||
attribute float a; | ||
varying float v; | ||
void main() { | ||
gl_Position = vec4(pos, 0.0, 1.0); | ||
v = a; | ||
} | ||
`,y=(r=[1,0,0])=>` | ||
precision mediump float; | ||
varying float v; | ||
void main() { | ||
gl_FragColor = vec4(${r.join()}, v); | ||
} | ||
`,E=(r,e,s)=>{e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA);let c=(t,d)=>{let o=e.createShader(t);if(!o)throw new Error("Failed to create shader");if(e.shaderSource(o,d),e.compileShader(o),!e.getShaderParameter(o,e.COMPILE_STATUS)){let T=e.getShaderInfoLog(o);throw e.deleteShader(o),new Error(`Could not compile WebGL shader. | ||
" ${T}`)}return o},i=()=>{let t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),t},a=c(e.VERTEX_SHADER,C),f=c(e.FRAGMENT_SHADER,y(s)),n=e.createProgram();if(!n)throw new Error("Failed to create program");if(e.attachShader(n,a),e.attachShader(n,f),e.linkProgram(n),!e.getProgramParameter(n,e.LINK_STATUS))throw console.error(e.getProgramInfoLog(n)),new Error("Failed to link program");e.useProgram(n);let b=(t,d)=>{let o=e.getAttribLocation(n,t);return e.vertexAttribPointer(o,d,e.FLOAT,!1,0,0),e.enableVertexAttribArray(o),o},L=b("pos",2),v=b("a",1),_=i(),F=i(),m=[],u=[];r.addEventListener("mousemove",t=>{let d=t.clientX/r.width*2-1,o=t.clientY/r.height*-2+1;m.unshift(d,o),u.unshift(1)});let R=()=>{u=u.map(t=>t/1.1),m=m.filter((t,d)=>u[d]>.001),u=u.filter(t=>t>.01),e.clear(e.COLOR_BUFFER_BIT),e.bindBuffer(e.ARRAY_BUFFER,_),e.bufferData(e.ARRAY_BUFFER,new Float32Array(m),e.STREAM_DRAW),e.vertexAttribPointer(L,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,F),e.bufferData(e.ARRAY_BUFFER,new Float32Array(u),e.STREAM_DRAW),e.vertexAttribPointer(v,1,e.FLOAT,!1,0,0),e.drawArrays(e.LINE_STRIP,0,m.length/2),requestAnimationFrame(R)};e.clearColor(0,0,0,0),R()};var S=require("react/jsx-runtime"),H=({className:r,rgb:e,...s})=>{let c=(0,h.useRef)(null);(0,h.useEffect)(()=>{let a=c.current,f=a==null?void 0:a.getContext("webgl");if(console.log({canvas:a,gl:f}),!f||!a)return;let n=()=>{a.width=innerWidth,a.height=innerHeight,f.viewport(0,0,f.drawingBufferWidth,f.drawingBufferHeight)};return n(),E(a,f,e),addEventListener("resize",n),()=>{removeEventListener("resize",n)}},[]);let i=[p.trail,r!=null?r:""].join(" ");return(0,S.jsx)("canvas",{...s,className:i,ref:c})};0&&(module.exports={MouseTrail}); | ||
"use strict";var R=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var s in e)R(t,s,{get:e[s],enumerable:!0})},M=(t,e,s,f)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of x(e))!P.call(t,n)&&n!==s&&R(t,n,{get:()=>e[n],enumerable:!(f=T(e,n))||f.enumerable});return t};var w=t=>M(R({},"__esModule",{value:!0}),t);var D={};l(D,{MouseTrail:()=>C});module.exports=w(D);var A=require("react");var v={trail:"rt_trail"};var y=" attribute vec2 pos; attribute float a; varying float v; void main() { gl_Position = vec4(pos, 0.0, 1.0); v = a; } ",H=(t=[1,0,0])=>` precision mediump float; varying float v; void main() { gl_FragColor = vec4(${t.join()}, v); } `,E=(t,e,s)=>{e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA);let f=(r,d)=>{let a=e.createShader(r);return e.shaderSource(a,d),e.compileShader(a),a},n=()=>{let r=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,r),r},o=f(e.VERTEX_SHADER,y),c=f(e.FRAGMENT_SHADER,H(s)),i=e.createProgram();e.attachShader(i,o),e.attachShader(i,c),e.linkProgram(i),e.useProgram(i);let b=(r,d)=>{let a=e.getAttribLocation(i,r);return e.vertexAttribPointer(a,d,e.FLOAT,!1,0,0),e.enableVertexAttribArray(a),a},F=b("pos",2),S=b("a",1),_=n(),B=n(),h=!1,m=[],u=[],p=()=>{h=!0,u=u.map(r=>r/1.1),m=m.filter((r,d)=>u[d]>.001),u=u.filter(r=>r>.01),e.clear(e.COLOR_BUFFER_BIT),e.bindBuffer(e.ARRAY_BUFFER,_),e.bufferData(e.ARRAY_BUFFER,new Float32Array(m),e.STREAM_DRAW),e.vertexAttribPointer(F,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,B),e.bufferData(e.ARRAY_BUFFER,new Float32Array(u),e.STREAM_DRAW),e.vertexAttribPointer(S,1,e.FLOAT,!1,0,0),e.drawArrays(e.LINE_STRIP,0,m.length/2),m.length?requestAnimationFrame(p):h=!1};e.clearColor(0,0,0,0),t.addEventListener("mousemove",r=>{let d=r.clientX/t.width*2-1,a=r.clientY/t.height*-2+1;m.unshift(d,a),u.unshift(1),!h&&p()})};var L=require("react/jsx-runtime"),C=({className:t,rgb:e,...s})=>{let f=(0,A.useRef)(null);(0,A.useEffect)(()=>{let o=f.current,c=o==null?void 0:o.getContext("webgl");if(!c||!o)return;let i=()=>{o.width=innerWidth,o.height=innerHeight,c.viewport(0,0,c.drawingBufferWidth,c.drawingBufferHeight)};return i(),E(o,c,e),addEventListener("resize",i),()=>{removeEventListener("resize",i)}},[]);let n=[v.trail,t!=null?t:""].join(" ");return(0,L.jsx)("canvas",{...s,className:n,ref:f})};0&&(module.exports={MouseTrail}); |
@@ -5,3 +5,3 @@ { | ||
"private": false, | ||
"version": "0.0.1", | ||
"version": "0.0.2-optimize.0", | ||
"description": "A lightweight WebGL-based React component for creating a mouse trail effect.", | ||
@@ -8,0 +8,0 @@ "license": "MPL-2.0", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
21236
25
96
5