{"version":3,"file":"MouseStickerBackground.DOvg3IXv.mjs","names":["useState","useRef","__esmMin","init_npm_react_18_3_1","te","_e","c","init_jsx_runtime","ce","de","addPropertyControls","init_framer_DymZktPS","ControlType","RenderTarget","MouseStickerBackground","props","stickers","setStickers","containerRef","nextId","lastPlacedRef","stickerIndex","handleMouseMove","images","now","rect","x","y","idx","img","size","id","created","prev","interval","s","style","fade","elapsed","sticker","init_MouseStickerBackground","decayEnabled"],"sources":["https:/framerusercontent.com/modules/XrJVg7Rio3brn55RGiEZ/7mtkxnavoIht5qawg5Ih/MouseStickerBackground.js"],"sourcesContent":["// Sticker background: places a random image from an input list at the mouse position on every mouse move, with per-sticker variable fade out\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useState,useEffect,startTransition}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * MouseStickerBackground\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function MouseStickerBackground(props){const{images=[{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Sticker 1\",size:64,decay:1200},{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Sticker 2\",size:64,decay:1200},{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Sticker 3\",size:64,decay:1200}],style}=props;const[stickers,setStickers]=useState([]);const containerRef=useRef(null);const nextId=useRef(0);// Throttle sticker placement\nconst lastPlacedRef=useRef(0);const STICKER_DELAY=60// ms\n;// Sequential sticker index\nconst stickerIndex=useRef(0);function handleMouseMove(e){if(RenderTarget.current()!==RenderTarget.preview)return;if(!images.length)return;const now=Date.now();if(now-lastPlacedRef.current<STICKER_DELAY)return;lastPlacedRef.current=now;const rect=containerRef.current?.getBoundingClientRect();if(!rect)return;const x=e.clientX-rect.left;const y=e.clientY-rect.top;const idx=stickerIndex.current%images.length;const img=images[idx];stickerIndex.current++;const size=typeof img.size===\"number\"?img.size:64;const id=nextId.current++;const created=Date.now();startTransition(()=>setStickers(prev=>[...prev,{src:img.src,alt:img.alt,x,y,size,created,id}]));}// Fade out and remove stickers after global decay\nuseEffect(()=>{if(!stickers.length)return;if(!props.decayEnabled)return;const interval=setInterval(()=>{const now=Date.now();startTransition(()=>setStickers(prev=>prev.filter(s=>now-s.created<(props.decay||1200))));},50);return()=>clearInterval(interval);},[stickers.length,props.decay,props.decayEnabled]);const now=Date.now();return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"visible\",cursor:\"crosshair\",background:\"transparent\"},onMouseMove:handleMouseMove,\"aria-label\":\"Sticker background\",children:stickers.map(sticker=>{let fade=1;if(props.decayEnabled){const elapsed=now-sticker.created;fade=Math.max(0,Math.min(1,1+.2-elapsed/(props.decay||1200)));}return /*#__PURE__*/_jsx(\"img\",{src:sticker.src,alt:sticker.alt,style:{position:\"absolute\",left:sticker.x-sticker.size/2,top:sticker.y-sticker.size/2,width:sticker.size,height:sticker.size,objectFit:\"contain\",pointerEvents:\"none\",userSelect:\"none\",opacity:fade,transition:\"opacity 0.2s linear\"},draggable:false},sticker.id);})});}addPropertyControls(MouseStickerBackground,{images:{type:ControlType.Array,title:\"Stickers\",control:{type:ControlType.Object,controls:{src:{type:ControlType.File,title:\"Sticker Image\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"gif\",\"webp\",\"svg\"]},alt:{type:ControlType.String,title:\"Alt Text\",defaultValue:\"Sticker\"},size:{type:ControlType.Number,title:\"Size\",defaultValue:64,min:16,max:256,unit:\"px\"}}},defaultValue:[{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Sticker 1\",size:64},{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Sticker 2\",size:64},{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Sticker 3\",size:64}],maxCount:10},decayEnabled:{type:ControlType.Boolean,title:\"Fade Stickers\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},decay:{type:ControlType.Number,title:\"Fade Duration\",defaultValue:1200,min:200,max:5e3,unit:\"ms\",hidden:({decayEnabled})=>!decayEnabled}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MouseStickerBackground\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MouseStickerBackground.map"],"mappings":"A,uMAMG,SAAwBc,EAAuB,EAAM,CAAC,GAAK,CAAC,SAAO,CAAC,CAAC,IAAI,sEAAsE,IAAI,YAAY,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,oEAAoE,IAAI,YAAY,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,uEAAuE,IAAI,YAAY,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,SAAOC,EAAW,CAACC,EAASC,GAAajB,EAAS,CAAC,CAAC,EAAQkB,EAAajB,EAAO,IAAI,EAAQkB,EAAOlB,EAAO,CAAC,EACzfmB,EAAcnB,EAAO,CAAC,EAEtBoB,EAAapB,EAAO,CAAC,EAAE,SAASqB,EAAgB,EAAE,CAAyD,GAArDT,EAAa,QAAQ,IAAIA,EAAa,SAAkB,CAACU,EAAO,OAAO,OAAO,IAAMC,EAAI,KAAK,IAAI,EAAE,GAAGA,EAAIJ,EAAc,QAAQ,GAAc,OAAO,EAAc,QAAQI,EAAI,IAAMC,EAAKP,EAAa,SAAS,sBAAsB,EAAE,GAAG,CAACO,EAAK,OAAO,IAAMC,EAAE,EAAE,QAAQD,EAAK,KAAWE,EAAE,EAAE,QAAQF,EAAK,IAAUG,EAAIP,EAAa,QAAQE,EAAO,OAAaM,EAAIN,EAAOK,GAAK,EAAa,UAAU,IAAME,EAAK,OAAOD,EAAI,MAAO,SAASA,EAAI,KAAK,GAASE,EAAG,EAAO,UAAgBC,EAAQ,KAAK,IAAI,EAAE5B,MAAoBa,EAAY,GAAM,CAAC,GAAGgB,EAAK,CAAC,IAAIJ,EAAI,IAAI,IAAIA,EAAI,IAAI,IAAE,IAAE,OAAK,UAAQ,IAAE,CAAC,CAAC,CAAC,CAAE,CAC1oBrB,MAAc,CAA4B,GAAxB,CAACQ,EAAS,QAAiB,CAACD,EAAM,aAAa,OAAO,IAAMmB,EAAS,gBAAgB,CAAC,IAAMV,EAAI,KAAK,IAAI,EAAEpB,MAAoBa,EAAY,GAAMgB,EAAK,OAAO,GAAGT,EAAIW,EAAE,SAASpB,EAAM,OAAO,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,UAAU,cAAcmB,CAAQ,CAAE,EAAE,CAAClB,EAAS,OAAOD,EAAM,MAAMA,EAAM,YAAY,CAAC,EAAE,IAAMS,EAAI,KAAK,IAAI,EAAE,MAAoB,gBAAK,MAAM,CAAC,IAAIN,EAAa,MAAM,CAAC,GAAGkB,EAAM,MAAM,OAAO,OAAO,OAAO,SAAS,WAAW,SAAS,UAAU,OAAO,YAAY,WAAW,aAAa,EAAE,YAAYd,EAAgB,aAAa,qBAAqB,SAASN,EAAS,IAAI,GAAS,CAAC,IAAIqB,EAAK,EAAE,GAAGtB,EAAM,aAAa,CAAC,IAAMuB,EAAQd,EAAIe,EAAQ,QAAQ,EAAK,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,IAAKD,GAASvB,EAAM,OAAO,KAAK,CAAC,CAAE,CAAC,MAAoB,gBAAK,MAAM,CAAC,IAAIwB,EAAQ,IAAI,IAAIA,EAAQ,IAAI,MAAM,CAAC,SAAS,WAAW,KAAKA,EAAQ,EAAEA,EAAQ,KAAK,EAAE,IAAIA,EAAQ,EAAEA,EAAQ,KAAK,EAAE,MAAMA,EAAQ,KAAK,OAAOA,EAAQ,KAAK,UAAU,UAAU,cAAc,OAAO,WAAW,OAAO,QAAQF,EAAK,WAAW,qBAAqB,EAAE,UAAU,EAAK,EAAEE,EAAQ,EAAE,CAAE,CAAC,CAAC,CAAC,CAAE,C,0CAAC7B,EAAoBI,EAAuB,CAAC,OAAO,CAAC,KAAKF,EAAY,MAAM,MAAM,WAAW,QAAQ,CAAC,KAAKA,EAAY,OAAO,SAAS,CAAC,IAAI,CAAC,KAAKA,EAAY,KAAK,MAAM,gBAAgB,iBAAiB,CAAC,MAAM,OAAO,MAAM,MAAM,OAAO,KAAK,CAAC,EAAE,IAAI,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,aAAa,SAAS,EAAE,KAAK,CAAC,KAAKA,EAAY,OAAO,MAAM,OAAO,aAAa,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,sEAAsE,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC,IAAI,oEAAoE,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC,IAAI,uEAAuE,IAAI,YAAY,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,aAAa,CAAC,KAAKA,EAAY,QAAQ,MAAM,gBAAgB,aAAa,GAAK,aAAa,KAAK,cAAc,KAAK,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,gBAAgB,aAAa,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,QAAQ,CAAC,kBAAgB,CAAC6B,CAAY,CAAC,CAAC,C"}