{"version":3,"file":"shared-lib.CXepMVYO.mjs","names":["p","metadata","metadataVersion","__FramerMetadata__","metadata"],"sources":["https:/framerusercontent.com/modules/NEgs8xufWsZ1QxMKCLyq/XqcA5UPtSyDn1O3a2XQi/Cursor_Image_Reveal.js","https:/framerusercontent.com/modules/3ECrUQW3LgDhPhQt7NjN/Hxt4M0bpPXmbe6o1THUj/siteMetadata.js","https:/framerusercontent.com/modules/B0P6O1vKYgN4uZSk2Pk9/b3qOuDocBe3io2Knk0yK/ho8oWljLx.js","https:/framerusercontent.com/modules/A37GZ1jwoXMcSReVV60A/5D8ZhpUI55BpqkSHUb4F/SVUaI2l1P.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\";export default function CursorImageTrail(props){const{image1,image2,image3,image4,image5,image6,image7,image8,image9,image10,image11,image12,image13,lifespanMs=1100,maxSpots=32,minIntervalMs=50,minDistancePx=12,bg=\"transparent\",hideCursor=true,blendMode=\"screen\",minSize=90,maxSize=160,maxRotation=16,enterStiffness=260,enterDamping=22,enterMass=.6,exitDuration=.25,fillViewport=true,fixedHeight=600}=props;// Collect provided images\nconst images=[image1,image2,image3,image4,image5,image6,image7,image8,image9,image10,image11,image12,image13].filter(Boolean);const[spots,setSpots]=React.useState([]);const idRef=React.useRef(0);const lastTime=React.useRef(0);const lastPos=React.useRef(null);const timers=React.useRef(new Map);const wrap=React.useRef(null);// 🔄 shuffled deck of images — prevents repeats until all are used\nconst deckRef=React.useRef([]);const getNextImage=()=>{if(deckRef.current.length===0){deckRef.current=[...images].sort(()=>Math.random()-.5);}return deckRef.current.pop();};// Cleanup timers on unmount\nReact.useEffect(()=>()=>{timers.current.forEach(t=>clearTimeout(t));timers.current.clear();},[]);const remove=id=>{setSpots(p=>p.filter(s=>s.id!==id));const t=timers.current.get(id);if(t){clearTimeout(t);timers.current.delete(id);}};const spawn=(clientX,clientY)=>{if(!wrap.current||images.length===0)return;const now=performance.now();if(now-lastTime.current<minIntervalMs)return;const rect=wrap.current.getBoundingClientRect();const x=clientX-rect.left;const y=clientY-rect.top;if(lastPos.current){const dx=x-lastPos.current.x;const dy=y-lastPos.current.y;if(dx*dx+dy*dy<minDistancePx*minDistancePx)return;}lastPos.current={x,y};lastTime.current=now;const src=getNextImage();const size=Math.max(8,Math.min(2048,minSize+Math.random()*(maxSize-minSize)));const rot=(Math.random()-.5)*2*maxRotation;const id=idRef.current++;setSpots(p=>{const trimmed=p.length>=maxSpots?p.slice(p.length-(maxSpots-1)):p;return[...trimmed,{id,x,y,src,size,rot}];});const t=window.setTimeout(()=>remove(id),lifespanMs);timers.current.set(id,t);};const onMove=e=>spawn(e.clientX,e.clientY);return /*#__PURE__*/_jsx(\"div\",{ref:wrap,onPointerMove:onMove,onPointerDown:onMove,style:{position:\"relative\",width:\"100%\",height:fillViewport?\"100vh\":fixedHeight,overflow:\"hidden\",background:bg,touchAction:\"none\",cursor:hideCursor?\"none\":\"auto\"},children:/*#__PURE__*/_jsx(AnimatePresence,{children:spots.map(({id,x,y,src,size,rot})=>/*#__PURE__*/_jsx(motion.img,{src:src,alt:\"\",initial:{opacity:0,scale:.6,rotate:rot,x:\"-50%\",y:\"-50%\"},animate:{opacity:1,scale:1,rotate:rot,transition:{type:\"spring\",stiffness:enterStiffness,damping:enterDamping,mass:enterMass}},exit:{opacity:0,scale:.9,transition:{duration:exitDuration}},style:{position:\"absolute\",left:x,top:y,width:size,height:\"auto\",pointerEvents:\"none\",transform:\"translate(-50%,-50%)\",willChange:\"transform,opacity\",mixBlendMode:blendMode}},id))})});}// ---- Framer Property Controls ----\naddPropertyControls(CursorImageTrail,{image1:{type:ControlType.Image,title:\"Image 1\"},image2:{type:ControlType.Image,title:\"Image 2\"},image3:{type:ControlType.Image,title:\"Image 3\"},image4:{type:ControlType.Image,title:\"Image 4\"},image5:{type:ControlType.Image,title:\"Image 5\"},image6:{type:ControlType.Image,title:\"Image 6\"},image7:{type:ControlType.Image,title:\"Image 7\"},image8:{type:ControlType.Image,title:\"Image 8\"},image9:{type:ControlType.Image,title:\"Image 9\"},image10:{type:ControlType.Image,title:\"Image 10\"},image11:{type:ControlType.Image,title:\"Image 11\"},image12:{type:ControlType.Image,title:\"Image 12\"},image13:{type:ControlType.Image,title:\"Image 13\"},lifespanMs:{type:ControlType.Number,title:\"Lifespan (ms)\",min:150,max:1e4,step:50},maxSpots:{type:ControlType.Number,title:\"Max Sprites\",min:4,max:80,step:1},minIntervalMs:{type:ControlType.Number,title:\"Spawn Throttle (ms)\",min:0,max:200,step:5},minDistancePx:{type:ControlType.Number,title:\"Min Move (px)\",min:0,max:60,step:1},bg:{type:ControlType.Color,title:\"Background\"},hideCursor:{type:ControlType.Boolean,title:\"Hide Cursor\"},blendMode:{type:ControlType.Enum,title:\"Blend Mode\",options:[\"normal\",\"screen\",\"multiply\",\"overlay\",\"lighten\",\"darken\"],optionTitles:[\"Normal\",\"Screen\",\"Multiply\",\"Overlay\",\"Lighten\",\"Darken\"]},minSize:{type:ControlType.Number,title:\"Min Size (px)\",min:10,max:400,step:1},maxSize:{type:ControlType.Number,title:\"Max Size (px)\",min:20,max:600,step:1},maxRotation:{type:ControlType.Number,title:\"Max \\xb1Rotate (\\xb0)\",min:0,max:90,step:1},enterStiffness:{type:ControlType.Number,title:\"Enter Stiffness\",min:50,max:800,step:10},enterDamping:{type:ControlType.Number,title:\"Enter Damping\",min:1,max:80,step:1},enterMass:{type:ControlType.Number,title:\"Enter Mass\",min:.1,max:5,step:.1},exitDuration:{type:ControlType.Number,title:\"Exit Duration\",min:.05,max:1,step:.05},fillViewport:{type:ControlType.Boolean,title:\"Fill 100vh\"},fixedHeight:{type:ControlType.Number,title:\"Fixed Height (px)\",min:200,max:2e3,step:10,hidden:p=>p.fillViewport}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CursorImageTrail\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Cursor_Image_Reveal.map","// Generated by Framer (a44d8cf)\nexport default function metadata(params,activeLocale){return{description:\"Jessica Spooner is a multimedia designer based on the Olympic Peninsula, WA. She specializes in bold graphic design, web design, brand identity systems, and marketing campaigns, helping brands grow with impactful and innovative visual solutions.\",favicon:\"https://framerusercontent.com/assets/3Gs0caECKCKa1xoqlmX8b03UqM.png\",robots:\"max-image-preview:large\",title:\"Jessica Spooner | Multimedia Designer | Graphic Design, Web Design & Branding\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (a44d8cf)\nimport siteMetadata from\"https://framerusercontent.com/modules/3ECrUQW3LgDhPhQt7NjN/Hxt4M0bpPXmbe6o1THUj/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"bc5q2o\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"17uqg9t\",mediaQuery:\"(min-width: 960px) and (max-width: 1199px)\"},{hash:\"1h0gaww\",mediaQuery:\"(max-width: 959px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-UhTzu\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}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 (a44d8cf)\nimport siteMetadata from\"https://framerusercontent.com/modules/3ECrUQW3LgDhPhQt7NjN/Hxt4M0bpPXmbe6o1THUj/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"mc3ill\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"wrz4sc\",mediaQuery:\"(min-width: 810px) and (max-width: 1199px)\"},{hash:\"7fihiv\",mediaQuery:\"(max-width: 809px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-VJTQD\",title:siteMetadata(params,activeLocale).title||\"Tester\",viewport:\"width=device-width\"};}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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"}