{"version":3,"file":"HandTrackingCursor.DftMLWwo.mjs","names":["useRef","useState","useMemo","_Fragment"],"sources":["https:/framerusercontent.com/modules/JUxthWbsIJrqrwSuIwIt/h2URqHIIOYxRPSZByJ1q/HandTrackingCursor.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{startTransition,useEffect,useMemo,useRef,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const MEDIAPIPE_HANDS_SRC=\"https://cdn.jsdelivr.net/npm/@mediapipe/hands/hands.js\";const MEDIAPIPE_CAMERA_SRC=\"https://cdn.jsdelivr.net/npm/@mediapipe/camera_utils/camera_utils.js\";const DEFAULT_EXTERNAL_SELECTOR='[data-framer-name], .framer-motion, [draggable=\"true\"], img, a, button, [data-framer-link], [data-framer-page-link], [data-framer-page-link-current]';const defaultImageFallback={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Gradient 1 - Blue\"};function loadScript(src){return new Promise((resolve,reject)=>{if(typeof document===\"undefined\"){resolve();return;}const existing=document.querySelector(`script[src=\"${src}\"]`);if(existing){if(existing.dataset.loaded===\"true\"){resolve();return;}existing.addEventListener(\"load\",()=>resolve(),{once:true});existing.addEventListener(\"error\",()=>reject(new Error(`Failed loading ${src}`)),{once:true});return;}const script=document.createElement(\"script\");script.src=src;script.async=true;script.onload=()=>{script.dataset.loaded=\"true\";resolve();};script.onerror=()=>reject(new Error(`Failed loading ${src}`));document.head.appendChild(script);});}function isValidDragCandidate(el,componentRoot){if(typeof window===\"undefined\"||typeof document===\"undefined\")return false;if(!el)return false;if(el===componentRoot||componentRoot?.contains(el))return false;if(el===document.body||el===document.documentElement)return false;if(el.getAttribute(\"draggable\")===\"true\")return true;const computed=window.getComputedStyle(el);const inlineCursor=el.style.cursor||\"\";const computedCursor=computed.cursor||\"\";const hasDragCursor=/(grab|grabbing|move)/i.test(`${inlineCursor} ${computedCursor}`);if(hasDragCursor)return true;const className=(el.className||\"\").toString();const attrs=el.getAttributeNames().join(\" \");const datasetKeys=Object.keys(el.dataset||{}).join(\" \");const indicatorsText=`${className} ${attrs} ${datasetKeys}`.toLowerCase();const hasFramerDragIndicators=/(drag|draggable|framer-motion|framer-drag|projection)/i.test(indicatorsText);if(hasFramerDragIndicators)return true;const touchAction=computed.touchAction||\"\";const userSelect=computed.userSelect||\"\";const transform=computed.transform||\"\";const willChange=computed.willChange||\"\";const hasDragAffordance=/(none|pan-x|pan-y)/i.test(touchAction)||/none/i.test(userSelect);const hasMotionStyleHints=transform!==\"none\"||/transform|translate|left|top/i.test(willChange)||/framer/i.test(className.toLowerCase());return hasDragAffordance&&hasMotionStyleHints;}function findNearestDraggableAncestor(startEl,componentRoot){let current=startEl;while(current){if(current===componentRoot||componentRoot?.contains(current))return null;if(current===document.body||current===document.documentElement)return null;if(isValidDragCandidate(current,componentRoot))return current;current=current.parentElement;}return null;}function findDragTarget(x,y,componentRoot){if(typeof document===\"undefined\")return null;const stack=document.elementsFromPoint(x,y);for(const el of stack){if(!el||el===componentRoot||componentRoot?.contains(el))continue;const candidate=findNearestDraggableAncestor(el,componentRoot);if(candidate)return candidate;}const top=document.elementFromPoint(x,y);if(top&&top!==componentRoot&&!componentRoot?.contains(top)){return findNearestDraggableAncestor(top,componentRoot);}return null;}function normalizeNavigationHref(rawHref){if(typeof window===\"undefined\")return null;const trimmed=rawHref.trim();if(!trimmed)return null;if(/^javascript:/i.test(trimmed))return null;if(/^(#|\\/|\\.\\/|\\.\\.\\/|mailto:|tel:|https?:)/i.test(trimmed)){if(/^https?:/i.test(trimmed)){try{const url=new URL(trimmed,window.location.href);if(url.origin===window.location.origin){return`${url.pathname}${url.search}${url.hash}`;}return url.toString();}catch{return null;}}return trimmed;}try{const url=new URL(trimmed,window.location.href);if(url.origin===window.location.origin){return`${url.pathname}${url.search}${url.hash}`;}return url.toString();}catch{return null;}}function extractRawHrefFromElement(el){const candidates=[el.getAttribute(\"href\"),el.getAttribute(\"data-framer-page-link-current\"),el.getAttribute(\"data-framer-page-link\"),el.getAttribute(\"data-framer-link\"),el.getAttribute(\"data-href\"),el.getAttribute(\"data-url\"),el.getAttribute(\"data-link\"),el.getAttribute(\"aria-href\")];const first=candidates.find(value=>!!value&&value.trim().length>0);if(first)return first.trim();if(el instanceof HTMLAnchorElement){const rawAnchorHref=el.getAttribute(\"href\");if(rawAnchorHref&&rawAnchorHref.trim().length>0)return rawAnchorHref.trim();return el.href||\"\";}return\"\";}function findLinkTarget(x,y,componentRoot){if(typeof document===\"undefined\")return null;const stack=document.elementsFromPoint(x,y);for(const el of stack){if(!el||el===componentRoot||componentRoot?.contains(el))continue;let current=el;while(current){if(current===componentRoot||componentRoot?.contains(current))break;if(current===document.body||current===document.documentElement)break;const rawHref=extractRawHrefFromElement(current);const normalizedHref=normalizeNavigationHref(rawHref);if(normalizedHref){const textFromNode=node=>{if(!node)return\"\";const text=(node.innerText||node.textContent||\"\").replace(/\\s+/g,\" \").trim();return text;};const imgAlt=current.querySelector(\"img\")?.getAttribute(\"alt\")?.trim()||\"\";const label=current.getAttribute(\"aria-label\")?.trim()||current.getAttribute(\"title\")?.trim()||current.getAttribute(\"data-framer-name\")?.trim()||textFromNode(current)||textFromNode(el)||imgAlt||normalizedHref;return{rawHref,normalizedHref,label};}current=current.parentElement;}}return null;}function createSeededRandom(seed){let h=2166136261>>>0;for(let i=0;i<seed.length;i++){h^=seed.charCodeAt(i);h=Math.imul(h,16777619);}return()=>{h+=h<<13;h^=h>>>7;h+=h<<3;h^=h>>>17;h+=h<<5;return(h>>>0)%1e6/1e6;};}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function HandTrackingCursor(props){const{style,cursorShape,cursorSize,cursorOpacity,cursorBorderWidth,cursorBorderColor,showCenterDot,centerDotSize,centerDotColor,normalColor,pinchColor,dragColor,cursorShadow,cursorBlendMode,smoothing,pinchThreshold,minDetectionConfidence,minTrackingConfidence,showPreview,previewWidth,previewHeight,previewOpacity,mirror,previewRadius,previewBorderColor,previewBackground,showStatus,statusPosition,statusBackground,statusTextColor,statusDetectedColor,statusPinchColor,statusDragColor,debugTargetDetection,enableLongPinchLinkOpen,longPinchDurationMs,showLongPinchProgress,progressRingColor,progressRingBackgroundColor,progressRingWidth,enableElementFollow,elementFollowStrength,elementFollowRadius,elementFollowSmoothing,elementFollowSelector,enableRandomizeOnLoad,randomizeSelector,randomizeAmountX,randomizeAmountY,randomizeRotation,randomizeScale,randomizeSeed,randomizeOnlyOncePerSession,showLongPinchTargetLabel,targetLabelPosition,targetLabelBackground,targetLabelTextColor,targetLabelFontSize,targetLabelMaxWidth}=props;const isStatic=useIsStaticRenderer();const rootRef=useRef(null);const cursorRef=useRef(null);const videoRef=useRef(null);const streamRef=useRef(null);const handsRef=useRef(null);const cameraRef=useRef(null);const rafRef=useRef(0);const sendFrameRafRef=useRef(0);const targetPosRef=useRef({x:0,y:0});const cursorPosRef=useRef({x:0,y:0});const pinchRef=useRef(false);const dragRef=useRef(null);const pinchStartTimeRef=useRef(0);const longPinchTriggeredRef=useRef(false);const suppressDragForPinchRef=useRef(false);const longPinchProgressRef=useRef(0);const followElementsRef=useRef([]);const followBaseTransformRef=useRef(new Map);const followOffsetRef=useRef(new Map);const lastFollowCollectRef=useRef(0);const randomizedBaseTransformRef=useRef(new Map);const randomizeTimeoutRef=useRef(0);const targetLabelRef=useRef(\"\");const[status,setStatus]=useState(\"Initializing camera...\");const[error,setError]=useState(\"\");const[handDetected,setHandDetected]=useState(false);const[pinching,setPinching]=useState(false);const[dragging,setDragging]=useState(false);const[detectionDebug,setDetectionDebug]=useState(\"\");const[longPinchProgress,setLongPinchProgress]=useState(0);const[longPinchResult,setLongPinchResult]=useState(\"\");const[longPinchRawLink,setLongPinchRawLink]=useState(\"\");const[longPinchNormalizedLink,setLongPinchNormalizedLink]=useState(\"\");const[affectedFollowCount,setAffectedFollowCount]=useState(0);const[randomizedCount,setRandomizedCount]=useState(0);const[longPinchTargetLabel,setLongPinchTargetLabel]=useState(\"\");const cursorColor=useMemo(()=>{if(dragging)return dragColor;if(pinching)return pinchColor;return normalColor;},[dragColor,dragging,normalColor,pinchColor,pinching]);useEffect(()=>{if(typeof window===\"undefined\")return;const onResize=()=>{const w=window.innerWidth*.5;const h=window.innerHeight*.5;targetPosRef.current={x:w,y:h};cursorPosRef.current={x:w,y:h};};onResize();window.addEventListener(\"resize\",onResize);return()=>window.removeEventListener(\"resize\",onResize);},[]);useEffect(()=>{if(isStatic||typeof window===\"undefined\"){startTransition(()=>setStatus(\"Static preview\"));return;}let disposed=false;async function setup(){try{startTransition(()=>{setError(\"\");setStatus(\"Loading MediaPipe...\");});await loadScript(MEDIAPIPE_HANDS_SRC);await loadScript(MEDIAPIPE_CAMERA_SRC);if(disposed)return;if(!window.Hands){throw new Error(\"MediaPipe Hands did not load\");}startTransition(()=>setStatus(\"Requesting camera permission...\"));const stream=await navigator.mediaDevices.getUserMedia({video:{facingMode:\"user\"},audio:false});if(disposed)return;streamRef.current=stream;if(!videoRef.current){throw new Error(\"Video element unavailable\");}videoRef.current.srcObject=stream;await videoRef.current.play();if(disposed)return;const hands=new window.Hands({locateFile:file=>`https://cdn.jsdelivr.net/npm/@mediapipe/hands/${file}`});hands.setOptions({maxNumHands:1,minDetectionConfidence,minTrackingConfidence,modelComplexity:1});hands.onResults(results=>{const landmarks=results?.multiHandLandmarks?.[0];const hasHand=!!landmarks;startTransition(()=>setHandDetected(hasHand));if(!landmarks){if(pinchRef.current){pinchRef.current=false;startTransition(()=>setPinching(false));endDrag();}pinchStartTimeRef.current=0;longPinchTriggeredRef.current=false;suppressDragForPinchRef.current=false;longPinchProgressRef.current=0;startTransition(()=>setLongPinchProgress(0));startTransition(()=>{setLongPinchRawLink(\"\");setLongPinchNormalizedLink(\"\");setLongPinchTargetLabel(\"\");});targetLabelRef.current=\"\";return;}const indexTip=landmarks[8];const thumbTip=landmarks[4];if(!indexTip||!thumbTip||typeof window===\"undefined\")return;const vw=window.innerWidth;const vh=window.innerHeight;const mappedX=(mirror?1-indexTip.x:indexTip.x)*vw;const mappedY=indexTip.y*vh;targetPosRef.current={x:mappedX,y:mappedY};const dx=(thumbTip.x-indexTip.x)*vw;const dy=(thumbTip.y-indexTip.y)*vh;const dist=Math.sqrt(dx*dx+dy*dy);const isPinch=dist<=pinchThreshold;if(isPinch!==pinchRef.current){pinchRef.current=isPinch;startTransition(()=>setPinching(isPinch));if(isPinch){pinchStartTimeRef.current=performance.now();longPinchTriggeredRef.current=false;suppressDragForPinchRef.current=false;longPinchProgressRef.current=0;startTransition(()=>setLongPinchProgress(0));startTransition(()=>{setLongPinchRawLink(\"\");setLongPinchNormalizedLink(\"\");setLongPinchTargetLabel(\"\");});targetLabelRef.current=\"\";startDrag(mappedX,mappedY);}else{endDrag();pinchStartTimeRef.current=0;longPinchTriggeredRef.current=false;suppressDragForPinchRef.current=false;longPinchProgressRef.current=0;startTransition(()=>setLongPinchProgress(0));startTransition(()=>{setLongPinchRawLink(\"\");setLongPinchNormalizedLink(\"\");setLongPinchTargetLabel(\"\");});targetLabelRef.current=\"\";}}});handsRef.current=hands;if(window.Camera){const camera=new window.Camera(videoRef.current,{onFrame:async()=>{if(handsRef.current&&videoRef.current){await handsRef.current.send({image:videoRef.current});}},width:640,height:480});camera.start();cameraRef.current=camera;}else{const loop=async()=>{if(disposed)return;if(handsRef.current&&videoRef.current&&!videoRef.current.paused){await handsRef.current.send({image:videoRef.current});}sendFrameRafRef.current=window.requestAnimationFrame(loop);};sendFrameRafRef.current=window.requestAnimationFrame(loop);}startTransition(()=>setStatus(\"Tracking hand\"));}catch(e){startTransition(()=>{setError(e?.message||\"Failed to initialize hand tracking\");setStatus(\"Error\");});}}const startDrag=(x,y)=>{if(dragRef.current||typeof window===\"undefined\")return;if(suppressDragForPinchRef.current)return;const target=findDragTarget(x,y,rootRef.current);if(!target)return;if(rootRef.current&&(target===rootRef.current||rootRef.current.contains(target)))return;if(debugTargetDetection){const cls=typeof target.className===\"string\"?target.className:\"\";startTransition(()=>setDetectionDebug(`${target.tagName.toLowerCase()}${cls?`.${cls.split(\" \").slice(0,2).join(\".\")}`:\"\"}`));}const rect=target.getBoundingClientRect();const computed=window.getComputedStyle(target);const baseTransform=target.style.transform||\"\";const baseWillChange=target.style.willChange||\"\";target.style.willChange=\"transform\";target.classList.add(\"hand-tracking-dragging\");dragRef.current={el:target,baseTransform,baseLeft:rect.left,baseTop:rect.top,offsetX:x-rect.left,offsetY:y-rect.top,baseWillChange:baseWillChange||computed.willChange};startTransition(()=>setDragging(true));};const endDrag=()=>{const current=dragRef.current;if(!current)return;current.el.style.willChange=current.baseWillChange===\"auto\"?\"\":current.baseWillChange;current.el.classList.remove(\"hand-tracking-dragging\");dragRef.current=null;startTransition(()=>setDragging(false));};const collectExternalElements=selectorOverride=>{if(typeof document===\"undefined\"||typeof window===\"undefined\")return[];const selector=selectorOverride?.trim()||DEFAULT_EXTERNAL_SELECTOR;const candidates=Array.from(document.querySelectorAll(selector));const vw=window.innerWidth;const vh=window.innerHeight;const maxArea=vw*vh*.95;const filtered=[];for(const el of candidates){if(!el||el===document.body||el===document.documentElement)continue;if(rootRef.current&&(el===rootRef.current||rootRef.current.contains(el)))continue;if([\"SCRIPT\",\"STYLE\",\"LINK\",\"META\",\"HEAD\"].includes(el.tagName))continue;const computed=window.getComputedStyle(el);if(computed.display===\"none\"||computed.visibility===\"hidden\"||computed.opacity===\"0\")continue;const rect=el.getBoundingClientRect();if(rect.width<2||rect.height<2)continue;if(rect.width*rect.height>maxArea)continue;filtered.push(el);}return filtered;};const restoreRandomizedTransforms=()=>{for(const[el,base]of randomizedBaseTransformRef.current.entries()){if(rootRef.current&&(el===rootRef.current||rootRef.current.contains(el)))continue;el.style.transform=base;}randomizedBaseTransformRef.current.clear();startTransition(()=>setRandomizedCount(0));};const restoreFollowTransforms=()=>{for(const[el,base]of followBaseTransformRef.current.entries()){if(rootRef.current&&(el===rootRef.current||rootRef.current.contains(el)))continue;el.style.transform=base;}followElementsRef.current=[];followBaseTransformRef.current.clear();followOffsetRef.current.clear();startTransition(()=>setAffectedFollowCount(0));};const collectFollowElements=()=>{if(!enableElementFollow||typeof document===\"undefined\"||typeof window===\"undefined\"){restoreFollowTransforms();return;}const filtered=collectExternalElements(elementFollowSelector);const nextSet=new Set(filtered);for(const[el,base]of followBaseTransformRef.current.entries()){if(!nextSet.has(el)){el.style.transform=base;followBaseTransformRef.current.delete(el);followOffsetRef.current.delete(el);}}for(const el of filtered){if(!followBaseTransformRef.current.has(el)){followBaseTransformRef.current.set(el,el.style.transform||\"\");followOffsetRef.current.set(el,{x:0,y:0});}}followElementsRef.current=filtered;startTransition(()=>setAffectedFollowCount(filtered.length));};const applyRandomizeOnLoad=()=>{if(!enableRandomizeOnLoad||typeof window===\"undefined\"){restoreRandomizedTransforms();return;}if(randomizeOnlyOncePerSession){const key=`handtracking-randomized-${randomizeSeed||\"session\"}`;const already=window.sessionStorage.getItem(key);if(already===\"1\"){startTransition(()=>setRandomizedCount(0));return;}window.sessionStorage.setItem(key,\"1\");}restoreRandomizedTransforms();const elements=collectExternalElements(randomizeSelector);const seed=randomizeSeed||`${Date.now()}-${Math.random()}`;const rnd=createSeededRandom(seed);let appliedCount=0;for(const el of elements){if(rootRef.current&&(el===rootRef.current||rootRef.current.contains(el)))continue;if(dragRef.current&&dragRef.current.el===el)continue;const base=el.style.transform||\"\";randomizedBaseTransformRef.current.set(el,base);const tx=(rnd()*2-1)*randomizeAmountX;const ty=(rnd()*2-1)*randomizeAmountY;const rot=(rnd()*2-1)*randomizeRotation;const sc=1+(rnd()*2-1)*randomizeScale;el.style.transform=`${base} translate3d(${tx.toFixed(2)}px, ${ty.toFixed(2)}px, 0) rotate(${rot.toFixed(2)}deg) scale(${sc.toFixed(3)})`.trim();if(followBaseTransformRef.current.has(el)){followBaseTransformRef.current.set(el,el.style.transform||\"\");followOffsetRef.current.set(el,{x:0,y:0});}appliedCount+=1;}startTransition(()=>setRandomizedCount(appliedCount));};const animate=()=>{if(disposed||typeof window===\"undefined\")return;const current=cursorPosRef.current;const target=targetPosRef.current;const lerp=Math.min(1,Math.max(.01,smoothing));const nx=current.x+(target.x-current.x)*lerp;const ny=current.y+(target.y-current.y)*lerp;cursorPosRef.current={x:nx,y:ny};if(cursorRef.current){cursorRef.current.style.transform=`translate3d(${nx-cursorSize/2}px, ${ny-cursorSize/2}px, 0)`;}if(pinchRef.current){if(!pinchStartTimeRef.current)pinchStartTimeRef.current=performance.now();const elapsed=performance.now()-pinchStartTimeRef.current;const progress=Math.max(0,Math.min(1,elapsed/longPinchDurationMs));if(Math.abs(progress-longPinchProgressRef.current)>.01||progress===0||progress===1){longPinchProgressRef.current=progress;startTransition(()=>setLongPinchProgress(progress));}const hoveredLinkTarget=findLinkTarget(nx,ny,rootRef.current);const nextLabel=hoveredLinkTarget?.label||\"\";if(nextLabel!==targetLabelRef.current){targetLabelRef.current=nextLabel;startTransition(()=>setLongPinchTargetLabel(nextLabel));}if(!longPinchTriggeredRef.current&&progress>=1){longPinchTriggeredRef.current=true;const linkTarget=hoveredLinkTarget;if(linkTarget&&enableLongPinchLinkOpen){endDrag();suppressDragForPinchRef.current=true;const rawHref=linkTarget.rawHref;const normalizedHref=linkTarget.normalizedHref;if(debugTargetDetection){startTransition(()=>{setLongPinchResult(`Navigate: ${normalizedHref}`);setLongPinchRawLink(rawHref);setLongPinchNormalizedLink(normalizedHref);});}window.location.assign(normalizedHref);}else if(debugTargetDetection){startTransition(()=>{setLongPinchResult(\"No valid link found\");setLongPinchRawLink(\"\");setLongPinchNormalizedLink(\"\");});}}}else if(longPinchProgressRef.current!==0){longPinchProgressRef.current=0;startTransition(()=>setLongPinchProgress(0));targetLabelRef.current=\"\";startTransition(()=>setLongPinchTargetLabel(\"\"));}const activeDrag=dragRef.current;if(activeDrag&&pinchRef.current){if(rootRef.current&&(activeDrag.el===rootRef.current||rootRef.current.contains(activeDrag.el)||!isValidDragCandidate(activeDrag.el,rootRef.current))){endDrag();rafRef.current=window.requestAnimationFrame(animate);return;}const desiredLeft=nx-activeDrag.offsetX;const desiredTop=ny-activeDrag.offsetY;const tx=desiredLeft-activeDrag.baseLeft;const ty=desiredTop-activeDrag.baseTop;activeDrag.el.style.transform=`${activeDrag.baseTransform} translate3d(${tx}px, ${ty}px, 0)`.trim();}const now=performance.now();if(enableElementFollow&&now-lastFollowCollectRef.current>1200){lastFollowCollectRef.current=now;collectFollowElements();}if(enableElementFollow&&handDetected){const elements=followElementsRef.current;for(const el of elements){if(!el||!followBaseTransformRef.current.has(el))continue;if(rootRef.current&&(el===rootRef.current||rootRef.current.contains(el)))continue;if(activeDrag&&el===activeDrag.el)continue;const rect=el.getBoundingClientRect();const cx=rect.left+rect.width*.5;const cy=rect.top+rect.height*.5;const dx=nx-cx;const dy=ny-cy;const dist=Math.sqrt(dx*dx+dy*dy);const influence=Math.max(0,1-dist/Math.max(1,elementFollowRadius));const influenceCurve=influence*influence;const targetX=dx/Math.max(1,elementFollowRadius)*elementFollowStrength*influenceCurve;const targetY=dy/Math.max(1,elementFollowRadius)*elementFollowStrength*influenceCurve;const currentOffset=followOffsetRef.current.get(el)||{x:0,y:0};const smooth=Math.max(.01,Math.min(.5,elementFollowSmoothing));const nextX=currentOffset.x+(targetX-currentOffset.x)*smooth;const nextY=currentOffset.y+(targetY-currentOffset.y)*smooth;followOffsetRef.current.set(el,{x:nextX,y:nextY});const base=followBaseTransformRef.current.get(el)||\"\";el.style.transform=`${base} translate3d(${nextX.toFixed(2)}px, ${nextY.toFixed(2)}px, 0)`.trim();}}else if(followBaseTransformRef.current.size>0){restoreFollowTransforms();}rafRef.current=window.requestAnimationFrame(animate);};setup();randomizeTimeoutRef.current=window.setTimeout(()=>{window.requestAnimationFrame(()=>applyRandomizeOnLoad());},250);rafRef.current=window.requestAnimationFrame(animate);return()=>{disposed=true;if(typeof window!==\"undefined\"){if(rafRef.current)window.cancelAnimationFrame(rafRef.current);if(sendFrameRafRef.current)window.cancelAnimationFrame(sendFrameRafRef.current);if(randomizeTimeoutRef.current)window.clearTimeout(randomizeTimeoutRef.current);}const dragState=dragRef.current;if(dragState){dragState.el.style.transform=dragState.baseTransform;dragState.el.style.willChange=dragState.baseWillChange===\"auto\"?\"\":dragState.baseWillChange;dragState.el.classList.remove(\"hand-tracking-dragging\");}dragRef.current=null;pinchStartTimeRef.current=0;longPinchTriggeredRef.current=false;suppressDragForPinchRef.current=false;longPinchProgressRef.current=0;startTransition(()=>setLongPinchProgress(0));startTransition(()=>{setLongPinchRawLink(\"\");setLongPinchNormalizedLink(\"\");setLongPinchTargetLabel(\"\");});targetLabelRef.current=\"\";restoreFollowTransforms();restoreRandomizedTransforms();if(cameraRef.current?.stop)cameraRef.current.stop();cameraRef.current=null;if(handsRef.current?.close)handsRef.current.close();handsRef.current=null;if(videoRef.current){videoRef.current.pause();videoRef.current.srcObject=null;}if(streamRef.current){for(const track of streamRef.current.getTracks())track.stop();streamRef.current=null;}};},[cursorSize,debugTargetDetection,enableLongPinchLinkOpen,enableElementFollow,elementFollowRadius,elementFollowSelector,elementFollowSmoothing,elementFollowStrength,enableRandomizeOnLoad,isStatic,longPinchDurationMs,minDetectionConfidence,minTrackingConfidence,mirror,pinchThreshold,randomizeAmountX,randomizeAmountY,randomizeOnlyOncePerSession,randomizeRotation,randomizeScale,randomizeSeed,randomizeSelector,showLongPinchTargetLabel,smoothing,targetLabelBackground,targetLabelFontSize,targetLabelMaxWidth,targetLabelPosition,targetLabelTextColor]);const statusPositionStyle=useMemo(()=>{const base={position:\"fixed\",zIndex:2147483646};if(statusPosition===\"topLeft\")return{...base,top:12,left:12};if(statusPosition===\"topRight\")return{...base,top:12,right:12};if(statusPosition===\"bottomLeft\")return{...base,bottom:12,left:12};return{...base,bottom:12,right:12};},[statusPosition]);const shapeStyle=useMemo(()=>{if(cursorShape===\"square\")return{borderRadius:4};if(cursorShape===\"dot\")return{borderRadius:\"50%\"};if(cursorShape===\"crosshair\")return{borderRadius:2};return{borderRadius:\"50%\"};},[cursorShape]);const progressAngle=useMemo(()=>Math.max(0,Math.min(1,longPinchProgress))*360,[longPinchProgress]);const targetLabelStyle=useMemo(()=>{if(targetLabelPosition===\"left\")return{right:cursorSize+10,top:\"50%\",transform:\"translateY(-50%)\"};if(targetLabelPosition===\"top\")return{bottom:cursorSize+10,left:\"50%\",transform:\"translateX(-50%)\"};if(targetLabelPosition===\"bottom\")return{top:cursorSize+10,left:\"50%\",transform:\"translateX(-50%)\"};return{left:cursorSize+10,top:\"50%\",transform:\"translateY(-50%)\"};},[cursorSize,targetLabelPosition]);return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",pointerEvents:\"none\",overflow:\"hidden\",...style},children:[!isStatic&&/*#__PURE__*/_jsxs(\"div\",{ref:cursorRef,style:{position:\"fixed\",left:0,top:0,width:cursorSize,height:cursorSize,background:cursorColor,opacity:cursorOpacity,border:`${cursorBorderWidth}px solid ${cursorBorderColor}`,boxShadow:cursorShadow,mixBlendMode:cursorBlendMode,zIndex:2147483647,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",pointerEvents:\"none\",willChange:\"transform\",...shapeStyle},children:[showLongPinchProgress&&pinching&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:-progressRingWidth-4,borderRadius:\"50%\",background:`conic-gradient(${progressRingColor} ${progressAngle}deg, ${progressRingBackgroundColor} ${progressAngle}deg 360deg)`,WebkitMask:`radial-gradient(circle, transparent calc(50% - ${progressRingWidth}px), black calc(50% - ${progressRingWidth}px))`,mask:`radial-gradient(circle, transparent calc(50% - ${progressRingWidth}px), black calc(50% - ${progressRingWidth}px))`,pointerEvents:\"none\"}}),cursorShape===\"crosshair\"&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",width:1,height:\"100%\",background:cursorBorderColor,opacity:.8}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",height:1,width:\"100%\",background:cursorBorderColor,opacity:.8}})]}),showCenterDot&&/*#__PURE__*/_jsx(\"div\",{style:{width:centerDotSize,height:centerDotSize,borderRadius:\"50%\",background:centerDotColor}}),showLongPinchTargetLabel&&pinching&&!!longPinchTargetLabel&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",...targetLabelStyle,background:targetLabelBackground,color:targetLabelTextColor,fontSize:targetLabelFontSize,lineHeight:1.2,padding:\"6px 8px\",borderRadius:8,maxWidth:targetLabelMaxWidth,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",backdropFilter:\"blur(6px)\",pointerEvents:\"none\"},children:longPinchTargetLabel})]}),showPreview&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",right:16,bottom:16,width:previewWidth,height:previewHeight,borderRadius:previewRadius,overflow:\"hidden\",border:`1px solid ${previewBorderColor}`,background:previewBackground,opacity:previewOpacity,zIndex:2147483645},children:[/*#__PURE__*/_jsx(\"video\",{ref:videoRef,autoPlay:true,playsInline:true,muted:true,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",transform:mirror?\"scaleX(-1)\":\"none\",background:previewBackground}}),isStatic&&/*#__PURE__*/_jsx(\"img\",{...defaultImageFallback,alt:defaultImageFallback.alt,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",position:\"absolute\",inset:0}})]}),showStatus&&/*#__PURE__*/_jsxs(\"div\",{style:{...statusPositionStyle,background:statusBackground,color:statusTextColor,borderRadius:10,padding:\"8px 10px\",fontSize:11,lineHeight:1.3,fontWeight:600,minWidth:140,backdropFilter:\"blur(6px)\"},children:[/*#__PURE__*/_jsxs(\"div\",{children:[\"State: \",error?\"Error\":status]}),/*#__PURE__*/_jsxs(\"div\",{style:{color:handDetected?statusDetectedColor:statusTextColor},children:[\"Hand: \",handDetected?\"Detected\":\"Not found\"]}),/*#__PURE__*/_jsxs(\"div\",{style:{color:pinching?statusPinchColor:statusTextColor},children:[\"Pinch: \",pinching?\"Yes\":\"No\"]}),/*#__PURE__*/_jsxs(\"div\",{style:{color:dragging?statusDragColor:statusTextColor},children:[\"Drag: \",dragging?\"Active\":\"Idle\"]}),debugTargetDetection&&/*#__PURE__*/_jsxs(\"div\",{children:[\"Target: \",detectionDebug||\"None\"]}),debugTargetDetection&&/*#__PURE__*/_jsxs(\"div\",{children:[\"Hold: \",Math.round(longPinchProgress*100),\"%\"]}),debugTargetDetection&&/*#__PURE__*/_jsxs(\"div\",{children:[\"Long Pinch: \",longPinchResult||\"None\"]}),debugTargetDetection&&/*#__PURE__*/_jsxs(\"div\",{children:[\"Raw Link: \",longPinchRawLink||\"None\"]}),debugTargetDetection&&/*#__PURE__*/_jsxs(\"div\",{children:[\"Normalized Link: \",longPinchNormalizedLink||\"None\"]}),debugTargetDetection&&/*#__PURE__*/_jsxs(\"div\",{children:[\"Target Label: \",longPinchTargetLabel||\"None\"]}),debugTargetDetection&&/*#__PURE__*/_jsxs(\"div\",{children:[\"Follow Elements: \",affectedFollowCount]}),debugTargetDetection&&/*#__PURE__*/_jsxs(\"div\",{children:[\"Randomized Elements: \",randomizedCount]}),error&&/*#__PURE__*/_jsx(\"div\",{style:{color:\"#ff6b6b\"},children:error})]})]});}addPropertyControls(HandTrackingCursor,{cursorShape:{type:ControlType.Enum,title:\"Shape\",options:[\"circle\",\"square\",\"crosshair\",\"dot\"],optionTitles:[\"Circle\",\"Square\",\"Crosshair\",\"Dot\"],defaultValue:\"circle\"},cursorSize:{type:ControlType.Number,title:\"Size\",defaultValue:36,min:8,max:160,step:1},cursorOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:.9,min:.1,max:1,step:.01},cursorBorderWidth:{type:ControlType.Number,title:\"Border\",defaultValue:2,min:0,max:10,step:1},cursorBorderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"#EEEEEE\"},showCenterDot:{type:ControlType.Boolean,title:\"Center Dot\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},centerDotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:6,min:1,max:24,step:1},centerDotColor:{type:ControlType.Color,title:\"Dot Color\",defaultValue:\"#FFFFFF\"},normalColor:{type:ControlType.Color,title:\"Normal\",defaultValue:\"#FFFFFF\"},pinchColor:{type:ControlType.Color,title:\"Pinch\",defaultValue:\"#CCCCCC\"},dragColor:{type:ControlType.Color,title:\"Drag\",defaultValue:\"#000000\"},cursorShadow:{type:ControlType.BoxShadow,title:\"Shadow\",defaultValue:\"0px 4px 16px rgba(0,0,0,0.25)\"},cursorBlendMode:{type:ControlType.Enum,title:\"Blend\",options:[\"normal\",\"multiply\",\"screen\",\"overlay\",\"difference\",\"exclusion\"],defaultValue:\"normal\"},smoothing:{type:ControlType.Number,title:\"Smoothing\",defaultValue:.35,min:.01,max:1,step:.01},pinchThreshold:{type:ControlType.Number,title:\"Pinch Thresh\",defaultValue:46,min:4,max:200,step:1},minDetectionConfidence:{type:ControlType.Number,title:\"Detect Conf\",defaultValue:.6,min:.1,max:1,step:.01},minTrackingConfidence:{type:ControlType.Number,title:\"Track Conf\",defaultValue:.6,min:.1,max:1,step:.01},showPreview:{type:ControlType.Boolean,title:\"Show Preview\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},previewWidth:{type:ControlType.Number,title:\"Preview W\",defaultValue:220,min:80,max:640,step:1},previewHeight:{type:ControlType.Number,title:\"Preview H\",defaultValue:140,min:60,max:480,step:1},previewOpacity:{type:ControlType.Number,title:\"Preview Op\",defaultValue:.92,min:.1,max:1,step:.01},mirror:{type:ControlType.Boolean,title:\"Mirror\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},previewRadius:{type:ControlType.BorderRadius,title:\"Preview R\",defaultValue:\"14px\"},previewBorderColor:{type:ControlType.Color,title:\"Preview Border\",defaultValue:\"#EEEEEE\"},previewBackground:{type:ControlType.Color,title:\"Preview BG\",defaultValue:\"#F5F5F5\"},showStatus:{type:ControlType.Boolean,title:\"Show Status\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},statusPosition:{type:ControlType.Enum,title:\"Status Pos\",options:[\"topLeft\",\"topRight\",\"bottomLeft\",\"bottomRight\"],optionTitles:[\"Top Left\",\"Top Right\",\"Bottom Left\",\"Bottom Right\"],defaultValue:\"topLeft\"},statusBackground:{type:ControlType.Color,title:\"Status BG\",defaultValue:\"#000000\"},statusTextColor:{type:ControlType.Color,title:\"Status Text\",defaultValue:\"#FFFFFF\"},statusDetectedColor:{type:ControlType.Color,title:\"Detected\",defaultValue:\"#00D26A\"},statusPinchColor:{type:ControlType.Color,title:\"Pinch\",defaultValue:\"#FFB020\"},statusDragColor:{type:ControlType.Color,title:\"Drag\",defaultValue:\"#4C8DFF\"},debugTargetDetection:{type:ControlType.Boolean,title:\"Debug Target\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},enableLongPinchLinkOpen:{type:ControlType.Boolean,title:\"Hold Open\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},longPinchDurationMs:{type:ControlType.Number,title:\"Hold Ms\",defaultValue:3e3,min:1e3,max:1e4,step:250},showLongPinchProgress:{type:ControlType.Boolean,title:\"Show Ring\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},progressRingColor:{type:ControlType.Color,title:\"Ring\",defaultValue:\"#4C8DFF\"},progressRingBackgroundColor:{type:ControlType.Color,title:\"Ring BG\",defaultValue:\"rgba(255,255,255,0.28)\"},progressRingWidth:{type:ControlType.Number,title:\"Ring W\",defaultValue:3,min:1,max:12,step:1},enableElementFollow:{type:ControlType.Boolean,title:\"Elem Follow\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},elementFollowStrength:{type:ControlType.Number,title:\"Follow Str\",defaultValue:4,min:0,max:24,step:.5},elementFollowRadius:{type:ControlType.Number,title:\"Follow Rad\",defaultValue:420,min:80,max:1200,step:20},elementFollowSmoothing:{type:ControlType.Number,title:\"Follow Smooth\",defaultValue:.08,min:.01,max:.5,step:.01},elementFollowSelector:{type:ControlType.String,title:\"Follow Sel\",defaultValue:\"\",placeholder:\"Optional CSS selector\"},enableRandomizeOnLoad:{type:ControlType.Boolean,title:\"Rand On Load\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},randomizeSelector:{type:ControlType.String,title:\"Rand Sel\",defaultValue:\"\",placeholder:\"Optional CSS selector\"},randomizeAmountX:{type:ControlType.Number,title:\"Rand X\",defaultValue:80,min:0,max:400,step:5},randomizeAmountY:{type:ControlType.Number,title:\"Rand Y\",defaultValue:80,min:0,max:400,step:5},randomizeRotation:{type:ControlType.Number,title:\"Rand Rot\",defaultValue:0,min:0,max:30,step:1},randomizeScale:{type:ControlType.Number,title:\"Rand Scale\",defaultValue:0,min:0,max:.5,step:.01},randomizeSeed:{type:ControlType.String,title:\"Rand Seed\",defaultValue:\"\",placeholder:\"Optional seed\"},randomizeOnlyOncePerSession:{type:ControlType.Boolean,title:\"Rand 1/Session\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},showLongPinchTargetLabel:{type:ControlType.Boolean,title:\"Show Label\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},targetLabelPosition:{type:ControlType.Enum,title:\"Label Pos\",options:[\"right\",\"left\",\"top\",\"bottom\"],optionTitles:[\"Right\",\"Left\",\"Top\",\"Bottom\"],defaultValue:\"right\"},targetLabelBackground:{type:ControlType.Color,title:\"Label BG\",defaultValue:\"rgba(0,0,0,0.72)\"},targetLabelTextColor:{type:ControlType.Color,title:\"Label Text\",defaultValue:\"#FFFFFF\"},targetLabelFontSize:{type:ControlType.Number,title:\"Label Size\",defaultValue:12,min:9,max:24,step:1},targetLabelMaxWidth:{type:ControlType.Number,title:\"Label MaxW\",defaultValue:220,min:80,max:420,step:1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HandTrackingCursor\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HandTrackingCursor.map"],"mappings":"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"}