{"version":3,"file":"MovingGradientText.B-TFrSs7.mjs","names":["useRef","x","p","React.useRef","React.useMemo","React.useCallback","c","x","React.Fragment"],"sources":["https:/framerusercontent.com/modules/DqWCSIGyb95BFQN9BB71/YGM98T9RP42RLe3fla79/SpotlightCard.js","https:/framerusercontent.com/modules/PNCAYhcnqgqA00sZBkxU/KZBC0OLLoMVBwarKqzMG/MovingGradientText.js"],"sourcesContent":["// Framer-ready SpotlightCard Component\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useRef}from\"react\";/**\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 300\n */export default function SpotlightCard(props){const{children,type=\"default\",iconTitle=\"SpotlightCard\",iconDescription=\"Interactive card with smooth spotlight effects that follow your cursor. Perfect for modern interfaces.\",iconTitleColor=\"white\",iconDescriptionColor=\"#a0a0a0\",spotlightColor=\"rgba(0, 229, 255, 0.2)\",borderRadius=\"24px\",borderColor=\"#222\",backgroundColor=\"#111\",padding=\"32px\",opacity=.6,style,...rest}=props;const divRef=useRef(null);const handleMouseMove=e=>{if(!divRef.current)return;const rect=divRef.current.getBoundingClientRect();const x=e.clientX-rect.left;const y=e.clientY-rect.top;divRef.current.style.setProperty(\"--mouse-x\",`${x}px`);divRef.current.style.setProperty(\"--mouse-y\",`${y}px`);};const handleMouseEnter=()=>{if(divRef.current){const effectElement=divRef.current.querySelector(\".spotlight-effect\");if(effectElement){effectElement.style.opacity=String(opacity);}}};const handleMouseLeave=()=>{if(divRef.current){const effectElement=divRef.current.querySelector(\".spotlight-effect\");if(effectElement){effectElement.style.opacity=\"0\";}}};const cardStyle={position:\"relative\",borderRadius,border:`1px solid ${borderColor}`,backgroundColor,padding,overflow:\"hidden\",width:type===\"custom\"?\"auto\":400,height:\"auto\",...style};const spotlightStyle={position:\"absolute\",top:0,left:0,right:0,bottom:0,background:`radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%), ${spotlightColor}, transparent 80%)`,opacity:0,transition:\"opacity 0.5s ease\",pointerEvents:\"none\"};return /*#__PURE__*/_jsxs(\"div\",{ref:divRef,onMouseMove:handleMouseMove,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,style:cardStyle,...rest,children:[/*#__PURE__*/_jsx(\"div\",{style:spotlightStyle,className:\"spotlight-effect\"}),type===\"custom\"?children:/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"24px\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",minHeight:\"200px\",position:\"relative\",zIndex:1},children:[/*#__PURE__*/_jsxs(\"svg\",{width:\"40\",height:\"40\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"#00e5ff\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{marginBottom:\"16px\"},\"aria-label\":\"Sparkles icon\",children:[/*#__PURE__*/_jsx(\"title\",{children:\"Sparkles\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .963L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M20 3v4\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M22 5h-4\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 17v2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M5 18H3\"})]}),/*#__PURE__*/_jsx(\"h2\",{style:{color:iconTitleColor,margin:\"0 0 12px 0\",fontSize:\"24px\",fontWeight:600},children:iconTitle}),/*#__PURE__*/_jsx(\"p\",{style:{color:iconDescriptionColor,margin:0,textAlign:\"center\",fontSize:\"16px\",lineHeight:\"1.5\",whiteSpace:\"pre-line\"},children:iconDescription})]})]});}// Default props for the component\nSpotlightCard.defaultProps={type:\"default\",iconTitle:\"SpotlightCard\",iconDescription:\"Interactive card with smooth spotlight effects that follow your cursor. Perfect for modern interfaces.\",iconTitleColor:\"white\",iconDescriptionColor:\"#a0a0a0\",spotlightColor:\"rgba(0, 229, 255, 0.2)\",borderRadius:\"24px\",borderColor:\"#222\",backgroundColor:\"#111\",padding:\"32px\",opacity:.6};// Property controls for Framer interface\naddPropertyControls(SpotlightCard,{type:{type:ControlType.Enum,title:\"Content Type\",options:[\"default\",\"custom\"],optionTitles:[\"Default\",\"Custom\"],defaultValue:\"default\",description:\"Choose between default content or custom component\"},iconTitle:{type:ControlType.String,title:\"Title\",defaultValue:\"SpotlightCard\",description:\"Main heading text for the default content\",hidden(props){return props.type===\"custom\";}},iconDescription:{type:ControlType.String,title:\"Description\",defaultValue:\"Interactive card with smooth spotlight effects that follow your cursor. Perfect for modern interfaces.\",description:\"Description text for the default content (use \\\\n for line breaks)\",displayTextArea:true,hidden(props){return props.type===\"custom\";}},iconTitleColor:{type:ControlType.Color,title:\"Title Color\",defaultValue:\"white\",description:\"Color of the title text\",hidden(props){return props.type===\"custom\";}},iconDescriptionColor:{type:ControlType.Color,title:\"Description Color\",defaultValue:\"#a0a0a0\",description:\"Color of the description text\",hidden(props){return props.type===\"custom\";}},children:{type:ControlType.ComponentInstance,title:\"Custom Content\",description:\"Custom component to display inside the spotlight card\",hidden(props){return props.type===\"default\";}},spotlightColor:{type:ControlType.Color,title:\"Spotlight Color\",defaultValue:\"rgba(0, 229, 255, 0.2)\",description:\"The color of the spotlight effect\"},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:\"24px\",description:\"Border radius of the card\"},borderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"#222\",description:\"Color of the card border\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",defaultValue:\"#111\",description:\"Background color of the card\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"32px\",description:\"Internal padding of the card\"},opacity:{type:ControlType.Number,title:\"Spotlight Opacity\",defaultValue:.6,min:0,max:1,step:.1,description:\"Opacity of the spotlight effect on hover\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SpotlightCard\",\"slots\":[\"children\"],\"annotations\":{\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"300\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SpotlightCard.map","// @framerSupportedLayoutWidth any\n// @framerSupportedLayoutHeight any\n// @framerIntrinsicWidth 800\n// @framerIntrinsicHeight 240\nimport{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";// Built-in vertical influence (relative to X) for coordinate-based gradient movement.\nconst DEFAULT_Y_INFLUENCE=1;const DEFAULT_DRIFT_SPEED=.85;// >100% is required so background-position panning is visible with gradients.\n// We keep positions wrapped (0..100) to avoid large-number rendering glitches.\nconst GRADIENT_OVERSCAN=200// %\n;const GRADIENT_CYCLES=2// repeat the palette across 0..100% so colors remain visible even with overscan\n;// Motion feel tuning (coordinate-based)\nconst SPRING_ZETA=.85// damping ratio (<1 allows slight overshoot)\n;const RESPONSE_GAMMA=1.15// nonlinear response; reduces \"joystick\" feel near center\n;const DRIFT_AMPLITUDE=10// % max drift offset on leave\n;function softClampPercent(p){// Softly bounds p into (0..100) without hard \"sticking\" at the edges.\nconst d=p-50;return 50+50*Math.tanh(d/50);}function curveSigned(d,gamma){const s=Math.sign(d);const a=Math.abs(d);return s*Math.pow(a,gamma);}function clamp01(n){return Math.min(1,Math.max(0,n));}function parseBracketMarkup(input){// Robust rules:\n// - no nesting support (first [[ pairs with next ]])\n// - unbalanced brackets render as normal text\n// - never throw\nconst text=String(input??\"\");const out=[];let i=0;let highlightIndex=0;while(i<text.length){const open=text.indexOf(\"[[\",i);if(open===-1){const tail=text.slice(i);if(tail)out.push({type:\"text\",value:tail});break;}// normal leading text\nif(open>i)out.push({type:\"text\",value:text.slice(i,open)});const close=text.indexOf(\"]]\",open+2);if(close===-1){// unbalanced: treat the rest as normal text (including the [[)\nout.push({type:\"text\",value:text.slice(open)});break;}const inner=text.slice(open+2,close);out.push({type:\"highlight\",value:inner,key:`h-${highlightIndex++}`});i=close+2;}return out;}const PRESETS={// Inspired by the provided reference image: deep teal base with neon mint/cyan and warm peach/pink highlights.\nAurora:[\"#22E6B6\",\"#38E8FF\",\"#FFC2A3\",\"#FF5BB8\",\"#8E7CFF\"],// Inspired by the provided \"Heat\" reference image: warm glow (yellow/orange) with hot pink edges and lavender cores.\nHeat:[\"#FFF1D6\",\"#FFD166\",\"#FF9B1A\",\"#FF3D6E\",\"#C9A7FF\"],// Inspired by the provided \"Lime\" reference image: pale mint → soft chartreuse → bright lime → deep teal.\nLime:[\"#E9F6D8\",\"#D7F0B9\",\"#C9E85C\",\"#B8D800\",\"#0B6B5A\"],// Inspired by the provided \"Sunset\" reference image: deep navy → electric blue → violet → magenta → coral.\nSunset:[\"#060B2A\",\"#1B2CFF\",\"#6A00FF\",\"#FF2DAA\",\"#FF7A3D\"]};function buildCycledGradient(angle,colors,cycles){const safeCycles=Math.max(1,Math.floor(cycles));const n=colors.length;if(n<2){const c=colors[0]??\"#000000\";return`linear-gradient(${angle}deg, ${c}, ${c})`;}const m=n*safeCycles;const denom=Math.max(1,m-1);const stops=[];for(let i=0;i<m;i++){const c=colors[i%n];const p=i/denom*100;stops.push(`${c} ${p.toFixed(2)}%`);}return`linear-gradient(${angle}deg, ${stops.join(\", \")})`;}function buildLoopGradient(angle,colors){// Matches the proven CSS recipe:\n// linear-gradient(..., c1, c2, ..., cN, c1) so the sweep loops without a seam.\nconst n=colors.length;if(n<2){const c=colors[0]??\"#000000\";return`linear-gradient(${angle}deg, ${c}, ${c})`;}const stops=colors.concat(colors[0]).join(\", \");return`linear-gradient(${angle}deg, ${stops})`;}// @framerSupportedLayoutWidth any\n// @framerSupportedLayoutHeight any\n// @framerIntrinsicWidth 800\n// @framerIntrinsicHeight 240\nexport default function CursorReactiveGradientText(props){const{text,font,baseColor,hAlign,verticalAlign,paddingTop,paddingRight,paddingBottom,paddingLeft,paletteSource,preset,customColors,angle,fieldScale,enabled,intensity,smoothness,onLeave,style}=props;const rootRef=React.useRef(null);const hoveringRef=React.useRef(false);const driftRef=React.useRef(false);const driftT0Ref=React.useRef(0);const driftOriginRef=React.useRef({x:50,y:50})// percent-space\n;const freezeRef=React.useRef({x:50,y:50})// percent-space\n;const targetRef=React.useRef({x:.5,y:.5})// cursor pos (0..1)\n;const currentRef=React.useRef({x:50,y:50})// percent-space current\n;const velocityRef=React.useRef({x:0,y:0})// percent/sec\n;const rafRef=React.useRef(null);const lastTRef=React.useRef(0);const segments=React.useMemo(()=>parseBracketMarkup(text),[text]);const colors=React.useMemo(()=>{if(paletteSource===\"Custom\"){const filtered=(customColors??[]).filter(Boolean);return filtered.length>=2?filtered:PRESETS[preset]??PRESETS.Aurora;}return PRESETS[preset]??PRESETS.Aurora;},[paletteSource,preset,customColors]);const gradient=React.useMemo(()=>{return buildLoopGradient(angle,colors);},[colors,angle]);const setCssVars=React.useCallback((gxPercent,gyPercent)=>{const el=rootRef.current;if(!el)return;el.style.setProperty(\"--crgt-gx\",`${softClampPercent(gxPercent)}%`);el.style.setProperty(\"--crgt-gy\",`${softClampPercent(gyPercent)}%`);},[]);const applyLeaveBehavior=React.useCallback(()=>{hoveringRef.current=false;if(!enabled)return;if(onLeave===\"Settle\"){driftRef.current=false;// no-op; settle handled in tick\nreturn;}if(onLeave===\"Freeze\"){driftRef.current=false;freezeRef.current={...currentRef.current};return;}// Drift\ndriftRef.current=true;driftT0Ref.current=performance.now();// Start drifting exactly from where the cursor left.\ndriftOriginRef.current={...currentRef.current};freezeRef.current={...currentRef.current};},[enabled,onLeave]);const onPointerMove=React.useCallback(e=>{if(!enabled)return;const el=rootRef.current;if(!el)return;const r=el.getBoundingClientRect();const w=Math.max(1,r.width);const h=Math.max(1,r.height);const x=clamp01((e.clientX-r.left)/w);const y=clamp01((e.clientY-r.top)/h);targetRef.current={x,y};},[enabled]);const onPointerEnter=React.useCallback(()=>{hoveringRef.current=true;driftRef.current=false;},[]);const onPointerLeave=React.useCallback(()=>{applyLeaveBehavior();},[applyLeaveBehavior]);React.useEffect(()=>{// Initialize vars\nsetCssVars(currentRef.current.x,currentRef.current.y);const tick=t=>{const last=lastTRef.current||t;const dt=Math.max(0,Math.min(.05,(t-last)/1e3));lastTRef.current=t;// Coordinate-based mapping: cursor position maps to a large gradient field.\n// No phase loops; gradient moves to follow cursor smoothly.\nlet desiredX=50;let desiredY=50;if(!enabled){desiredX=50;desiredY=50;}else if(hoveringRef.current){const c=targetRef.current;const dx=curveSigned(clamp01(c.x)-.5,RESPONSE_GAMMA);const dy=curveSigned(clamp01(c.y)-.5,RESPONSE_GAMMA);const range=Math.max(0,fieldScale)/100;const ix=Math.max(0,intensity);desiredX=50+dx*ix*100*range;desiredY=50+dy*ix*100*range*DEFAULT_Y_INFLUENCE;}else{// Pointer not inside: respect On Leave behavior\nif(onLeave===\"Settle\"){driftRef.current=false;desiredX=50;desiredY=50;}else if(onLeave===\"Freeze\"){driftRef.current=false;desiredX=freezeRef.current.x;desiredY=freezeRef.current.y;}else{// Drift around the leave point (subtle ambient motion)\ndriftRef.current=true;const tt=(t-driftT0Ref.current)/1e3;const a=DRIFT_AMPLITUDE*(.6+DEFAULT_DRIFT_SPEED*.6);desiredX=driftOriginRef.current.x+Math.sin(tt*.9)*a;desiredY=driftOriginRef.current.y+Math.cos(tt*.75)*(a*.65);}}// 2nd-order spring smoothing (fluid, non-robotic)\nconst s01=clamp01(smoothness/.6);const f=2+s01*14// Hz-ish\n;const omega=2*Math.PI*f;const k=omega*omega;const c=2*SPRING_ZETA*omega;let x=currentRef.current.x;let y=currentRef.current.y;let vx=velocityRef.current.x;let vy=velocityRef.current.y;const ax=k*(desiredX-x)-c*vx;const ay=k*(desiredY-y)-c*vy;vx+=ax*dt;vy+=ay*dt;// Clamp velocity to prevent rare spikes on big dt.\nconst maxV=600;vx=Math.max(-maxV,Math.min(maxV,vx));vy=Math.max(-maxV,Math.min(maxV,vy));x=x+vx*dt;y=y+vy*dt;currentRef.current={x,y};velocityRef.current={x:vx,y:vy};setCssVars(x,y);rafRef.current=requestAnimationFrame(tick);};rafRef.current=requestAnimationFrame(tick);return()=>{if(rafRef.current!=null)cancelAnimationFrame(rafRef.current);rafRef.current=null;};},[enabled,intensity,smoothness,onLeave,fieldScale,setCssVars]);const justifyContent=hAlign===\"left\"?\"flex-start\":hAlign===\"right\"?\"flex-end\":\"center\";const alignItems=verticalAlign===\"top\"?\"flex-start\":verticalAlign===\"bottom\"?\"flex-end\":\"center\";const rootStyle={...style,width:style?.width??\"100%\",height:style?.height??\"100%\",display:\"flex\",alignItems:\"stretch\",justifyContent:\"stretch\",pointerEvents:\"auto\"};const layoutStyle={width:\"100%\",height:\"100%\",display:\"flex\",justifyContent,alignItems,paddingTop,paddingRight,paddingBottom,paddingLeft,boxSizing:\"border-box\"};const textStyle={...font??{},color:baseColor,margin:0,whiteSpace:\"pre-wrap\",wordBreak:\"break-word\",lineHeight:font?.lineHeight??undefined};const highlightStyle={// Flowing palette: the gradient itself moves.\nbackgroundImage:gradient,// Overscan both axes so background-position Y movement is visible.\nbackgroundSize:`${GRADIENT_OVERSCAN}% ${GRADIENT_OVERSCAN}%`,backgroundPosition:`var(--crgt-gx, 50%) var(--crgt-gy, 50%)`,backgroundRepeat:\"no-repeat\",WebkitBackgroundClip:\"text\",backgroundClip:\"text\",color:\"transparent\"};return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:rootStyle,onPointerMove:onPointerMove,onPointerEnter:onPointerEnter,onPointerLeave:onPointerLeave,children:/*#__PURE__*/_jsx(\"div\",{style:layoutStyle,children:/*#__PURE__*/_jsx(\"div\",{style:textStyle,children:segments.map((seg,idx)=>{if(seg.type===\"highlight\"){// Preserve empty highlights as empty spans (no crash).\nreturn /*#__PURE__*/_jsx(\"span\",{style:highlightStyle,children:seg.value},seg.key);}return /*#__PURE__*/_jsx(React.Fragment,{children:seg.value},`t-${idx}`);})})})});}CursorReactiveGradientText.defaultProps={text:\"[[Gradient text]] that can [[shimmer]] with cursor movement.\",baseColor:\"#111111\",hAlign:\"center\",verticalAlign:\"center\",padding:0,paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0,paletteSource:\"Preset\",preset:\"Aurora\",customColors:[\"#00D1FF\",\"#7C3AED\",\"#FF2D95\",\"#FFB800\"],angle:20,fieldScale:180,enabled:true,intensity:.6,smoothness:.18,onLeave:\"Freeze\"};addPropertyControls(CursorReactiveGradientText,{text:{type:ControlType.String,title:\"Content\",displayTextArea:true,description:\"Wrap highlighted text in [[double brackets]].\"},font:{type:ControlType.Font,title:\"Text\",controls:\"extended\",description:\"Font, size, weight, line height, and alignment for the text.\"},baseColor:{type:ControlType.Color,title:\"Base\",description:\"Color of non‑highlighted text.\"},hAlign:{type:ControlType.Enum,title:\"H Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],description:\"Positions the text block horizontally inside the wrapper.\"},verticalAlign:{type:ControlType.Enum,title:\"V Align\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],defaultValue:\"center\",description:\"Positions the text block vertically inside the wrapper.\"},padding:{type:ControlType.FusedNumber,title:\"Padding\",defaultValue:0,toggleKey:\"padding\",toggleTitles:[\"All\",\"Sides\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,description:\"Inner spacing between the wrapper edges and the text.\"},paletteSource:{type:ControlType.Enum,title:\"Gradient\",options:[\"Preset\",\"Custom\"],optionTitles:[\"Preset\",\"Custom\"],defaultValue:\"Preset\",description:\"Choose how gradient colors are defined.\"},preset:{type:ControlType.Enum,title:\"Preset\",options:Object.keys(PRESETS),description:\"Select a prebuilt gradient palette.\",hidden(props){return props.paletteSource!==\"Preset\";}},customColors:{type:ControlType.Array,title:\"Colors\",defaultValue:CursorReactiveGradientText.defaultProps.customColors,control:{type:ControlType.Color},description:\"Add multiple colors (evenly distributed across the gradient).\",hidden(props){return props.paletteSource!==\"Custom\";}},angle:{type:ControlType.Number,title:\"Angle\",min:0,max:360,step:1,description:\"Direction of the gradient.\"},fieldScale:{type:ControlType.Number,title:\"Field %\",min:50,max:400,step:10,description:\"How far the gradient moves (bigger = more shimmer travel).\"},enabled:{type:ControlType.Boolean,title:\"Cursor\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:true,description:\"Enable cursor‑reactive shimmer within the wrapper bounds.\"},intensity:{type:ControlType.Number,title:\"Intensity\",min:0,max:1.5,step:.01,description:\"How far the gradient shifts with cursor movement.\"},smoothness:{type:ControlType.Number,title:\"Smooth\",min:.01,max:.6,step:.01,description:\"Lag/inertia (higher = follows faster).\"},onLeave:{type:ControlType.Enum,title:\"On Leave\",options:[\"Settle\",\"Freeze\",\"Drift\"],optionTitles:[\"Settle\",\"Freeze\",\"Drift\"],defaultValue:\"Freeze\",description:\"What the shimmer does when the cursor leaves the wrapper.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"CursorReactiveGradientTextProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"CursorReactiveGradientText\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"\",\"framerSupportedLayoutWidth\":\"\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"\",\"framerSupportedLayoutHeight\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MovingGradientText.map"],"mappings":"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"}