{"version":3,"file":"Component.DNMoUsqN.mjs","names":["useRef","useState","useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/tFehh6KaOFhlAtJ5bTww/14K4VInJb2qIJDmmJwnu/Component.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useCallback,useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const clamp=(value,min,max)=>Math.min(max,Math.max(min,value));const GUIDE_LINE_COLOR=\"rgba(122, 70, 255, 0.2)\";const POSITION_TRANSITION=\"420ms cubic-bezier(0.16, 1, 0.3, 1)\";/**\n * Hover-to-reveal image inspection card.\n *\n * @framerIntrinsicWidth 960\n * @framerIntrinsicHeight 540\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function HoverInspectImage(props){const{src=\"/images/cursor-2.png\",alt=\"Cursor showing button.tsx implementation\",caption=\"The design file showed the states. The code revealed the rules behind them.\",overlayColor=\"rgba(8, 4, 22, 0.72)\",accentColor=\"#08e683\",lensSizePercent=.25,style}=props;const frameRef=useRef(null);const previewLayerRef=useRef(null);const animationTimeoutRef=useRef();const[lens,setLens]=useState({x:480,y:270,width:240,height:136,frameWidth:960,frameHeight:540});const[isTouchFirst,setIsTouchFirst]=useState(false);const[shouldAnimateLens,setShouldAnimateLens]=useState(false);const[isPressed,setIsPressed]=useState(false);const[isHovering,setIsHovering]=useState(false);const setPreviewOriginFromPointer=useCallback((clientX,clientY)=>{const frame=frameRef.current;const previewLayer=previewLayerRef.current;if(!frame)return;const rect=frame.getBoundingClientRect();const origin=`${clientX-rect.left}px ${clientY-rect.top}px`;previewLayer?.style.setProperty(\"--preview-origin\",origin);},[]);const animateNextLensMove=useCallback(()=>{setShouldAnimateLens(true);if(animationTimeoutRef.current){window.clearTimeout(animationTimeoutRef.current);}animationTimeoutRef.current=window.setTimeout(()=>{setShouldAnimateLens(false);},420);},[]);const updateLens=useCallback((clientX,clientY)=>{const frame=frameRef.current;if(!frame)return;const rect=frame.getBoundingClientRect();const minScale=Math.max(72/rect.width,48/rect.height);const maxScale=Math.min((rect.width-24)/rect.width,(rect.height-24)/rect.height);const scale=clamp(lensSizePercent,minScale,maxScale);const width=rect.width*scale;const height=rect.height*scale;const targetX=typeof clientX===\"number\"?clientX-rect.left:rect.width/2;const targetY=typeof clientY===\"number\"?clientY-rect.top:rect.height/2;setLens({x:clamp(targetX,width/2+12,rect.width-width/2-12),y:clamp(targetY,height/2+12,rect.height-height/2-12),width,height,frameWidth:rect.width,frameHeight:rect.height});},[lensSizePercent]);useEffect(()=>{const media=window.matchMedia(\"(hover: none), (pointer: coarse)\");setIsTouchFirst(media.matches);updateLens();const handleChange=()=>setIsTouchFirst(media.matches);const handleResize=()=>updateLens();if(media.addEventListener){media.addEventListener(\"change\",handleChange);}else{media.addListener(handleChange);}window.addEventListener(\"resize\",handleResize);const handlePointerUp=()=>setIsPressed(false);const handlePointerCancel=()=>setIsPressed(false);window.addEventListener(\"pointerup\",handlePointerUp);window.addEventListener(\"pointercancel\",handlePointerCancel);return()=>{if(animationTimeoutRef.current){window.clearTimeout(animationTimeoutRef.current);}if(media.removeEventListener){media.removeEventListener(\"change\",handleChange);}else{media.removeListener(handleChange);}window.removeEventListener(\"resize\",handleResize);window.removeEventListener(\"pointerup\",handlePointerUp);window.removeEventListener(\"pointercancel\",handlePointerCancel);};},[updateLens]);const lensTop=lens.y-lens.height/2;const lensRight=lens.frameWidth-(lens.x+lens.width/2);const lensBottom=lens.frameHeight-(lens.y+lens.height/2);const lensLeft=lens.x-lens.width/2;const guideLines=[{left:lensLeft,top:0,width:1,height:\"100%\"},{left:lens.x+lens.width/2,top:0,width:1,height:\"100%\"},{left:0,top:lensTop,width:\"100%\",height:1},{left:0,top:lens.y+lens.height/2,width:\"100%\",height:1}];const handlePointerMove=event=>{if(event.pointerType===\"touch\"&&!isPressed)return;if(animationTimeoutRef.current){window.clearTimeout(animationTimeoutRef.current);}setShouldAnimateLens(false);if(event.pointerType!==\"touch\"){setPreviewOriginFromPointer(event.clientX,event.clientY);}updateLens(event.clientX,event.clientY);};const handlePointerEnter=event=>{if(event.pointerType===\"touch\")return;setIsHovering(true);setShouldAnimateLens(false);setPreviewOriginFromPointer(event.clientX,event.clientY);updateLens(event.clientX,event.clientY);};const handlePointerLeave=event=>{if(event.pointerType===\"touch\"&&!isPressed)return;setIsHovering(false);animateNextLensMove();updateLens();};const handlePointerDown=event=>{setIsPressed(true);if(event.pointerType===\"touch\"){setIsTouchFirst(true);}setPreviewOriginFromPointer(event.clientX,event.clientY);event.currentTarget.setPointerCapture(event.pointerId);updateLens(event.clientX,event.clientY);};const handleKeyDown=event=>{const step=event.shiftKey?42:18;const next={...lens};if(event.key===\"ArrowLeft\")next.x-=step;else if(event.key===\"ArrowRight\")next.x+=step;else if(event.key===\"ArrowUp\")next.y-=step;else if(event.key===\"ArrowDown\")next.y+=step;else return;event.preventDefault();const frame=frameRef.current;if(!frame)return;setLens({...next,x:clamp(next.x,next.width/2+12,frame.clientWidth-next.width/2-12),y:clamp(next.y,next.height/2+12,frame.clientHeight-next.height/2-12),frameWidth:frame.clientWidth,frameHeight:frame.clientHeight});};return /*#__PURE__*/_jsxs(\"figure\",{style:{...style,display:\"block\",margin:0,width:\"100%\",height:\"100%\",lineHeight:0,overflow:\"hidden\"},children:[/*#__PURE__*/_jsxs(\"div\",{ref:frameRef,className:\"hover-inspect-frame\",role:\"group\",tabIndex:0,\"aria-label\":caption,onFocus:()=>updateLens(),onKeyDown:handleKeyDown,onPointerDown:handlePointerDown,onPointerEnter:handlePointerEnter,onPointerLeave:handlePointerLeave,onPointerMove:handlePointerMove,onPointerUp:()=>setIsPressed(false),style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",isolation:\"isolate\",background:\"transparent\",cursor:isTouchFirst?\"default\":\"crosshair\",outline:\"none\",touchAction:\"none\"},children:[/*#__PURE__*/_jsx(\"img\",{src:src,alt:alt,draggable:false,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",opacity:isTouchFirst?1:.8,filter:isTouchFirst?\"none\":\"blur(3px) saturate(0.78)\",transform:\"scale(1.01)\",transition:\"filter 220ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms cubic-bezier(0.22, 1, 0.36, 1)\"}}),/*#__PURE__*/_jsxs(\"div\",{ref:previewLayerRef,\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:0,transform:isHovering?\"scale(1.1)\":\"scale(1)\",transformOrigin:\"var(--preview-origin, 50% 50%)\",transition:isHovering?\"transform 220ms cubic-bezier(0.22, 1, 0.36, 1)\":\"transform 420ms cubic-bezier(0.16, 1, 0.3, 1)\",willChange:\"transform\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:0,background:overlayColor,backgroundImage:\"radial-gradient(circle, rgba(122, 70, 255, 0.2) 0.5px, transparent 0.5px)\",backgroundSize:\"4px 4px\",opacity:isTouchFirst?0:1,transition:\"opacity 180ms cubic-bezier(0.22, 1, 0.36, 1)\"}}),!isTouchFirst&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",left:lensLeft,top:lensTop,width:lens.width,height:lens.height,overflow:\"hidden\",transition:shouldAnimateLens?`left ${POSITION_TRANSITION}, top ${POSITION_TRANSITION}, width ${POSITION_TRANSITION}, height ${POSITION_TRANSITION}`:\"none\"},children:/*#__PURE__*/_jsx(\"img\",{src:src,alt:\"\",\"aria-hidden\":\"true\",draggable:false,style:{position:\"absolute\",left:-lensLeft,top:-lensTop,width:lens.frameWidth,height:lens.frameHeight,objectFit:\"cover\",transform:\"scale(1.01)\",pointerEvents:\"none\"}})}),guideLines.map((line,index)=>/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{...line,position:\"absolute\",background:GUIDE_LINE_COLOR,transition:shouldAnimateLens?`left ${POSITION_TRANSITION}, top ${POSITION_TRANSITION}, width ${POSITION_TRANSITION}, height ${POSITION_TRANSITION}`:\"none\",pointerEvents:\"none\"}},index))]})]})]}),/*#__PURE__*/_jsx(\"style\",{children:`\n                .hover-inspect-frame:focus-visible {\n                    outline: 2px solid ${accentColor};\n                    outline-offset: 4px;\n                }\n\n                @media (prefers-reduced-motion: reduce) {\n                    .hover-inspect-frame * {\n                        transition: none !important;\n                        animation: none !important;\n                    }\n                }\n            `})]});}addPropertyControls(HoverInspectImage,{src:{type:ControlType.Image,title:\"Image\"},alt:{type:ControlType.String,title:\"Alt\",defaultValue:\"Cursor showing button.tsx implementation\"},caption:{type:ControlType.String,title:\"Caption\",defaultValue:\"The design file showed the states. The code revealed the rules behind them.\"},overlayColor:{type:ControlType.Color,title:\"Overlay\",defaultValue:\"rgba(8, 4, 22, 0.72)\"},accentColor:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#08e683\"},lensSizePercent:{type:ControlType.Number,title:\"Lens %\",defaultValue:.25,min:.12,max:.5,step:.01}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HoverInspectImage\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"540\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"960\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Component.map"],"mappings":"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"}