{"version":3,"file":"InfiniteScroll.CIXrlYeR.mjs","names":["useState","useRef","startTransition"],"sources":["https:/framerusercontent.com/modules/Eea3eQqUJ4mKGSBbWwkA/pvy7n0Jc3JVtIaTUSIb8/InfiniteScroll.js"],"sourcesContent":["// Infinite scroll component for brand logos with automatic scrolling that slows on hover\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion,useAnimationFrame,useMotionValue}from\"framer-motion\";/**\n * Infinite Scroll Brand Logos\n *\n * @framerIntrinsicWidth 800\n * @framerIntrinsicHeight 120\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function InfiniteScroll(props){const{brands=[{image:{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Brand 1\"},name:\"Brand 1\"},{image:{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Brand 2\"},name:\"Brand 2\"},{image:{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Brand 3\"},name:\"Brand 3\"},{image:{src:\"https://framerusercontent.com/images/2uTNEj5aTl2K3NJaEFWMbnrA.jpg\",alt:\"Brand 4\"},name:\"Brand 4\"},{image:{src:\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\",alt:\"Brand 5\"},name:\"Brand 5\"}],speed=1,hoverSpeed=.3,gap=20,logoSize=100,backgroundColor=\"#FFFFFF\",borderRadius=6,padding=16,direction=\"left\",verticalAlign=\"center\",pauseOnClick=true,useGrayscale=true,sortAlphabetically=false}=props;const[isHovered,setIsHovered]=useState(false);const[isPaused,setIsPaused]=useState(false);const containerRef=useRef(null);const[containerWidth,setContainerWidth]=useState(0);const x=useMotionValue(0);useEffect(()=>{if(typeof window!==\"undefined\"&&containerRef.current){const updateWidth=()=>{if(containerRef.current){startTransition(()=>setContainerWidth(containerRef.current.offsetWidth));}};updateWidth();window.addEventListener(\"resize\",updateWidth);return()=>window.removeEventListener(\"resize\",updateWidth);}},[]);const currentSpeed=isPaused?0:isHovered?hoverSpeed:speed;const directionMultiplier=direction===\"left\"?-1:1;// Sort brands alphabetically if enabled\nconst sortedBrands=sortAlphabetically?[...brands].sort((a,b)=>a.name.localeCompare(b.name)):brands;useAnimationFrame((time,delta)=>{const itemWidth=logoSize+gap;const totalWidth=brands.length*itemWidth;const movement=currentSpeed*directionMultiplier*(delta/16);const currentX=x.get();let newX=currentX+movement;// Seamless loop reset\nif(direction===\"left\"&&newX<=-totalWidth){newX+=totalWidth;}else if(direction===\"right\"&&newX>=0){newX-=totalWidth;}x.set(newX);});const duplicatedBrands=[...sortedBrands,...sortedBrands,...sortedBrands];const handleClick=()=>{if(pauseOnClick){startTransition(()=>setIsPaused(!isPaused));}};const getVerticalAlignment=()=>{switch(verticalAlign){case\"top\":return\"flex-start\";case\"bottom\":return\"flex-end\";default:return\"center\";}};return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",overflow:\"hidden\",position:\"relative\",display:\"flex\",alignItems:getVerticalAlignment()},onMouseEnter:()=>startTransition(()=>setIsHovered(true)),onMouseLeave:()=>startTransition(()=>setIsHovered(false)),onClick:handleClick,role:\"region\",\"aria-label\":\"Brand logos carousel\",tabIndex:0,onKeyDown:e=>{if(e.key===\" \"||e.key===\"Enter\"){e.preventDefault();handleClick();}},children:/*#__PURE__*/_jsx(motion.div,{style:{display:\"flex\",gap:`${gap}px`,x,willChange:\"transform\"},children:duplicatedBrands.map((brand,index)=>{const brandImage=brand.image||{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Default Brand\"};return /*#__PURE__*/_jsx(motion.div,{style:{width:`${logoSize}px`,height:`${logoSize}px`,backgroundColor:backgroundColor,borderRadius:`${borderRadius}px`,padding:`${padding}px`,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0},role:\"img\",\"aria-label\":brandImage.alt||brand.name,children:/*#__PURE__*/_jsx(\"img\",{src:brandImage.src,alt:brandImage.alt||brand.name,style:{width:\"100%\",height:\"100%\",objectFit:\"contain\",filter:useGrayscale?\"grayscale(100%)\":\"none\",transition:\"filter 0.3s ease\"}})},`${brand.name}-${index}`);})})});}addPropertyControls(InfiniteScroll,{brands:{type:ControlType.Array,title:\"Brands\",control:{type:ControlType.Object,controls:{image:{type:ControlType.ResponsiveImage,title:\"Logo\"},name:{type:ControlType.String,title:\"Brand Name\",defaultValue:\"Brand\"}}},defaultValue:[{image:{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Brand 1\"},name:\"Brand 1\"},{image:{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Brand 2\"},name:\"Brand 2\"},{image:{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Brand 3\"},name:\"Brand 3\"},{image:{src:\"https://framerusercontent.com/images/2uTNEj5aTl2K3NJaEFWMbnrA.jpg\",alt:\"Brand 4\"},name:\"Brand 4\"},{image:{src:\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\",alt:\"Brand 5\"},name:\"Brand 5\"}]},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.1,max:5,step:.1},hoverSpeed:{type:ControlType.Number,title:\"Hover Speed\",defaultValue:.3,min:.1,max:2,step:.1},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:20,min:0,max:100,step:1,unit:\"px\"},logoSize:{type:ControlType.Number,title:\"Logo Size\",defaultValue:100,min:50,max:300,step:10,unit:\"px\"},backgroundColor:{type:ControlType.Color,title:\"Frame Color\",defaultValue:\"#FFFFFF\"},borderRadius:{type:ControlType.Number,title:\"Roundness\",defaultValue:6,min:0,max:50,step:1,unit:\"px\"},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:16,min:0,max:50,step:1,unit:\"px\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\"],optionTitles:[\"Left\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},verticalAlign:{type:ControlType.Enum,title:\"Vertical Align\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],defaultValue:\"center\",displaySegmentedControl:true},pauseOnClick:{type:ControlType.Boolean,title:\"Pause on Click\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},useGrayscale:{type:ControlType.Boolean,title:\"Grayscale Filter\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},sortAlphabetically:{type:ControlType.Boolean,title:\"Sort A-Z\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"InfiniteScroll\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"120\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"800\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./InfiniteScroll.map"],"mappings":"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"}