{"version":3,"file":"TextMagneticField.CTJ9JGH7.mjs","names":["useMemo","useRef","useState","useCallback"],"sources":["https:/framerusercontent.com/modules/1AnfETZ6NTWFt4MQ6Mpy/rBbQ7GbmYidciAkhq3jM/TextMagneticField.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{useState,useEffect,useRef,useMemo,useCallback}from\"react\";const THEMES={plasma:{textColor:\"#E0E0FF\",wakeColorA:\"#A855F7\",wakeColorB:\"#EC4899\"},arctic:{textColor:\"#E0F2FE\",wakeColorA:\"#38BDF8\",wakeColorB:\"#67E8F9\"},solar:{textColor:\"#FFF7ED\",wakeColorA:\"#F97316\",wakeColorB:\"#FACC15\"},phantom:{textColor:\"#F1F5F9\",wakeColorA:\"#94A3B8\",wakeColorB:\"#CBD5E1\"},neon:{textColor:\"#F0FDF4\",wakeColorA:\"#22C55E\",wakeColorB:\"#06B6D4\"},monochrome:{textColor:\"#F5F5F5\",wakeColorA:\"#A3A3A3\",wakeColorB:\"#D4D4D4\"}};// =============================================================================\n// CONSTANTS\n// =============================================================================\nconst DEFAULT_FONT=\"'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', sans-serif\";// =============================================================================\n// COLOR UTILITIES\n// =============================================================================\nfunction parseColor(color){const hexMatch=color.match(/^#([0-9a-f]{3,8})$/i);if(hexMatch){let hex=hexMatch[1];if(hex.length===3)hex=hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];return{r:parseInt(hex.substring(0,2),16),g:parseInt(hex.substring(2,4),16),b:parseInt(hex.substring(4,6),16)};}const rgbMatch=color.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)/);if(rgbMatch){return{r:parseInt(rgbMatch[1]),g:parseInt(rgbMatch[2]),b:parseInt(rgbMatch[3])};}return null;}function lerpColor(colorA,colorB,t){const a=parseColor(colorA)||{r:255,g:255,b:255};const b=parseColor(colorB)||{r:200,g:200,b:200};const clamped=Math.max(0,Math.min(1,t));const r=Math.round(a.r+(b.r-a.r)*clamped);const g=Math.round(a.g+(b.g-a.g)*clamped);const bl=Math.round(a.b+(b.b-a.b)*clamped);return`rgb(${r}, ${g}, ${bl})`;}function buildCharData(lines){let idx=0;const charsByLine=lines.map((line,lineIndex)=>line.split(\"\").map(char=>{if(char===\" \")return{char,isSpace:true,waveIndex:-1,lineIndex};const info={char,isSpace:false,waveIndex:idx,lineIndex};idx++;return info;}));return{charsByLine,totalNonSpace:idx};}function computeMagnetic(charX,charY,mouseX,mouseY,radius,strength,rotationAmount,mode){const distX=charX-mouseX;const distY=charY-mouseY;const dist=Math.sqrt(distX*distX+distY*distY);if(dist>radius||dist<.01){return{dx:0,dy:0,rotate:0,scale:1,proximity:0};}// Smooth falloff using cubic ease\nconst normalizedDist=dist/radius;const falloff=1-normalizedDist*normalizedDist*normalizedDist;const proximity=falloff;// Direction from mouse to character (unit vector)\nconst dirX=distX/dist;const dirY=distY/dist;let dx=0;let dy=0;let rotate=0;switch(mode){case\"repel\":{// Characters push away from cursor\nconst force=falloff*strength;dx=dirX*force;dy=dirY*force;rotate=dirX*falloff*rotationAmount*.5;break;}case\"attract\":{// Characters pull toward cursor\nconst force=falloff*strength*.6;dx=-dirX*force;dy=-dirY*force;rotate=-dirX*falloff*rotationAmount*.4;break;}case\"vortex\":{// Characters swirl around cursor (perpendicular force)\nconst force=falloff*strength*.8;// Perpendicular direction for circular motion\nconst perpX=-dirY;const perpY=dirX;dx=perpX*force+dirX*force*.15// Slight outward push\n;dy=perpY*force+dirY*force*.15;rotate=Math.atan2(perpY,perpX)*(180/Math.PI)*falloff*(rotationAmount/20);break;}}// Scale — characters slightly enlarge when close to cursor field\nconst scale=1+falloff*.08;return{dx,dy,rotate,scale:Math.min(1.12,scale),proximity};}// =============================================================================\n// IDLE BREATHING ENGINE\n// =============================================================================\nfunction computeIdleBreathing(charIndex,totalChars,time){const normalizedIndex=totalChars>1?charIndex/(totalChars-1):.5;// Multi-frequency breathing with staggered phase per character\nconst wave1=Math.sin(time*.8+normalizedIndex*Math.PI*2.5)*.55;const wave2=Math.sin(time*1.4+normalizedIndex*Math.PI*4+1.5)*.25;const wave3=Math.sin(time*.45+charIndex*.3+2.8)*.2;const combined=wave1+wave2+wave3;return{y:combined*4,scale:1+combined*.015};}// =============================================================================\n// CANVAS PREVIEW\n// =============================================================================\nfunction CanvasPreview({charsByLine,totalNonSpace,fontFamily,fontWeight,fontSize,letterSpacing,lineHeight,justifyContent,textColor,wakeColorA,wakeColorB,strength,spaceWidth,style}){// Simulate a cursor position hovering near center-left\n// with a few characters displaced for visual feedback\nconst fakeCursorProgress=.35;return /*#__PURE__*/_jsx(\"div\",{style:{...style,width:\"100%\",display:\"flex\",flexDirection:\"column\",alignItems:justifyContent===\"center\"?\"center\":justifyContent===\"flex-end\"?\"flex-end\":\"flex-start\",overflow:\"visible\"},children:charsByLine.map((lineChars,lineIdx)=>/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",justifyContent,alignItems:\"baseline\",lineHeight},children:lineChars.map((ci,i)=>{if(ci.isSpace){return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",width:spaceWidth}},i);}// Simulate magnetic displacement for preview\n    const normalizedIdx=totalNonSpace>1?ci.waveIndex/(totalNonSpace-1):.5;const distFromFake=Math.abs(normalizedIdx-fakeCursorProgress);const influence=Math.max(0,1-distFromFake*4);const cubicInfluence=influence*influence*(3-2*influence);const dx=cubicInfluence*strength*.3;const dy=-cubicInfluence*strength*.1;const wakeT=cubicInfluence;const charColor=wakeT>.1?lerpColor(textColor,wakeColorA,wakeT*.8):textColor;const glowOpacity=cubicInfluence*.6;const textShadow=glowOpacity>.05?`0 0 ${8*glowOpacity}px ${wakeColorA}${Math.round(glowOpacity*100).toString(16).padStart(2,\"0\")}, 0 0 ${16*glowOpacity}px ${wakeColorB}${Math.round(glowOpacity*50).toString(16).padStart(2,\"0\")}`:\"none\";return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",fontFamily,fontWeight:fontWeight,fontSize,letterSpacing:`${letterSpacing}px`,lineHeight,color:charColor,transform:`translate(${dx}px, ${dy}px) scale(${1+cubicInfluence*.05})`,textShadow,willChange:\"transform\"},children:ci.char},i);})},lineIdx))});}// =============================================================================\n// MAIN COMPONENT\n// =============================================================================\n/**\n * Text Magnetic Field\n *\n * Characters react to cursor proximity with elastic push/pull distortion,\n * scaling, rotation, and a flowing color wake that trails the cursor.\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 500\n * @framerIntrinsicHeight 200\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function TextMagneticField(props){const{text=\"MAGNETIC\\nFIELD\",fontFamily:fontFamilyProp,fontSize=96,letterSpacing=-2,lineHeight=.95,textAlign=\"center\",uppercase=true,theme=\"custom\",colors={},field={},wake={},idleAnimation=true,style}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const isStatic=useIsStaticRenderer();// ── Resolve theme vs custom ──────────────────────────────────────\nconst tv=theme!==\"custom\"?THEMES[theme]:null;const textColor=tv?.textColor??colors.textColor??\"#E0E0FF\";const wakeColorA=tv?.wakeColorA??colors.wakeColorA??\"#A855F7\";const wakeColorB=tv?.wakeColorB??colors.wakeColorB??\"#EC4899\";// Field values\nconst fieldMode=field.mode??\"repel\";const fieldRadius=field.radius??150;const fieldStrength=field.strength??25;const fieldElasticity=field.elasticity??.12;const fieldRotation=field.rotation??8;// Wake values\nconst wakeEnabled=wake.enabled??true;const wakeIntensity=wake.intensity??.8;const wakeDecay=wake.decay??.92;// ── Font ──────────────────────────────────────────────────────────\nconst fontFamily=fontFamilyProp?.fontFamily?`${fontFamilyProp.fontFamily}, 'Inter', -apple-system, BlinkMacSystemFont, sans-serif`:DEFAULT_FONT;const fontWeight=fontFamilyProp?.fontWeight||700;// ── Process text ─────────────────────────────────────────────────\nconst displayText=uppercase?text.toUpperCase():text;const lines=useMemo(()=>displayText.split(\"\\n\"),[displayText]);const{charsByLine,totalNonSpace}=useMemo(()=>buildCharData(lines),[lines]);const spaceWidth=fontSize*.3;const justifyContent=textAlign===\"left\"?\"flex-start\":textAlign===\"right\"?\"flex-end\":\"center\";// ── Refs for animation ───────────────────────────────────────────\nconst containerRef=useRef(null);const charRefsMap=useRef(new Map);const mouseRef=useRef({x:-9999,y:-9999,active:false});const wakeTrailRef=useRef(new Float32Array(totalNonSpace));const rafRef=useRef(null);const timeRef=useRef(0);const lastTsRef=useRef(null);// ── Visibility tracking (IntersectionObserver) ───────────────────\nconst[isInView,setIsInView]=useState(false);// ── Character position cache ─────────────────────────────────────\nconst positionCacheRef=useRef(new Map);const cacheInvalidatedRef=useRef(true);// Per-character current positions (for elastic lerping)\nconst currentPositions=useRef(Array.from({length:totalNonSpace},()=>({dx:0,dy:0,rotate:0,scale:1})));// Reset refs when totalNonSpace changes\nuseEffect(()=>{wakeTrailRef.current=new Float32Array(totalNonSpace);currentPositions.current=Array.from({length:totalNonSpace},()=>({dx:0,dy:0,rotate:0,scale:1}));positionCacheRef.current.clear();cacheInvalidatedRef.current=true;},[totalNonSpace]);// ── IntersectionObserver: pause animation when offscreen ─────────\nuseEffect(()=>{if(isStatic)return;const el=containerRef.current;if(!el)return;const observer=new IntersectionObserver(([entry])=>{setIsInView(entry.isIntersecting);},{threshold:0});observer.observe(el);return()=>observer.disconnect();},[isStatic]);// ── Invalidate position cache on scroll / resize ─────────────────\nuseEffect(()=>{if(isStatic||!isInView)return;const invalidate=()=>{cacheInvalidatedRef.current=true;};window.addEventListener(\"resize\",invalidate);window.addEventListener(\"scroll\",invalidate,true);return()=>{window.removeEventListener(\"resize\",invalidate);window.removeEventListener(\"scroll\",invalidate,true);};},[isStatic,isInView]);// ── Mouse handlers ───────────────────────────────────────────────\nconst handleMouseMove=useCallback(e=>{const container=containerRef.current;if(!container)return;const rect=container.getBoundingClientRect();mouseRef.current={x:e.clientX-rect.left,y:e.clientY-rect.top,active:true};},[]);const handleMouseLeave=useCallback(()=>{mouseRef.current={...mouseRef.current,active:false};},[]);// ── Register character ref ───────────────────────────────────────\nconst setCharRef=useCallback((waveIndex,el)=>{if(el){charRefsMap.current.set(waveIndex,el);}else{charRefsMap.current.delete(waveIndex);}},[]);// ── Animation loop ───────────────────────────────────────────────\nconst animate=useCallback(ts=>{if(lastTsRef.current===null)lastTsRef.current=ts;const dt=(ts-lastTsRef.current)/1e3;lastTsRef.current=ts;timeRef.current+=dt;const container=containerRef.current;if(!container){rafRef.current=requestAnimationFrame(animate);return;}const mouse=mouseRef.current;const wakeTrail=wakeTrailRef.current;const positions=currentPositions.current;const elasticity=fieldElasticity;const time=timeRef.current;// Rebuild position cache if invalidated (resize / scroll / first frame)\nconst cache=positionCacheRef.current;if(cacheInvalidatedRef.current){const containerRect=container.getBoundingClientRect();charRefsMap.current.forEach((el,idx)=>{const r=el.getBoundingClientRect();cache.set(idx,{cx:r.left-containerRect.left+r.width/2,cy:r.top-containerRect.top+r.height/2});});cacheInvalidatedRef.current=false;}charRefsMap.current.forEach((el,waveIndex)=>{if(waveIndex>=totalNonSpace)return;// Use cached character center position\nconst cached=cache.get(waveIndex);if(!cached)return;const charCenterX=cached.cx;const charCenterY=cached.cy;// Compute magnetic field effect\nlet target={dx:0,dy:0,rotate:0,scale:1,proximity:0};if(mouse.active){target=computeMagnetic(charCenterX,charCenterY,mouse.x,mouse.y,fieldRadius,fieldStrength,fieldRotation,fieldMode);}// Idle breathing when mouse is not affecting this character\nlet idleY=0;let idleScale=1;const isIdle=idleAnimation&&target.proximity<.05;if(isIdle){const breathing=computeIdleBreathing(waveIndex,totalNonSpace,time);idleY=breathing.y;idleScale=breathing.scale;}// Elastic lerp toward target position\n// Use higher lerp rate for idle breathing so it follows the wave closely\nconst pos=positions[waveIndex];const targetDx=target.dx;const targetDy=target.dy+idleY;const targetRotate=target.rotate;const targetScale=target.proximity>.05?target.scale:idleScale;const lerpRate=isIdle?Math.min(.25,elasticity*3):elasticity;pos.dx+=(targetDx-pos.dx)*lerpRate;pos.dy+=(targetDy-pos.dy)*lerpRate;pos.rotate+=(targetRotate-pos.rotate)*lerpRate;pos.scale+=(targetScale-pos.scale)*lerpRate;// Update wake trail\nif(wakeEnabled){const currentWake=wakeTrail[waveIndex];const targetWake=target.proximity*wakeIntensity;wakeTrail[waveIndex]=Math.max(currentWake*wakeDecay,targetWake);}// Apply transform via DOM\nconst wake=wakeTrail[waveIndex];// Color interpolation for wake\nlet color=textColor;if(wakeEnabled&&wake>.02){const wakeProgress=Math.min(1,wake);const midColor=lerpColor(textColor,wakeColorA,wakeProgress*.9);color=lerpColor(midColor,wakeColorB,wakeProgress*.4);}// Glow for characters in the field\nlet textShadow=\"none\";if(wakeEnabled&&wake>.05){const glowSize=wake*12;const glowOpacity=wake*.6;textShadow=`0 0 ${glowSize}px ${wakeColorA}${Math.round(glowOpacity*255).toString(16).padStart(2,\"0\")}, 0 0 ${glowSize*2}px ${wakeColorB}${Math.round(glowOpacity*100).toString(16).padStart(2,\"0\")}`;}el.style.transform=`translate(${pos.dx}px, ${pos.dy}px) rotate(${pos.rotate}deg) scale(${pos.scale})`;el.style.color=color;el.style.textShadow=textShadow;});rafRef.current=requestAnimationFrame(animate);},[totalNonSpace,fieldRadius,fieldStrength,fieldRotation,fieldMode,fieldElasticity,wakeEnabled,wakeIntensity,wakeDecay,textColor,wakeColorA,wakeColorB,idleAnimation]);useEffect(()=>{if(isStatic||!isInView)return;lastTsRef.current=null;cacheInvalidatedRef.current=true;rafRef.current=requestAnimationFrame(animate);return()=>{if(rafRef.current)cancelAnimationFrame(rafRef.current);};},[animate,isStatic,isInView]);// ── Static / canvas preview ────────────────────────────────────────\nif(isStatic||isCanvas){return /*#__PURE__*/_jsx(CanvasPreview,{charsByLine:charsByLine,totalNonSpace:totalNonSpace,fontFamily:fontFamily,fontWeight:fontWeight,fontSize:fontSize,letterSpacing:letterSpacing,lineHeight:lineHeight,justifyContent:justifyContent,textColor:textColor,wakeColorA:wakeColorA,wakeColorB:wakeColorB,strength:fieldStrength,spaceWidth:spaceWidth,style:style});}// ── Live render ──────────────────────────────────────────────────\nreturn /*#__PURE__*/_jsx(\"div\",{ref:containerRef,onMouseMove:handleMouseMove,onMouseLeave:handleMouseLeave,style:{...style,width:\"100%\",display:\"flex\",flexDirection:\"column\",alignItems:justifyContent===\"center\"?\"center\":justifyContent===\"flex-end\"?\"flex-end\":\"flex-start\",overflow:\"visible\",isolation:\"isolate\",zIndex:0,cursor:\"default\",position:\"relative\"},children:charsByLine.map((lineChars,lineIdx)=>/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",justifyContent,alignItems:\"baseline\",lineHeight},children:lineChars.map((ci,i)=>{if(ci.isSpace){return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",width:spaceWidth}},i);}return /*#__PURE__*/_jsx(\"span\",{ref:el=>setCharRef(ci.waveIndex,el),style:{display:\"inline-block\",fontFamily,fontWeight:fontWeight,fontSize,letterSpacing:`${letterSpacing}px`,lineHeight,color:textColor,willChange:\"transform, color, text-shadow\",transition:\"none\"},children:ci.char},i);})},lineIdx))});}TextMagneticField.displayName=\"Text Magnetic Field\";// =============================================================================\n// DEFAULT PROPS\n// =============================================================================\nTextMagneticField.defaultProps={text:\"MAGNETIC\\nFIELD\",fontSize:96,letterSpacing:-2,lineHeight:.95,textAlign:\"center\",uppercase:true,theme:\"custom\",colors:{textColor:\"#E0E0FF\",wakeColorA:\"#A855F7\",wakeColorB:\"#EC4899\"},field:{mode:\"repel\",radius:150,strength:25,elasticity:.12,rotation:8},wake:{enabled:true,intensity:.8,decay:.92},idleAnimation:true};// =============================================================================\n// PROPERTY CONTROLS\n// =============================================================================\naddPropertyControls(TextMagneticField,{// ═══════════════════════════════════════════════════════════════════════\n// ESSENTIAL CONTROLS (Always Visible)\n// ═══════════════════════════════════════════════════════════════════════\ntext:{type:ControlType.String,title:\"Text\",defaultValue:\"MAGNETIC\\nFIELD\",displayTextArea:true,description:\"Use line breaks to split into multiple lines\"},fontFamily:{type:ControlType.Font,title:\"Font\",controls:\"basic\"},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:96,min:20,max:300,step:2,unit:\"px\",displayStepper:true},letterSpacing:{type:ControlType.Number,title:\"Letter Spacing\",defaultValue:-2,min:-20,max:40,step:.5,unit:\"px\"},lineHeight:{type:ControlType.Number,title:\"Line Height\",defaultValue:.95,min:.5,max:2,step:.05},textAlign:{type:ControlType.Enum,title:\"Alignment\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\",displaySegmentedControl:true},uppercase:{type:ControlType.Boolean,title:\"Uppercase\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\" \"},// ═══════════════════════════════════════════════════════════════════════\n// THEME\n// ═══════════════════════════════════════════════════════════════════════\ntheme:{type:ControlType.Enum,title:\"Theme\",options:[\"custom\",\"plasma\",\"arctic\",\"solar\",\"phantom\",\"neon\",\"monochrome\"],optionTitles:[\"Custom\",\"🔮 Plasma\",\"❄️ Arctic\",\"☀️ Solar\",\"👻 Phantom\",\"⚡ Neon\",\"◻️ Mono\"],defaultValue:\"custom\",description:\"Choose a theme or customize colors below\"},// ═══════════════════════════════════════════════════════════════════════\n// COLORS (Collapsible, hidden when preset selected)\n// ═══════════════════════════════════════════════════════════════════════\ncolors:{type:ControlType.Object,title:\"Colors\",icon:\"color\",controls:{textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#E0E0FF\"},wakeColorA:{type:ControlType.Color,title:\"Wake Primary\",defaultValue:\"#A855F7\",description:\"Primary color of the cursor wake effect\"},wakeColorB:{type:ControlType.Color,title:\"Wake Secondary\",defaultValue:\"#EC4899\",description:\"Secondary color that blends with the wake\"}},hidden:props=>props.theme!==\"custom\"},// ═══════════════════════════════════════════════════════════════════════\n// FIELD (Collapsible)\n// ═══════════════════════════════════════════════════════════════════════\nfield:{type:ControlType.Object,title:\"Magnetic Field\",icon:\"effect\",controls:{mode:{type:ControlType.Enum,title:\"Mode\",options:[\"repel\",\"attract\",\"vortex\"],optionTitles:[\"Repel\",\"Attract\",\"Vortex\"],defaultValue:\"repel\",description:\"Repel pushes away, Attract pulls in, Vortex swirls around cursor\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:150,min:50,max:400,step:10,unit:\"px\",description:\"How far from the cursor characters are affected\"},strength:{type:ControlType.Number,title:\"Strength\",defaultValue:25,min:5,max:80,step:1,unit:\"px\",description:\"Maximum displacement distance\"},elasticity:{type:ControlType.Number,title:\"Elasticity\",defaultValue:.12,min:.02,max:.5,step:.02,description:\"Spring-back speed (lower = more elastic/bouncy)\"},rotation:{type:ControlType.Number,title:\"Rotation\",defaultValue:8,min:0,max:30,step:1,unit:\"\\xb0\",description:\"Maximum character rotation in the field\"}}},// ═══════════════════════════════════════════════════════════════════════\n// WAKE (Collapsible)\n// ═══════════════════════════════════════════════════════════════════════\nwake:{type:ControlType.Object,title:\"Color Wake\",icon:\"color\",controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Color trail that follows cursor through text\"},intensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:.8,min:.1,max:1,step:.05,description:\"How vivid the color wake appears\"},decay:{type:ControlType.Number,title:\"Decay\",defaultValue:.92,min:.8,max:.99,step:.01,description:\"How slowly the wake fades (higher = longer trail)\"}},description:\" \"},// ═══════════════════════════════════════════════════════════════════════\n// IDLE ANIMATION (standalone toggle)\n// ═══════════════════════════════════════════════════════════════════════\nidleAnimation:{type:ControlType.Boolean,title:\"Idle Breathing\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Gentle breathing motion when cursor is away from text\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextMagneticField\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutHeight\":\"auto\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 500\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextMagneticField.map"],"mappings":"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"}