{"version":3,"file":"ProjectCarousel.DZCnDcd5.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/smPOVDO3EcVwdYoqypml/WtWHHKuvoIC7SoEeK3Ck/ProjectCarousel.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useRef,useEffect}from\"react\";import{motion,AnimatePresence}from\"framer-motion\";const PROJECTS=[{title:\"Meta VR\",slug:\"metavr\",imageUrl:\"https://framerusercontent.com/images/gvCSYsJYo4vbPnqXubzMVr4YrSE.png?scale-down-to=512&width=2792&height=2260\",url:\"https://www.derekglazier.com/metavr\"},{title:\"Meta Horizon Worlds\",slug:\"metahorizonworlds\",imageUrl:\"https://framerusercontent.com/images/km63mFY7FwDHwwp6jz9vVPht8.png?scale-down-to=2048\",url:\"https://www.derekglazier.com/metahorizonworlds\"},{title:\"Soho.xyz\",slug:\"soho2\",imageUrl:\"https://framerusercontent.com/images/P6TQ3sl6Ay6pT1K9hC8MGS8z84.png?scale-down-to=2048\",url:\"https://www.derekglazier.com/projects/soho2/soho2\"},{title:\"Verizon\",slug:\"verizon2\",imageUrl:\"https://framerusercontent.com/images/l3f1CYB9yRUVASKmXPEzNeUoII.jpg?scale-down-to=2048\",url:\"https://www.derekglazier.com/projects/verizon2/verizon2\"},{title:\"Good Money\",slug:\"goodmoney2\",imageUrl:\"https://framerusercontent.com/images/hC41zURgQy0FBSYMxlt0wziBhk.png?width=3681&height=2760\",url:\"https://www.derekglazier.com/projects/goodmoney2/goodmoney2\"},{title:\"Artrya\",slug:\"artrya2\",imageUrl:\"https://framerusercontent.com/images/NpptKfJlihbsjiBvIQwfSQXOmA.png?scale-down-to=2048\",url:\"https://www.derekglazier.com/projects/artrya2/artrya2\"}];function ProjectCarousel(props){const{currentSlug=\"\"}=props;const[isMounted,setIsMounted]=useState(false);const[isHovering,setIsHovering]=useState(false);const[isDragging,setIsDragging]=useState(false);const[startX,setStartX]=useState(0);const[scrollLeft,setScrollLeft]=useState(0);const carouselRef=useRef(null);const scrollPositionRef=useRef(0);const animationFrameRef=useRef(null);// Check if we're in Framer's canvas environment\nconst isInFramerCanvas=typeof window!==\"undefined\"&&(window.location.href.includes(\"framercanvas.com\")||window.location.href.includes(\"framer.app\"));const scrollbarHideStyles={scrollbarWidth:\"none\",msOverflowStyle:\"none\",WebkitOverflowScrolling:\"touch\"};// Handle mouse down\nconst handleMouseDown=e=>{setIsDragging(true);setStartX(e.pageX-carouselRef.current.offsetLeft);setScrollLeft(carouselRef.current.scrollLeft);};// Handle mouse move\nconst handleMouseMove=e=>{if(!isDragging)return;e.preventDefault();const x=e.pageX-carouselRef.current.offsetLeft;const walk=(x-startX)*1.5// Scroll speed multiplier\n;carouselRef.current.scrollLeft=scrollLeft-walk;scrollPositionRef.current=carouselRef.current.scrollLeft;};// Handle mouse up\nconst handleMouseUp=()=>{setIsDragging(false);};// Handle touch events for mobile\nconst handleTouchStart=e=>{setIsDragging(true);setStartX(e.touches[0].pageX-carouselRef.current.offsetLeft);setScrollLeft(carouselRef.current.scrollLeft);};const handleTouchMove=e=>{if(!isDragging)return;const x=e.touches[0].pageX-carouselRef.current.offsetLeft;const walk=(x-startX)*1.5;carouselRef.current.scrollLeft=scrollLeft-walk;scrollPositionRef.current=carouselRef.current.scrollLeft;};const handleTouchEnd=()=>{setIsDragging(false);};useEffect(()=>{setIsMounted(true);let lastTime=0;const speed=.015// Pixels per millisecond\n;const autoScroll=currentTime=>{if(!lastTime)lastTime=currentTime;const deltaTime=currentTime-lastTime;// Don't auto-scroll in Framer canvas or when hovering/dragging\nif(carouselRef.current&&!isHovering&&!isDragging&&!isInFramerCanvas){const container=carouselRef.current;const maxScroll=container.scrollWidth-container.clientWidth;scrollPositionRef.current+=speed*deltaTime;if(scrollPositionRef.current>=maxScroll){scrollPositionRef.current=0;}container.scrollLeft=scrollPositionRef.current;}lastTime=currentTime;animationFrameRef.current=requestAnimationFrame(autoScroll);};// Only start auto-scroll if not in Framer canvas\nif(!isInFramerCanvas){animationFrameRef.current=requestAnimationFrame(autoScroll);}return()=>{if(animationFrameRef.current){cancelAnimationFrame(animationFrameRef.current);}setIsMounted(false);};},[isHovering,isDragging,isInFramerCanvas]);return /*#__PURE__*/_jsx(AnimatePresence,{mode:\"wait\",children:isMounted&&/*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},style:{padding:\"40px 0\",backgroundColor:\"rgba(0, 0, 0, 0.8)\",position:\"relative\",zIndex:1},children:[/*#__PURE__*/_jsx(\"h2\",{style:{fontSize:\"28px\",color:\"#FFFFFF\",marginLeft:\"0\",marginBottom:\"30px\",fontFamily:\"Satoshi\",fontWeight:\"500\",textAlign:\"left\"},children:\"More Projects\"}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\"},children:[/*#__PURE__*/_jsx(\"div\",{ref:carouselRef,style:{display:\"flex\",overflowX:\"scroll\",padding:\"0 0px\",scrollBehavior:\"auto\",cursor:isDragging?\"grabbing\":\"grab\",userSelect:\"none\",position:\"relative\",zIndex:2,...scrollbarHideStyles},onMouseEnter:()=>setIsHovering(true),onMouseLeave:()=>{setIsHovering(false);setIsDragging(false);},onMouseDown:handleMouseDown,onMouseMove:handleMouseMove,onMouseUp:handleMouseUp,onTouchStart:handleTouchStart,onTouchMove:handleTouchMove,onTouchEnd:handleTouchEnd,children:[...PROJECTS,...PROJECTS].filter(project=>project.slug!==currentSlug).map((project,index)=>/*#__PURE__*/_jsx(motion.a,{href:project.url,style:{textDecoration:\"none\",marginRight:\"24px\",display:\"block\",flex:\"0 0 auto\",position:\"relative\",zIndex:20},onClick:e=>{if(isDragging){e.preventDefault();}},children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"208px\",height:\"156px\",borderRadius:\"12px\",overflow:\"hidden\",position:\"relative\",backgroundColor:\"#181818\",boxShadow:\"0 4px 20px rgba(0, 0, 0, 0.2)\"},children:[/*#__PURE__*/_jsxs(motion.div,{style:{width:\"100%\",height:\"100%\",position:\"relative\"},whileHover:{scale:1.02,y:-8},transition:{duration:.2,ease:\"easeOut\"},children:[/*#__PURE__*/_jsx(\"img\",{src:project.imageUrl,alt:project.title,style:{width:\"110%\",height:\"110%\",objectFit:\"cover\",marginLeft:\"-5%\",marginTop:\"-5%\"},draggable:false}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",backgroundColor:\"rgba(0, 0, 0, 0.2)\",pointerEvents:\"none\"}})]}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:0,left:0,width:\"100%\",height:\"50%\",background:\"linear-gradient(to top, rgba(0,0,0,0.8), transparent)\",pointerEvents:\"none\",zIndex:1}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:0,left:0,width:\"100%\",padding:\"20px\",color:\"#FFFFFF\",zIndex:2,textAlign:\"left\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"h3\",{style:{fontSize:\"18px\",fontWeight:\"600\",margin:0,textAlign:\"left\",fontFamily:\"Satoshi\"},children:project.title})})]})},`${project.slug}-${index}`))}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,top:0,width:\"80px\",height:\"100%\",background:\"linear-gradient(to right, rgba(0, 0, 0, 0.8), transparent)\",pointerEvents:\"none\",zIndex:10}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",right:0,top:0,width:\"80px\",height:\"100%\",background:\"linear-gradient(to left, rgba(0, 0, 0, 0.8), transparent)\",pointerEvents:\"none\",zIndex:10}})]})]})});}addPropertyControls(ProjectCarousel,{currentSlug:{type:ControlType.String,title:\"Current Project Slug\",defaultValue:\"\"}});export default ProjectCarousel;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ProjectCarousel\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ProjectCarousel.map"],"mappings":"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"}