{"version":3,"file":"FloatingParticles.CDMH01JG.mjs","names":["useState","useMemo"],"sources":["https:/framerusercontent.com/modules/BLjRczXRCa2XMZlRX1af/3JLV0naPYn0LHwD9pOLX/ljGcHeWyh.js","https:/framerusercontent.com/modules/xXZ3BLcBFY2I3BTfgf0t/Xet8hA4FV57g6pM8OLLR/FloatingParticles.js"],"sourcesContent":["// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 16.5 0 L 16.5 1.5 C 16.5 6.469 8.25 9.75 8.25 12 C 8.25 9.75 0 6.469 0 1.5 L 0 0 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"12px\" id=\"UWATVa9XL\" transform=\"translate(3.75 10.5)\" width=\"16.5px\"/><path d=\"M 16.5 0 L 16.5 1.5 C 16.5 6.469 8.25 9.75 8.25 12 C 8.25 9.75 0 6.469 0 1.5 L 0 0\" fill=\"transparent\" height=\"12px\" id=\"XNw3JzEbP\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(3.75 10.5)\" width=\"16.5px\"/><path d=\"M 4.5 0 L 13.5 0 C 15.985 0 18 2.015 18 4.5 L 18 4.5 C 18 4.914 17.664 5.25 17.25 5.25 L 0.75 5.25 C 0.336 5.25 0 4.914 0 4.5 L 0 4.5 C 0 2.015 2.015 0 4.5 0 Z\" fill=\"transparent\" height=\"5.25px\" id=\"ArKPFwza7\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(3 5.25)\" width=\"18px\"/><path d=\"M 0 3.75 L 0 3 C 0 1.343 1.343 0 3 0\" fill=\"transparent\" height=\"3.75px\" id=\"SpNktFhkk\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(12 1.5)\" width=\"3px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"907517132\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-2zajc\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,\"--pgex8v\":lschgej4H,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-2zajc { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Acorn\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-2zajc\");Icon.displayName=\"Acorn\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:false,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Acorn\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerIntrinsicWidth\":\"24\",\"framerIntrinsicHeight\":\"24\",\"framerDisableUnlink\":\"true\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// 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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"}