{"version":3,"file":"shared-lib.BeD4F7WP.mjs","names":["React.useRef","React.useCallback","p","dx","dy","metadata","siteMetadata","metadataVersion","__FramerMetadata__","metadata","siteMetadata"],"sources":["https:/framerusercontent.com/modules/g8ql1djNo3MHb7x15c91/5opztW2lP51AEKhmykrj/GravityLines.js","https:/framerusercontent.com/modules/9R1pWOIF5Of3xzKwAr5e/xaKoQ0aZVYndHXKkp0Sj/siteMetadata.js","https:/framerusercontent.com/modules/sDTXc1KM419DRCCUD20j/yCiXIswEJ80OGBU9CKYy/augiA20Il.js","https:/framerusercontent.com/modules/TegjbkoqGn3hM5Ne5TNu/l9dm2BOGbqOMWYlA9Xn9/rCP0eVMMW.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function GravityLines(props){const{lineColor,lineWidth,lineCount,gravity,friction,tension,holeSize,holeColor,interactionRadius,pushStrength}=props;const canvasRef=React.useRef(null);const requestRef=React.useRef();const mouseRef=React.useRef({x:-1e3,y:-1e3,vx:0,vy:0});const linesRef=React.useRef([]);const draggingLineRef=React.useRef(null);// Initialize lines\nReact.useEffect(()=>{const lines=[];for(let i=0;i<lineCount;i++){// Each line has a set of points\n// We'll use a simple verlet integration or spring physics for the points\n// For a \"hanging\" rope effect, we need multiple segments\nconst segments=20;const points=[];for(let j=0;j<=segments;j++){points.push({x:0,y:0,oldX:0,oldY:0,pinned:j===0||j===segments});}lines.push({points,offset:i*2,type:\"default\",startX:0,startY:0,endX:0,endY:0})// slight offset for visual variety if needed\n;}linesRef.current=lines;draggingLineRef.current=null;},[lineCount]);// Handle mouse movement\nconst handleMouseMove=React.useCallback(e=>{const rect=canvasRef.current?.getBoundingClientRect();if(rect){const x=e.clientX-rect.left;const y=e.clientY-rect.top;mouseRef.current={x,y,vx:x-mouseRef.current.x,vy:y-mouseRef.current.y};}},[]);const handleMouseLeave=React.useCallback(()=>{mouseRef.current={x:-1e3,y:-1e3,vx:0,vy:0};},[]);const handleMouseDown=React.useCallback(e=>{const rect=canvasRef.current?.getBoundingClientRect();if(!rect)return;const x=e.clientX-rect.left;const y=e.clientY-rect.top;if(draggingLineRef.current){// Finish line\ndraggingLineRef.current.isDragging=false;draggingLineRef.current.endX=x;draggingLineRef.current.endY=y;draggingLineRef.current=null;}else{// Start new line\nconst segments=20;const points=[];for(let j=0;j<=segments;j++){points.push({x:x,y:y,oldX:x,oldY:y,pinned:j===0||j===segments});}const newLine={points,offset:0,type:\"user\",startX:x,startY:y,endX:x,endY:y,isDragging:true};linesRef.current.push(newLine);draggingLineRef.current=newLine;}},[]);// Animation loop\nconst animate=React.useCallback(()=>{const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const width=canvas.width;const height=canvas.height;// Clear canvas\nctx.clearRect(0,0,width,height);// Physics settings\n// Gravity pulls down\nconst g=gravity*.1;// Friction slows movement\nconst f=1-friction*.01;// Tension pulls points back to original length (simplified constraint)\n// We'll use a simpler approach: points are attracted to their \"ideal\" position on a catenary,\n// but affected by mouse.\n// Actually, let's do a simple spring system between points.\nlinesRef.current.forEach((line,lineIndex)=>{let startX,startY,endX,endY;if(line.type===\"default\"){const centerX=width/2;const centerY=height/2;const gap=530;startX=centerX-gap/2;startY=centerY;endX=centerX+gap/2;endY=centerY;// Update line properties\nline.startX=startX;line.startY=startY;line.endX=endX;line.endY=endY;}else{startX=line.startX;startY=line.startY;if(line.isDragging){endX=mouseRef.current.x;endY=mouseRef.current.y;// If mouse is out of bounds (initial state), keep it at start\nif(mouseRef.current.x===-1e3){endX=startX;endY=startY;}}else{endX=line.endX;endY=line.endY;}}// Draw holes\nctx.fillStyle=holeColor;ctx.beginPath();ctx.arc(startX,startY,holeSize/2,0,Math.PI*2);ctx.fill();ctx.beginPath();ctx.arc(endX,endY,holeSize/2,0,Math.PI*2);ctx.fill();// Update and draw lines\nctx.strokeStyle=lineColor;ctx.lineWidth=lineWidth;ctx.lineCap=\"round\";ctx.lineJoin=\"round\";const points=line.points;const dx=endX-startX;const dy=endY-startY;const dist=Math.sqrt(dx*dx+dy*dy);const segmentLength=dist/(points.length-1);// 1. Update points\nfor(let i=0;i<points.length;i++){const p=points[i];if(p.pinned){p.x=i===0?startX:endX;p.y=i===0?startY:endY;continue;}// Verlet integration\nconst vx=(p.x-p.oldX)*f;const vy=(p.y-p.oldY)*f;p.oldX=p.x;p.oldY=p.y;p.x+=vx;p.y+=vy;p.y+=g// Gravity\n;// Mouse interaction\nconst dx=p.x-mouseRef.current.x;const dy=p.y-mouseRef.current.y;const dist=Math.sqrt(dx*dx+dy*dy);if(dist<interactionRadius){const force=(interactionRadius-dist)/interactionRadius;const angle=Math.atan2(dy,dx);const pushX=Math.cos(angle)*force*pushStrength;const pushY=Math.sin(angle)*force*pushStrength;p.x+=pushX;p.y+=pushY;}// Add some noise/sway based on line index\n// p.y += Math.sin(Date.now() * 0.001 + i * 0.1 + lineIndex) * 0.1\n}// 2. Constrain points (Stick constraints)\n// We run this a few times for stability\nconst iterations=5;for(let iter=0;iter<iterations;iter++){for(let i=0;i<points.length-1;i++){const p1=points[i];const p2=points[i+1];const dx=p2.x-p1.x;const dy=p2.y-p1.y;const dist=Math.sqrt(dx*dx+dy*dy);const diff=dist-segmentLength*(1+tension*.01)// Slack control\n;if(dist===0)continue;// prevent division by zero\nconst percent=diff/dist/2;const offsetX=dx*percent;const offsetY=dy*percent;if(!p1.pinned){p1.x+=offsetX;p1.y+=offsetY;}if(!p2.pinned){p2.x-=offsetX;p2.y-=offsetY;}}}// 3. Draw line\nctx.beginPath();ctx.moveTo(points[0].x,points[0].y);// Use quadratic curves for smoother lines\nfor(let i=1;i<points.length-2;i++){const xc=(points[i].x+points[i+1].x)/2;const yc=(points[i].y+points[i+1].y)/2;ctx.quadraticCurveTo(points[i].x,points[i].y,xc,yc);}// Curve through the last two points\nif(points.length>2){ctx.quadraticCurveTo(points[points.length-2].x,points[points.length-2].y,points[points.length-1].x,points[points.length-1].y);}ctx.stroke();});requestRef.current=requestAnimationFrame(animate);},[gravity,friction,tension,lineColor,lineWidth,holeColor,holeSize,interactionRadius,pushStrength]);React.useEffect(()=>{const canvas=canvasRef.current;if(!canvas)return;// Handle resizing\nconst resizeObserver=new ResizeObserver(entries=>{for(const entry of entries){const{width,height}=entry.contentRect;canvas.width=width;canvas.height=height;// Re-initialize points on resize to prevent explosion\nlinesRef.current.forEach(line=>{if(line.type===\"default\"){const centerX=width/2;const centerY=height/2;const gap=530;const startX=centerX-gap/2;const startY=centerY;const endX=centerX+gap/2;const endY=centerY;// Update line properties\nline.startX=startX;line.startY=startY;line.endX=endX;line.endY=endY;// Reset points\nfor(let i=0;i<line.points.length;i++){const p=line.points[i];const t=i/(line.points.length-1);p.x=startX+(endX-startX)*t;p.y=startY+(endY-startY)*t;p.oldX=p.x;p.oldY=p.y;}}});}});resizeObserver.observe(canvas.parentElement);requestRef.current=requestAnimationFrame(animate);return()=>{resizeObserver.disconnect();if(requestRef.current)cancelAnimationFrame(requestRef.current);};},[animate,holeSize]);return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\"},onMouseMove:handleMouseMove,onMouseLeave:handleMouseLeave,onMouseDown:handleMouseDown,children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:\"block\"}})});}addPropertyControls(GravityLines,{lineColor:{type:ControlType.Color,title:\"Line Color\",defaultValue:\"#FF4433\"},lineWidth:{type:ControlType.Number,title:\"Line Width\",defaultValue:3,min:1,max:20},lineCount:{type:ControlType.Number,title:\"Line Count\",defaultValue:4,min:1,max:20},gravity:{type:ControlType.Number,title:\"Gravity\",defaultValue:5,min:0,max:20,step:.1},friction:{type:ControlType.Number,title:\"Friction\",defaultValue:10,min:0,max:50},tension:{type:ControlType.Number,title:\"Slack\",defaultValue:10,min:0,max:100,displayStepper:true},holeSize:{type:ControlType.Number,title:\"Hole Size\",defaultValue:12,min:0,max:50},holeColor:{type:ControlType.Color,title:\"Hole Color\",defaultValue:\"#111\"},interactionRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:100,min:10,max:500},pushStrength:{type:ControlType.Number,title:\"Push Force\",defaultValue:15,min:0,max:50}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GravityLines\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GravityLines.map","// Generated by Framer (bbed9c4)\nexport default function metadata(params,activeLocale){return{description:\"Demos & dinners in San Francisco\\nfor designers who create with machines.\",favicon:\"https://framerusercontent.com/assets/lPRH5bSqjMkmLweHzUNycFGKmes.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/g6Tnai3ElQmeSqLtqpVqsmEtns.png\",title:\"Designers & Machines\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (b47b624)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 900px)\"},{hash:\"1356g3f\",mediaQuery:\"(min-width: 700px) and (max-width: 899.98px)\"},{hash:\"14k3q7v\",mediaQuery:\"(max-width: 699.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-RbXqr\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (18229b5)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"pbfxte\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-iM98i\",title:siteMetadata(params,activeLocale).title||\"Past Events\",viewport:\"width=1200\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}