{"version":3,"file":"CursorTrail.OHFM3txG.mjs","names":["React.useRef","React.useMemo","React.useCallback"],"sources":["https:/framerusercontent.com/modules/2nF4mbNopNEMgm0qniUQ/A1YevH0EWn6kydDATpqK/CursorTrail.js"],"sourcesContent":["// CursorGlowTrail.tsx\nimport{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";export default function CursorGlowTrail({colorPreset=\"neonCyan\",customColor=\"#00FFFF\",density=1,lifespan=800,size=20,zIndex=1,intensity=.8,softness=1,hideOnMobile=false,mobileMaxWidth=768,enableTouch=false,touchDensity=1,touchSize=22,respectReducedMotion=true}){const containerRef=React.useRef(null);const hiddenRef=React.useRef(false);// Reduced motion detection\nconst reduced=React.useMemo(()=>{if(!respectReducedMotion)return false;if(typeof window===\"undefined\"||!window.matchMedia)return false;return window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;},[respectReducedMotion]);// Show/hide based on mobile rule\nconst updateVisibility=React.useCallback(()=>{const isMobile=typeof window!==\"undefined\"&&window.innerWidth<=mobileMaxWidth;hiddenRef.current=hideOnMobile&&isMobile;const el=containerRef.current;if(el)el.style.display=hiddenRef.current?\"none\":\"block\";},[hideOnMobile,mobileMaxWidth]);React.useEffect(()=>{updateVisibility();window.addEventListener(\"resize\",updateVisibility,{passive:true});return()=>window.removeEventListener(\"resize\",updateVisibility);},[updateVisibility]);// ---------- Color parsing helpers ----------\nconst clamp01=v=>Math.max(0,Math.min(1,v));const clamp=(v,min,max)=>Math.max(min,Math.min(max,v));function hslToRgb(h,s,l){// h: 0..360, s/l: 0..100\ns/=100;l/=100;const k=n=>(n+h/30)%12;const a=s*Math.min(l,1-l);const f=n=>l-a*Math.max(-1,Math.min(k(n)-3,Math.min(9-k(n),1)));return{r:Math.round(255*f(0)),g:Math.round(255*f(8)),b:Math.round(255*f(4))};}function parseColorToRGB(input){const str=(input||\"\").trim().toLowerCase();if(!str)return null;// #rgb, #rgba, #rrggbb, #rrggbbaa\nif(str.startsWith(\"#\")){let h=str.slice(1);if(h.length===3||h.length===4){h=h.split(\"\").map(c=>c+c).join(\"\")// expand to 6/8\n;}if(h.length===6||h.length===8){const r=parseInt(h.slice(0,2),16);const g=parseInt(h.slice(2,4),16);const b=parseInt(h.slice(4,6),16);if([r,g,b].every(n=>Number.isFinite(n)))return{r,g,b};}return null;}// rgb/rgba\nconst rgbMatch=str.match(/^rgba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)(?:\\s*,\\s*([\\d.]+))?\\s*\\)$/);if(rgbMatch){const r=Math.round(parseFloat(rgbMatch[1]));const g=Math.round(parseFloat(rgbMatch[2]));const b=Math.round(parseFloat(rgbMatch[3]));if([r,g,b].every(n=>Number.isFinite(n)))return{r,g,b};return null;}// hsl/hsla\nconst hslMatch=str.match(/^hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%\\s*,\\s*([\\d.]+)%(?:\\s*,\\s*([\\d.]+))?\\s*\\)$/);if(hslMatch){const h=parseFloat(hslMatch[1]);const s=parseFloat(hslMatch[2]);const l=parseFloat(hslMatch[3]);if([h,s,l].every(n=>Number.isFinite(n))){return hslToRgb(h,s,l);}return null;}return null;}// Decide base color by preset/custom (with safe fallback)\nconst baseRGB=React.useMemo(()=>{if(colorPreset===\"hotPink\")return{r:255,g:0,b:150};if(colorPreset===\"electricGreen\")return{r:50,g:255,b:0};if(colorPreset===\"custom\"){const parsed=parseColorToRGB(customColor);if(parsed&&[parsed.r,parsed.g,parsed.b].every(n=>Number.isFinite(n)))return parsed;return{r:0,g:255,b:255}// fallback to cyan if parsing fails\n;}// neonCyan default\nreturn{r:0,g:255,b:255};},[colorPreset,customColor]);// Build box-shadow string using current intensity + softness\nconst glowShadow=React.useCallback((rgb,mult,soft)=>{const a1=clamp01(.6*mult);const a2=clamp01(.4*mult);const a3=clamp01(.22*mult);const s=clamp(soft,.5,2);const bl1=15*s;const bl2=40*s;const bl3=80*s;return`\n        0 0 ${bl1}px rgba(${rgb.r},${rgb.g},${rgb.b},${a1}),\n        0 0 ${bl2}px rgba(${rgb.r},${rgb.g},${rgb.b},${a2}),\n        0 0 ${bl3}px rgba(${rgb.r},${rgb.g},${rgb.b},${a3})\n      `;},[]);React.useEffect(()=>{const container=containerRef.current;if(!container)return;if(hiddenRef.current)return;if(reduced)return;const dots=[];let lastTime=0;function createDot(x,y,sz){const dot=document.createElement(\"div\");dot.style.position=\"absolute\";dot.style.left=`${x-sz/2}px`;dot.style.top=`${y-sz/2}px`;dot.style.width=`${sz}px`;dot.style.height=`${sz}px`;dot.style.borderRadius=\"50%\";dot.style.pointerEvents=\"none\";dot.style.willChange=\"transform, opacity\";dot.style.mixBlendMode=\"screen\";dot.style.background=`rgba(${baseRGB.r},${baseRGB.g},${baseRGB.b},1)`;dot.style.boxShadow=glowShadow(baseRGB,intensity,softness);container.appendChild(dot);dots.push(dot);// Lifespan fade\nconst start=performance.now();function animate(time){const progress=(time-start)/lifespan;if(progress<1){dot.style.opacity=`${1-progress}`;requestAnimationFrame(animate);}else{if(dot.parentElement)dot.parentElement.removeChild(dot);const i=dots.indexOf(dot);if(i>=0)dots.splice(i,1);}}requestAnimationFrame(animate);}function handleMouseMove(e){const now=performance.now();if(now-lastTime<1e3/60)return;lastTime=now;for(let i=0;i<density;i++)createDot(e.clientX,e.clientY,size);}function handleTouchMove(e){if(!enableTouch)return;const t=e.touches[0];if(!t)return;const now=performance.now();if(now-lastTime<1e3/60)return;lastTime=now;for(let i=0;i<touchDensity;i++)createDot(t.clientX,t.clientY,touchSize);}window.addEventListener(\"mousemove\",handleMouseMove,{passive:true});window.addEventListener(\"touchmove\",handleTouchMove,{passive:true});return()=>{window.removeEventListener(\"mousemove\",handleMouseMove);window.removeEventListener(\"touchmove\",handleTouchMove);dots.forEach(d=>d.remove());};},[baseRGB,density,lifespan,size,intensity,softness,enableTouch,touchDensity,touchSize,reduced,updateVisibility]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{position:\"fixed\",inset:0,zIndex,pointerEvents:\"none\"},\"aria-hidden\":\"true\"});}/* -------- Property Controls (with descriptions) -------- */addPropertyControls(CursorGlowTrail,{colorPreset:{type:ControlType.Enum,title:\"Preset\",options:[\"neonCyan\",\"hotPink\",\"electricGreen\",\"custom\"],optionTitles:[\"Neon Cyan\",\"Hot Pink Magma\",\"Electric Green\",\"Custom\"],description:\"Choose a preset glow color or define your own with the Custom option.\"},customColor:{type:ControlType.Color,title:\"Custom Color\",defaultValue:\"#00FFFF\",hidden:p=>p.colorPreset!==\"custom\",description:\"Pick your own glow color (works with hex, rgb/rgba, or hsl/hsla formats).\"},density:{type:ControlType.Number,title:\"Density\",min:1,max:10,defaultValue:1,description:\"How many dots spawn per move. Higher = thicker trail.\"},lifespan:{type:ControlType.Number,title:\"Lifespan (ms)\",min:200,max:2e3,defaultValue:800,description:\"How long each dot stays visible before fading out.\"},size:{type:ControlType.Number,title:\"Dot Size\",min:5,max:60,defaultValue:20,description:\"Pixel size of each glow dot.\"},intensity:{type:ControlType.Number,title:\"Glow Intensity\",min:0,max:2,step:.05,defaultValue:.8,description:\"Adjusts glow brightness (alpha of bloom layers).\"},softness:{type:ControlType.Number,title:\"Glow Softness\",min:.5,max:2,step:.05,defaultValue:1,description:\"Controls glow spread (blur radius). Higher = softer, wider bloom.\"},hideOnMobile:{type:ControlType.Boolean,title:\"Hide on Mobile\",defaultValue:false,description:\"Completely hides the effect below the selected breakpoint.\"},mobileMaxWidth:{type:ControlType.Number,title:\"Mobile Max Width\",min:320,max:1280,step:10,defaultValue:768,hidden:p=>!p.hideOnMobile,description:\"Viewport width (px) under which the effect is hidden.\"},enableTouch:{type:ControlType.Boolean,title:\"Enable Touch\",defaultValue:false,description:\"Shows the glow trail on touch devices (may impact performance on low-end phones).\"},touchDensity:{type:ControlType.Number,title:\"Touch Density\",min:1,max:6,step:1,defaultValue:1,hidden:p=>!p.enableTouch,description:\"How many dots spawn per touch move event.\"},touchSize:{type:ControlType.Number,title:\"Touch Size\",min:8,max:60,step:1,defaultValue:22,hidden:p=>!p.enableTouch,description:\"Pixel size of dots when used on touch devices.\"},zIndex:{type:ControlType.Number,title:\"z-index\",min:-10,max:9999,defaultValue:1,description:\"Layering order. Keep below fixed navs; component ignores clicks.\"},respectReducedMotion:{type:ControlType.Boolean,title:\"Respect Reduced Motion\",defaultValue:true,description:\"Disables the trail if the user prefers reduced motion (accessibility).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CursorGlowTrail\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CursorTrail.map"],"mappings":"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"}