{"version":3,"file":"Look3D.CSJUWPbV.mjs","names":["useState","useState"],"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/OiCf4NNLLpuN6FqtIYsk/4dk2FUhCykOoc1N5ittm/Look3D.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}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect,cloneElement}from\"react\";import{motion,useMotionValue,useSpring}from\"framer-motion\";import{SettingsMessage}from\"https://framer.com/m/Utils-QTIc.js@hDBsItohjMEOACix8wDv\";/**\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any-prefer-auto\n * @framerIntrinsicWidth 600\n * @framerSupportedLayoutHeight any-prefer-auto\n * @framerIntrinsicHeight 300\n */export default function CursorRotation(props){const{style,draggingOptions:{withDragging,withSnapBack,transition},rotationOptions:{withRotationLimitX,withRotationLimitY,maxX,maxY,minX,minY},perspectiveOptions:{withPerspective,perspectiveValue},sensitivity}=props;const children=Array.isArray(props.children)?props.children[0]:props.children;if(!children||children.length===0){return /*#__PURE__*/_jsx(SettingsMessage,{title:\"Set Up the Component\",description:\"Add layer or component to the Component property.\",containerStyle:style});}const[isDragging,setIsDragging]=useState(false);const rotateX=useMotionValue(0);const rotateY=useMotionValue(0);const springConfig=withDragging?transition:{duration:0};const rotateXSpring=useSpring(rotateX,springConfig);const rotateYSpring=useSpring(rotateY,springConfig);const[startingRotation,setStartingRotation]=useState({x:0,y:0});const[startingMousePosition,setStartingMousePosition]=useState({clientX:0,clientY:0});useEffect(()=>{const handleMove=event=>{if(isDragging){event.preventDefault();}const isTouchEvent=event.type.startsWith(\"touch\");const clientX=isTouchEvent?event.touches[0].clientX:event.clientX;const clientY=isTouchEvent?event.touches[0].clientY:event.clientY;const{innerWidth,innerHeight}=window;let rotationX,rotationY;if(withDragging){if(isDragging){const mouseX=clientX-startingMousePosition.clientX;const mouseY=clientY-startingMousePosition.clientY;const rotationFactorX=mouseY/(10/sensitivity);const rotationFactorY=-mouseX/(10/sensitivity);rotationX=startingRotation.x-rotationFactorX;rotationY=startingRotation.y-rotationFactorY;}else if(withSnapBack){rotationX=0;rotationY=0;}else{rotationX=rotateX.get();rotationY=rotateY.get();}}else{const adjustedSensitivity=sensitivity/10;const rotationFactorX=(clientY/innerHeight-.5)*adjustedSensitivity;const rotationFactorY=(clientX/innerWidth-.5)*adjustedSensitivity;rotationX=-rotationFactorX*180;rotationY=rotationFactorY*180;}if(withRotationLimitX){rotationX=Math.max(-minX,Math.min(maxX,rotationX));}if(withRotationLimitY){rotationY=Math.max(-minY,Math.min(maxY,rotationY));}rotateX.set(rotationX);rotateY.set(rotationY);};window.addEventListener(\"mousemove\",handleMove);window.addEventListener(\"touchmove\",handleMove);return()=>{window.removeEventListener(\"mousemove\",handleMove);window.removeEventListener(\"touchmove\",handleMove);};},[isDragging,withDragging,withSnapBack,withRotationLimitX,withRotationLimitY,maxX,maxY,sensitivity]);useEffect(()=>{if(!isDragging&&withDragging&&withSnapBack){rotateX.set(0);rotateY.set(0);}},[isDragging]);const handleOnStart=e=>{const isTouchEvent=e.type.startsWith(\"touch\");const clientX=isTouchEvent?e.touches[0].clientX:e.clientX;const clientY=isTouchEvent?e.touches[0].clientY:e.clientY;setIsDragging(true);setStartingRotation({x:rotateX.get(),y:rotateY.get()});setStartingMousePosition({clientX,clientY});};const handleOnEnd=()=>setIsDragging(false);// Clone the children and apply preserve-3d to them as well\nconst clonedChildren=/*#__PURE__*/cloneElement(children,{style:{...children.props.style,transformStyle:\"preserve-3d\"}});return /*#__PURE__*/_jsx(motion.div,{onPanStart:handleOnStart,onPanEnd:handleOnEnd,onTouchStart:handleOnStart,onTouchEnd:handleOnEnd,style:{...style,rotateX:rotateXSpring,rotateY:rotateYSpring,transformStyle:\"preserve-3d\",transformPerspective:withPerspective?perspectiveValue:undefined,userSelect:\"none\",touchAction:\"none\"},children:clonedChildren});}CursorRotation.displayName=\"3D Look\";addPropertyControls(CursorRotation,{children:{title:\"Element\",type:ControlType.ComponentInstance},sensitivity:{title:\"Sensitivity\",type:ControlType.Number,defaultValue:2,step:1,displayStepper:true,min:1,max:10},draggingOptions:{type:ControlType.Object,title:\"Dragging\",controls:{withDragging:{title:\"Enable\",type:ControlType.Boolean,defaultValue:false},transition:{title:\"Transition\",type:ControlType.Transition,defaultValue:{type:\"spring\",stiffness:600,damping:100},hidden(props){return!props.withDragging;}},withSnapBack:{title:\"Snap Back\",type:ControlType.Boolean,defaultValue:false,hidden(props){return!props.withDragging;}}}},rotationOptions:{type:ControlType.Object,title:\"Rota. Limit\",controls:{withRotationLimitX:{title:\"Limit X\",type:ControlType.Boolean,defaultValue:false},maxX:{title:\"Max X\",type:ControlType.Number,defaultValue:90,step:1,displayStepper:true,min:0,max:undefined,hidden(props){return!props.withRotationLimitX;}},minX:{title:\"Min X\",type:ControlType.Number,defaultValue:90,step:1,displayStepper:true,min:0,max:undefined,hidden(props){return!props.withRotationLimitX;}},withRotationLimitY:{title:\"Limit Y\",type:ControlType.Boolean,defaultValue:false},maxY:{title:\"Max Y\",type:ControlType.Number,defaultValue:90,step:1,displayStepper:true,min:0,max:undefined,hidden(props){return!props.withRotationLimitY;}},minY:{title:\"Min Y\",type:ControlType.Number,defaultValue:90,step:1,displayStepper:true,min:0,max:undefined,hidden(props){return!props.withRotationLimitY;}}}},perspectiveOptions:{type:ControlType.Object,title:\"Perspective\",description:\"Need help with the component? Watch [this video](https://youtu.be/WdMR737ptFs).\",controls:{withPerspective:{title:\"Enable\",type:ControlType.Boolean,defaultValue:false},perspectiveValue:{title:\"Value\",type:ControlType.Number,defaultValue:1200,step:100,min:500,max:5e3,hidden(props){return!props.withPerspective;}}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CursorRotation\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-auto\",\"framerIntrinsicWidth\":\"600\",\"framerIntrinsicHeight\":\"300\",\"framerSupportedLayoutHeight\":\"any-prefer-auto\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Look3D.map"],"mappings":"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"}