{"version":3,"file":"Is1.Cy0M70fY.mjs","names":["React.useRef","React.useState","React.useMemo"],"sources":["https:/framerusercontent.com/modules/9DQmzOzmr6dGpfclr3xR/vsC4D882fZ3qrdAtX1yq/Is1.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * InfiniteWheelCarousel — Vertical (v2.1.6)\n *\n * ✅ Added (Variant 1 / Fixed Content):\n * - ContentMode:\n *   - \"stretch\" (old behavior): content fills INNER and can relayout\n *   - \"fixed\"   (new): INNER expands (rail), but content stays fixed width = cardWidth\n *     -> eliminates \"shift\" feeling on Align Right / Center\n *\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function InfiniteWheelCarousel(props){const{cards,// layout\ncardWidthMode,cardWidthPx,cardWidthPercent,cardHeight,gap,paddingX,paddingTop,paddingBottom,bg,radius,shadow,// width animation\nedgeWidthScale,widthRadiusMode,widthRadiusPx,widthRadiusPercent,widthFalloff,widthEase,widthEasePower,// motion\nwheelSensitivity,startIndex,smoothing,// alignment\nhorizontalAlign,contentAlign,// ✅ NEW\ncontentMode,// drag\ndragEnabled,dragSensitivity,flingMultiplier,tapThreshold}=props;const containerRef=React.useRef(null);const[containerWidth,setContainerWidth]=React.useState(0);const[containerHeight,setContainerHeight]=React.useState(0);// smooth controller (Y)\nconst targetOffsetRef=React.useRef(0);const currentOffsetRef=React.useRef(0);const[,rerender]=React.useState(0);// drag state (Y) + tap protection\nconst isDragging=React.useRef(false);const isPointerDown=React.useRef(false);const startX=React.useRef(0);const startY=React.useRef(0);const lastY=React.useRef(0);const lastT=React.useRef(0);const velocity=React.useRef(0)// px/ms\n;const hasDragged=React.useRef(false);const lastPointerType=React.useRef(\"unknown\");// seam-proof smoothing per logical item i\nconst widthScaleByIRef=React.useRef([]);React.useEffect(()=>{widthScaleByIRef.current=Array.from({length:cards.length},()=>1);},[cards.length]);// measure container\nReact.useLayoutEffect(()=>{const el=containerRef.current;if(!el)return;const measure=()=>{setContainerWidth(el.clientWidth);setContainerHeight(el.clientHeight);};measure();const ro=new ResizeObserver(measure);ro.observe(el);return()=>ro.disconnect();},[]);// Card width in px or % (relative to container)\nconst cardWidth=React.useMemo(()=>{if(cardWidthMode===\"percent\"){const baseW=containerWidth||0;const pct=cardWidthPercent??70;const w=baseW*pct/100;return baseW>0?Math.max(1,w):cardWidthPx;}return cardWidthPx;},[cardWidthMode,cardWidthPx,cardWidthPercent,containerWidth]);// Effective width radius: px or % of height\nconst effectiveWidthRadius=React.useMemo(()=>{if(widthRadiusMode===\"percent\"){const H=containerHeight||0;const pct=widthRadiusPercent??100;return Math.max(1,H*pct/100/2)// 100% => H/2\n;}return Math.max(1,widthRadiusPx);},[widthRadiusMode,widthRadiusPx,widthRadiusPercent,containerHeight]);// RAF + smoothing (offset only)\nconst rafRef=React.useRef(null);const scheduleFrame=()=>{if(rafRef.current!=null)return;rafRef.current=requestAnimationFrame(tick);};const tick=()=>{rafRef.current=null;if(smoothing>0){const cur=currentOffsetRef.current;const tgt=targetOffsetRef.current;const next=cur+(tgt-cur)*smoothing;currentOffsetRef.current=next;if(Math.abs(tgt-next)>.1)rafRef.current=requestAnimationFrame(tick);}rerender(v=>v+1);};// wheel (vertical)\nReact.useEffect(()=>{const el=containerRef.current;if(!el)return;const onWheel=e=>{if(e.deltaX===0&&e.deltaY===0)return;e.preventDefault();const delta=e.deltaY*wheelSensitivity;if(smoothing>0)targetOffsetRef.current+=delta;else{targetOffsetRef.current+=delta;currentOffsetRef.current=targetOffsetRef.current;}scheduleFrame();};el.addEventListener(\"wheel\",onWheel,{passive:false});return()=>el.removeEventListener(\"wheel\",onWheel);},[wheelSensitivity,smoothing]);// keys\nReact.useEffect(()=>{const onKey=e=>{const step=cardHeight+gap;if(e.key===\"ArrowDown\"){if(smoothing>0)targetOffsetRef.current+=step;else{targetOffsetRef.current+=step;currentOffsetRef.current=targetOffsetRef.current;}scheduleFrame();}else if(e.key===\"ArrowUp\"){if(smoothing>0)targetOffsetRef.current-=step;else{targetOffsetRef.current-=step;currentOffsetRef.current=targetOffsetRef.current;}scheduleFrame();}};window.addEventListener(\"keydown\",onKey);return()=>window.removeEventListener(\"keydown\",onKey);},[cardHeight,gap,smoothing]);// start index\nReact.useEffect(()=>{const base=startIndex*(cardHeight+gap);targetOffsetRef.current=base;currentOffsetRef.current=base;scheduleFrame();// eslint-disable-next-line react-hooks/exhaustive-deps\n},[startIndex,cardHeight,gap]);// drag (vertical) with threshold to prevent accidental taps\nReact.useEffect(()=>{if(!dragEnabled)return;const el=containerRef.current;if(!el)return;const threshold=Math.max(0,tapThreshold??6);const onPointerDown=e=>{isPointerDown.current=true;isDragging.current=false;hasDragged.current=false;const pt=e.pointerType||\"mouse\";lastPointerType.current=pt===\"mouse\"||pt===\"touch\"||pt===\"pen\"?pt:\"unknown\";startX.current=e.clientX;startY.current=e.clientY;lastY.current=e.clientY;lastT.current=performance.now();e.target.setPointerCapture?.(e.pointerId);};const onPointerMove=e=>{if(!isPointerDown.current)return;if(!isDragging.current){const dxTotal=Math.abs(e.clientX-startX.current);const dyTotal=Math.abs(e.clientY-startY.current);if(dyTotal>threshold&&dyTotal>dxTotal){isDragging.current=true;hasDragged.current=true;lastY.current=e.clientY;lastT.current=performance.now();}else{return;}}const now=performance.now();const dy=(e.clientY-lastY.current)*dragSensitivity;if(smoothing>0)targetOffsetRef.current+=dy;else{targetOffsetRef.current+=dy;currentOffsetRef.current=targetOffsetRef.current;}scheduleFrame();const dt=Math.max(1,now-lastT.current);velocity.current=(e.clientY-lastY.current)/dt;lastY.current=e.clientY;lastT.current=now;};const onPointerUp=()=>{if(!isPointerDown.current)return;isPointerDown.current=false;if(!isDragging.current)return;isDragging.current=false;const v=velocity.current;const MIN_FLING_VELOCITY=.05;if(Math.abs(v)>MIN_FLING_VELOCITY){targetOffsetRef.current+=v*flingMultiplier;scheduleFrame();}};el.addEventListener(\"pointerdown\",onPointerDown,{passive:true});window.addEventListener(\"pointermove\",onPointerMove,{passive:true});window.addEventListener(\"pointerup\",onPointerUp,{passive:true});window.addEventListener(\"pointercancel\",onPointerUp,{passive:true});const preventTouchScroll=e=>e.preventDefault();el.addEventListener(\"touchmove\",preventTouchScroll,{passive:false});return()=>{el.removeEventListener(\"pointerdown\",onPointerDown);window.removeEventListener(\"pointermove\",onPointerMove);window.removeEventListener(\"pointerup\",onPointerUp);window.removeEventListener(\"pointercancel\",onPointerUp);el.removeEventListener(\"touchmove\",preventTouchScroll);};},[dragEnabled,dragSensitivity,flingMultiplier,smoothing,tapThreshold]);// derived layout (vertical)\nconst n=cards.length;const stride=cardHeight+gap;const bandHeight=n*stride;// offset normalized to [-bandHeight, 0)\nconst normOffset=(()=>{const use=currentOffsetRef.current;if(bandHeight<=0)return use;const raw=-use;const m=(raw%bandHeight+bandHeight)%bandHeight;return-m;})();// width scale by distance to vertical center (edge -> center)\nconst widthScaleForY=cardCenterY=>{const centerY=containerHeight/2;const dist=Math.abs(cardCenterY-centerY);const t=Math.max(0,1-dist/Math.max(1,effectiveWidthRadius));const eased=Math.pow(t,widthFalloff);const edge=Math.min(1,Math.max(.1,edgeWidthScale));return edge+(1-edge)*eased;};// rail position (X)\nconst railLeft=(()=>{const W=containerWidth;if(horizontalAlign===\"left\")return paddingX;if(horizontalAlign===\"center\")return Math.max(0,(W-cardWidth)/2);return Math.max(0,W-cardWidth-paddingX);})();// simple ease-in alpha (no seconds)\nconst s=Math.max(0,Math.min(1,widthEase/2));const power=Math.max(1,Math.min(6,widthEasePower));const alpha=Math.pow(s,power);const EPS=8e-4;// seam-proof: choose closest copy to center for each i, smooth once per i\nconst centerYViewport=containerHeight/2;const offsets=[normOffset-bandHeight,normOffset,normOffset+bandHeight];const smoothedScaleByI=(()=>{const out=new Array(n).fill(1);for(let i=0;i<n;i++){let bestCenterY=0;let bestDist=Number.POSITIVE_INFINITY;for(let k=0;k<3;k++){const y=paddingTop+offsets[k]+i*stride;const cy=y+cardHeight/2;const d=Math.abs(cy-centerYViewport);if(d<bestDist){bestDist=d;bestCenterY=cy;}}const target=widthScaleForY(bestCenterY);const cur=widthScaleByIRef.current[i]??target;const next=alpha>=.999?target:cur+(target-cur)*alpha;widthScaleByIRef.current[i]=next;out[i]=next;if(alpha>0&&Math.abs(target-next)>EPS)scheduleFrame();}return out;})();// inner anchor switches by alignment\nconst getInnerAnchorStyle=align=>{if(align===\"left\")return{left:0,right:\"auto\",transform:\"none\"};if(align===\"right\")return{right:0,left:\"auto\",transform:\"none\"};return{left:\"50%\",right:\"auto\",transform:\"translateX(-50%)\"};};// content alignment helper (used in both modes)\nconst getContentAnchorStyle=align=>{if(align===\"left\")return{left:0,right:\"auto\",transform:\"none\"};if(align===\"right\")return{right:0,left:\"auto\",transform:\"none\"};return{left:\"50%\",right:\"auto\",transform:\"translateX(-50%)\"};};const renderBand=bandIndex=>{const bandOffsetY=normOffset+bandIndex*bandHeight;const items=[];const innerAnchor=getInnerAnchorStyle(horizontalAlign);const fixedContentAnchor=getContentAnchorStyle(contentAlign);for(let i=0;i<n;i++){const y=paddingTop+bandOffsetY+i*stride;const wScale=smoothedScaleByI[i]??1;const scaledW=Math.max(1,cardWidth*wScale);items.push(// SLOT (rail): fixed width, never shifts\n/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,top:0,width:cardWidth,height:cardHeight,transform:`translate3d(0, ${y}px, 0)`,willChange:\"transform\",overflow:\"visible\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,height:cardHeight,width:scaledW,willChange:\"width,transform\",overflow:\"hidden\",borderRadius:radius,boxShadow:shadow,...innerAnchor},children:contentMode===\"fixed\"?// ✅ FIXED CONTENT: keeps constant width = cardWidth => no relayout jumps\n/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,bottom:0,width:cardWidth,...fixedContentAnchor},children:/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"},children:cards[i]})}):// STRETCH (old): content fills inner (can relayout)\n/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"},children:cards[i]})})},`${bandIndex}-${i}`));}return items;};return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,onPointerUpCapture:e=>{const isTouchLike=lastPointerType.current===\"touch\"||lastPointerType.current===\"pen\";if(isTouchLike&&hasDragged.current){e.stopPropagation();e.preventDefault();}},onClickCapture:e=>{const isTouchLike=lastPointerType.current===\"touch\"||lastPointerType.current===\"pen\";if(isTouchLike&&hasDragged.current){e.stopPropagation();e.preventDefault();}},style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",background:bg,overscrollBehavior:\"none\",touchAction:\"none\",borderRadius:radius},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",top:0,bottom:0,left:railLeft,width:cardWidth,overflow:\"visible\"},children:[renderBand(-1),renderBand(0),renderBand(1)]})});}InfiniteWheelCarousel.defaultProps={cards:[],cardWidthMode:\"px\",cardWidthPx:280,cardWidthPercent:70,cardHeight:180,gap:24,paddingX:24,paddingTop:60,paddingBottom:60,bg:\"transparent\",radius:16,shadow:\"0 10px 30px rgba(0,0,0,0.12)\",edgeWidthScale:.5,widthRadiusMode:\"px\",widthRadiusPx:420,widthRadiusPercent:100,widthFalloff:2.2,widthEase:1,widthEasePower:3,wheelSensitivity:.6,startIndex:0,smoothing:.08,horizontalAlign:\"left\",contentAlign:\"left\",// ✅ NEW default\ncontentMode:\"fixed\",dragEnabled:true,dragSensitivity:1,flingMultiplier:220,tapThreshold:6};/* -------------------- Property Controls -------------------- */addPropertyControls(InfiniteWheelCarousel,{cards:{type:ControlType.Array,title:\"Cards\",propertyControl:{type:ControlType.ComponentInstance}},cardWidthMode:{type:ControlType.Enum,title:\"W Mode\",options:[\"px\",\"percent\"],optionTitles:[\"PX\",\"%\"]},cardWidthPx:{type:ControlType.Number,title:\"Card W (px)\",min:80,max:1600,step:1,hidden:p=>p.cardWidthMode!==\"px\"},cardWidthPercent:{type:ControlType.Number,title:\"Card W (%)\",min:5,max:100,step:1,hidden:p=>p.cardWidthMode!==\"percent\"},cardHeight:{type:ControlType.Number,title:\"Card H\",min:60,max:900,step:1},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:200,step:1},edgeWidthScale:{type:ControlType.Number,title:\"Edge \\xd7\",min:.1,max:1,step:.01},widthRadiusMode:{type:ControlType.Enum,title:\"W Radius\",options:[\"px\",\"percent\"],optionTitles:[\"PX\",\"% Height\"]},widthRadiusPx:{type:ControlType.Number,title:\"Radius (px)\",min:40,max:2e3,step:1,hidden:p=>p.widthRadiusMode!==\"px\"},widthRadiusPercent:{type:ControlType.Number,title:\"Radius (%H)\",min:10,max:200,step:1,hidden:p=>p.widthRadiusMode!==\"percent\"},widthFalloff:{type:ControlType.Number,title:\"W Falloff\",min:1,max:6,step:.1},widthEase:{type:ControlType.Number,title:\"W Ease\",min:0,max:2,step:.01},widthEasePower:{type:ControlType.Number,title:\"Ease Power\",min:1,max:6,step:.1},wheelSensitivity:{type:ControlType.Number,title:\"Wheel\",min:.1,max:3,step:.05},smoothing:{type:ControlType.Number,title:\"Smooth\",min:0,max:.5,step:.01},dragEnabled:{type:ControlType.Boolean,title:\"Drag\"},dragSensitivity:{type:ControlType.Number,title:\"Drag Sens.\",min:.2,max:3,step:.1},flingMultiplier:{type:ControlType.Number,title:\"Fling\",min:50,max:800,step:10},tapThreshold:{type:ControlType.Number,title:\"Tap Thresh\",min:0,max:30,step:1},horizontalAlign:{type:ControlType.Enum,title:\"H Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"]},contentAlign:{type:ControlType.Enum,title:\"Content\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"]},// ✅ NEW\ncontentMode:{type:ControlType.Enum,title:\"Mode\",options:[\"fixed\",\"stretch\"],optionTitles:[\"Fixed\",\"Stretch\"]},paddingX:{type:ControlType.Number,title:\"Pad X\",min:0,max:200,step:1},paddingTop:{type:ControlType.Number,title:\"Pad Top\",min:0,max:400,step:1},paddingBottom:{type:ControlType.Number,title:\"Pad Bottom\",min:0,max:400,step:1},bg:{type:ControlType.Color,title:\"Background\"},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:40,step:1},shadow:{type:ControlType.String,title:\"Shadow\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"InfiniteWheelCarousel\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Is1.map"],"mappings":"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"}