{"version":3,"file":"Lightning_dot.CbbRWi7F.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/2B4TZBUir2slxyioyUEi/9W5q8gmrAuPsEBykAqPJ/Lightning_dot.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const BOLT_PATH=\"M281.744 10.0564L246.976 242.706H431.183C436.008 242.706 440 246.701 440 251.528C440 253.692 439.224 255.69 437.893 257.188L174.059 618.396C171.176 622.337 165.686 623.168 161.749 620.283C159.031 618.34 157.812 615.067 158.255 611.961L193.023 379.256H8.81688C3.93766 379.256 0 375.316 0 370.489C0 368.325 0.776096 366.328 2.05216 364.774L265.941 3.56378C268.824 -0.320361 274.314 -1.15294 278.251 1.67709C280.968 3.67577 282.188 6.94886 281.744 10.0564Z\";const ICON_W=440;const ICON_H=622;function buildGrid(spacing){const canvas=document.createElement(\"canvas\");canvas.width=ICON_W;canvas.height=ICON_H;const ctx=canvas.getContext(\"2d\");const path=new Path2D(BOLT_PATH);const dots=[];const off=spacing/2;for(let y=off;y<ICON_H;y+=spacing){for(let x=off;x<ICON_W;x+=spacing){if(ctx.isPointInPath(path,x,y)){dots.push({x,y});}}}return dots;}function shuffle(arr){const a=[...arr];for(let i=a.length-1;i>0;i--){const j=Math.floor(Math.random()*(i+1));[a[i],a[j]]=[a[j],a[i]];}return a;}function easeOut(t){return 1-Math.pow(1-t,3);}function easeInOut(t){return t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;}export default function LightningDots({width,height,dotColor,dotSize,dotOpacity,spacing,fillDuration,holdDuration,fadeDuration,pauseDuration,randomize,animate}){const allDotsRef=useRef(null);const orderRef=useRef([]);const frameRef=useRef(null);const startRef=useRef(null);const phaseRef=useRef(\"fill\");const[dotStates,setDotStates]=useState([]);// Rebuild grid when spacing changes\nuseEffect(()=>{const grid=buildGrid(spacing);allDotsRef.current=grid;orderRef.current=randomize===\"Random\"?shuffle(grid):[...grid].sort((a,b)=>a.y-b.y||a.x-b.x);phaseRef.current=\"fill\";startRef.current=null;},[spacing,randomize]);useEffect(()=>{if(!animate){cancelAnimationFrame(frameRef.current);const dots=allDotsRef.current;if(!dots)return;setDotStates(dots.map(d=>({x:d.x,y:d.y,opacity:dotOpacity,r:dotSize/2})));return;}const FILL_MS=fillDuration*1e3;const HOLD_MS=holdDuration*1e3;const FADE_MS=fadeDuration*1e3;const PAUSE_MS=pauseDuration*1e3;function tick(now){const dots=allDotsRef.current;if(!dots||dots.length===0){frameRef.current=requestAnimationFrame(tick);return;}if(!startRef.current)startRef.current=now;const elapsed=now-startRef.current;const total=dots.length;const order=orderRef.current;let states=[];if(phaseRef.current===\"fill\"){const t=Math.min(elapsed/FILL_MS,1);const count=Math.floor(easeOut(t)*total);states=order.slice(0,count).map(d=>({x:d.x,y:d.y,opacity:dotOpacity,r:dotSize/2}));if(t>=1){phaseRef.current=\"hold\";startRef.current=now;}}else if(phaseRef.current===\"hold\"){states=order.map(d=>({x:d.x,y:d.y,opacity:dotOpacity,r:dotSize/2}));if(elapsed>=HOLD_MS){phaseRef.current=\"fade\";startRef.current=now;}}else if(phaseRef.current===\"fade\"){const t=Math.min(elapsed/FADE_MS,1);const op=dotOpacity*(1-easeInOut(t));states=order.map(d=>({x:d.x,y:d.y,opacity:op,r:dotSize/2}));if(t>=1){phaseRef.current=\"pause\";startRef.current=now;states=[];}}else if(phaseRef.current===\"pause\"){states=[];if(elapsed>=PAUSE_MS){orderRef.current=randomize===\"Random\"?shuffle(dots):[...dots].sort((a,b)=>a.y-b.y||a.x-b.x);phaseRef.current=\"fill\";startRef.current=now;}}setDotStates(states);frameRef.current=requestAnimationFrame(tick);}cancelAnimationFrame(frameRef.current);startRef.current=null;phaseRef.current=\"fill\";frameRef.current=requestAnimationFrame(tick);return()=>cancelAnimationFrame(frameRef.current);},[animate,fillDuration,holdDuration,fadeDuration,pauseDuration,dotOpacity,dotSize]);return /*#__PURE__*/_jsx(\"div\",{style:{width,height,position:\"relative\",overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"svg\",{width:\"100%\",height:\"100%\",viewBox:`0 0 ${ICON_W} ${ICON_H}`,preserveAspectRatio:\"xMidYMid meet\",style:{display:\"block\"},children:dotStates.map((d,i)=>/*#__PURE__*/_jsx(\"circle\",{cx:d.x,cy:d.y,r:d.r,fill:dotColor,opacity:d.opacity},i))})});}LightningDots.defaultProps={width:300,height:424,dotColor:\"#ffffff\",dotSize:7,dotOpacity:.9,spacing:18,fillDuration:2.2,holdDuration:1,fadeDuration:.8,pauseDuration:.4,randomize:\"Random\",animate:true};addPropertyControls(LightningDots,{animate:{type:ControlType.Boolean,title:\"Animate\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},randomize:{type:ControlType.Enum,title:\"Randomize\",options:[\"Random\",\"Staggered\"],optionTitles:[\"Random\",\"Staggered\"],defaultValue:\"Random\"},fillDuration:{type:ControlType.Number,title:\"Fill Duration\",defaultValue:2.2,min:.2,max:8,step:.1,unit:\"s\"},holdDuration:{type:ControlType.Number,title:\"Hold Duration\",defaultValue:1,min:0,max:5,step:.1,unit:\"s\"},fadeDuration:{type:ControlType.Number,title:\"Fade Duration\",defaultValue:.8,min:.1,max:5,step:.1,unit:\"s\"},pauseDuration:{type:ControlType.Number,title:\"Pause Duration\",defaultValue:.4,min:0,max:3,step:.1,unit:\"s\"},dotColor:{type:ControlType.Color,title:\"Dot Color\",defaultValue:\"#ffffff\"},dotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:7,min:2,max:30,step:1,unit:\"px\"},dotOpacity:{type:ControlType.Number,title:\"Dot Opacity\",defaultValue:.9,min:0,max:1,step:.05},spacing:{type:ControlType.Number,title:\"Dot Spacing\",defaultValue:18,min:8,max:60,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LightningDots\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lightning_dot.map"],"mappings":"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"}