{"version":3,"file":"xOneGIHb8.BUNVMgHU.mjs","names":["useRef","React.useCallback"],"sources":["https:/framerusercontent.com/modules/5URVAa8eyMqVMB3bvzAc/WI1U7A2mXxPVTGO0LN04/DNA_Carousel.js","https:/framerusercontent.com/modules/d0pQiKcjJeeRbuRjT4sp/AOx5m4SdL6vIIddmVrGi/xOneGIHb8.js"],"sourcesContent":["\"use client\";import{jsx as _jsx}from\"react/jsx-runtime\";const COMPONENT_AUTHOR=\"Karim Saif\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer,useReducedMotion}from\"framer\";import{useEffect,useRef}from\"react\";const defaultProps={images:[{src:\"\"}],cardWidth:220,cardHeight:300,gap:26,imageRadius:0,curveDepth:170,curveHeight:55,helixSpread:90,perspective:1100,activeScale:1,inactiveScale:.78,rotation:32,tilt:10,blur:5,chromaticAberration:5,inactiveOpacity:.42,dragSensitivity:1.35,inertia:.93,snapStrength:.18,autoPlay:false,autoSpeed:.18,shadow:true,shadowStrength:.35,background:\"#0A0A0A\",grabCursor:true};function clamp(value,min,max){return Math.max(min,Math.min(max,value));}function wrap(value,length){if(length<=0)return 0;const result=value%length;return result<0?result+length:result;}function shortestDistance(index,position,count){let distance=index-position;if(distance>count/2){distance-=count;}if(distance<-count/2){distance+=count;}return distance;}function easeOutCubic(value){const t=clamp(value,0,1);return 1-Math.pow(1-t,3);}export default function DNACarousel(props){const{images=defaultProps.images,cardWidth,cardHeight,gap,imageRadius,curveDepth,curveHeight,helixSpread,perspective,activeScale,inactiveScale,rotation,tilt,blur,chromaticAberration,inactiveOpacity,dragSensitivity,inertia,snapStrength,autoPlay,autoSpeed,shadow,shadowStrength,background,grabCursor}={...defaultProps,...props};const isStatic=useIsStaticRenderer();const prefersReducedMotion=useReducedMotion();const rootRef=useRef(null);const cardsRef=useRef([]);const positionRef=useRef(0);const velocityRef=useRef(0);const rafRef=useRef(null);const visibleRef=useRef(true);const draggingRef=useRef(false);const pointerIdRef=useRef(null);const startPointerXRef=useRef(0);const startPositionRef=useRef(0);const lastPointerXRef=useRef(0);const lastPointerTimeRef=useRef(0);const lastFrameTimeRef=useRef(null);const settingsRef=useRef({cardWidth,cardHeight,gap,imageRadius,curveDepth,curveHeight,helixSpread,perspective,activeScale,inactiveScale,rotation,tilt,blur,chromaticAberration,inactiveOpacity,dragSensitivity,inertia,snapStrength,autoPlay,autoSpeed,shadow,shadowStrength});const validImages=Array.isArray(images)?images.filter(image=>image&&typeof image.src===\"string\"&&image.src.length>0):[];settingsRef.current={cardWidth,cardHeight,gap,imageRadius,curveDepth,curveHeight,helixSpread,perspective,activeScale,inactiveScale,rotation,tilt,blur,chromaticAberration,inactiveOpacity,dragSensitivity,inertia,snapStrength,autoPlay,autoSpeed,shadow,shadowStrength};useEffect(()=>{cardsRef.current.length=validImages.length;},[validImages.length]);const renderCards=React.useCallback(()=>{const root=rootRef.current;if(!root)return;const settings=settingsRef.current;const count=cardsRef.current.length;if(!count)return;const position=wrap(positionRef.current,count);const centerWidth=settings.cardWidth+settings.gap;const maxVisibleDistance=Math.max(3,Math.ceil(count/2));cardsRef.current.forEach((card,index)=>{if(!card)return;const distance=shortestDistance(index,position,count);const absoluteDistance=Math.abs(distance);const normalizedDistance=clamp(absoluteDistance/maxVisibleDistance,0,1);const phase=distance*Math.PI*.48;const wave=Math.sin(phase);const depthWave=Math.cos(phase);const strand=index%2===0?1:-1;const x=distance*centerWidth*.72;const y=wave*settings.curveHeight*strand;const z=depthWave*settings.curveDepth;const strandY=strand*settings.helixSpread*Math.cos(phase*.5)*.5;const rotateY=depthWave*settings.rotation*strand;const rotateZ=wave*settings.tilt*strand;const rotateX=wave*settings.tilt*.35;const activeAmount=clamp(1-absoluteDistance,0,1);const smoothActive=easeOutCubic(activeAmount);const scale=settings.inactiveScale+(settings.activeScale-settings.inactiveScale)*smoothActive;const opacity=settings.inactiveOpacity+(1-settings.inactiveOpacity)*smoothActive;const depthNormalized=clamp((z+settings.curveDepth)/(settings.curveDepth*2),0,1);const zScale=.88+depthNormalized*.12;const finalScale=scale*zScale;const blurAmount=settings.blur*normalizedDistance*(1-smoothActive);const chroma=settings.chromaticAberration*normalizedDistance*(1-smoothActive);const zIndex=Math.round(100-absoluteDistance*10+depthWave*4);card.style.transform=`\n                        translate3d(\n                            ${x}px,\n                            ${y+strandY}px,\n                            ${z}px\n                        )\n                        rotateX(${rotateX}deg)\n                        rotateY(${rotateY}deg)\n                        rotateZ(${rotateZ}deg)\n                        scale(${finalScale})\n                    `;card.style.opacity=String(opacity);card.style.zIndex=String(zIndex);const shadowFilter=settings.shadow?`\n                                drop-shadow(\n                                    0\n                                    ${8+smoothActive*10}px\n                                    ${18+smoothActive*15}px\n                                    rgba(\n                                        0,\n                                        0,\n                                        0,\n                                        ${settings.shadowStrength}\n                                    )\n                                )\n                            `:\"\";const chromaticFilter=chroma>.01?`\n                                drop-shadow(\n                                    ${-chroma}px\n                                    0\n                                    0\n                                    rgba(\n                                        255,\n                                        0,\n                                        70,\n                                        0.42\n                                    )\n                                )\n\n                                drop-shadow(\n                                    ${chroma}px\n                                    0\n                                    0\n                                    rgba(\n                                        0,\n                                        170,\n                                        255,\n                                        0.42\n                                    )\n                                )\n                            `:\"\";card.style.filter=`\n                        blur(${blurAmount}px)\n                        ${chromaticFilter}\n                        ${shadowFilter}\n                    `;});},[]);useEffect(()=>{if(isStatic)return;if(prefersReducedMotion){renderCards();return;}let mounted=true;const animate=time=>{if(!mounted)return;if(!visibleRef.current){rafRef.current=requestAnimationFrame(animate);lastFrameTimeRef.current=time;return;}const previous=lastFrameTimeRef.current??time;let delta=(time-previous)/1e3;lastFrameTimeRef.current=time;delta=clamp(delta,0,.05);const settings=settingsRef.current;if(!draggingRef.current){if(settings.autoPlay){positionRef.current+=settings.autoSpeed*delta;}if(Math.abs(velocityRef.current)>1e-4){positionRef.current+=velocityRef.current*delta;velocityRef.current*=Math.pow(settings.inertia,delta*60);}if(!settings.autoPlay&&Math.abs(velocityRef.current)<.025){const target=Math.round(positionRef.current);const difference=target-positionRef.current;const snapAmount=1-Math.exp(-settings.snapStrength*60*delta);positionRef.current+=difference*snapAmount;if(Math.abs(difference)<5e-4){positionRef.current=target;velocityRef.current=0;}}}renderCards();rafRef.current=requestAnimationFrame(animate);};rafRef.current=requestAnimationFrame(animate);return()=>{mounted=false;if(rafRef.current!==null){cancelAnimationFrame(rafRef.current);rafRef.current=null;}};},[isStatic,prefersReducedMotion,renderCards]);useEffect(()=>{renderCards();},[renderCards,validImages.length,cardWidth,cardHeight,gap,imageRadius]);useEffect(()=>{const root=rootRef.current;if(!root)return;const observer=new IntersectionObserver(entries=>{visibleRef.current=entries[0]?.isIntersecting??true;if(visibleRef.current){lastFrameTimeRef.current=performance.now();}},{threshold:0});observer.observe(root);return()=>{observer.disconnect();};},[]);useEffect(()=>{const root=rootRef.current;if(!root)return;const observer=new ResizeObserver(()=>{renderCards();});observer.observe(root);return()=>{observer.disconnect();};},[renderCards]);const handlePointerDown=event=>{if(isStatic)return;if(prefersReducedMotion)return;const root=rootRef.current;if(!root)return;draggingRef.current=true;pointerIdRef.current=event.pointerId;startPointerXRef.current=event.clientX;startPositionRef.current=positionRef.current;lastPointerXRef.current=event.clientX;lastPointerTimeRef.current=performance.now();velocityRef.current=0;root.style.cursor=\"grabbing\";try{root.setPointerCapture(event.pointerId);}catch{}event.preventDefault();};const handlePointerMove=event=>{if(!draggingRef.current)return;if(pointerIdRef.current!==null&&event.pointerId!==pointerIdRef.current){return;}const settings=settingsRef.current;const now=performance.now();const dx=event.clientX-startPointerXRef.current;const travel=Math.max(1,settings.cardWidth+settings.gap);positionRef.current=startPositionRef.current-dx/travel*settings.dragSensitivity;const lastX=lastPointerXRef.current;const lastTime=lastPointerTimeRef.current;const deltaX=event.clientX-lastX;const deltaTime=Math.max(1,now-lastTime);const deltaSeconds=deltaTime/1e3;const instantVelocity=-(deltaX/travel)/deltaSeconds*settings.dragSensitivity;velocityRef.current=velocityRef.current*.72+instantVelocity*.28;lastPointerXRef.current=event.clientX;lastPointerTimeRef.current=now;renderCards();event.preventDefault();};const handlePointerUp=event=>{if(!draggingRef.current)return;draggingRef.current=false;const root=rootRef.current;if(root){root.style.cursor=grabCursor?\"grab\":\"default\";}if(event&&pointerIdRef.current!==null){try{root?.releasePointerCapture(pointerIdRef.current);}catch{}}pointerIdRef.current=null;velocityRef.current=clamp(velocityRef.current,-2.5,2.5);};const handleWheel=event=>{if(isStatic)return;const settings=settingsRef.current;const delta=Math.abs(event.deltaX)>Math.abs(event.deltaY)?event.deltaX:event.deltaY;if(Math.abs(delta)<.01){return;}positionRef.current+=delta*.0025*settings.dragSensitivity;velocityRef.current+=delta*5e-4*settings.dragSensitivity;velocityRef.current=clamp(velocityRef.current,-1.8,1.8);renderCards();event.preventDefault();};const handleKeyDown=event=>{if(isStatic)return;if(event.key===\"ArrowRight\"||event.key===\"ArrowDown\"){positionRef.current+=1;velocityRef.current=0;renderCards();event.preventDefault();}if(event.key===\"ArrowLeft\"||event.key===\"ArrowUp\"){positionRef.current-=1;velocityRef.current=0;renderCards();event.preventDefault();}};if(isStatic){const firstImage=validImages[0];return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",background,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",overflow:\"hidden\",perspective:`${perspective}px`},children:firstImage?.src&&/*#__PURE__*/_jsx(\"img\",{src:firstImage.src,srcSet:firstImage.srcSet,alt:firstImage.alt??\"\",style:{width:cardWidth,height:cardHeight,objectFit:\"cover\",display:\"block\",borderRadius:imageRadius}})});}if(!validImages.length){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",background}});}return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,tabIndex:0,role:\"region\",\"aria-label\":\"DNA image carousel\",\"data-component-author\":COMPONENT_AUTHOR,onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp:handlePointerUp,onPointerCancel:()=>handlePointerUp(),onPointerLeave:event=>{if(draggingRef.current){handlePointerMove(event);}},onWheel:handleWheel,onKeyDown:handleKeyDown,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",background,perspective:`${perspective}px`,perspectiveOrigin:\"50% 50%\",touchAction:\"none\",userSelect:\"none\",WebkitUserSelect:\"none\",cursor:grabCursor?\"grab\":\"default\",outline:\"none\",contain:\"layout paint\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transformStyle:\"preserve-3d\",pointerEvents:\"none\"},children:validImages.map((image,index)=>/*#__PURE__*/_jsx(\"div\",{ref:element=>{if(element){cardsRef.current[index]=element;}},style:{position:\"absolute\",left:\"50%\",top:\"50%\",width:cardWidth,height:cardHeight,marginLeft:-cardWidth/2,marginTop:-cardHeight/2,borderRadius:imageRadius,overflow:\"hidden\",transformStyle:\"preserve-3d\",backfaceVisibility:\"hidden\",WebkitBackfaceVisibility:\"hidden\",willChange:\"transform, opacity, filter\",transform:\"translate3d(0,0,0)\",opacity:0,pointerEvents:\"none\",background:\"#111\"},children:/*#__PURE__*/_jsx(\"img\",{src:image.src,srcSet:image.srcSet,alt:image.alt??\"\",draggable:false,loading:index<3?\"eager\":\"lazy\",decoding:\"async\",style:{width:\"100%\",height:\"100%\",display:\"block\",objectFit:\"cover\",objectPosition:\"center\",userSelect:\"none\",WebkitUserDrag:\"none\",pointerEvents:\"none\"}})},`${image.src}-${index}`))})});}/**\n *\n *\n * Made with 💛 by Karim Saif\n *\n */addPropertyControls(DNACarousel,{images:{type:ControlType.Array,title:\"Images\",control:{type:ControlType.ResponsiveImage},maxCount:50,defaultValue:[{src:\"\"}],description:\"Add, remove, and reorder images in the DNA carousel.\"},cardWidth:{type:ControlType.Number,title:\"Width\",min:80,max:600,step:1,unit:\"px\",description:\"Width of each image card.\"},cardHeight:{type:ControlType.Number,title:\"Height\",min:100,max:800,step:1,unit:\"px\",description:\"Height of each image card.\"},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:200,step:1,unit:\"px\",description:\"Spacing between image cards.\"},imageRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:100,step:1,unit:\"px\",description:\"Controls the corner radius of every image.\"},curveDepth:{type:ControlType.Number,title:\"Depth\",min:0,max:500,step:1,unit:\"px\",description:\"Controls how far images travel into and out of the screen.\"},curveHeight:{type:ControlType.Number,title:\"Curve\",min:0,max:250,step:1,unit:\"px\",description:\"Controls the vertical DNA curve.\"},helixSpread:{type:ControlType.Number,title:\"Spread\",min:0,max:300,step:1,unit:\"px\",description:\"Controls the separation between the two DNA strands.\"},perspective:{type:ControlType.Number,title:\"Perspective\",min:400,max:3e3,step:10,unit:\"px\",description:\"Controls the strength of the 3D perspective.\"},activeScale:{type:ControlType.Number,title:\"Active Scale\",min:.7,max:1.5,step:.01,description:\"Scale of the centered image.\"},inactiveScale:{type:ControlType.Number,title:\"Inactive Scale\",min:.3,max:1,step:.01,description:\"Scale of images away from the center.\"},rotation:{type:ControlType.Number,title:\"Rotation\",min:0,max:90,step:1,unit:\"\\xb0\",description:\"Rotation around the DNA depth axis.\"},tilt:{type:ControlType.Number,title:\"Tilt\",min:0,max:45,step:1,unit:\"\\xb0\",description:\"Additional image tilt along the helix.\"},blur:{type:ControlType.Number,title:\"Blur\",min:0,max:20,step:.5,unit:\"px\",description:\"Blur applied to images farther from the center.\"},chromaticAberration:{type:ControlType.Number,title:\"RGB Split\",min:0,max:20,step:.5,unit:\"px\",description:\"RGB color separation on inactive images.\"},inactiveOpacity:{type:ControlType.Number,title:\"Inactive Opacity\",min:.05,max:1,step:.01,description:\"Opacity of images away from the center.\"},dragSensitivity:{type:ControlType.Number,title:\"Drag\",min:.2,max:3,step:.05,description:\"Controls how strongly dragging moves the carousel.\"},inertia:{type:ControlType.Number,title:\"Inertia\",min:.75,max:.98,step:.005,description:\"Controls momentum after releasing a drag.\"},snapStrength:{type:ControlType.Number,title:\"Snap\",min:.04,max:.5,step:.01,description:\"Controls how quickly the carousel settles onto an image.\"},autoPlay:{type:ControlType.Boolean,title:\"Auto Play\",enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Automatically moves through the images.\"},autoSpeed:{type:ControlType.Number,title:\"Speed\",min:.01,max:1.5,step:.01,description:\"Controls the automatic movement speed.\",hidden:props=>!props.autoPlay},shadow:{type:ControlType.Boolean,title:\"Shadow\",enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Adds depth-enhancing shadows.\"},shadowStrength:{type:ControlType.Number,title:\"Strength\",min:0,max:1,step:.01,description:\"Controls shadow opacity.\",hidden:props=>!props.shadow},background:{type:ControlType.Color,title:\"Background\",description:\"Background color behind the carousel.\"},grabCursor:{type:ControlType.Boolean,title:\"Grab Cursor\",enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Made with 💛 by [@karimsaif](https://x.com/karimsaif0)\"}});DNACarousel.defaultProps=defaultProps;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DNACarousel\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DNA_Carousel.map","// Generated by Framer (5186692)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-mQylA .framer-styles-preset-7lq10y:not(.rich-text-wrapper), .framer-mQylA .framer-styles-preset-7lq10y.rich-text-wrapper a { --framer-link-hover-text-decoration: none; --framer-link-text-color: var(--token-0f3e6493-aac9-43f3-8295-e95ef57ad7a9); --framer-link-text-decoration: underline; }\"];export const className=\"framer-mQylA\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}