{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/MXxNfkI841r86G6jDXYu/Rje2VdIMOs7FlcHifASV/ElasticLine_Prod.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useMemo,useRef,useState}from\"react\";import{animate,useMotionValue,motion,useAnimationFrame}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 400\n */export default function ElasticLine(props){const{direction,lineWidth,color,color1,color2,colorType,distance,transition}=props;const isVertical=direction===\"vertical\";const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[lineTransition,setLineTransition]=useState({type:false,duration:0});const styles={};const lineStyles={};if(isVertical){styles.width=lineWidth;lineStyles.minWidth=(distance+lineWidth)*4;}else{styles.height=lineWidth;lineStyles.minHeight=(distance+lineWidth)*4;}useEffect(()=>{const timer=setTimeout(()=>{setLineTransition(transition);},200);return()=>clearTimeout(timer);},[transition]);return isCanvas?/*#__PURE__*/_jsx(\"div\",{style:{background:colorType===\"gradient\"?`linear-gradient(to ${isVertical?\"bottom\":\"right\"}, ${color1}, ${color2})`:color,...props.style,...styles}}):/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"vertical\",alignItems:\"center\",justifyContent:\"center\",pointerEvents:\"none\",...props.style,...styles},children:/*#__PURE__*/_jsx(ElasticLineComponent,{isVertical:isVertical,strokeWidth:lineWidth,releaseThreshold:distance+lineWidth/2,transition:lineTransition,colorType:colorType,color1:color1,color2:color2,style:{color:colorType===\"solid\"?color:undefined,...props.style,...lineStyles}})});}ElasticLine.displayName=\"Elastic Line\";addPropertyControls(ElasticLine,{direction:{type:ControlType.Enum,defaultValue:\"horizontal\",options:[\"horizontal\",\"vertical\"],displaySegmentedControl:true},colorType:{type:ControlType.Enum,defaultValue:\"solid\",options:[\"solid\",\"gradient\"],optionTitles:[\"Solid\",\"Gradient\"],displaySegmentedControl:true,title:\"Style\"},color:{type:ControlType.Color,defaultValue:\"#999\",hidden:props=>props.colorType!==\"solid\"},color1:{type:ControlType.Color,defaultValue:\"#000\",hidden:props=>props.colorType!==\"gradient\"},color2:{type:ControlType.Color,defaultValue:\"#FFF\",hidden:props=>props.colorType!==\"gradient\"},lineWidth:{type:ControlType.Number,defaultValue:2,min:1,step:1,displayStepper:true,title:\"Width\"},distance:{type:ControlType.Number,defaultValue:100,min:0,step:1},transition:{type:ControlType.Transition,defaultValue:{type:\"spring\",stiffness:400,damping:5},description:\"More components at [Framer University](https://frameruni.link/cc).\"}});const ElasticLineComponent=({isVertical=false,releaseThreshold=100,strokeWidth=1,transition={type:\"spring\",stiffness:400,damping:5},className,style,colorType=\"solid\",color1=\"#000\",color2=\"#FFF\"})=>{const id=useMemo(generateId,[]);const containerRef=useRef(null);const dimensions=useDimensions(containerRef);const pathRef=useRef(null);const{isGrabbed,controlPoint}=useElasticLineEvents(containerRef,isVertical,releaseThreshold);const x=useMotionValue(dimensions.width/2);const y=useMotionValue(dimensions.height/2);// Set the path to a straight line initially\nuseEffect(()=>{var _pathRef_current;x.set(dimensions.width/2);y.set(dimensions.height/2);(_pathRef_current=pathRef.current)===null||_pathRef_current===void 0?void 0:_pathRef_current.setAttribute(\"d\",isVertical?`M${dimensions.width/2} 0Q${dimensions.width/2} ${dimensions.height/2} ${dimensions.width/2} ${dimensions.height}`:`M0 ${dimensions.height/2}Q${dimensions.width/2} ${dimensions.height/2} ${dimensions.width} ${dimensions.height/2}`);},[dimensions,isVertical]);useEffect(()=>{if(!isGrabbed){animate(x,dimensions.width/2,transition);animate(y,dimensions.height/2,transition);}},[isGrabbed]);useAnimationFrame(()=>{var _pathRef_current;if(isGrabbed){x.set(controlPoint.x);y.set(controlPoint.y);}const controlX=x.get();const controlY=y.get();(_pathRef_current=pathRef.current)===null||_pathRef_current===void 0?void 0:_pathRef_current.setAttribute(\"d\",isVertical?`M${dimensions.width/2} 0Q${controlX} ${controlY} ${dimensions.width/2} ${dimensions.height}`:`M0 ${dimensions.height/2}Q${controlX} ${controlY} ${dimensions.width} ${dimensions.height/2}`);});return /*#__PURE__*/_jsxs(\"svg\",{ref:containerRef,className:className,style:style,viewBox:`0 0 ${dimensions.width} ${dimensions.height}`,preserveAspectRatio:\"none\",children:[colorType===\"gradient\"&&/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsxs(\"linearGradient\",{id:`lineGradient-${id}`,gradientUnits:\"userSpaceOnUse\",x1:isVertical?\"0\":\"0%\",y1:isVertical?\"0%\":\"0\",x2:isVertical?\"0\":\"100%\",y2:isVertical?\"100%\":\"0\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:color1}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:color2})]})}),/*#__PURE__*/_jsx(motion.path,{ref:pathRef,stroke:colorType===\"solid\"?\"currentColor\":`url(#lineGradient-${id})`,strokeWidth:strokeWidth,strokeLinecap:\"butt\",fill:\"none\"})]});};const useMousePosition=containerRef=>{const[position,setPosition]=useState({x:0,y:0});useEffect(()=>{const updatePosition=(x,y)=>{if(containerRef&&containerRef.current){const rect=containerRef.current.getBoundingClientRect();const relativeX=x-rect.left;const relativeY=y-rect.top;// Calculate relative position even when outside the container\nsetPosition({x:relativeX,y:relativeY});}else{setPosition({x,y});}};const handleMouseMove=ev=>{updatePosition(ev.clientX,ev.clientY);};const handleTouchMove=ev=>{const touch=ev.touches[0];updatePosition(touch.clientX,touch.clientY);};// Listen for both mouse and touch events\nwindow.addEventListener(\"mousemove\",handleMouseMove);window.addEventListener(\"touchmove\",handleTouchMove);return()=>{window.removeEventListener(\"mousemove\",handleMouseMove);window.removeEventListener(\"touchmove\",handleTouchMove);};},[containerRef]);return position;};function useDimensions(ref){const[dimensions,setDimensions]=useState({width:0,height:0});useEffect(()=>{const updateDimensions=()=>{if(ref.current){const{width,height}=ref.current.getBoundingClientRect();setDimensions({width,height});}};updateDimensions();window.addEventListener(\"resize\",updateDimensions);return()=>window.removeEventListener(\"resize\",updateDimensions);},[ref]);return dimensions;}function useElasticLineEvents(containerRef,isVertical,releaseThreshold){const mousePosition=useMousePosition(containerRef);const dimensions=useDimensions(containerRef);const[isGrabbed,setIsGrabbed]=useState(false);const[controlPoint,setControlPoint]=useState({x:dimensions.width/2,y:dimensions.height/2});const[prevMousePosition,setPrevMousePosition]=useState({x:0,y:0});useEffect(()=>{if(containerRef.current){const{width,height}=dimensions;const x=mousePosition.x;const y=mousePosition.y;// Check if mouse is outside container bounds\nconst isOutsideBounds=x<0||x>width||y<0||y>height;if(isOutsideBounds){setIsGrabbed(false);return;}let distance;let newControlPoint;if(isVertical){const midX=width/2;distance=Math.abs(x-midX);newControlPoint={x:midX+2*(x-midX),y:y};}else{const midY=height/2;distance=Math.abs(y-midY);newControlPoint={x:x,y:midY+2*(y-midY)};}setControlPoint(newControlPoint);if(!isGrabbed&&areLinesIntersecting([prevMousePosition.x,prevMousePosition.y,x,y],[0,dimensions.height/2,dimensions.width,dimensions.height/2])){setIsGrabbed(true);}else if(isGrabbed&&distance>releaseThreshold){setIsGrabbed(false);}setPrevMousePosition({x,y});}},[mousePosition,isVertical,isGrabbed,releaseThreshold]);return{isGrabbed,controlPoint};}const CHARACTERS=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";function generateId(){let result=\"\";for(let i=0;i<8;i++){const randomIndex=Math.floor(Math.random()*CHARACTERS.length);result+=CHARACTERS.charAt(randomIndex);}return result;}function areLinesIntersecting(line1,line2// [x1, y1, x2, y2]\n){// Calculate denominators\nconst denominator=(line2[3]-line2[1])*(line1[2]-line1[0])-(line2[2]-line2[0])*(line1[3]-line1[1]);// Lines are parallel if denominator is 0\nif(denominator===0)return false;const ua=((line2[2]-line2[0])*(line1[1]-line2[1])-(line2[3]-line2[1])*(line1[0]-line2[0]))/denominator;const ub=((line1[2]-line1[0])*(line1[1]-line2[1])-(line1[3]-line1[1])*(line1[0]-line2[0]))/denominator;// Return true if the intersection lies within both line segments\nreturn ua>=0&&ua<=1&&ub>=0&&ub<=1;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ElasticLine\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ElasticLine_Prod.map"],
  "mappings": "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",
  "names": ["ElasticLine", "props", "direction", "lineWidth", "color", "color1", "color2", "colorType", "distance", "transition", "isVertical", "isCanvas", "RenderTarget", "lineTransition", "setLineTransition", "ye", "styles", "lineStyles", "ue", "timer", "p", "ElasticLineComponent", "addPropertyControls", "ControlType", "releaseThreshold", "strokeWidth", "className", "style", "id", "se", "generateId", "containerRef", "pe", "dimensions", "useDimensions", "pathRef", "isGrabbed", "controlPoint", "useElasticLineEvents", "useMotionValue", "y", "_pathRef_current", "animate", "useAnimationFrame", "controlX", "controlY", "u", "motion", "useMousePosition", "position", "setPosition", "updatePosition", "x", "rect", "relativeX", "relativeY", "handleMouseMove", "ev", "handleTouchMove", "touch", "window", "ref", "setDimensions", "updateDimensions", "width", "height", "mousePosition", "setIsGrabbed", "setControlPoint", "prevMousePosition", "setPrevMousePosition", "newControlPoint", "midX", "midY", "areLinesIntersecting", "CHARACTERS", "result", "i", "randomIndex", "line1", "line2", "denominator", "ua", "ub"]
}
