{"version":3,"file":"Examples.D9WAk5Ut.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/yurCKALQZbSs6mKE1ZTV/CHUJEbDZzxVjDlpWvUeF/Examples.js"],"sourcesContent":["// Add a reusable Framer override that prevents link navigation after pointer drag (>5px),\n// while preserving normal click/tap navigation and keyboard-triggered activation.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useRef}from\"react\";export function PreventLinkAfterDrag(Component){return /*#__PURE__*/forwardRef(function PreventLinkAfterDragOverride(props,ref){const dragThreshold=5;const isPointerDownRef=useRef(false);const hasDraggedRef=useRef(false);const suppressNextClickRef=useRef(false);const startXRef=useRef(0);const startYRef=useRef(0);const resetPointerState=()=>{isPointerDownRef.current=false;hasDraggedRef.current=false;startXRef.current=0;startYRef.current=0;};const handlePointerDown=event=>{isPointerDownRef.current=true;hasDraggedRef.current=false;startXRef.current=event.clientX;startYRef.current=event.clientY;props.onPointerDown?.(event);};const handlePointerMove=event=>{if(isPointerDownRef.current&&!hasDraggedRef.current){const dx=event.clientX-startXRef.current;const dy=event.clientY-startYRef.current;const distance=Math.hypot(dx,dy);if(distance>dragThreshold)hasDraggedRef.current=true;}props.onPointerMove?.(event);};const handlePointerUp=event=>{if(hasDraggedRef.current){// Suppress the click generated right after a drag release.\nsuppressNextClickRef.current=true;}resetPointerState();props.onPointerUp?.(event);};const handlePointerCancel=event=>{resetPointerState();props.onPointerCancel?.(event);};const handleClickCapture=event=>{if(suppressNextClickRef.current){suppressNextClickRef.current=false;event.preventDefault();event.stopPropagation();return;}props.onClickCapture?.(event);};return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp:handlePointerUp,onPointerCancel:handlePointerCancel,onClickCapture:handleClickCapture});});}\nexport const __FramerMetadata__ = {\"exports\":{\"PreventLinkAfterDrag\":{\"type\":\"reactHoc\",\"name\":\"PreventLinkAfterDrag\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Examples.map"],"mappings":"yHAEgF,SAAgB,EAAqB,EAAU,CAAC,OAAoB,EAAW,SAAsC,EAAM,EAAI,CAAC,IAA4B,EAAiBA,EAAO,EAAK,EAAQ,EAAcA,EAAO,EAAK,EAAQ,EAAqBA,EAAO,EAAK,EAAQ,EAAUA,EAAO,CAAC,EAAQ,EAAUA,EAAO,CAAC,EAAQ,MAAsB,CAAC,EAAiB,QAAQ,GAAM,EAAc,QAAQ,GAAM,EAAU,QAAQ,EAAE,EAAU,QAAQ,CAAE,EAAQ,EAAkB,GAAO,CAAC,EAAiB,QAAQ,GAAK,EAAc,QAAQ,GAAM,EAAU,QAAQ,EAAM,QAAQ,EAAU,QAAQ,EAAM,QAAQ,EAAM,gBAAgB,CAAK,CAAE,EAAQ,EAAkB,GAAO,CAAC,GAAG,EAAiB,SAAS,CAAC,EAAc,QAAQ,CAAC,IAAM,EAAG,EAAM,QAAQ,EAAU,QAAc,EAAG,EAAM,QAAQ,EAAU,QAAuB,KAAK,MAAM,EAAG,CAAc,EAAE,IAAc,EAAc,QAAQ,GAAK,CAAC,EAAM,gBAAgB,CAAK,CAAE,EAAQ,EAAgB,GAAO,CAAI,EAAc,UACjhC,EAAqB,QAAQ,IAAM,EAAkB,EAAE,EAAM,cAAc,CAAK,CAAE,EAAQ,EAAoB,GAAO,CAAC,EAAkB,EAAE,EAAM,kBAAkB,CAAK,CAAE,EAAQ,EAAmB,GAAO,CAAC,GAAG,EAAqB,QAAQ,CAAC,EAAqB,QAAQ,GAAM,EAAM,eAAe,EAAE,EAAM,gBAAgB,EAAE,MAAO,CAAC,EAAM,iBAAiB,CAAK,CAAE,EAAE,OAAoB,EAAK,EAAU,CAAK,MAAI,GAAG,EAAM,cAAc,EAAkB,cAAc,EAAkB,YAAY,EAAgB,gBAAgB,EAAoB,eAAe,CAAkB,CAAC,CAAE,CAAC,CAAE,iBADzhB,IAAqC"}