{"version":3,"file":"ScannerAnimation.BDyWm3JS.mjs","names":["useState","startTransition"],"sources":["https:/framerusercontent.com/modules/NXEwNxXmZJzER1U3axHH/0KvRA8XurpQa9RBalXxp/ScannerAnimation.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion}from\"framer-motion\";/**\n * Scanner Animation\n * \n * An overlay animation that simulates a scanning effect over an image.\n * \n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function ScannerAnimation(props){const{scannerColor,scannerHeight,scannerOpacity,scannerBlur,scanSpeed,scanDirection,scannerGlow,scannerGlowIntensity,scannerGlowColor,scannerGlowSize,autoPlay,mirrorEffect,scanDuration,borderRadius,style}=props;const[isScanning,setIsScanning]=useState(autoPlay);const[scanCount,setScanCount]=useState(0);const isStatic=useIsStaticRenderer();// Reset animation when autoPlay changes\nuseEffect(()=>{if(!isStatic){startTransition(()=>{setIsScanning(autoPlay);setScanCount(0);});}},[autoPlay,isStatic]);// Track scan count and stop after duration\nuseEffect(()=>{if(!isStatic&&isScanning&&scanDuration>0){const timer=setTimeout(()=>{startTransition(()=>setIsScanning(false));},scanDuration*1e3);return()=>clearTimeout(timer);}},[isScanning,scanDuration,isStatic]);// Determine animation properties based on scan direction\nconst isHorizontal=scanDirection===\"left-to-right\"||scanDirection===\"right-to-left\";const isReverse=scanDirection===\"bottom-to-top\"||scanDirection===\"right-to-left\";const scannerStyle={position:\"absolute\",backgroundColor:scannerColor,opacity:scannerOpacity,filter:`blur(${scannerBlur}px)`,boxShadow:scannerGlow?`0 0 ${scannerGlowSize}px ${scannerGlowIntensity}px ${scannerGlowColor}`:\"none\",borderRadius:`${borderRadius}px`};// Set dimensions and position based on direction\nif(isHorizontal){scannerStyle.width=scannerHeight;scannerStyle.height=\"100%\";scannerStyle.top=0;scannerStyle.left=isReverse?\"100%\":0;}else{scannerStyle.width=\"100%\";scannerStyle.height=scannerHeight;scannerStyle.left=0;scannerStyle.top=isReverse?\"100%\":0;}// Animation variants\nconst variants={initial:{[isHorizontal?\"left\":\"top\"]:isReverse?\"100%\":\"0%\"},animate:{[isHorizontal?\"left\":\"top\"]:isReverse?\"0%\":\"100%\"}};// Mirror effect variants\nconst mirrorVariants={initial:{[isHorizontal?\"left\":\"top\"]:isReverse?\"100%\":\"0%\"},animate:{[isHorizontal?\"left\":\"top\"]:isReverse?\"0%\":\"100%\",transition:{duration:scanSpeed,ease:\"linear\",repeat:Infinity,repeatType:\"mirror\"}}};// Static preview for canvas\nif(isStatic){return /*#__PURE__*/_jsx(\"div\",{style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:{...scannerStyle,[isHorizontal?\"left\":\"top\"]:\"50%\",transform:isHorizontal?\"translateX(-50%)\":\"translateY(-50%)\"}})});}return /*#__PURE__*/_jsx(\"div\",{style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",cursor:isScanning?\"default\":\"pointer\",borderRadius:`${borderRadius}px`},onClick:()=>!isScanning&&startTransition(()=>{setIsScanning(true);setScanCount(0);}),children:isScanning&&/*#__PURE__*/_jsx(motion.div,{style:scannerStyle,initial:\"initial\",animate:\"animate\",variants:mirrorEffect?mirrorVariants:variants,transition:!mirrorEffect?{duration:scanSpeed,ease:\"linear\",repeat:Infinity,repeatType:\"loop\"}:undefined,onAnimationComplete:()=>{if(!mirrorEffect){startTransition(()=>setScanCount(prev=>prev+1));}}})});}addPropertyControls(ScannerAnimation,{scannerColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#0066FF\"},scannerHeight:{type:ControlType.Number,title:\"Thickness\",defaultValue:4,min:1,max:50,step:1,unit:\"px\"},scannerOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:.7,min:.1,max:1,step:.1},scannerBlur:{type:ControlType.Number,title:\"Blur\",defaultValue:5,min:0,max:20,step:1,unit:\"px\"},scanSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:2,min:.5,max:10,step:.5,unit:\"s\"},scanDirection:{type:ControlType.Enum,title:\"Direction\",options:[\"top-to-bottom\",\"bottom-to-top\",\"left-to-right\",\"right-to-left\"],optionTitles:[\"Top to Bottom\",\"Bottom to Top\",\"Left to Right\",\"Right to Left\"],defaultValue:\"top-to-bottom\"},mirrorEffect:{type:ControlType.Boolean,title:\"Mirror Effect\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},scanDuration:{type:ControlType.Number,title:\"Duration\",defaultValue:5,min:0,max:60,step:1,unit:\"s\",tooltipText:\"Duration in seconds (0 for infinite)\"},scannerGlow:{type:ControlType.Boolean,title:\"Glow Effect\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},scannerGlowIntensity:{type:ControlType.Number,title:\"Glow Intensity\",defaultValue:5,min:1,max:20,step:1,hidden:({scannerGlow})=>!scannerGlow},scannerGlowColor:{type:ControlType.Color,title:\"Glow Color\",defaultValue:\"#0066FF\",hidden:({scannerGlow})=>!scannerGlow},scannerGlowSize:{type:ControlType.Number,title:\"Glow Size\",defaultValue:10,min:1,max:50,step:1,unit:\"px\",hidden:({scannerGlow})=>!scannerGlow},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:0,min:0,max:50,step:1,unit:\"px\"},autoPlay:{type:ControlType.Boolean,title:\"Auto Play\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScannerAnimation\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScannerAnimation.map"],"mappings":"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"}