{
  "version": 3,
  "sources": ["ssg: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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",
  "names": ["getRandomItem", "array", "getRandomPosition", "renderSVG", "svgCode", "fillColor", "strokeColor", "strokeWidth", "svgElement", "shape", "IconWrapper", "X", "renderedSvg", "setRenderedSvg", "ye", "ue", "RandomIconPopup", "svgCodes", "fillColors", "strokeColors", "maxIcons", "iconSize", "randomizeOnClick", "animationDuration", "iconAppearInterval", "iconLifespan", "backgroundOpacity", "backgroundColor", "rotationRange", "scaleRange", "blurAmount", "enableHoverEffect", "hoverScale", "icons", "setIcons", "nextId", "setNextId", "addIcon", "te", "currentIcons", "id", "removeIcon", "icon", "randomizeIcon", "intervalId", "timeouts", "AnimatePresence", "motion", "addPropertyControls", "ControlType"]
}
