{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/beUVeIOYtEn3zlZPlhBl/xYE3aYD8LwY1ogfie5oi/Confettiv2.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState,useMemo,useCallback}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @copyright \u00A9framersnippets.com\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerDisableUnlink\n **/export default function ConfettiComponentV2(props){const{numberOfPieces,colors,options,style,speed,size}=props;const containerRef=useRef(null);const[scriptLoaded,setScriptLoaded]=useState(false);const uniqueId=useMemo(()=>`confetti-${Math.random().toString(36).substr(2,9)}`,[]);const loadScript=useCallback(()=>{return new Promise((resolve,reject)=>{if(window.tsParticles){resolve();return;}const script=document.createElement(\"script\");script.src=\"https://cdn.jsdelivr.net/npm/tsparticles@2.9.3/tsparticles.bundle.min.js\";script.async=true;script.onload=()=>resolve();script.onerror=()=>reject(new Error(\"Failed to load tsParticles script\"));document.head.appendChild(script);});},[]);useEffect(()=>{loadScript().then(()=>setScriptLoaded(true)).catch(console.error);return()=>{const script=document.querySelector('script[src=\"https://cdn.jsdelivr.net/npm/tsparticles@2.9.3/tsparticles.bundle.min.js\"]');if(script){document.head.removeChild(script);}};},[loadScript]);const getConfig=useCallback(()=>{const baseConfig={fullScreen:{enable:false},particles:{number:{value:numberOfPieces},color:{value:colors},size:{value:{min:size/2,max:size}},move:{enable:true,gravity:{enable:true,acceleration:9.81},direction:\"none\",random:true,straight:true,outModes:{default:\"destroy\",top:\"none\"}},rotate:{value:{min:0,max:360},direction:\"random\",animation:{enable:true,speed:60}},tilt:{direction:\"random\",enable:true,value:{min:0,max:360},animation:{enable:true,speed:60}},roll:{darken:{enable:true,value:25},enable:true,speed:{min:15,max:25}},wobble:{distance:30,enable:true,speed:{min:-15,max:15}},shape:{type:[\"circle\",\"square\",\"triangle\"]}}};const getSpeedConfig=(min,max)=>({speed:{min:min*speed,max:max*speed}});const getParticlesConfig=()=>({...baseConfig.particles,color:{value:colors}});switch(options){case\"Falling\":return{...baseConfig,emitters:{position:{x:50,y:0},rate:{quantity:numberOfPieces,delay:.15},size:{width:100,height:0}},particles:{...getParticlesConfig(),move:{...baseConfig.particles.move,direction:\"bottom\",outModes:{default:\"none\",bottom:\"destroy\"},...getSpeedConfig(0,.01)}}};case\"Explosions\":return{...baseConfig,emitters:{life:{count:0,duration:.1,delay:.4},rate:{delay:.15,quantity:numberOfPieces},size:{width:0,height:0}},particles:{...getParticlesConfig(),move:{...baseConfig.particles.move,...getSpeedConfig(0,.5)}}};case\"Side\":return{...baseConfig,emitters:[{position:{x:0,y:30},rate:{quantity:numberOfPieces,delay:.15},particles:{...getParticlesConfig(),move:{...baseConfig.particles.move,direction:\"top-right\",...getSpeedConfig(0,.5)}}},{position:{x:100,y:30},rate:{quantity:numberOfPieces,delay:.15},particles:{...getParticlesConfig(),move:{...baseConfig.particles.move,direction:\"top-left\",...getSpeedConfig(0,.5)}}}]};case\"Bottom\":return{...baseConfig,emitters:{position:{x:50,y:100},rate:{quantity:numberOfPieces,delay:.15}},particles:{...getParticlesConfig(),move:{...baseConfig.particles.move,direction:\"top\",...getSpeedConfig(1,.2)}}};default:return baseConfig;}},[numberOfPieces,colors,options,speed,size]);const config=useMemo(()=>getConfig(),[getConfig]);useEffect(()=>{if(scriptLoaded&&containerRef.current){window.tsParticles.load(uniqueId,config).then(()=>{console.log(`Particles loaded for ${uniqueId}`);}).catch(console.error);}},[scriptLoaded,config,uniqueId]);if(!scriptLoaded){return null// Or a loading indicator if preferred\n;}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,width:\"100%\",height:\"100%\",overflow:\"hidden\",position:\"relative\"},children:/*#__PURE__*/_jsx(\"div\",{id:uniqueId,style:{width:\"100%\",height:\"100%\",overflow:\"visible\",position:\"absolute\"}})});}ConfettiComponentV2.defaultProps={numberOfPieces:20,colors:[\"#FFC700\",\"#FF0000\",\"#2E3191\",\"#41BBC7\"],options:\"Falling\",speed:0,size:2};addPropertyControls(ConfettiComponentV2,{options:{type:ControlType.Enum,title:\"Effect\",options:[\"Falling\",\"Explosions\",\"Side\",\"Bottom\"],defaultValue:\"Falling\"},colors:{type:ControlType.Array,title:\"Colors\",propertyControl:{type:ControlType.Color},defaultValue:[\"#FFC700\",\"#FF0000\",\"#2E3191\",\"#41BBC7\"]},size:{type:ControlType.Number,title:\"Size\",min:1,max:20,step:1,displayStepper:true},numberOfPieces:{type:ControlType.Number,title:\"Count\",min:0,max:1e3,step:10,displayStepper:true},speed:{type:ControlType.Number,title:\"Speed\",min:0,max:100,step:5,displayStepper:true,description:\"Change speed for desired effect. High particle count impacts performance.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ConfettiComponentV2\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Confettiv2.map"],
  "mappings": "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",
  "names": ["ConfettiComponentV2", "props", "numberOfPieces", "colors", "options", "style", "speed", "size", "containerRef", "pe", "scriptLoaded", "setScriptLoaded", "ye", "uniqueId", "se", "loadScript", "te", "resolve", "reject", "window", "script", "ue", "getConfig", "baseConfig", "getSpeedConfig", "min", "max", "getParticlesConfig", "config", "p", "addPropertyControls", "ControlType"]
}
