{"version":3,"file":"FloatingParticles.Bot5vyQ5.mjs","names":["useState","useMemo"],"sources":["https:/framerusercontent.com/modules/xXZ3BLcBFY2I3BTfgf0t/Xet8hA4FV57g6pM8OLLR/FloatingParticles.js"],"sourcesContent":["// FloatingParticles effect component with small dots floating in zero gravity\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState,useMemo,startTransition}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function FloatingParticles(props){const{particleCount=18,minSize=.5,maxSize=1,speed=.3,color=\"#FFFFFF\",opacity=.8}=props;const isStatic=useIsStaticRenderer();const[particles,setFloatingParticles]=useState([]);// Initialize particles\nconst initialFloatingParticles=useMemo(()=>{return Array.from({length:particleCount},(_,i)=>({id:i,x:Math.random()*100,y:Math.random()*100,size:minSize+Math.random()*(maxSize-minSize),vx:(Math.random()-.5)*speed,vy:(Math.random()-.5)*speed}));},[particleCount,minSize,maxSize,speed]);useEffect(()=>{startTransition(()=>setFloatingParticles(initialFloatingParticles));},[initialFloatingParticles]);// Animation loop\nuseEffect(()=>{if(isStatic||particles.length===0)return;const animate=()=>{startTransition(()=>{setFloatingParticles(prevFloatingParticles=>prevFloatingParticles.map(particle=>{let newX=particle.x+particle.vx;let newY=particle.y+particle.vy;let newVx=particle.vx;let newVy=particle.vy;// Bounce off edges with slight randomness\n    if(newX<=0||newX>=100){newVx=-newVx+(Math.random()-.5)*.1;newX=Math.max(0,Math.min(100,newX));}if(newY<=0||newY>=100){newVy=-newVy+(Math.random()-.5)*.1;newY=Math.max(0,Math.min(100,newY));}// Add slight random drift for zero gravity effect\n    newVx+=(Math.random()-.5)*.02;newVy+=(Math.random()-.5)*.02;// Limit velocity\n    const maxVel=speed*2;newVx=Math.max(-maxVel,Math.min(maxVel,newVx));newVy=Math.max(-maxVel,Math.min(maxVel,newVy));return{...particle,x:newX,y:newY,vx:newVx,vy:newVy};}));});};const interval=setInterval(animate,50);return()=>clearInterval(interval);},[isStatic,particles.length,speed]);if(isStatic){// Static preview with particles in fixed positions\nreturn /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",...props.style},children:initialFloatingParticles.map(particle=>/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:`${particle.x}%`,top:`${particle.y}%`,width:`${particle.size}px`,height:`${particle.size}px`,backgroundColor:color,borderRadius:\"50%\",opacity:opacity,transform:\"translate(-50%, -50%)\"}},particle.id))});}return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",...props.style},children:particles.map(particle=>/*#__PURE__*/_jsx(motion.div,{style:{position:\"absolute\",left:`${particle.x}%`,top:`${particle.y}%`,width:`${particle.size}px`,height:`${particle.size}px`,backgroundColor:color,borderRadius:\"50%\",opacity:opacity,transform:\"translate(-50%, -50%)\"},transition:{type:\"tween\",ease:\"linear\",duration:.05}},particle.id))});}addPropertyControls(FloatingParticles,{particleCount:{type:ControlType.Number,title:\"Particle Count\",defaultValue:18,min:5,max:50,step:1},minSize:{type:ControlType.Number,title:\"Min Size\",defaultValue:.5,min:.1,max:5,step:.1,unit:\"px\"},maxSize:{type:ControlType.Number,title:\"Max Size\",defaultValue:1,min:.1,max:10,step:.1,unit:\"px\"},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:.3,min:.1,max:2,step:.1},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFFFFF\"},opacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:.8,min:0,max:1,step:.1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FloatingParticles\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FloatingParticles.map"],"mappings":"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"}