{"version":3,"file":"Dot_Pattern_Generated.BbOEE2Ut.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/jW492PQzWilvwTqVslwf/2eMh74DgFLpnwfQRpdRd/Dot_Pattern_Generated.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";export function AnimatedDotPattern(props){const{canvasSize,dotColor,dotCount,spacing,innerRadius,outerRadius,animationTime}=props;const[isAnimated,setIsAnimated]=useState(false);useEffect(()=>{const timer=setTimeout(()=>setIsAnimated(true),200);return()=>clearTimeout(timer);},[]);const centerX=canvasSize/2;const centerY=canvasSize/2;const generateDots=()=>{const dots=[];for(let radius=innerRadius;radius<=outerRadius;radius+=spacing){for(let i=0;i<dotCount;i++){const angle=i/dotCount*360;const x=centerX+radius*Math.cos(angle*Math.PI/180);const y=centerY+radius*Math.sin(angle*Math.PI/180);const distanceRatio=(radius-innerRadius)/(outerRadius-innerRadius);const opacity=.3*(1-distanceRatio);const delay=distanceRatio*animationTime;if(opacity>.01){dots.push({id:`dot-${radius}-${i}`,x,y,opacity,delay});}}}return dots;};const dots=generateDots();return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"100%\",height:\"100%\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\"},children:[/*#__PURE__*/_jsx(\"svg\",{width:canvasSize,height:canvasSize,viewBox:`0 0 ${canvasSize} ${canvasSize}`,style:{opacity:isAnimated?1:0,transition:\"opacity 1s ease\",filter:\"drop-shadow(0 4px 6px rgba(0, 0, 0, 0.05))\"},children:/*#__PURE__*/_jsx(\"g\",{style:{transformOrigin:`${centerX}px ${centerY}px`,animation:isAnimated?`rotateAndScale ${animationTime}s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards`:\"none\"},children:dots.map(dot=>/*#__PURE__*/_jsx(\"circle\",{cx:dot.x,cy:dot.y,r:\"4\",fill:dotColor,opacity:\"0\",style:{transformOrigin:`${centerX}px ${centerY}px`,animation:isAnimated?`dotAppear-${dot.id} ${animationTime}s cubic-bezier(0.34, 1.56, 0.64, 1) ${dot.delay}s forwards`:\"none\"}},dot.id))})}),/*#__PURE__*/_jsx(\"style\",{children:`\n            @keyframes rotateAndScale {\n              0% {\n                transform: rotate(-45deg) scale(0.3);\n              }\n              100% {\n                transform: rotate(320deg) scale(1);\n              }\n            }\n\n            ${dots.map(dot=>`\n              @keyframes dotAppear-${dot.id} {\n                0% {\n                  opacity: 0;\n                  transform: scale(0) translate(${centerX-dot.x}px, ${centerY-dot.y}px);\n                }\n                50% {\n                  opacity: ${Math.min(dot.opacity*1.5,1)};\n                  transform: scale(1.05) translate(0, 0);\n                }\n                100% {\n                  opacity: ${dot.opacity};\n                  transform: scale(1) translate(0, 0);\n                }\n              }\n            `).join(\"\\n\")}\n          `})]})});}addPropertyControls(AnimatedDotPattern,{canvasSize:{type:ControlType.Number,title:\"Canvas Size\",min:200,max:1200,defaultValue:800},dotColor:{type:ControlType.Color,title:\"Dot Colour\",defaultValue:\"#0E2624\"},dotCount:{type:ControlType.Number,title:\"Dots per Ring\",min:6,max:60,defaultValue:24},spacing:{type:ControlType.Number,title:\"Ring Spacing\",min:10,max:100,defaultValue:35},innerRadius:{type:ControlType.Number,title:\"Inner Radius\",min:0,max:400,defaultValue:80},outerRadius:{type:ControlType.Number,title:\"Outer Radius\",min:100,max:600,defaultValue:350},animationTime:{type:ControlType.Number,title:\"Animation Time (s)\",min:1,max:10,defaultValue:3}});\nexport const __FramerMetadata__ = {\"exports\":{\"AnimatedDotPattern\":{\"type\":\"reactComponent\",\"name\":\"AnimatedDotPattern\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Dot_Pattern_Generated.map"],"mappings":"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"}