{"version":3,"file":"DesktopItemBehavior.5cotwxtb.mjs","names":["__legacyOverrideHOC_DataObserverContext","_jsx"],"sources":["https:/framerusercontent.com/modules/NFSlZSF1ul8Jji2CdYDi/Iz3sWSTOMLkZ3Ho2EoMX/DesktopItemBehavior.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";export function DesktopItemBehavior(){let dragged=false;let startX=0;let startY=0;const THRESHOLD=6;let activeEl=null;let prevCursor=null;let lastPointerType=\"mouse\";function setGrabbing(){if(activeEl&&activeEl.style){prevCursor=activeEl.style.cursor??\"\";activeEl.style.cursor=\"grabbing\";}}function resetCursor(){if(activeEl&&activeEl.style&&prevCursor!==null){activeEl.style.cursor=prevCursor;}prevCursor=null;}function dispatchPointerCancelIfNeeded(targetEl,pointerId){if(!targetEl)return;try{const cancelEvent=new PointerEvent(\"pointercancel\",{pointerId:pointerId??0,pointerType:\"touch\",bubbles:true,cancelable:true});targetEl.dispatchEvent(cancelEvent);}catch{try{const ev=document.createEvent(\"Event\");ev.initEvent(\"pointercancel\",true,true);targetEl.dispatchEvent(ev);}catch{}}}return{onPointerDown(event){const e=event.nativeEvent||event;lastPointerType=e.pointerType||lastPointerType;dragged=false;startX=e.clientX??0;startY=e.clientY??0;activeEl=event.target&&event.target.style?event.target:null;setGrabbing();},onPointerMove(event){const e=event.nativeEvent||event;const dx=Math.abs((e.clientX??0)-startX);const dy=Math.abs((e.clientY??0)-startY);if(!dragged&&(dx>THRESHOLD||dy>THRESHOLD)){dragged=true;}},onPointerUp(event){const e=event.nativeEvent||event;lastPointerType=e.pointerType||lastPointerType;resetCursor();// Only cancel pointer on MOBILE if a drag actually happened\nif(dragged&&(e.pointerType===\"touch\"||lastPointerType===\"touch\")){const cancelTarget=activeEl||event.target;try{if(typeof event.target.releasePointerCapture===\"function\"){event.target.releasePointerCapture(e.pointerId);}}catch{}dispatchPointerCancelIfNeeded(cancelTarget,e.pointerId);}activeEl=null;setTimeout(()=>{dragged=false;},120);},onPointerCancel(){resetCursor();activeEl=null;dragged=false;},onClickCapture(event){// Block click after drag (mobile + desktop)\nif(dragged){event.preventDefault();event.stopPropagation();dragged=false;return;}const e=event.nativeEvent||event;// Detect touch-capable device (Safari-safe)\nconst isTouchCapable=typeof navigator!==\"undefined\"&&navigator.maxTouchPoints>0;// If this is an anchor (<a href>) on a touch device → allow single tap\nconst anchor=event.target&&event.target.closest?event.target.closest(\"a[href]\"):null;if(isTouchCapable&&anchor){return;}// Otherwise fall back to pointer-type logic\nconst eventPointerType=e&&e.pointerType||lastPointerType||\"mouse\";// MOBILE: let Framer handle tap\nif(eventPointerType===\"touch\"){return;}// DESKTOP: require double click\nconst isDoubleClick=event.detail>=2;if(!isDoubleClick){event.preventDefault();event.stopPropagation();return;}},style:{touchAction:\"manipulation\",cursor:\"default\"}};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withDesktopItemBehavior(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...DesktopItemBehavior(props)});};}withDesktopItemBehavior.displayName=\"DesktopItemBehavior\";\nexport const __FramerMetadata__ = {\"exports\":{\"DesktopItemBehavior\":{\"type\":\"override\",\"name\":\"DesktopItemBehavior\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDesktopItemBehavior\":{\"type\":\"reactHoc\",\"name\":\"withDesktopItemBehavior\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DesktopItemBehavior.map"],"mappings":"4KAA2C,SAAgB,GAAqB,CAAC,IAAI,EAAQ,GAAU,EAAO,EAAM,EAAO,EAAwB,EAAS,KAAS,EAAW,KAAS,EAAgB,QAAQ,SAAS,GAAa,CAAI,GAAU,EAAS,QAAO,EAAW,EAAS,MAAM,QAAQ,GAAG,EAAS,MAAM,OAAO,YAAa,SAAS,GAAa,CAAI,GAAU,EAAS,OAAO,IAAa,OAAM,EAAS,MAAM,OAAO,GAAY,EAAW,KAAM,SAAS,EAA8B,EAAS,EAAU,CAAK,KAAgB,GAAG,CAAC,IAAM,EAAY,IAAI,aAAa,gBAAgB,CAAC,UAAU,GAAW,EAAE,YAAY,QAAQ,QAAQ,GAAK,WAAW,GAAK,CAAC,CAAC,EAAS,cAAc,EAAY,MAAO,CAAC,GAAG,CAAC,IAAM,EAAG,SAAS,YAAY,QAAQ,CAAC,EAAG,UAAU,gBAAgB,GAAK,GAAK,CAAC,EAAS,cAAc,EAAG,MAAO,IAAI,MAAM,CAAC,cAAc,EAAM,CAAC,IAAM,EAAE,EAAM,aAAa,EAAM,EAAgB,EAAE,aAAa,EAAgB,EAAQ,GAAM,EAAO,EAAE,SAAS,EAAE,EAAO,EAAE,SAAS,EAAE,EAAS,EAAM,QAAQ,EAAM,OAAO,MAAM,EAAM,OAAO,KAAK,GAAa,EAAG,cAAc,EAAM,CAAC,IAAM,EAAE,EAAM,aAAa,EAAY,EAAG,KAAK,KAAK,EAAE,SAAS,GAAG,EAAO,CAAO,EAAG,KAAK,KAAK,EAAE,SAAS,GAAG,EAAO,CAAI,CAAC,IAAU,EAAG,GAAW,EAAG,KAAY,EAAQ,KAAQ,YAAY,EAAM,CAAC,IAAM,EAAE,EAAM,aAAa,EAC1xC,GADgyC,EAAgB,EAAE,aAAa,EAAgB,GAAa,CACz1C,IAAU,EAAE,cAAc,SAAS,IAAkB,SAAS,CAAC,IAAM,EAAa,GAAU,EAAM,OAAO,GAAG,CAAI,OAAO,EAAM,OAAO,uBAAwB,YAAY,EAAM,OAAO,sBAAsB,EAAE,UAAU,MAAQ,EAAE,EAA8B,EAAa,EAAE,UAAU,CAAE,EAAS,KAAK,eAAe,CAAC,EAAQ,IAAQ,IAAI,EAAG,iBAAiB,CAAC,GAAa,CAAC,EAAS,KAAK,EAAQ,IAAQ,eAAe,EAAM,CACra,GAAG,EAAQ,CAAC,EAAM,gBAAgB,CAAC,EAAM,iBAAiB,CAAC,EAAQ,GAAM,OAAQ,IAAM,EAAE,EAAM,aAAa,EACtG,EAAsB,IAAY,QAAa,EAAU,eAAe,EACxE,EAAO,EAAM,QAAQ,EAAM,OAAO,QAAQ,EAAM,OAAO,QAAQ,UAAU,CAAC,KAAQ,QAAgB,KACjF,GAAG,EAAE,aAAa,GAAiB,WACpC,SACiB,EAAnB,EAAM,QAAQ,GAAoB,CAAC,EAAM,gBAAgB,CAAC,EAAM,iBAAiB,CAAC,SAAU,MAAM,CAAC,YAAY,eAAe,OAAO,UAAU,CAAC,CAAqJ,SAAgB,EAAwB,EAAE,CAAC,MAAO,KAAQ,EAA+BA,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,EAAoB,EAAM,CAAC,CAAC,uBAPvc,IAO2L,IAAmF,CAA6L,EAAwB,YAAY"}