{"version":3,"file":"Grain.C5XTKBwe.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/486SScFu4WQwyJ3jMp2s/ysESxqtbUe79c08k32fd/Grain.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect}from\"react\";/**\n * GRAIN\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 200\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function NoiseGrain(props){const{opacity,blendMode,size=4,type=\"standard\",contrast=100,brightness=100}=props;const[noiseUrl,setNoiseUrl]=useState(\"\");useEffect(()=>{const canvas=document.createElement(\"canvas\");canvas.width=128;canvas.height=128;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const imageData=ctx.createImageData(128,128);const data=imageData.data;let currentSeed=1;const random=()=>{const x=Math.sin(currentSeed++)*1e4;return x-Math.floor(x);};for(let i=0;i<data.length;i+=4){if(type===\"color\"){data[i]=random()*255;data[i+1]=random()*255;data[i+2]=random()*255;}else if(type===\"rough\"){const val=random()>.5?255:0;data[i]=val;data[i+1]=val;data[i+2]=val;}else if(type===\"film\"){const u=1-random();const v=random();const z=Math.sqrt(-2*Math.log(u))*Math.cos(2*Math.PI*v);let val=128+z*64;val=Math.max(0,Math.min(255,val));data[i]=val;data[i+1]=val;data[i+2]=val;}else if(type===\"digital\"){const levels=4;const val=Math.floor(random()*levels)*(255/(levels-1));data[i]=val;data[i+1]=val;data[i+2]=val;}else{const val=random()*255;data[i]=val;data[i+1]=val;data[i+2]=val;}data[i+3]=255;}ctx.putImageData(imageData,0,0);setNoiseUrl(canvas.toDataURL());},[type]);const commonStyle={width:\"100%\",height:\"100%\",position:\"absolute\",top:0,left:0,pointerEvents:\"none\",backgroundImage:`url(${noiseUrl})`,backgroundRepeat:\"repeat\",imageRendering:\"pixelated\",filter:`contrast(${contrast}%) brightness(${brightness}%)`};return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",position:\"absolute\",top:0,left:0,pointerEvents:\"none\",overflow:\"hidden\",zIndex:10,opacity:opacity,mixBlendMode:blendMode},children:/*#__PURE__*/_jsx(\"div\",{style:{...commonStyle,backgroundSize:`${128*size}px`}})});}addPropertyControls(NoiseGrain,{type:{type:ControlType.Enum,title:\"Type\",options:[\"standard\",\"rough\",\"color\",\"film\",\"digital\"],optionTitles:[\"Standard\",\"Rough\",\"Color\",\"Film\",\"Digital\"],defaultValue:\"standard\"},opacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:1,step:.05,defaultValue:.5},blendMode:{type:ControlType.Enum,title:\"Blend Mode\",options:[\"normal\",\"multiply\",\"screen\",\"overlay\",\"darken\",\"lighten\",\"color-dodge\",\"color-burn\",\"hard-light\",\"soft-light\",\"difference\",\"exclusion\",\"hue\",\"saturation\",\"color\",\"luminosity\"],defaultValue:\"overlay\"},size:{type:ControlType.Number,title:\"Size\",min:.1,max:20,step:.1,defaultValue:4,displayStepper:true},contrast:{type:ControlType.Number,title:\"Contrast\",min:0,max:200,defaultValue:100,unit:\"%\"},brightness:{type:ControlType.Number,title:\"Brightness\",min:0,max:200,defaultValue:100,unit:\"%\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NoiseGrain\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"200\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Grain.map"],"mappings":"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"}