{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/oE6hVqCummm21WrtqdpF/h2ut9DAUz09ZxakDK21e/Pulse.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{motion}from\"framer-motion\";import{useEffect,useState}from\"react\";function Pulse({props,onAnimationComplete}){const animateOut=props.direction===\"out\";return /*#__PURE__*/ _jsx(motion.div,{style:{position:\"absolute\",backgroundColor:props.style===\"border\"?\"none\":props.color,border:props.style===\"border\"?`${props.borderWidth}px solid ${props.color}`:\"none\"},variants:{in:{opacity:props.pulseOpacity,inset:\"0px\",borderRadius:props.radiusType==\"full\"?1e4:props.radiusValue},out:{opacity:0,inset:`-${props.pulseSize}px`,borderRadius:props.radiusType==\"full\"?1e4:props.radiusValue+props.pulseSize}},initial:animateOut?\"in\":\"out\",animate:animateOut?\"out\":\"in\",transition:props.transition,onAnimationComplete:onAnimationComplete});}/*\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 20\n * @framerIntrinsicHeight 20\n */ export default function PulseEffect(props){const[pulses,setPulses]=useState([]);useEffect(()=>{const createPulse=()=>{const newPulseKey=Date.now() // Unique key for new pulse\n;setPulses(prevPulses=>[...prevPulses,newPulseKey]);};const interval=setInterval(createPulse,props.delay*1e3);createPulse();return()=>clearInterval(interval) // Clear interval on component unmount\n;},[]);const handleAnimationComplete=completedPulseKey=>{setPulses(prevPulses=>prevPulses.filter(key=>key!==completedPulseKey));};return /*#__PURE__*/ _jsxs(\"div\",{children:[pulses.map(key=>/*#__PURE__*/ _jsx(Pulse,{props:props,onAnimationComplete:()=>handleAnimationComplete(key)},key)),/*#__PURE__*/ _jsx(\"div\",{style:{position:\"absolute\",inset:0,backgroundColor:props.color,borderRadius:props.radiusType==\"full\"?1e4:props.radiusValue}})]});};PulseEffect.displayName=\"Pulse\";addPropertyControls(PulseEffect,{color:{type:ControlType.Color},delay:{type:ControlType.Number,defaultValue:1,min:.1,step:.01,unit:\"s\"},direction:{type:ControlType.Enum,defaultValue:\"out\",options:[\"in\",\"out\"],optionTitles:[\"In\",\"Out\"],displaySegmentedControl:true},pulseSize:{type:ControlType.Number,defaultValue:20,min:1,step:1},pulseOpacity:{type:ControlType.Number,defaultValue:.5,min:0,max:1,step:.01},style:{type:ControlType.Enum,defaultValue:\"solid\",options:[\"solid\",\"border\"],optionTitles:[\"Solid\",\"Border\"],displaySegmentedControl:true},borderWidth:{type:ControlType.Number,defaultValue:5,min:1,step:1,hidden:props=>props.style!==\"border\"},radiusType:{type:ControlType.Enum,defaultValue:\"full\",options:[\"full\",\"custom\"],optionTitles:[\"Full\",\"Custom\"],displaySegmentedControl:true,title:\"Radius\"},radiusValue:{type:ControlType.Number,defaultValue:20,min:1,step:1,title:\" \",hidden:props=>props.radiusType!==\"custom\"},transition:{type:ControlType.Transition,defaultValue:{type:\"spring\",stiffness:150,damping:60}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PulseEffect\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"20\",\"framerIntrinsicHeight\":\"20\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Pulse.map"],
  "mappings": "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",
  "names": ["Pulse", "props", "onAnimationComplete", "animateOut", "p", "motion", "PulseEffect", "pulses", "setPulses", "ye", "ue", "createPulse", "newPulseKey", "prevPulses", "interval", "handleAnimationComplete", "completedPulseKey", "key", "u", "addPropertyControls", "ControlType"]
}
