{"version":3,"file":"LogoCarousel.CaFrH7tu.mjs","names":["useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/wjmFd0wAdv14b0ftoJrB/g7Z0nHsTVDB31ApatKu7/LogoCarousel.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";/**\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function LogoCarousel(props){const[currentIndex,setCurrentIndex]=useState(0);const{instances,itemsPerView,spacing,duration,gap,layout,gridColumns,gridRows}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;// Ensure we have actual instances to work with\nconst hasInstances=instances&&instances.length>0;// Calculate items per view based on layout\nconst getItemsPerView=()=>{if(layout===\"grid\"){return gridColumns*gridRows;}return itemsPerView;};const actualItemsPerView=getItemsPerView();useEffect(()=>{if(isCanvas)return;// Don't animate on canvas\nif(!hasInstances||actualItemsPerView>=instances.length)return;const interval=setInterval(()=>{setCurrentIndex(prev=>(prev+actualItemsPerView)%instances.length);},duration*1e3);return()=>clearInterval(interval);},[instances,actualItemsPerView,duration,isCanvas,hasInstances]);// Calculate displayed items\nconst displayedItems=[];if(hasInstances){for(let i=0;i<actualItemsPerView;i++){const index=(currentIndex+i)%instances.length;if(index<instances.length){displayedItems.push({item:instances[index],index:i});}}}// Get container styles based on layout\nconst getContainerStyles=()=>{const baseStyles={width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",overflow:\"hidden\"};switch(layout){case\"horizontal\":return{...baseStyles,flexDirection:\"row\",gap:gap};case\"vertical\":return{...baseStyles,flexDirection:\"column\",gap:gap};case\"grid\":return{...baseStyles,display:\"grid\",gridTemplateColumns:`repeat(${gridColumns}, 1fr)`,gridTemplateRows:`repeat(${gridRows}, 1fr)`,gap:gap};default:return baseStyles;}};// Canvas preview\nif(isCanvas){return /*#__PURE__*/_jsx(\"div\",{style:getContainerStyles(),children:hasInstances?instances.slice(0,actualItemsPerView).map((item,index)=>/*#__PURE__*/_jsx(\"div\",{style:{margin:spacing/2},children:item},index)):Array.from({length:actualItemsPerView}).map((_,index)=>/*#__PURE__*/_jsxs(\"div\",{style:{width:layout===\"grid\"?\"auto\":100,height:layout===\"grid\"?\"auto\":80,minWidth:layout===\"grid\"?60:100,minHeight:layout===\"grid\"?48:80,backgroundColor:\"#e0e0e0\",borderRadius:\"8px\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",color:\"#999\",fontSize:\"16px\",margin:spacing/2},children:[\"Logo \",index+1]},index))});}return /*#__PURE__*/_jsxs(\"div\",{style:getContainerStyles(),children:[/*#__PURE__*/_jsx(AnimatePresence,{mode:\"popLayout\",children:displayedItems.map(({item,index})=>/*#__PURE__*/_jsx(motion.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:-50},transition:{type:props.transition.type,duration:props.transition.duration,ease:props.transition.ease,delay:index*props.staggerDelay},style:{margin:spacing/2},layout:true,children:item},`${currentIndex}-${index}`))}),!hasInstances&&/*#__PURE__*/_jsx(_Fragment,{children:Array.from({length:actualItemsPerView}).map((_,index)=>/*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:-50},transition:{type:\"spring\",duration:.5,ease:\"easeOut\",delay:index*.1},style:{width:layout===\"grid\"?\"auto\":100,height:layout===\"grid\"?\"auto\":80,minWidth:layout===\"grid\"?60:100,minHeight:layout===\"grid\"?48:80,backgroundColor:\"#e0e0e0\",borderRadius:\"8px\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",color:\"#999\",fontSize:\"16px\",margin:spacing/2},children:[\"Logo \",index+1]},index))})]});}LogoCarousel.defaultProps={instances:[],layout:\"horizontal\",itemsPerView:3,gridColumns:3,gridRows:2,spacing:20,duration:3,gap:10,staggerDelay:.1};addPropertyControls(LogoCarousel,{instances:{type:ControlType.Array,title:\"Instances\",control:{type:ControlType.ComponentInstance}},layout:{type:ControlType.Enum,title:\"Layout\",options:[\"horizontal\",\"vertical\",\"grid\"],optionTitles:[\"Horizontal\",\"Vertical\",\"Grid\"],defaultValue:\"horizontal\"},itemsPerView:{type:ControlType.Number,title:\"Items Per View\",min:1,max:10,step:1,defaultValue:3,hidden(props){return props.layout===\"grid\";}},gridColumns:{type:ControlType.Number,title:\"Grid Columns\",min:1,max:6,step:1,defaultValue:3,hidden(props){return props.layout!==\"grid\";}},gridRows:{type:ControlType.Number,title:\"Grid Rows\",min:1,max:4,step:1,defaultValue:2,hidden(props){return props.layout!==\"grid\";}},spacing:{type:ControlType.Number,title:\"Item Spacing\",min:0,max:100,step:1,defaultValue:20},gap:{type:ControlType.Number,title:\"Container Gap\",min:0,max:100,step:1,defaultValue:10},duration:{type:ControlType.Number,title:\"Duration (s)\",min:1,max:10,step:.5,defaultValue:3},staggerDelay:{type:ControlType.Number,title:\"Stagger Delay\",min:0,max:1,step:.05,defaultValue:.1},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"spring\",duration:.5,ease:\"easeOut\"},description:\"v1.2 \\n[via SegmentUI](https://www.segmentUI.com)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LogoCarousel\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LogoCarousel.map"],"mappings":"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"}