{"version":3,"file":"PulseButton.BWRGLMgS.mjs","names":[],"sources":["https:/framerusercontent.com/modules/vFWrpLbV1Ww3oKeweDIl/kBIJuMLN5Nt7vA1C4Gje/PulseButton.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion}from\"framer-motion\";/**\n * Pulse Button\n *\n * @framerIntrinsicWidth 160\n * @framerIntrinsicHeight 50\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function PulseButton(props){const{text=\"Click Me\",icon,iconSize=20,iconGap=8,font,textColor=\"#FFFFFF\",backgroundColor=\"#0099FF\",pulseColor=\"#0099FF\",borderRadius=\"50px\",padding=\"12px 24px 12px 24px\",onTap,glow=true,pulseIntensity=1.5,variant=\"Ripple\",speed=1,style,className,link,openInNewTab=true}=props;const isRipple=variant===\"Ripple\";const isScale=variant===\"Scale\";const isShadow=variant===\"Shadow\";const isStatic=useIsStaticRenderer();// --- Ripple timing (adjusted by speed) ---\nconst baseRippleDuration=2;const baseRippleInterval=.6;const rippleDuration=baseRippleDuration/speed;const rippleInterval=baseRippleInterval/speed;const ringCount=Math.max(1,Math.ceil(rippleDuration/rippleInterval));const ripplePeriod=ringCount*rippleInterval;const rippleRepeatDelay=Math.max(0,ripplePeriod-rippleDuration);const scaleValue=1+(pulseIntensity-1)*.1;const animationProps=isScale?{scale:[1,scaleValue,1],transition:{duration:2/speed,repeat:Infinity,ease:\"easeInOut\"}}:isShadow?{boxShadow:[`0 0 0px ${pulseColor}`,`0 0 ${10*pulseIntensity}px ${pulseColor}`,`0 0 0px ${pulseColor}`],transition:{duration:2/speed,repeat:Infinity,ease:\"easeInOut\"}}:undefined;const hoverProps=isScale?{scale:scaleValue+.05,filter:\"brightness(1.1)\",boxShadow:`0 0 25px ${pulseColor}`,transition:{type:\"spring\",stiffness:400,damping:25}}:isShadow?{scale:1.02,y:-1,filter:\"brightness(1.1)\",boxShadow:`0 0 30px ${pulseColor}`,transition:{type:\"spring\",stiffness:400,damping:25}}:{scale:1.05,filter:\"brightness(1.1)\",boxShadow:`0 0 25px ${pulseColor}`,transition:{type:\"spring\",stiffness:400,damping:25}};const tapProps=isScale?{scale:.95,filter:\"brightness(0.9)\",boxShadow:`0 0 10px ${pulseColor}`,transition:{type:\"spring\",stiffness:400,damping:25}}:isShadow?{scale:.98,y:0,filter:\"brightness(0.95)\",boxShadow:`0 0 15px ${pulseColor}`,transition:{type:\"spring\",stiffness:400,damping:25}}:{scale:.95,filter:\"brightness(0.9)\",boxShadow:`0 0 10px ${pulseColor}`,transition:{type:\"spring\",stiffness:400,damping:25}};const handleTap=event=>{if(onTap)onTap(event);if(link&&typeof window!==\"undefined\"){if(openInNewTab){window.open(link,\"_blank\",\"noopener,noreferrer\");}else{window.open(link,\"_self\");}}};return /*#__PURE__*/_jsxs(\"div\",{className:className,style:{...style,width:\"100%\",height:\"auto\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",position:\"relative\"},children:[!isStatic&&isRipple&&Array.from({length:ringCount}).map((_,i)=>/*#__PURE__*/_jsx(motion.div,{style:{position:\"absolute\",inset:0,borderRadius:borderRadius,backgroundColor:pulseColor,zIndex:0,pointerEvents:\"none\",willChange:\"transform, opacity\",transformOrigin:\"center center\",backfaceVisibility:\"hidden\",WebkitBackfaceVisibility:\"hidden\"},transformTemplate:(latest,generated)=>`translateZ(0px) ${generated}`,initial:{scale:1,opacity:.35},animate:{scale:pulseIntensity,opacity:0},transition:{duration:rippleDuration,ease:\"easeOut\",repeat:Infinity,repeatDelay:rippleRepeatDelay,delay:i*rippleInterval}},i)),isStatic?/*#__PURE__*/_jsxs(\"button\",{onClick:handleTap,style:{position:\"relative\",zIndex:1,background:backgroundColor,color:textColor,border:\"none\",borderRadius:borderRadius,padding:padding,cursor:\"pointer\",width:\"100%\",height:\"auto\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:icon?`${iconGap}px`:0,boxShadow:glow&&!isShadow?`0 0 20px ${pulseColor}`:\"none\",...font},children:[icon&&/*#__PURE__*/_jsx(\"img\",{src:icon.src,alt:icon.alt||\"\",style:{width:`${iconSize}px`,height:`${iconSize}px`,objectFit:\"contain\",flexShrink:0}}),text]}):/*#__PURE__*/_jsxs(motion.button,{onTap:handleTap,whileHover:hoverProps,whileTap:tapProps,animate:animationProps,transition:{type:\"spring\",stiffness:220,damping:22},style:{position:\"relative\",zIndex:1,background:backgroundColor,color:textColor,border:\"none\",borderRadius:borderRadius,padding:padding,cursor:\"pointer\",width:\"100%\",height:\"auto\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:icon?`${iconGap}px`:0,boxShadow:glow&&!isShadow?`0 0 20px ${pulseColor}`:\"none\",...font},children:[icon&&/*#__PURE__*/_jsx(\"img\",{src:icon.src,alt:icon.alt||\"\",style:{width:`${iconSize}px`,height:`${iconSize}px`,objectFit:\"contain\",flexShrink:0}}),text]})]});}addPropertyControls(PulseButton,{variant:{type:ControlType.Enum,title:\"Variant\",options:[\"Ripple\",\"Scale\",\"Shadow\"],defaultValue:\"Ripple\"},text:{type:ControlType.String,title:\"Label\",defaultValue:\"Click Me\"},icon:{type:ControlType.ResponsiveImage,title:\"Icon\"},iconSize:{type:ControlType.Number,title:\"Icon Size\",defaultValue:20,min:12,max:48,step:2,displayStepper:true,hidden:({icon})=>!icon},iconGap:{type:ControlType.Number,title:\"Icon Gap\",defaultValue:8,min:0,max:24,step:2,displayStepper:true,hidden:({icon})=>!icon},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"16px\",variant:\"Bold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"}},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#FFFFFF\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#0099FF\"},pulseColor:{type:ControlType.Color,title:\"Pulse Color\",defaultValue:\"#0099FF\"},pulseIntensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:1.5,min:1.1,max:3,step:.1,displayStepper:true},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.5,max:2,step:.1,displayStepper:true},borderRadius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"50px\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"12px 24px 12px 24px\"},glow:{type:ControlType.Boolean,title:\"Glow\",defaultValue:true},onTap:{type:ControlType.EventHandler},link:{type:ControlType.Link,title:\"Link\",defaultValue:\"\"},openInNewTab:{type:ControlType.Boolean,title:\"New Tab\",description:\"Built by Matthias \\xd6lschlegel 💪\\n[Explore more components](https://framer.link/fsd2pgh)\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PulseButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"50\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"160\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PulseButton.map"],"mappings":"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"}