{"version":3,"file":"IconSpawn.CuAzNiaS.mjs","names":["React.useState","React.useCallback"],"sources":["https:/framerusercontent.com/modules/sy98xIxGh8OcagvSoyLZ/2oPgmLUAmmLp3vMqAY1B/IconSpawn.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{motion,AnimatePresence}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const getRandomItem=array=>{return array[Math.floor(Math.random()*array.length)];};const getRandomPosition=()=>{return{x:`${Math.random()*80+10}%`,y:`${Math.random()*80+10}%`};};const renderSVG=(svgCode,fillColor,strokeColor,strokeWidth)=>{const parser=new DOMParser;const doc=parser.parseFromString(svgCode,\"image/svg+xml\");const svgElement=doc.querySelector(\"svg\");if(svgElement){svgElement.setAttribute(\"width\",\"100%\");svgElement.setAttribute(\"height\",\"100%\");const shapes=svgElement.querySelectorAll(\"path, circle, rect, ellipse, line, polyline, polygon\");shapes.forEach(shape=>{shape.removeAttribute(\"fill\");shape.removeAttribute(\"stroke\");shape.removeAttribute(\"stroke-width\");shape.setAttribute(\"fill\",fillColor);shape.setAttribute(\"stroke\",strokeColor);shape.setAttribute(\"stroke-width\",strokeWidth.toString());});return svgElement.outerHTML;}return\"\";};const IconWrapper=/*#__PURE__*/React.memo(({svgCode,fillColor,strokeColor,strokeWidth})=>{const[renderedSvg,setRenderedSvg]=React.useState(\"\");React.useEffect(()=>{setRenderedSvg(renderSVG(svgCode,fillColor,strokeColor,strokeWidth));},[svgCode,fillColor,strokeColor,strokeWidth]);return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"},dangerouslySetInnerHTML:{__html:renderedSvg}});});export function RandomIconPopup({svgCodes,fillColors,strokeColors,strokeWidth,maxIcons,iconSize,randomizeOnClick,animationDuration,iconAppearInterval,iconLifespan,backgroundOpacity,backgroundColor,rotationRange,scaleRange,blurAmount,enableHoverEffect,hoverScale}){const[icons,setIcons]=React.useState([]);const[nextId,setNextId]=React.useState(0);const addIcon=React.useCallback(()=>{if(svgCodes.length===0||fillColors.length===0||strokeColors.length===0){console.warn(\"No SVGs or colors available\");return;}setIcons(currentIcons=>{if(currentIcons.length>=maxIcons){// Remove the oldest icon if we've reached the maximum\nreturn[...currentIcons.slice(1),{svgCode:getRandomItem(svgCodes),fillColor:getRandomItem(fillColors),strokeColor:getRandomItem(strokeColors),position:getRandomPosition(),id:nextId}];}else{// Add a new icon if we haven't reached the maximum\nreturn[...currentIcons,{svgCode:getRandomItem(svgCodes),fillColor:getRandomItem(fillColors),strokeColor:getRandomItem(strokeColors),position:getRandomPosition(),id:nextId}];}});setNextId(id=>id+1);},[svgCodes,fillColors,strokeColors,maxIcons,nextId]);const removeIcon=React.useCallback(id=>{setIcons(currentIcons=>currentIcons.filter(icon=>icon.id!==id));},[]);const randomizeIcon=React.useCallback(id=>{setIcons(currentIcons=>currentIcons.map(icon=>icon.id===id?{...icon,fillColor:getRandomItem(fillColors),strokeColor:getRandomItem(strokeColors)}:icon));},[fillColors,strokeColors]);React.useEffect(()=>{const intervalId=setInterval(addIcon,iconAppearInterval);return()=>clearInterval(intervalId);},[addIcon,iconAppearInterval]);React.useEffect(()=>{const timeouts=icons.map(icon=>setTimeout(()=>removeIcon(icon.id),iconLifespan));return()=>timeouts.forEach(clearTimeout);},[icons,removeIcon,iconLifespan]);return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",backgroundColor:`rgba(${parseInt(backgroundColor.slice(1,3),16)}, ${parseInt(backgroundColor.slice(3,5),16)}, ${parseInt(backgroundColor.slice(5,7),16)}, ${backgroundOpacity})`},children:/*#__PURE__*/_jsx(AnimatePresence,{children:icons.map(icon=>/*#__PURE__*/_jsx(motion.div,{initial:{opacity:0,scale:1.25,rotate:0},animate:{opacity:1,scale:Math.random()*(scaleRange.max-scaleRange.min)+scaleRange.min,rotate:Math.random()*rotationRange-rotationRange/2},exit:{opacity:0,scale:.8},transition:{type:\"tween\",ease:\"easeInOut\",duration:animationDuration},style:{position:\"absolute\",left:icon.position.x,top:icon.position.y,width:iconSize,height:iconSize,cursor:randomizeOnClick?\"pointer\":\"default\",filter:`blur(${blurAmount}px)`},onClick:()=>randomizeOnClick&&randomizeIcon(icon.id),whileHover:enableHoverEffect?{scale:hoverScale}:{},children:/*#__PURE__*/_jsx(IconWrapper,{svgCode:icon.svgCode,fillColor:icon.fillColor,strokeColor:icon.strokeColor,strokeWidth:strokeWidth})},icon.id))})});}RandomIconPopup.defaultProps={svgCodes:['<svg viewBox=\"0 0 24 24\"><path d=\"M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2Z\"/></svg>','<svg viewBox=\"0 0 24 24\"><path d=\"M12 17.27L18.18 21L16.54 13.97L22 9.24L14.81 8.63L12 2L9.19 8.63L2 9.24L7.46 13.97L5.82 21L12 17.27Z\"/></svg>','<svg viewBox=\"0 0 24 24\"><path d=\"M3.55 19.09L4.96 20.5L6.76 18.71L5.34 17.29M12 6C8.69 6 6 8.69 6 12S8.69 18 12 18 18 15.31 18 12C18 8.68 15.31 6 12 6M20 13H23V11H20M17.24 18.71L19.04 20.5L20.45 19.09L18.66 17.29M20.45 5L19.04 3.6L17.24 5.39L18.66 6.81M13 0H11V3H13M6.76 5.39L4.96 3.6L3.55 5L5.34 6.81L6.76 5.39M1 13H4V11H1M13 20H11V23H13\"/></svg>'],fillColors:[\"#FF0000\",\"#00FF00\",\"#0000FF\",\"#FFFF00\",\"#FF00FF\",\"#00FFFF\"],strokeColors:[\"#000000\",\"#FFFFFF\"],strokeWidth:1,maxIcons:5,iconSize:50,randomizeOnClick:true,animationDuration:.5,iconAppearInterval:5e3,iconLifespan:2e4,backgroundOpacity:0,backgroundColor:\"#FFFFFF\",rotationRange:0,scaleRange:{min:.8,max:1.2},blurAmount:0,enableHoverEffect:false,hoverScale:1.1};addPropertyControls(RandomIconPopup,{svgCodes:{type:ControlType.Array,control:{type:ControlType.String,displayTextArea:true},defaultValue:RandomIconPopup.defaultProps.svgCodes,title:\"SVG Codes\"},fillColors:{type:ControlType.Array,control:{type:ControlType.Color},defaultValue:RandomIconPopup.defaultProps.fillColors,title:\"Fill Colors\"},strokeColors:{type:ControlType.Array,control:{type:ControlType.Color},defaultValue:RandomIconPopup.defaultProps.strokeColors,title:\"Stroke Colors\"},strokeWidth:{type:ControlType.Number,min:0,max:10,step:.1,defaultValue:RandomIconPopup.defaultProps.strokeWidth,title:\"Stroke Width\"},maxIcons:{type:ControlType.Number,min:1,max:50,step:1,defaultValue:RandomIconPopup.defaultProps.maxIcons,title:\"Max Icons\"},iconSize:{type:ControlType.Number,min:10,max:200,step:1,defaultValue:RandomIconPopup.defaultProps.iconSize,title:\"Icon Size\"},randomizeOnClick:{type:ControlType.Boolean,defaultValue:RandomIconPopup.defaultProps.randomizeOnClick,title:\"Randomize On Click\"},animationDuration:{type:ControlType.Number,min:.1,max:2,step:.1,defaultValue:RandomIconPopup.defaultProps.animationDuration,title:\"Animation Duration\"},iconAppearInterval:{type:ControlType.Number,min:1e3,max:1e4,step:100,defaultValue:RandomIconPopup.defaultProps.iconAppearInterval,title:\"Icon Appear Interval (ms)\"},iconLifespan:{type:ControlType.Number,min:5e3,max:6e4,step:1e3,defaultValue:RandomIconPopup.defaultProps.iconLifespan,title:\"Icon Lifespan (ms)\"},backgroundOpacity:{type:ControlType.Number,min:0,max:1,step:.1,defaultValue:RandomIconPopup.defaultProps.backgroundOpacity,title:\"Background Opacity\"},backgroundColor:{type:ControlType.Color,defaultValue:RandomIconPopup.defaultProps.backgroundColor,title:\"Background Color\"},rotationRange:{type:ControlType.Number,min:0,max:360,step:1,defaultValue:RandomIconPopup.defaultProps.rotationRange,title:\"Rotation Range\"},scaleRange:{type:ControlType.Object,controls:{min:{type:ControlType.Number,min:.1,max:1,step:.1},max:{type:ControlType.Number,min:1,max:2,step:.1}},defaultValue:RandomIconPopup.defaultProps.scaleRange,title:\"Scale Range\"},blurAmount:{type:ControlType.Number,min:0,max:10,step:.1,defaultValue:RandomIconPopup.defaultProps.blurAmount,title:\"Blur Amount\"},enableHoverEffect:{type:ControlType.Boolean,defaultValue:RandomIconPopup.defaultProps.enableHoverEffect,title:\"Enable Hover Effect\"},hoverScale:{type:ControlType.Number,min:1,max:2,step:.1,defaultValue:RandomIconPopup.defaultProps.hoverScale,title:\"Hover Scale\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"RandomIconPopup\":{\"type\":\"reactComponent\",\"name\":\"RandomIconPopup\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./IconSpawn.map"],"mappings":"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"}