{"version":3,"file":"Infinity.CWc-TyIP.mjs","names":["React.useState","p","React.useRef"],"sources":["https:/framerusercontent.com/modules/SgsPqJ4aDrr7JxLFLDhv/1rImhQhNviPgicEx2ACC/Infinity.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";/* -------------------- Satto License -------------------- */const SATTO_LICENSE_API=\"https://satto-license-api.sattostudio.workers.dev/api/check\";const SATTO_PRODUCT_ID=\"satto-components\";const SATTO_COMPONENT_ID=\"infinite-wheel-carousel-horizontal\";const SATTO_COMPONENT_VERSION=\"1.0.3\";function isFramerEditorHost(hostname){return hostname===\"localhost\"||hostname===\"127.0.0.1\"||hostname===\"framer.com\"||hostname.endsWith(\".framer.com\");}function checkSattoLicense(){if(typeof window===\"undefined\")return Promise.resolve(true);const hostname=window.location.hostname.toLowerCase();if(isFramerEditorHost(hostname))return Promise.resolve(true);const globalScope=globalThis;if(!globalScope.__SATTO_LICENSE_CACHE__){globalScope.__SATTO_LICENSE_CACHE__={};}const cacheKey=[SATTO_LICENSE_API,SATTO_PRODUCT_ID,SATTO_COMPONENT_ID,SATTO_COMPONENT_VERSION,hostname].join(\":\");const cachedRequest=globalScope.__SATTO_LICENSE_CACHE__[cacheKey];if(cachedRequest)return cachedRequest;const request=fetch(SATTO_LICENSE_API,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({productId:SATTO_PRODUCT_ID,componentId:SATTO_COMPONENT_ID,version:SATTO_COMPONENT_VERSION})}).then(async response=>{const data=await response.json().catch(()=>null);if(!response.ok||!data)return true;return data.allowed!==false;}).catch(()=>true);globalScope.__SATTO_LICENSE_CACHE__[cacheKey]=request;return request;}/**\n * InfiniteWheelCarousel\n * v1.0.3 — Horizontal + Satto License + Tap Guard\n *\n * @framerDisableUnlink\n */export default function InfiniteWheelCarousel(p){const[licenseAllowed,setLicenseAllowed]=React.useState(true);React.useEffect(()=>{let active=true;checkSattoLicense().then(allowed=>{if(active)setLicenseAllowed(allowed);});return()=>{active=false;};},[]);const cards=p.cards??[];const links=p.cardLinks??[];const size=p.size??{};const drag=p.drag??{};const extra=p.extra??{};const cardWidth=num(size.cardWidth??p.cardWidth,280);const cardHeight=num(size.cardHeight??p.cardHeight,180);const gap=num(size.gap??p.gap,24);const padding=num(size.padding??p.paddingX,60);const falloff=num(size.falloff??p.focusFalloff,2.5);void falloff;const wheelSensitivity=num(drag.wheel??p.wheelSensitivity,.6);const smoothing=num(drag.smooth??p.smoothing,.08);const dragEnabled=bool(drag.enabled??p.dragEnabled,true);const dragSensitivity=num(drag.sensitivity??p.dragSensitivity,1);const flingMultiplier=num(drag.fling??p.flingMultiplier,220);const tapThreshold=num(drag.tapThreshold??p.tapThreshold,6);const extraEnabled=bool(extra.enabled??p.extraEnabled,false);const extraPosition=extra.position??p.extraPosition??\"right\";const extraWidth=num(extra.width??p.extraWidth,120);const extraHeight=num(extra.height??p.extraHeight,120);const extraGap=num(extra.gap??p.extraGap,10);const extraRadius=num(extra.radius??p.extraRadius,12);const extraAbove=bool(extra.above??p.extraAbove,true);const extraCards=p.extraCards??[];const bg=p.bg??\"transparent\";const radius=num(p.radius,16);const vAlign=p.vAlign??\"center\";const startIndex=num(p.startIndex,0);const containerRef=React.useRef(null);const targetOffsetRef=React.useRef(0);const currentOffsetRef=React.useRef(0);const[,rerender]=React.useState(0);const isDragging=React.useRef(false);const isPointerDown=React.useRef(false);const startX=React.useRef(0);const startY=React.useRef(0);const lastX=React.useRef(0);const lastT=React.useRef(0);const velocity=React.useRef(0);const hasDragged=React.useRef(false);const suppressClickUntil=React.useRef(0);const lastPointerType=React.useRef(\"unknown\");const rafRef=React.useRef(null);const shouldSuppressClick=()=>typeof performance!==\"undefined\"&&performance.now()<suppressClickUntil.current;const tick=()=>{rafRef.current=null;if(smoothing>0){const current=currentOffsetRef.current;const target=targetOffsetRef.current;const next=current+(target-current)*smoothing;currentOffsetRef.current=next;if(Math.abs(target-next)>.1){rafRef.current=requestAnimationFrame(tick);}}rerender(value=>value+1);};const scheduleFrame=()=>{if(rafRef.current!==null)return;rafRef.current=requestAnimationFrame(tick);};React.useEffect(()=>{return()=>{if(rafRef.current!==null){cancelAnimationFrame(rafRef.current);rafRef.current=null;}};},[]);React.useEffect(()=>{if(!licenseAllowed)return;const base=startIndex*(cardWidth+gap);targetOffsetRef.current=base;currentOffsetRef.current=base;scheduleFrame();},[licenseAllowed,startIndex,cardWidth,gap]);React.useEffect(()=>{if(!licenseAllowed)return;const element=containerRef.current;if(!element)return;const onWheel=event=>{if(event.deltaX===0&&event.deltaY===0){return;}event.preventDefault();const dominantDelta=Math.abs(event.deltaX)>=Math.abs(event.deltaY)?event.deltaX:event.deltaY;targetOffsetRef.current+=dominantDelta*wheelSensitivity;if(!(smoothing>0)){currentOffsetRef.current=targetOffsetRef.current;}scheduleFrame();};element.addEventListener(\"wheel\",onWheel,{passive:false});return()=>{element.removeEventListener(\"wheel\",onWheel);};},[licenseAllowed,wheelSensitivity,smoothing]);React.useEffect(()=>{if(!licenseAllowed)return;const onKey=event=>{const step=cardWidth+gap;if(event.key===\"ArrowRight\"){targetOffsetRef.current+=step;if(!(smoothing>0)){currentOffsetRef.current=targetOffsetRef.current;}scheduleFrame();}if(event.key===\"ArrowLeft\"){targetOffsetRef.current-=step;if(!(smoothing>0)){currentOffsetRef.current=targetOffsetRef.current;}scheduleFrame();}};window.addEventListener(\"keydown\",onKey);return()=>{window.removeEventListener(\"keydown\",onKey);};},[licenseAllowed,cardWidth,gap,smoothing]);React.useEffect(()=>{if(!licenseAllowed||!dragEnabled)return;const element=containerRef.current;if(!element)return;const threshold=Math.max(0,tapThreshold);const onPointerDown=event=>{isPointerDown.current=true;isDragging.current=false;hasDragged.current=false;suppressClickUntil.current=0;velocity.current=0;const pointerType=event.pointerType||\"mouse\";lastPointerType.current=pointerType===\"mouse\"||pointerType===\"touch\"||pointerType===\"pen\"?pointerType:\"unknown\";startX.current=event.clientX;startY.current=event.clientY;lastX.current=event.clientX;lastT.current=performance.now();event.currentTarget.setPointerCapture?.(event.pointerId);};const onPointerMove=event=>{if(!isPointerDown.current)return;if(!isDragging.current){const distanceX=Math.abs(event.clientX-startX.current);const distanceY=Math.abs(event.clientY-startY.current);if(distanceX>threshold&&distanceX>distanceY){isDragging.current=true;hasDragged.current=true;lastX.current=event.clientX;lastT.current=performance.now();}else{return;}}const now=performance.now();const deltaX=(event.clientX-lastX.current)*dragSensitivity;targetOffsetRef.current+=deltaX;if(!(smoothing>0)){currentOffsetRef.current=targetOffsetRef.current;}scheduleFrame();const deltaTime=Math.max(1,now-lastT.current);velocity.current=(event.clientX-lastX.current)/deltaTime;lastX.current=event.clientX;lastT.current=now;};const onPointerUp=event=>{if(!isPointerDown.current)return;isPointerDown.current=false;if(!isDragging.current){hasDragged.current=false;return;}isDragging.current=false;hasDragged.current=true;const isTouchLike=lastPointerType.current===\"touch\"||lastPointerType.current===\"pen\";const suppressDuration=isTouchLike?500:120;suppressClickUntil.current=performance.now()+suppressDuration;event.preventDefault();event.stopPropagation();const currentVelocity=velocity.current;if(Math.abs(currentVelocity)>.05){targetOffsetRef.current+=currentVelocity*flingMultiplier;scheduleFrame();}window.setTimeout(()=>{hasDragged.current=false;},suppressDuration);};const onPointerCancel=event=>{if(!isPointerDown.current)return;isPointerDown.current=false;if(!isDragging.current){hasDragged.current=false;return;}isDragging.current=false;hasDragged.current=true;const isTouchLike=lastPointerType.current===\"touch\"||lastPointerType.current===\"pen\";const suppressDuration=isTouchLike?500:120;suppressClickUntil.current=performance.now()+suppressDuration;event.preventDefault();event.stopPropagation();window.setTimeout(()=>{hasDragged.current=false;},suppressDuration);};element.addEventListener(\"pointerdown\",onPointerDown,{passive:true});window.addEventListener(\"pointermove\",onPointerMove,{passive:true});window.addEventListener(\"pointerup\",onPointerUp,{passive:false});window.addEventListener(\"pointercancel\",onPointerCancel,{passive:false});return()=>{element.removeEventListener(\"pointerdown\",onPointerDown);window.removeEventListener(\"pointermove\",onPointerMove);window.removeEventListener(\"pointerup\",onPointerUp);window.removeEventListener(\"pointercancel\",onPointerCancel);};},[licenseAllowed,dragEnabled,dragSensitivity,flingMultiplier,smoothing,tapThreshold]);const count=cards.length;const stride=cardWidth+gap;const bandWidth=count*stride;const normalizedOffset=(()=>{const currentOffset=currentOffsetRef.current;if(bandWidth<=0){return currentOffset;}const rawOffset=-currentOffset;const modulo=(rawOffset%bandWidth+bandWidth)%bandWidth;return-modulo;})();const renderBand=bandIndex=>{const bandOffsetX=normalizedOffset+bandIndex*bandWidth;const items=[];for(let index=0;index<count;index++){const x=padding+bandOffsetX+index*stride;const scale=1;const zIndex=1e3;const child=cards[index];const href=links[index]||null;const extraChild=extraCards[index]||null;const scaledWidth=cardWidth*scale;const scaledHeight=cardHeight*scale;const mainLeft=(cardWidth-scaledWidth)/2;const mainRight=mainLeft+scaledWidth;const mainTop=(cardHeight-scaledHeight)/2;const mainBottom=mainTop+scaledHeight;let extraLeft=0;let extraTop=0;if(extraEnabled&&extraChild){if(extraPosition===\"right\"){extraLeft=mainRight+extraGap;extraTop=mainTop+(scaledHeight-extraHeight)/2;}else if(extraPosition===\"left\"){extraLeft=mainLeft-extraGap-extraWidth;extraTop=mainTop+(scaledHeight-extraHeight)/2;}else if(extraPosition===\"top\"){extraLeft=mainLeft+(scaledWidth-extraWidth)/2;extraTop=mainTop-extraGap-extraHeight;}else{extraLeft=mainLeft+(scaledWidth-extraWidth)/2;extraTop=mainBottom+extraGap;}}items.push(/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",left:0,top:0,width:cardWidth,height:cardHeight,transform:`translate3d(${x}px,0,0)`,zIndex,willChange:\"transform\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,top:0,width:cardWidth,height:cardHeight,transform:`translate3d(0,0,0) scale(${scale})`,transformOrigin:\"center center\"},children:/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",overflow:\"hidden\",borderRadius:radius,cursor:href?\"pointer\":\"default\"},onClick:event=>{if(shouldSuppressClick()){event.preventDefault();event.stopPropagation();return;}hasDragged.current=false;if(!href)return;window.open(href,\"_self\");},children:child})}),extraEnabled&&extraChild&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:extraLeft,top:extraTop,width:extraWidth,height:extraHeight,borderRadius:extraRadius,overflow:\"hidden\",zIndex:extraAbove?zIndex+1:zIndex-1},children:extraChild})]},`${bandIndex}-${index}`));}return items;};const railStyle=vAlign===\"center\"?{position:\"absolute\",left:0,right:0,top:\"50%\",height:cardHeight,transform:\"translate3d(0,-50%,0)\",willChange:\"transform\"}:vAlign===\"top\"?{position:\"absolute\",left:0,right:0,top:padding,height:cardHeight,willChange:\"transform\"}:{position:\"absolute\",left:0,right:0,bottom:padding,height:cardHeight,willChange:\"transform\"};if(!licenseAllowed)return null;return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,onPointerUpCapture:event=>{if(shouldSuppressClick()){event.preventDefault();event.stopPropagation();}},onClickCapture:event=>{if(shouldSuppressClick()){event.preventDefault();event.stopPropagation();return;}hasDragged.current=false;},onDragStart:event=>{event.preventDefault();},style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",background:bg,overscrollBehavior:\"none\",touchAction:\"none\",userSelect:\"none\",WebkitUserSelect:\"none\",WebkitTouchCallout:\"none\",borderRadius:radius},children:/*#__PURE__*/_jsxs(\"div\",{style:railStyle,children:[renderBand(-1),renderBand(0),renderBand(1)]})});}/* -------------------- Helpers -------------------- */const num=(value,fallback)=>typeof value===\"number\"&&Number.isFinite(value)?value:fallback;const bool=(value,fallback)=>typeof value===\"boolean\"?value:fallback/* -------------------- Defaults -------------------- */;InfiniteWheelCarousel.defaultProps={cards:[],cardLinks:[],bg:\"transparent\",radius:16,vAlign:\"center\",startIndex:0,cardWidth:280,cardHeight:180,gap:24,paddingX:60,wheelSensitivity:.6,smoothing:.08,dragEnabled:true,dragSensitivity:1,flingMultiplier:220,tapThreshold:6,extraEnabled:false,extraCards:[],extraPosition:\"right\",extraWidth:120,extraHeight:120,extraGap:10,extraRadius:12,extraAbove:true,focusFalloff:2.5};/* -------------------- Property Controls -------------------- */addPropertyControls(InfiniteWheelCarousel,{cards:{type:ControlType.Array,title:\"Cards\",propertyControl:{type:ControlType.ComponentInstance},description:\"Card instances rendered in the carousel and matched by index.\"},cardLinks:{type:ControlType.Array,title:\"Links\",propertyControl:{type:ControlType.String},description:\"Optional card URLs matched by index.\"},size:{type:ControlType.Object,title:\"Size\",controls:{cardWidth:{type:ControlType.Number,title:\"Card W\",min:80,max:1200,step:1,defaultValue:280,description:\"Card width in pixels.\"},cardHeight:{type:ControlType.Number,title:\"Card H\",min:60,max:900,step:1,defaultValue:180,description:\"Card height in pixels.\"},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:200,step:1,defaultValue:24,description:\"Space between cards.\"},falloff:{type:ControlType.Number,title:\"Falloff\",min:1,max:6,step:.1,defaultValue:2.5,description:\"Reserved for focus scaling.\"},padding:{type:ControlType.Number,title:\"Padding\",min:0,max:200,step:1,defaultValue:60,description:\"Band padding and top/bottom alignment offset.\"}}},drag:{type:ControlType.Object,title:\"Drag\",controls:{wheel:{type:ControlType.Number,title:\"Wheel\",min:.1,max:3,step:.05,defaultValue:.6,description:\"Wheel sensitivity.\"},smooth:{type:ControlType.Number,title:\"Smooth\",min:0,max:.5,step:.01,defaultValue:.08,description:\"Smoothing factor. 0 means raw movement.\"},enabled:{type:ControlType.Boolean,title:\"Drag\",defaultValue:true,description:\"Enable pointer dragging.\"},sensitivity:{type:ControlType.Number,title:\"Drag Sense\",min:.2,max:4,step:.1,defaultValue:1,description:\"Drag distance multiplier.\"},fling:{type:ControlType.Number,title:\"Fling\",min:50,max:800,step:10,defaultValue:220,description:\"Momentum after pointer release.\"},tapThreshold:{type:ControlType.Number,title:\"Tap Thresh\",min:0,max:30,step:1,defaultValue:6,description:\"Minimum movement required to treat input as drag.\"}}},startIndex:{type:ControlType.Number,title:\"Start Index\",min:0,max:999,step:1,defaultValue:0,description:\"Initial card offset.\"},vAlign:{type:ControlType.Enum,title:\"V Align\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],defaultValue:\"center\",description:\"Vertical alignment of the carousel rail.\"},bg:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\",description:\"Container background.\"},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:40,step:1,defaultValue:16,description:\"Card and container corner radius.\"},extraCards:{type:ControlType.Array,title:\"Extra Cards\",propertyControl:{type:ControlType.ComponentInstance},description:\"Optional extra components matched by index.\"},extra:{type:ControlType.Object,title:\"Extra\",controls:{enabled:{type:ControlType.Boolean,title:\"Extra On\",defaultValue:false,description:\"Enable an extra component for every card.\"},position:{type:ControlType.Enum,title:\"Extra Pos\",options:[\"top\",\"bottom\",\"left\",\"right\"],optionTitles:[\"Top\",\"Bottom\",\"Left\",\"Right\"],defaultValue:\"right\",description:\"Extra component position relative to the card.\"},width:{type:ControlType.Number,title:\"Extra W\",min:20,max:1200,step:1,defaultValue:120,description:\"Extra component width.\"},height:{type:ControlType.Number,title:\"Extra H\",min:20,max:1200,step:1,defaultValue:120,description:\"Extra component height.\"},gap:{type:ControlType.Number,title:\"Extra Gap\",min:0,max:200,step:1,defaultValue:10,description:\"Distance between the card and extra component.\"},radius:{type:ControlType.Number,title:\"Extra Radius\",min:0,max:40,step:1,defaultValue:12,description:\"Extra component corner radius.\"},above:{type:ControlType.Boolean,title:\"Extra Above\",defaultValue:true,description:\"Place the extra component above the main card.\\n\\nThis component and all usage rights belong to Satto Studio.\\n[Satto](https://satto.studio)\"}}}})/* Developer: Satto.studio — support@satto.studio */;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"InfiniteWheelCarousel\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Infinity.map"],"mappings":"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"}