{"version":3,"file":"shared-lib.SMCBxgDV.mjs","names":["size","metadata","metadata","metadataVersion","__FramerMetadata__"],"sources":["https:/framerusercontent.com/modules/TeLFy7tNoO3iGxjTVhtE/8PBbfn7F2OACLblanidp/ConfettiAnimation.js","https:/framerusercontent.com/modules/lN1XCWbI6fJXihGzUJAY/SeBZHWM2sl1VIOjYkxZe/siteMetadata.js","https:/framerusercontent.com/modules/ynzWTfPA1hJnrEXn192z/C3sUU4fcbdB3pUd7ujLm/augiA20Il.js","https:/framerusercontent.com/modules/f1Nskod01pqax7xhnQZu/hJkS5LLybcO37uYC3WxZ/MyUkdUIqz.js"],"sourcesContent":["function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion}from\"framer-motion\";/**\n * ConfettiAnimation Component\n * Displays animated confetti particles\n * \n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */function ConfettiAnimation(props){const{fadeParticles=true,effectType=\"confetti\",count=100,colors=[\"#FFC700\",\"#FF0055\",\"#0066FF\",\"#44DD00\",\"#8855FF\"],duration=3,gravity=1,spread=50,size=10,autoPlay=true,showPlayText=true,direction=\"all\",customParticles=[],triggerType=\"click\",style}=props;const canvasRef=useRef(null);const[isPlaying,setIsPlaying]=useState(autoPlay);const isStatic=useIsStaticRenderer();const particles=useRef([]);const animationRef=useRef(0);// Particle class to manage each animation piece\nclass Particle{update(canvas){// Apply gravity\nthis.velocity.y+=.1*gravity;// Update position\nthis.x+=this.velocity.x;this.y+=this.velocity.y;// Add some wobble\nthis.tilt=Math.sin(this.angle)*15;this.angle+=.05;// Update life\nthis.life++;// Calculate distance from origin as a percentage of the max distance\nconst dx=this.x-this.initialX;const dy=this.y-this.initialY;const distance=Math.sqrt(dx*dx+dy*dy);// Max distance is half the diagonal of the canvas\nconst maxDistance=Math.sqrt(canvas.width*canvas.width+canvas.height*canvas.height)/4;// Fade based on distance from origin rather than time, if fadeParticles is enabled\nif(fadeParticles){const distanceFactor=Math.min(1,distance/maxDistance);this.opacity=Math.max(0,1-distanceFactor);}else{this.opacity=1// No fading if fadeParticles is disabled\n;}// Return true if particle is still within the expanded canvas area and still has opacity\n// This allows particles to travel much further before being removed\nreturn this.opacity>.01&&this.y<canvas.height&&this.x>0&&this.x<canvas.width&&this.y>0;}draw(ctx){ctx.save();ctx.translate(this.x,this.y);ctx.globalAlpha=this.opacity;if(effectType===\"confetti\"){ctx.rotate(this.angle);ctx.fillStyle=this.color;ctx.fillRect(-this.size/2,-this.size/2,this.size,this.size);}else if(effectType===\"particles\"){ctx.fillStyle=this.color;ctx.beginPath();ctx.arc(0,0,this.size,0,Math.PI*2);ctx.fill();}else if(effectType===\"lines\"){ctx.rotate(this.angle);ctx.strokeStyle=this.color;ctx.lineWidth=this.size/10;ctx.beginPath();ctx.moveTo(-this.size/2,0);ctx.lineTo(this.size/2,0);ctx.stroke();}else if(effectType===\"circles\"){ctx.strokeStyle=this.color;ctx.lineWidth=2;ctx.beginPath();ctx.arc(0,0,this.size,0,Math.PI*2);ctx.stroke();}else if(effectType===\"stars\"){this.drawStar(ctx,0,0,5,this.size/2,this.size/4);ctx.fillStyle=this.color;ctx.fill();}else if(effectType===\"hearts\"){this.drawHeart(ctx,0,0,this.size);ctx.fillStyle=this.color;ctx.fill();}else if(effectType===\"custom\"&&this.image&&typeof window!==\"undefined\"){// Draw the custom image\nconst imgSize=this.size;ctx.rotate(this.angle);ctx.drawImage(this.image,-imgSize/2,-imgSize/2,imgSize,imgSize);}ctx.restore();}drawStar(ctx,cx,cy,spikes,outerRadius,innerRadius){let rot=Math.PI/2*3;let x=cx;let y=cy;let step=Math.PI/spikes;ctx.beginPath();ctx.moveTo(cx,cy-outerRadius);for(let i=0;i<spikes;i++){x=cx+Math.cos(rot)*outerRadius;y=cy+Math.sin(rot)*outerRadius;ctx.lineTo(x,y);rot+=step;x=cx+Math.cos(rot)*innerRadius;y=cy+Math.sin(rot)*innerRadius;ctx.lineTo(x,y);rot+=step;}ctx.lineTo(cx,cy-outerRadius);ctx.closePath();}drawHeart(ctx,cx,cy,size){const width=size;const height=size;ctx.beginPath();ctx.moveTo(cx,cy-height/4);// Left curve\nctx.bezierCurveTo(cx-width/2,cy-height/2,cx-width,cy+height/4,cx,cy+height/2);// Right curve\nctx.bezierCurveTo(cx+width,cy+height/4,cx+width/2,cy-height/2,cx,cy-height/4);ctx.closePath();}constructor(canvas){_define_property(this,\"x\",void 0);_define_property(this,\"y\",void 0);_define_property(this,\"color\",void 0);_define_property(this,\"size\",void 0);_define_property(this,\"angle\",void 0);_define_property(this,\"tilt\",void 0);_define_property(this,\"velocity\",void 0);_define_property(this,\"imageIndex\",void 0);_define_property(this,\"image\",void 0// Changed from HTMLImageElement to avoid browser-only API error\n);_define_property(this,\"opacity\",void 0);_define_property(this,\"life\",void 0);_define_property(this,\"maxLife\",void 0);_define_property(this,\"initialX\",void 0);_define_property(this,\"initialY\",void 0);// Start from center of canvas (accounting for the expanded canvas size)\nthis.initialX=this.x=canvas.width/2;this.initialY=this.y=canvas.height/2;this.color=colors[Math.floor(Math.random()*colors.length)];this.opacity=1;this.life=0;this.maxLife=duration*60// Roughly 60 frames per second\n;// For custom particles, load an image\nif(effectType===\"custom\"&&customParticles.length>0){this.imageIndex=Math.floor(Math.random()*customParticles.length);if(typeof window!==\"undefined\"){this.image=new Image;this.image.src=customParticles[this.imageIndex].src;}}// Set properties based on effect type\nif(effectType===\"confetti\"){this.size=Math.random()*size+size/2;this.angle=Math.random()*2*Math.PI;this.tilt=Math.random()*10-5;}else if(effectType===\"particles\"){this.size=Math.random()*(size/2)+size/4;this.angle=0;this.tilt=0;}else if(effectType===\"lines\"){this.size=Math.random()*size*2+size;this.angle=Math.random()*Math.PI;this.tilt=0;}else if(effectType===\"circles\"){this.size=Math.random()*size+size/2;this.angle=0;this.tilt=0;}else if(effectType===\"stars\"){this.size=Math.random()*size+size/2;this.angle=Math.random()*Math.PI;this.tilt=0;}else if(effectType===\"hearts\"){this.size=Math.random()*size+size/2;this.angle=Math.random()*Math.PI;this.tilt=0;}else if(effectType===\"custom\"){this.size=Math.random()*size*1.5+size;this.angle=Math.random()*2*Math.PI;this.tilt=Math.random()*10-5;}// Initial velocity based on spread and direction\nlet angle;switch(direction){case\"up\":angle=-Math.PI/2+(Math.random()-.5)*Math.PI/2;break;case\"down\":angle=Math.PI/2+(Math.random()-.5)*Math.PI/2;break;case\"left\":angle=Math.PI+(Math.random()-.5)*Math.PI/2;break;case\"right\":angle=0+(Math.random()-.5)*Math.PI/2;break;default:angle=Math.random()*Math.PI*2;}const speed=Math.random()*spread/10;this.velocity={x:Math.cos(angle)*speed,y:Math.sin(angle)*speed};}}const initConfettiAnimation=()=>{if(!canvasRef.current||isStatic)return;const canvas=canvasRef.current;particles.current=[];// Create particles\nfor(let i=0;i<count;i++){particles.current.push(new Particle(canvas));}// Start animation\nif(animationRef.current){cancelAnimationFrame(animationRef.current);}animate();};const animate=()=>{if(!canvasRef.current)return;const canvas=canvasRef.current;const ctx=canvas.getContext(\"2d\");if(!ctx)return;// Clear canvas\nctx.clearRect(0,0,canvas.width,canvas.height);// Update and draw particles\nparticles.current=particles.current.filter(particle=>{const isAlive=particle.update(canvas);if(isAlive)particle.draw(ctx);return isAlive;});// Continue animation if there are particles left\nif(particles.current.length>0){animationRef.current=requestAnimationFrame(animate);}else{startTransition(()=>setIsPlaying(false));}};// Handle canvas resize\nuseEffect(()=>{if(isStatic)return;const handleResize=()=>{if(!canvasRef.current)return;const canvas=canvasRef.current;const parent=canvas.parentElement;if(parent){// Make canvas larger than parent to allow particles to go outside\ncanvas.width=parent.clientWidth*3;canvas.height=parent.clientHeight*3;// Position the canvas to center it, with overflow allowed\ncanvas.style.left=\"-100%\";canvas.style.top=\"-100%\";canvas.style.width=\"300%\";canvas.style.height=\"300%\";}};handleResize();window.addEventListener(\"resize\",handleResize);return()=>{window.removeEventListener(\"resize\",handleResize);};},[isStatic]);// Preload custom images\nconst[imagesLoaded,setImagesLoaded]=useState(false);useEffect(()=>{if(isStatic||effectType!==\"custom\"||customParticles.length===0){startTransition(()=>setImagesLoaded(true));return;}let loadedCount=0;const totalImages=customParticles.length;if(typeof window!==\"undefined\"){customParticles.forEach(particle=>{const img=new Image;img.onload=()=>{loadedCount++;if(loadedCount===totalImages){startTransition(()=>setImagesLoaded(true));}};img.onerror=()=>{loadedCount++;if(loadedCount===totalImages){startTransition(()=>setImagesLoaded(true));}};img.src=particle.src;});}else{// Server-side rendering - skip image loading\nstartTransition(()=>setImagesLoaded(true));}return()=>{// Cancel image loading if component unmounts\nif(typeof window!==\"undefined\"){customParticles.forEach(particle=>{const img=new Image;img.onload=null;img.onerror=null;});}};},[customParticles,effectType,isStatic]);// Start/stop animation based on isPlaying state\nuseEffect(()=>{if(isStatic||!imagesLoaded)return;if(isPlaying){initConfettiAnimation();}else if(animationRef.current){cancelAnimationFrame(animationRef.current);}return()=>{if(animationRef.current){cancelAnimationFrame(animationRef.current);}};},[isPlaying,count,colors,gravity,spread,size,direction,customParticles,effectType,imagesLoaded,isStatic,fadeParticles]);// Auto-play timer\nuseEffect(()=>{if(isStatic||!isPlaying)return;const timer=setTimeout(()=>{if(particles.current.length===0){startTransition(()=>setIsPlaying(false));}},duration*1e3);return()=>clearTimeout(timer);},[isPlaying,duration,isStatic]);// Trigger animation on appear\nuseEffect(()=>{if(isStatic||triggerType!==\"appear\")return;startTransition(()=>setIsPlaying(true));},[triggerType,isStatic]);const handleClick=()=>{startTransition(()=>setIsPlaying(true));};// Static preview for canvas/export\nif(isStatic){return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"visible\",...style},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",textAlign:\"center\",color:\"#888\"},children:[effectType===\"custom\"?\"Custom\":effectType.charAt(0).toUpperCase()+effectType.slice(1),\" Animation\",/*#__PURE__*/_jsx(\"div\",{style:{fontSize:\"12px\",marginTop:\"8px\"},children:\"(Animation visible in preview)\"})]})});}return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"visible\",...style},onClick:triggerType===\"click\"?handleClick:undefined,onMouseEnter:triggerType===\"hover\"?handleClick:undefined,children:[/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{position:\"absolute\",top:\"0\",left:\"0\",width:\"100%\",height:\"100%\",pointerEvents:\"none\"}}),!isPlaying&&showPlayText&&triggerType===\"click\"&&/*#__PURE__*/_jsx(motion.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.3},style:{position:\"absolute\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",textAlign:\"center\",color:\"#888\",cursor:\"pointer\"},children:\"Click to play\"})]});}export default ConfettiAnimation;addPropertyControls(ConfettiAnimation,{triggerType:{type:ControlType.Enum,title:\"Trigger Type\",defaultValue:\"click\",options:[\"click\",\"hover\",\"appear\"],optionTitles:[\"Click\",\"Hover\",\"Appear\"]},effectType:{type:ControlType.Enum,title:\"Effect Type\",defaultValue:\"confetti\",options:[\"confetti\",\"particles\",\"lines\",\"circles\",\"stars\",\"hearts\",\"custom\"],optionTitles:[\"Confetti\",\"Particles\",\"Lines\",\"Circles\",\"Stars\",\"Hearts\",\"Custom Images\"]},customParticles:{type:ControlType.Array,title:\"Custom Particles\",control:{type:ControlType.ResponsiveImage},defaultValue:[],maxCount:10,hidden:({effectType})=>effectType!==\"custom\"},count:{type:ControlType.Number,title:\"Count\",defaultValue:100,min:10,max:500,step:10},colors:{type:ControlType.Array,title:\"Colors\",control:{type:ControlType.Color},defaultValue:[\"#FFC700\",\"#FF0055\",\"#0066FF\",\"#44DD00\",\"#8855FF\"],maxCount:10},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:3,min:1,max:10,step:.5,unit:\"s\"},gravity:{type:ControlType.Number,title:\"Gravity\",defaultValue:1,min:.1,max:3,step:.1},spread:{type:ControlType.Number,title:\"Spread\",defaultValue:50,min:10,max:100,step:5},size:{type:ControlType.Number,title:\"Size\",defaultValue:10,min:5,max:20,step:1},direction:{type:ControlType.Enum,title:\"Direction\",defaultValue:\"all\",options:[\"all\",\"up\",\"down\",\"left\",\"right\"],optionTitles:[\"All Directions\",\"Centre Up\",\"Centre Down\",\"Centre Left\",\"Centre Right\"]},autoPlay:{type:ControlType.Boolean,title:\"Auto Play\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},showPlayText:{type:ControlType.Boolean,title:\"Show Play Text\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},fadeParticles:{type:ControlType.Boolean,title:\"Fade Particles\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ConfettiAnimation\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ConfettiAnimation.map","const metadata=params=>({description:\"Made with Framer\",title:\"My Framer Site\"});export default metadata;export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (62acaa8)\nimport siteMetadata from\"https://framerusercontent.com/modules/lN1XCWbI6fJXihGzUJAY/SeBZHWM2sl1VIOjYkxZe/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-kKp1n\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=1200\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (d19865c)\nimport siteMetadata from\"https://framerusercontent.com/modules/lN1XCWbI6fJXihGzUJAY/SeBZHWM2sl1VIOjYkxZe/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"1ezcc7h\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-MS3vP\",title:siteMetadata(params,activeLocale).title||\"Confetti Component\",viewport:\"width=1420\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}