{"version":3,"file":"ImageMagnifier.DoqG4Vyz.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/cctLvKMBvcMYywXiinHV/ffNvyqdYkqSUeF6tOhCz/ImageMagnifier.js"],"sourcesContent":["// Reusable image frame with a magnifier circle interaction.\n// Single icon-only magnify button (40x40) in the bottom-right.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef,useState}from\"react\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function ImageMagnifier(props){const{image,zoom=2.5,lensSize=160,frameBackground=\"#F3F3F3\",borderRadius=16,buttonBackground=\"rgba(255, 255, 255, 0.95)\",buttonIconColor=\"#121212\",buttonActiveBackground=\"#121212\",buttonActiveIconColor=\"#FFFFFF\",lensBorderColor=\"#FFFFFF\",lensBorderWidth=3,lensShadow=true,uploadLabel=\"Upload a photo\"}=props;const defaultSrc=typeof image===\"string\"?image:image?.src??\"\";const[currentSrc,setCurrentSrc]=useState(defaultSrc);const[naturalSize,setNaturalSize]=useState(null);const[magnifyOn,setMagnifyOn]=useState(false);const[lensPos,setLensPos]=useState(null);// Track blob URLs so we can revoke them and prevent memory leaks\nconst blobUrlRef=useRef(null);// Sync with Framer property changes\nuseEffect(()=>{setCurrentSrc(defaultSrc);setNaturalSize(null);},[defaultSrc]);// Cleanup blob URL on unmount\nuseEffect(()=>{return()=>{if(blobUrlRef.current){URL.revokeObjectURL(blobUrlRef.current);blobUrlRef.current=null;}};},[]);const frameRef=useRef(null);const fileInputRef=useRef(null);const handleFile=file=>{if(!file)return;// Revoke previous blob URL before creating a new one\nif(blobUrlRef.current){URL.revokeObjectURL(blobUrlRef.current);blobUrlRef.current=null;}const url=URL.createObjectURL(file);blobUrlRef.current=url;setCurrentSrc(url);setNaturalSize(null);setLensPos(null);};// Attach pointer listeners directly to the frame via ref. This is more\n// reliable than React synthetic events when child elements can intercept\n// events, and unifies mouse + touch through the pointer events API.\nuseEffect(()=>{if(!magnifyOn){setLensPos(null);return;}const el=frameRef.current;if(!el)return;const updateFromEvent=(clientX,clientY)=>{const rect=el.getBoundingClientRect();setLensPos({x:clientX-rect.left,y:clientY-rect.top});};const onPointerMove=e=>{updateFromEvent(e.clientX,e.clientY);};const onPointerLeave=()=>setLensPos(null);const onPointerEnter=e=>{updateFromEvent(e.clientX,e.clientY);};el.addEventListener(\"pointermove\",onPointerMove);el.addEventListener(\"pointerleave\",onPointerLeave);el.addEventListener(\"pointerenter\",onPointerEnter);return()=>{el.removeEventListener(\"pointermove\",onPointerMove);el.removeEventListener(\"pointerleave\",onPointerLeave);el.removeEventListener(\"pointerenter\",onPointerEnter);};},[magnifyOn]);const hasImage=Boolean(currentSrc);const aspectRatio=naturalSize&&naturalSize.h>0?naturalSize.w/naturalSize.h:16/9;const getLensStyle=()=>{if(!magnifyOn||!lensPos||!frameRef.current||!hasImage)return null;const rect=frameRef.current.getBoundingClientRect();const bgW=rect.width*zoom;const bgH=rect.height*zoom;const bgX=-(lensPos.x*zoom-lensSize/2);const bgY=-(lensPos.y*zoom-lensSize/2);return{position:\"absolute\",pointerEvents:\"none\",left:lensPos.x-lensSize/2,top:lensPos.y-lensSize/2,width:lensSize,height:lensSize,borderRadius:\"50%\",border:`${lensBorderWidth}px solid ${lensBorderColor}`,boxShadow:lensShadow?\"0 8px 24px rgba(0,0,0,0.25), inset 0 0 0 1px rgba(0,0,0,0.06)\":\"none\",backgroundImage:`url(\"${currentSrc}\")`,backgroundRepeat:\"no-repeat\",backgroundSize:`${bgW}px ${bgH}px`,backgroundPosition:`${bgX}px ${bgY}px`,backgroundColor:frameBackground,zIndex:3};};const lensStyle=getLensStyle();return /*#__PURE__*/_jsxs(\"div\",{style:{...props.style,width:\"100%\",position:\"relative\",display:\"flex\",flexDirection:\"column\"},children:[/*#__PURE__*/_jsx(\"input\",{ref:fileInputRef,type:\"file\",accept:\"image/*\",style:{display:\"none\"},onChange:e=>handleFile(e.target.files?.[0])}),/*#__PURE__*/_jsxs(\"div\",{ref:frameRef,onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault();const file=e.dataTransfer.files?.[0];if(file&&file.type.startsWith(\"image/\"))handleFile(file);},style:{position:\"relative\",width:\"100%\",aspectRatio:hasImage?`${aspectRatio}`:\"16 / 9\",background:frameBackground,borderRadius,overflow:\"hidden\",cursor:magnifyOn&&hasImage?\"none\":\"default\",userSelect:\"none\",touchAction:magnifyOn?\"none\":\"auto\"},children:[hasImage?/*#__PURE__*/_jsx(\"img\",{src:currentSrc,onLoad:e=>setNaturalSize({w:e.currentTarget.naturalWidth,h:e.currentTarget.naturalHeight}),alt:\"\",draggable:false,style:{display:\"block\",width:\"100%\",height:\"100%\",objectFit:\"contain\",pointerEvents:\"none\"}}):/*#__PURE__*/_jsx(EmptyState,{label:uploadLabel,onClick:()=>fileInputRef.current?.click()}),lensStyle&&/*#__PURE__*/_jsx(\"div\",{style:lensStyle}),hasImage&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",right:16,bottom:16,display:\"flex\",gap:8,zIndex:4},children:/*#__PURE__*/_jsx(IconButton,{title:magnifyOn?\"Turn off magnifier\":\"Magnify\",onClick:()=>setMagnifyOn(v=>!v),background:magnifyOn?buttonActiveBackground:buttonBackground,iconColor:magnifyOn?buttonActiveIconColor:buttonIconColor,active:magnifyOn,children:/*#__PURE__*/_jsx(MagnifyIcon,{})})})]})]});}// ---------- Subcomponents ----------\nfunction EmptyState({label,onClick}){return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",onClick:onClick,style:{all:\"unset\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",width:\"100%\",height:\"100%\",gap:12,cursor:\"pointer\",color:\"#585D74\",fontFamily:\"Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",fontSize:14,textAlign:\"center\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:48,height:48,borderRadius:\"50%\",background:\"rgba(0,0,0,0.06)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(UploadIcon,{size:22,color:\"#585D74\"})}),/*#__PURE__*/_jsx(\"span\",{children:label}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:12,color:\"#91919F\"},children:\"or drag and drop an image here\"})]});}function IconButton({children,onClick,title,background,iconColor,active}){return /*#__PURE__*/_jsx(\"button\",{type:\"button\",title:title,\"aria-label\":title,\"aria-pressed\":active,onClick:onClick,style:{all:\"unset\",boxSizing:\"border-box\",width:40,height:40,display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",borderRadius:10,background,color:iconColor,cursor:\"pointer\",backdropFilter:\"blur(6px)\",WebkitBackdropFilter:\"blur(6px)\",boxShadow:\"0 2px 8px rgba(0,0,0,0.12)\",transition:\"transform 0.15s ease, background 0.15s ease\"},onMouseDown:e=>e.currentTarget.style.transform=\"scale(0.94)\",onMouseUp:e=>e.currentTarget.style.transform=\"scale(1)\",onMouseLeave:e=>e.currentTarget.style.transform=\"scale(1)\",children:children});}function MagnifyIcon({size=18}){return /*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"11\",cy:\"11\",r:\"7\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"21\",y1:\"21\",x2:\"16.5\",y2:\"16.5\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"11\",y1:\"8\",x2:\"11\",y2:\"14\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"8\",y1:\"11\",x2:\"14\",y2:\"11\"})]});}function UploadIcon({size=18,color=\"currentColor\"}){return /*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}),/*#__PURE__*/_jsx(\"polyline\",{points:\"17 8 12 3 7 8\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"12\",y1:\"3\",x2:\"12\",y2:\"15\"})]});}addPropertyControls(ImageMagnifier,{image:{type:ControlType.ResponsiveImage,title:\"Image\"},zoom:{type:ControlType.Number,title:\"Zoom\",defaultValue:2.5,min:1.2,max:6,step:.1},lensSize:{type:ControlType.Number,title:\"Lens Size\",defaultValue:160,min:60,max:400,step:10,unit:\"px\"},frameBackground:{type:ControlType.Color,title:\"Frame BG\",defaultValue:\"#F3F3F3\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:16,min:0,max:48,step:1,unit:\"px\"},buttonBackground:{type:ControlType.Color,title:\"Btn BG\",defaultValue:\"rgba(255, 255, 255, 0.95)\"},buttonIconColor:{type:ControlType.Color,title:\"Btn Icon\",defaultValue:\"#121212\"},buttonActiveBackground:{type:ControlType.Color,title:\"Btn Active BG\",defaultValue:\"#121212\"},buttonActiveIconColor:{type:ControlType.Color,title:\"Btn Active Icon\",defaultValue:\"#FFFFFF\"},lensBorderColor:{type:ControlType.Color,title:\"Lens Border\",defaultValue:\"#FFFFFF\"},lensBorderWidth:{type:ControlType.Number,title:\"Lens Border W\",defaultValue:3,min:0,max:12,step:1,unit:\"px\"},lensShadow:{type:ControlType.Boolean,title:\"Lens Shadow\",defaultValue:true},uploadLabel:{type:ControlType.String,title:\"Upload Label\",defaultValue:\"Upload a photo\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ImageMagnifier\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ImageMagnifier.map"],"mappings":"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"}