{"version":3,"file":"Custom_cursor.CtfB7K7c.mjs","names":[],"sources":["https:/framerusercontent.com/modules/ARAcHy8sXwxKs4asApKY/skHn9g4QPu9J5z8yykvv/Custom_cursor.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useEffect}from\"react\";// Twitter Verified Badge as default cursor (48px)\nconst customCursorSVG=`data:image/svg+xml;base64,${btoa(`\n<svg width=\"48\" height=\"48\" viewBox=\"0 0 22 22\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path d=\"M20.396 11c-.018-.646-.215-1.275-.57-1.816-.354-.54-.852-.972-1.438-1.246.223-.607.27-1.264.14-1.897-.131-.634-.437-1.218-.882-1.687-.47-.445-1.053-.75-1.687-.882-.633-.13-1.29-.083-1.897.14-.273-.587-.704-1.086-1.245-1.44S11.647 1.62 11 1.604c-.646.017-1.273.213-1.813.568s-.969.854-1.24 1.44c-.608-.223-1.267-.272-1.902-.14-.635.13-1.22.436-1.69.882-.445.47-.749 1.055-.878 1.688-.13.633-.08 1.29.144 1.896-.587.274-1.087.705-1.443 1.245-.356.54-.555 1.17-.574 1.817.02.647.218 1.276.574 1.817.356.54.856.972 1.443 1.245-.224.606-.274 1.263-.144 1.896.13.634.433 1.218.877 1.688.47.443 1.054.747 1.687.878.633.132 1.29.084 1.897-.136.274.586.705 1.084 1.246 1.439.54.354 1.17.551 1.816.569.647-.016 1.276-.213 1.817-.567s.972-.854 1.245-1.44c.604.239 1.266.296 1.903.164.636-.132 1.22-.447 1.68-.907.46-.46.776-1.044.908-1.681s.075-1.299-.165-1.903c.586-.274 1.084-.705 1.439-1.246.354-.54.551-1.17.569-1.816zM9.662 14.85l-3.429-3.428 1.293-1.302 2.072 2.072 4.4-4.794 1.347 1.246z\" fill=\"#2453FD\"/>\n</svg>\n`)}`;// Hand pointer as pointer cursor (48px)\nconst pointerCursorSVG=`data:image/svg+xml;base64,${btoa(`\n<svg width=\"48\" height=\"48\" viewBox=\"0 0 48 49\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path d=\"M19.4995 3.09375C17.0327 3.09375 14.9995 5.12695 14.9995 7.59375V25.3125L14.0151 24.2812L13.6401 23.9531C11.9116 22.2246 9.0874 22.2246 7.35889 23.9531C5.63037 25.6816 5.63037 28.5059 7.35889 30.2344V30.2812L19.6401 42.4219L19.7339 42.4687L19.7808 42.5625C21.8022 44.0801 24.3804 45.0937 27.2808 45.0937H29.8589C36.6616 45.0937 42.1401 39.6152 42.1401 32.8125V21.0937C42.1401 18.627 40.1069 16.5937 37.6401 16.5937C37.0015 16.5937 36.4097 16.7695 35.8589 17.0156C35.3667 15.0645 33.5913 13.5937 31.4995 13.5937C30.3511 13.5937 29.2964 14.0449 28.4995 14.7656C27.7026 14.0449 26.6479 13.5937 25.4995 13.5937C24.9722 13.5937 24.4741 13.7051 23.9995 13.875V7.59375C23.9995 5.12695 21.9663 3.09375 19.4995 3.09375ZM19.4995 6.09375C20.3315 6.09375 20.9995 6.76172 20.9995 7.59375V24.0937H23.9995V18.0937C23.9995 17.2617 24.6675 16.5937 25.4995 16.5937C26.3315 16.5937 26.9995 17.2617 26.9995 18.0937V24.0937H29.9995V18.0937C29.9995 17.2617 30.6675 16.5937 31.4995 16.5937C32.3315 16.5937 32.9995 17.2617 32.9995 18.0937V24.0937H36.1401V21.0937C36.1401 20.2617 36.8081 19.5937 37.6401 19.5937C38.4722 19.5937 39.1401 20.2617 39.1401 21.0937V32.8125C39.1401 38.0098 35.0562 42.0937 29.8589 42.0937H27.2808C25.0835 42.0937 23.1851 41.3086 21.6089 40.125L9.46826 28.125C8.80029 27.457 8.80029 26.7305 9.46826 26.0625C10.1362 25.3945 10.8628 25.3945 11.5308 26.0625L17.9995 32.5312V7.59375C17.9995 6.76172 18.6675 6.09375 19.4995 6.09375Z\" fill=\"white\"/>\n  <path d=\"M19.4995 6.09375C20.3315 6.09375 20.9995 6.76172 20.9995 7.59375V24.0937H23.9995V18.0937C23.9995 17.2617 24.6675 16.5937 25.4995 16.5937C26.3315 16.5937 26.9995 17.2617 26.9995 18.0937V24.0937H29.9995V18.0937C29.9995 17.2617 30.6675 16.5937 31.4995 16.5937C32.3315 16.5937 32.9995 17.2617 32.9995 18.0937V24.0937H36.1401V21.0937C36.1401 20.2617 36.8081 19.5937 37.6401 19.5937C38.4722 19.5937 39.1401 20.2617 39.1401 21.0937V32.8125C39.1401 38.0098 35.0562 42.0937 29.8589 42.0937H27.2808C25.0835 42.0937 23.1851 41.3086 21.6089 40.125L9.46826 28.125C8.80029 27.457 8.80029 26.7305 9.46826 26.0625C10.1362 25.3945 10.8628 25.3945 11.5308 26.0625L17.9995 32.5312V7.59375C17.9995 6.76172 18.6675 6.09375 19.4995 6.09375Z\" fill=\"white\"/>\n  <path d=\"M19.4995 3.09375C17.0327 3.09375 14.9995 5.12695 14.9995 7.59375V25.3125L14.0151 24.2812L13.6401 23.9531C11.9116 22.2246 9.0874 22.2246 7.35889 23.9531C5.63037 25.6816 5.63037 28.5059 7.35889 30.2344V30.2812L19.6401 42.4219L19.7339 42.4687L19.7808 42.5625C21.8022 44.0801 24.3804 45.0937 27.2808 45.0937H29.8589C36.6616 45.0937 42.1401 39.6152 42.1401 32.8125V21.0937C42.1401 18.627 40.1069 16.5937 37.6401 16.5937C37.0015 16.5937 36.4097 16.7695 35.8589 17.0156C35.3667 15.0645 33.5913 13.5937 31.4995 13.5937C30.3511 13.5937 29.2964 14.0449 28.4995 14.7656C27.7026 14.0449 26.6479 13.5937 25.4995 13.5937C24.9722 13.5937 24.4741 13.7051 23.9995 13.875V7.59375C23.9995 5.12695 21.9663 3.09375 19.4995 3.09375ZM19.4995 6.09375C20.3315 6.09375 20.9995 6.76172 20.9995 7.59375V24.0937H23.9995V18.0937C23.9995 17.2617 24.6675 16.5937 25.4995 16.5937C26.3315 16.5937 26.9995 17.2617 26.9995 18.0937V24.0937H29.9995V18.0937C29.9995 17.2617 30.6675 16.5937 31.4995 16.5937C32.3315 16.5937 32.9995 17.2617 32.9995 18.0937V24.0937H36.1401V21.0937C36.1401 20.2617 36.8081 19.5937 37.6401 19.5937C38.4722 19.5937 39.1401 20.2617 39.1401 21.0937V32.8125C39.1401 38.0098 35.0562 42.0937 29.8589 42.0937H27.2808C25.0835 42.0937 23.1851 41.3086 21.6089 40.125L9.46826 28.125C8.80029 27.457 8.80029 26.7305 9.46826 26.0625C10.1362 25.3945 10.8628 25.3945 11.5308 26.0625L17.9995 32.5312V7.59375C17.9995 6.76172 18.6675 6.09375 19.4995 6.09375Z\" fill=\"black\"/>\n</svg>\n`)}`;// Function to detect if device is mobile\nconst isMobile=()=>{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768;};// Function to apply cursor styles with smooth transitions\nconst applyCursorStyles=()=>{if(isMobile())return;// Skip on mobile devices\n// Remove any existing custom cursor styles first\nconst existingStyle=document.querySelector(\"style[data-custom-cursor]\");if(existingStyle){existingStyle.remove();}const style=document.createElement(\"style\");style.setAttribute(\"data-custom-cursor\",\"true\");style.textContent=`\n    /* Reset all cursor transitions to prevent glitching */\n    *, *::before, *::after {\n      transition: none !important;\n    }\n    \n    /* Custom cursor for all elements - highest specificity */\n    html, body, * {\n      cursor: url('${customCursorSVG}') 24 24, auto !important;\n    }\n    \n    /* Pointer cursor for clickable elements - very specific selectors */\n    a, button, [role=\"button\"], [onclick], [data-framer-clickable=\"true\"], \n    input[type=\"button\"], input[type=\"submit\"], input[type=\"reset\"],\n    .framer-button, .framer-link, [data-framer-name*=\"button\"], \n    [data-framer-name*=\"link\"], [data-framer-name*=\"clickable\"],\n    [data-framer-component=\"Button\"], [data-framer-component=\"Link\"],\n    [data-framer-name*=\"Button\"], [data-framer-name*=\"Link\"],\n    div[onclick], span[onclick], p[onclick], img[onclick],\n    [style*=\"cursor: pointer\"], [style*=\"cursor:pointer\"] {\n      cursor: url('${pointerCursorSVG}') 24 24, pointer !important;\n    }\n    \n    /* Force pointer cursor on all children of clickable elements */\n    [data-framer-clickable=\"true\"] *,\n    [data-framer-clickable=\"true\"] *::before,\n    [data-framer-clickable=\"true\"] *::after,\n    a *, button *, [role=\"button\"] *, [onclick] * {\n      cursor: url('${pointerCursorSVG}') 24 24, pointer !important;\n    }\n    \n    /* Text inputs should keep text cursor */\n    input[type=\"text\"], input[type=\"email\"], input[type=\"password\"], \n    input[type=\"search\"], input[type=\"url\"], input[type=\"tel\"],\n    textarea, [contenteditable=\"true\"] {\n      cursor: url('${customCursorSVG}') 24 24, text !important;\n    }\n    \n    /* Disabled elements */\n    [disabled], .disabled {\n      cursor: url('${customCursorSVG}') 24 24, not-allowed !important;\n    }\n  `;document.head.appendChild(style);};// Function to handle dynamic content (for Framer's dynamic components)\nconst observeDynamicContent=()=>{if(isMobile())return;// Function to apply pointer cursor to clickable elements\nconst applyPointerCursor=element=>{const clickableSelectors=[\"a\",\"button\",'[role=\"button\"]',\"[onclick]\",'[data-framer-clickable=\"true\"]','[data-framer-name*=\"button\"]','[data-framer-name*=\"link\"]','[data-framer-name*=\"clickable\"]','[data-framer-component=\"Button\"]','[data-framer-component=\"Link\"]','[data-framer-name*=\"Button\"]','[data-framer-name*=\"Link\"]',\"div[onclick]\",\"span[onclick]\",\"p[onclick]\",\"img[onclick]\"];// Apply to all matching elements\nclickableSelectors.forEach(selector=>{const elements=element.querySelectorAll(selector);elements.forEach(el=>{el.style.cursor=`url('${pointerCursorSVG}') 24 24, pointer`;el.style.setProperty(\"cursor\",`url('${pointerCursorSVG}') 24 24, pointer`,\"important\");// Also apply to all children\nconst children=el.querySelectorAll(\"*\");children.forEach(child=>{child.style.cursor=`url('${pointerCursorSVG}') 24 24, pointer`;child.style.setProperty(\"cursor\",`url('${pointerCursorSVG}') 24 24, pointer`,\"important\");});});});// Check if the element itself is clickable\nif(element.matches(clickableSelectors.join(\", \"))){element.style.cursor=`url('${pointerCursorSVG}') 24 24, pointer`;element.style.setProperty(\"cursor\",`url('${pointerCursorSVG}') 24 24, pointer`,\"important\");}// Special handling for CMS content - look for common CMS patterns\nconst cmsSelectors=[\"[data-cms]\",\"[data-content]\",\"[data-dynamic]\",\".cms-content\",\".dynamic-content\",\".content-block\"];cmsSelectors.forEach(selector=>{const cmsElements=element.querySelectorAll(selector);cmsElements.forEach(cmsEl=>{// Find all clickable elements within CMS content\nconst clickableInCms=cmsEl.querySelectorAll('a, button, [onclick], [role=\"button\"]');clickableInCms.forEach(clickable=>{clickable.style.cursor=`url('${pointerCursorSVG}') 24 24, pointer`;clickable.style.setProperty(\"cursor\",`url('${pointerCursorSVG}') 24 24, pointer`,\"important\");});});});};const observer=new MutationObserver(mutations=>{mutations.forEach(mutation=>{mutation.addedNodes.forEach(node=>{if(node.nodeType===Node.ELEMENT_NODE){// Apply cursor styles to newly added elements\napplyPointerCursor(node);}});});});observer.observe(document.body,{childList:true,subtree:true});// Apply to existing elements with multiple attempts\nconst applyToExisting=()=>{applyPointerCursor(document.body);};// Multiple attempts to catch all elements\nsetTimeout(applyToExisting,100);setTimeout(applyToExisting,500);setTimeout(applyToExisting,1e3);// Also apply when page is fully loaded\nif(document.readyState===\"complete\"){applyToExisting();}else{window.addEventListener(\"load\",applyToExisting);}};// Lazy cursor configuration\nconst CURSOR_CONFIG={delay:.15,size:48,enabled:true};// Function to create lazy cursor effect\nconst createLazyCursor=()=>{if(isMobile()||!CURSOR_CONFIG.enabled)return;// Hide default cursor\ndocument.body.style.cursor=\"none\";// Create cursor elements\nconst defaultCursor=document.createElement(\"div\");const pointerCursor=document.createElement(\"div\");// Style the cursor elements\nconst cursorStyle=`\n    position: fixed;\n    width: ${CURSOR_CONFIG.size}px;\n    height: ${CURSOR_CONFIG.size}px;\n    pointer-events: none;\n    z-index: 9999;\n    background-size: contain;\n    background-repeat: no-repeat;\n    background-position: center;\n  `;defaultCursor.style.cssText=cursorStyle+`background-image: url('${customCursorSVG}');`;pointerCursor.style.cssText=cursorStyle+`background-image: url('${pointerCursorSVG}'); display: none;`;// Add to DOM\ndocument.body.appendChild(defaultCursor);document.body.appendChild(pointerCursor);let currentCursor=defaultCursor;let mouseX=0;let mouseY=0;let cursorX=0;let cursorY=0;// Mouse move handler\nconst handleMouseMove=e=>{mouseX=e.clientX;mouseY=e.clientY;};// Animation loop\nconst animate=()=>{// Smooth cursor following - the delay factor controls how laggy it is\ncursorX+=(mouseX-cursorX)*CURSOR_CONFIG.delay;cursorY+=(mouseY-cursorY)*CURSOR_CONFIG.delay;currentCursor.style.transform=`translate(${cursorX-CURSOR_CONFIG.size/2}px, ${cursorY-CURSOR_CONFIG.size/2}px)`;requestAnimationFrame(animate);};// Check for clickable elements\nconst checkCursor=e=>{const element=document.elementFromPoint(e.clientX,e.clientY);const isClickable=element&&(element.matches('a, button, [role=\"button\"], [onclick], [data-framer-clickable=\"true\"]')||element.closest('a, button, [role=\"button\"], [onclick], [data-framer-clickable=\"true\"]'));if(isClickable){if(currentCursor===defaultCursor){defaultCursor.style.display=\"none\";pointerCursor.style.display=\"block\";currentCursor=pointerCursor;}}else{if(currentCursor===pointerCursor){pointerCursor.style.display=\"none\";defaultCursor.style.display=\"block\";currentCursor=defaultCursor;}}};// Event listeners\ndocument.addEventListener(\"mousemove\",handleMouseMove);document.addEventListener(\"mousemove\",checkCursor);// Start animation\nanimate();// Cleanup function\nreturn()=>{document.removeEventListener(\"mousemove\",handleMouseMove);document.removeEventListener(\"mousemove\",checkCursor);defaultCursor.remove();pointerCursor.remove();document.body.style.cursor=\"\";};};// Custom Cursor Override for Framer\nexport const withCustomCursor=Component=>{return /*#__PURE__*/forwardRef((props,ref)=>{useEffect(()=>{// Apply cursor styles when component mounts\napplyCursorStyles();observeDynamicContent();// Create lazy cursor effect\nconst cleanupLazyCursor=createLazyCursor();// Cleanup function\nreturn()=>{// Remove any custom styles if needed\nconst existingStyle=document.querySelector(\"style[data-custom-cursor]\");if(existingStyle){existingStyle.remove();}// Cleanup lazy cursor\nif(cleanupLazyCursor){cleanupLazyCursor();}};},[]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props});});};\nexport const __FramerMetadata__ = {\"exports\":{\"withCustomCursor\":{\"type\":\"reactHoc\",\"name\":\"withCustomCursor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Custom_cursor.map"],"mappings":"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"}