{"version":3,"file":"ScreenSaver_Prod.B3xxevCI.mjs","names":["useState","React.useState","React.useRef","React.useCallback"],"sources":["https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0.0","https:/framerusercontent.com/modules/PN5c9Lm200xYeKxP2Gcy/hDBsItohjMEOACix8wDv/Utils.js","https:/framer.com/m/Utils-QTIc.js@hDBsItohjMEOACix8wDv","https:/framerusercontent.com/modules/kAKs4SGX5PAwm3BE8By8/zuTgm2zMHagAGUJZdLP0/ScreenSaver_Prod.js"],"sourcesContent":["import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{ControlType}from\"framer\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";export const updateChildren=(children,properties)=>{return[{...children,props:{...children.props,children:{...children.props.children,props:{...children.props.children.props,children:{...children.props.children.props.children,props:{...children.props.children.props.children.props,...properties}}}}}}];};export const SettingsMessage=({title,description,containerStyle})=>{return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",textAlign:\"center\",justifyContent:\"center\",backgroundColor:\"rgba(136, 85, 255, 0.1)\",overflow:\"hidden\",...containerStyle},children:[/*#__PURE__*/_jsx(\"span\",{role:\"img\",\"aria-label\":\"icon\",style:{fontSize:\"32px\"},children:\"✨\"}),/*#__PURE__*/_jsxs(\"div\",{style:{maxWidth:\"240px\"},children:[/*#__PURE__*/_jsx(\"h1\",{style:{fontSize:11,color:\"#96F\",fontWeight:600},children:title}),/*#__PURE__*/_jsx(\"p\",{style:{fontSize:11,color:\"rgba(153, 102, 255, 0.7)\",lineHeight:1.5},children:description})]})]});};export const getBorder=border=>{if(!border)return{border:\"none\"};const{width,color,style}=border;return{borderWidth:width,borderColor:color,borderStyle:style};};export const borderProperty=(title=\"Border\",width=\"0px\",color=\"#fff\")=>({title,type:ControlType.Object,controls:{width:{title:\"Width\",type:ControlType.Padding,defaultValue:width},color:{title:\"Color\",type:ControlType.Color,defaultValue:color},style:{type:ControlType.Enum,defaultValue:\"solid\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"]}}});export const getBoxShadow=property=>{const{x,y,blur,color}=property.shadow;return`${x}px ${y}px ${blur}px ${color}`;};export const shadowProperty={type:ControlType.Object,controls:{color:{title:\"Color\",type:ControlType.Color,defaultValue:\"#bfbfbf\"},x:{title:\"X\",type:ControlType.Number,defaultValue:0,min:-100,max:100},y:{title:\"Y\",type:ControlType.Number,defaultValue:0,min:-100,max:100},blur:{title:\"Blur\",type:ControlType.Number,defaultValue:0,min:0,max:100}}};export const heightProperty={height:{type:ControlType.Enum,defaultValue:\"auto\",displaySegmentedControl:true,options:[\"auto\",\"fixed\"],optionTitles:[\"Auto\",\"Fixed\"]},heightNumber:{title:\" \",type:ControlType.Number,defaultValue:50,hidden(props){return props.height===\"auto\";}}};export const getHeight=property=>{if(property.height===\"auto\"){return property.height;}else{return`${property.heightNumber}px`;}};export const getPageQueryParam=()=>{const urlParams=new URLSearchParams(window.location.search);const pageParam=urlParams.get(\"page\");return pageParam?parseInt(pageParam,10):1;};export const updatePageQueryParam=newPage=>{const url=new URL(window.location.href);url.searchParams.set(\"page\",newPage);window.history.replaceState({},\"\",url.toString());};export const useStore=createStore({initialLimit:undefined,initialOffset:undefined,limit:undefined,offset:undefined,totalItems:undefined,page:1,searchQuery:\"\",totalPages:undefined});export const scrollToTop=(withScroll,scrollTop,scrollBehavior)=>{if(withScroll){window.scrollTo({top:scrollTop,behavior:scrollBehavior});}};\nexport const __FramerMetadata__ = {\"exports\":{\"heightProperty\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"updatePageQueryParam\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getHeight\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getBoxShadow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"updateChildren\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderProperty\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"shadowProperty\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getBorder\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SettingsMessage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPageQueryParam\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scrollToTop\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Utils.map","/*\n * Utils\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/PN5c9Lm200xYeKxP2Gcy/hDBsItohjMEOACix8wDv/Utils.js\"\n","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{motion,AnimatePresence,useMotionValue}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";import{SettingsMessage}from\"https://framer.com/m/Utils-QTIc.js@hDBsItohjMEOACix8wDv\";const styles=`\n  .screen-saver, .screen-saver > * {\n    width: 100% !important;\n    height: 100% !important;\n  }\n  .screen-saver {\n    position: relative;\n    overflow: hidden;\n  }\n  .bouncer-container {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n  }\n  .bouncer {\n    position: absolute;\n  }\n`;/**\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */function ScreenSaver({background,bouncer,ms,speed,transition,style}){const[isIdle,setIsIdle]=React.useState(false);const containerRef=React.useRef(null);const bouncerRef=React.useRef(null);const[containerSize,setContainerSize]=React.useState({width:0,height:0});const[bouncerSize,setBouncerSize]=React.useState({width:0,height:0});const x=useMotionValue(0);const y=useMotionValue(0);const directionRef=React.useRef({x:1,y:1});const animationRef=React.useRef(null);const lastUpdateTime=React.useRef(0);const updateSizes=React.useCallback(()=>{if(containerRef.current){const containerRect=containerRef.current.getBoundingClientRect();setContainerSize({width:containerRect.width,height:containerRect.height});}if(bouncerRef.current){const bouncerRect=bouncerRef.current.getBoundingClientRect();setBouncerSize({width:bouncerRect.width,height:bouncerRect.height});}},[]);React.useLayoutEffect(()=>{updateSizes();const resizeObserver=new ResizeObserver(updateSizes);if(containerRef.current)resizeObserver.observe(containerRef.current);if(bouncerRef.current)resizeObserver.observe(bouncerRef.current);const mutationObserver=new MutationObserver(updateSizes);if(containerRef.current){mutationObserver.observe(containerRef.current,{childList:true,subtree:true});}return()=>{resizeObserver.disconnect();mutationObserver.disconnect();};},[updateSizes]);React.useEffect(()=>{let timeoutId;const resetTimer=()=>{clearTimeout(timeoutId);setIsIdle(false);timeoutId=setTimeout(()=>setIsIdle(true),ms);};const handleUserActivity=()=>{resetTimer();};resetTimer();// Add event listeners for various user interactions\nwindow.addEventListener(\"mousemove\",handleUserActivity);window.addEventListener(\"keydown\",handleUserActivity);window.addEventListener(\"mousedown\",handleUserActivity);window.addEventListener(\"touchstart\",handleUserActivity);window.addEventListener(\"touchmove\",handleUserActivity);window.addEventListener(\"scroll\",handleUserActivity,true)// Capture phase\n;return()=>{clearTimeout(timeoutId);window.removeEventListener(\"mousemove\",handleUserActivity);window.removeEventListener(\"keydown\",handleUserActivity);window.removeEventListener(\"mousedown\",handleUserActivity);window.removeEventListener(\"touchstart\",handleUserActivity);window.removeEventListener(\"touchmove\",handleUserActivity);window.removeEventListener(\"scroll\",handleUserActivity,true);};},[ms]);const animate=React.useCallback(timestamp=>{const deltaTime=timestamp-lastUpdateTime.current;if(deltaTime<16){// Limit to ~60 FPS\nanimationRef.current=requestAnimationFrame(animate);return;}lastUpdateTime.current=timestamp;let newX=x.get()+speed*directionRef.current.x;let newY=y.get()+speed*directionRef.current.y;if(newX+bouncerSize.width>containerSize.width||newX<0){directionRef.current.x*=-1;newX=Math.max(0,Math.min(newX,containerSize.width-bouncerSize.width));}if(newY+bouncerSize.height>containerSize.height||newY<0){directionRef.current.y*=-1;newY=Math.max(0,Math.min(newY,containerSize.height-bouncerSize.height));}x.set(newX);y.set(newY);animationRef.current=requestAnimationFrame(animate);},[speed,containerSize,bouncerSize,x,y]);React.useEffect(()=>{animationRef.current=requestAnimationFrame(animate);return()=>{if(animationRef.current){cancelAnimationFrame(animationRef.current);}};},[animate]);if(!background||background.length===0||!bouncer||bouncer.length===0){return /*#__PURE__*/_jsx(SettingsMessage,{title:\"Set Up the Component\",description:\"Add Background and Bouncer elements to the Component properties.\",containerStyle:{...style,padding:\"20px 20px 30px 20px\"}});}return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",visibility:\"hidden\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"div\",{ref:bouncerRef,children:bouncer})}),/*#__PURE__*/_jsx(AnimatePresence,{children:isIdle&&/*#__PURE__*/_jsxs(motion.div,{className:\"screen-saver\",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:transition,children:[/*#__PURE__*/_jsx(\"style\",{children:styles}),background,/*#__PURE__*/_jsx(\"div\",{className:\"bouncer-container\",children:/*#__PURE__*/_jsx(motion.div,{className:\"bouncer\",style:{x,y,width:bouncerSize.width,height:bouncerSize.height},children:bouncer})})]})})]});}ScreenSaver.defaultProps={ms:1e4,speed:1,transition:{type:\"tween\",duration:.2,ease:\"easeInOut\"}};ScreenSaver.displayName=\"Screen Saver\";addPropertyControls(ScreenSaver,{background:{type:ControlType.ComponentInstance,title:\"Background\"},bouncer:{type:ControlType.ComponentInstance,title:\"Bouncer\"},ms:{type:ControlType.Number,title:\"Idle\",description:\"Time before the screen saver activates.\",defaultValue:1e4,min:0,step:1e3,displayStepper:true,unit:\"ms\"},speed:{type:ControlType.Number,title:\"Speed\",description:\"Speed of the bouncer.\",defaultValue:1,min:0,max:10,step:.5},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"tween\",duration:.2,ease:\"easeInOut\"},description:\"Set pointer events style to 'none' on this component so you can interact with layers below it.\\nMore components at [Framer University](https://frameruni.link/cc).\"}});export default ScreenSaver;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScreenSaver\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"200\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScreenSaver_Prod.map"],"mappings":"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"}