{"version":3,"file":"Carousel3d.B-ML2Nch.mjs","names":["useState","useRef","useMemo","p","useCallback"],"sources":["https:/framerusercontent.com/modules/uJ0OzlA6YxRYrNgETWW4/amJagtOQJhLZbyac1A0j/Carousel3d.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useRef,useEffect,useState,useMemo,useCallback}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion,useMotionValue,useTransform,useAnimationFrame,useInView,animate,AnimatePresence}from\"framer-motion\";/* ── Constants ────────────────────────────────────────────────────── */const INTRO_SPIN_DURATION=2;const INTRO_SCALE_DURATION=1.2;const INITIAL_SCALE=.1;const INITIAL_ROTATION=12;const STAGGER_DURATION=.8;const FADE_DURATION=.5;const MIN_PANELS=6;const MAX_ITEMS=12;const ASPECT_RATIOS=[\"1/1\",\"5/4\",\"3/4\",\"7/5\",\"4/5\",\"1/1\",\"3/4\",\"5/4\",\"4/5\",\"7/5\",\"1/1\",\"3/4\",\"5/4\",\"4/5\"];const expoInOut=t=>{if(t===0||t===1)return t;return t<.5?Math.pow(2,20*t-10)/2:(2-Math.pow(2,-20*t+10))/2;};const expoIn=t=>{if(t===0)return 0;return Math.pow(2,10*t-10);};/* ── Defaults ─────────────────────────────────────────────────────── */const DEFAULT_TAB_BAR={position:92,background:\"#555555\",borderRadius:50,gap:4,padding:\"4px 4px 4px 4px\"};const DEFAULT_TAB_BUTTON={textTransform:\"uppercase\",padding:\"8px 20px 8px 20px\",borderRadius:50,activeColor:\"#1a1a1a\",activeBackground:\"#D4FF00\",inactiveColor:\"#ffffff\",inactiveBackground:\"rgba(255,255,255,0)\",hoverColor:\"#ffffff\",hoverBackground:\"rgba(255,255,255,0.1)\"};const DEFAULT_IMAGES={borderRadius:0,placeholderColor:\"#e0e0e0\"};const DEFAULT_CONTAINER={background:\"rgba(0,0,0,0)\"};const DEFAULT_ANIMATION={introDelay:1,rotationSpeed:12,introSpinSpeed:180,tiltAngle:5};/* ── MediaSlot sub-component ─────────────────────────────────────── */const PLACEHOLDER=\"__placeholder__\";function MediaSlot({src,placeholderColor}){if(src===PLACEHOLDER){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",position:\"absolute\",inset:\"0%\",background:placeholderColor,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"svg\",{width:\"32\",height:\"32\",viewBox:\"0 0 32 32\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M16 6v20M6 16h20\",stroke:\"#999\",strokeWidth:\"3\",strokeLinecap:\"round\"})})});}return /*#__PURE__*/_jsx(\"img\",{src:src,alt:\"\",style:{objectFit:\"cover\",width:\"100%\",maxWidth:\"none\",height:\"100%\",position:\"absolute\",inset:\"0%\"}});}/* ── Panel sub-component ─────────────────────────────────────────── */function CarouselPanel({index,total,angle,radius,width,height,justifyContent,children}){const base=index*360/total;const rotateY=useTransform(angle,v=>base+v);return /*#__PURE__*/_jsx(motion.div,{style:{position:\"absolute\",display:\"flex\",flexDirection:\"column\",justifyContent:justifyContent,alignItems:\"center\",width,height,rotateY,transformOrigin:`50% 50% ${-radius}px`,transformStyle:\"preserve-3d\",pointerEvents:\"none\",userSelect:\"none\"},children:children});}/* ── TabBar sub-component ────────────────────────────────────────── */function TabBar({tabs,activeIndex,onTabClick,visible,barStyle,buttonStyle}){const[hoveredIndex,setHoveredIndex]=useState(-1);return /*#__PURE__*/_jsx(AnimatePresence,{children:visible&&/*#__PURE__*/_jsx(motion.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,ease:[.16,1,.3,1]},style:{position:\"absolute\",top:`${barStyle.position}%`,transform:\"translateY(-50%)\",left:0,right:0,width:\"fit-content\",margin:\"0 auto\",display:\"flex\",gap:barStyle.gap,padding:barStyle.padding,background:barStyle.background,borderRadius:barStyle.borderRadius,boxShadow:barStyle.shadow,zIndex:10},children:tabs.map((tab,i)=>{const isActive=i===activeIndex;const isHovered=i===hoveredIndex;let color=isActive?buttonStyle.activeColor:buttonStyle.inactiveColor;let background=isActive?buttonStyle.activeBackground:buttonStyle.inactiveBackground;if(!isActive&&isHovered){color=buttonStyle.hoverColor;background=buttonStyle.hoverBackground;}return /*#__PURE__*/_jsx(\"button\",{onClick:()=>onTabClick(i),onMouseEnter:()=>setHoveredIndex(i),onMouseLeave:()=>setHoveredIndex(-1),style:{all:\"unset\",cursor:\"pointer\",padding:buttonStyle.padding,borderRadius:buttonStyle.borderRadius,...buttonStyle.font??{fontFamily:\"'SF Mono', 'Fira Code', 'Courier New', monospace\",fontSize:12,fontWeight:700,letterSpacing:\"0.05em\"},textTransform:buttonStyle.textTransform,whiteSpace:\"nowrap\",color,background,transition:\"background 0.2s, color 0.2s\"},children:tab.title},tab.title);})})});}/* ── Helper: distribute items into panels ────────────────────────── */function buildPanels(validItems){if(validItems.length===0)return[];const raw=[];let i=0;let oneNext=true;while(i<validItems.length){if(oneNext||i+1>=validItems.length){raw.push({items:[validItems[i]]});i+=1;}else{raw.push({items:[validItems[i],validItems[i+1]]});i+=2;}oneNext=!oneNext;}if(raw.length>0&&raw.length<MIN_PANELS){const result=[...raw];let idx=0;while(result.length<MIN_PANELS){result.push(raw[idx%raw.length]);idx++;}return result;}return raw;}function normalizeItems(items){const provided=items.filter(item=>item&&item.length>0).slice(0,MAX_ITEMS);const placeholderCount=Math.max(0,MAX_ITEMS-provided.length);const placeholders=Array.from({length:placeholderCount},()=>PLACEHOLDER);return[...provided,...placeholders];}/* ── Main component ──────────────────────────────────────────────── */function Carousel3D(props){const{tabs:rawTabs,itemGap}=props;/* ── Resolve style props with defaults ──────────────────────── */const barStyle={position:props.tabBar?.position??DEFAULT_TAB_BAR.position,background:props.tabBar?.background??DEFAULT_TAB_BAR.background,borderRadius:props.tabBar?.borderRadius??DEFAULT_TAB_BAR.borderRadius,gap:props.tabBar?.gap??DEFAULT_TAB_BAR.gap,padding:props.tabBar?.padding??DEFAULT_TAB_BAR.padding,shadow:props.tabBar?.shadow};const buttonStyle={font:props.tabButton?.font,textTransform:props.tabButton?.textTransform??DEFAULT_TAB_BUTTON.textTransform,padding:props.tabButton?.padding??DEFAULT_TAB_BUTTON.padding,borderRadius:props.tabButton?.borderRadius??DEFAULT_TAB_BUTTON.borderRadius,activeColor:props.tabButton?.activeColor??DEFAULT_TAB_BUTTON.activeColor,activeBackground:props.tabButton?.activeBackground??DEFAULT_TAB_BUTTON.activeBackground,inactiveColor:props.tabButton?.inactiveColor??DEFAULT_TAB_BUTTON.inactiveColor,inactiveBackground:props.tabButton?.inactiveBackground??DEFAULT_TAB_BUTTON.inactiveBackground,hoverColor:props.tabButton?.hoverColor??DEFAULT_TAB_BUTTON.hoverColor,hoverBackground:props.tabButton?.hoverBackground??DEFAULT_TAB_BUTTON.hoverBackground};const imageStyle={borderRadius:props.images?.borderRadius??DEFAULT_IMAGES.borderRadius,placeholderColor:props.images?.placeholderColor??DEFAULT_IMAGES.placeholderColor};const containerStyle={background:props.container?.background??DEFAULT_CONTAINER.background};const anim={introDelay:props.animation?.introDelay??DEFAULT_ANIMATION.introDelay,rotationSpeed:props.animation?.rotationSpeed??DEFAULT_ANIMATION.rotationSpeed,introSpinSpeed:props.animation?.introSpinSpeed??DEFAULT_ANIMATION.introSpinSpeed,tiltAngle:props.animation?.tiltAngle??DEFAULT_ANIMATION.tiltAngle};// Store animation values in a ref so callbacks always read the latest\nconst animRef=useRef(anim);animRef.current=anim;// Ensure we always have at least one tab\nconst tabs=useMemo(()=>{if(!rawTabs||rawTabs.length===0){return[{title:\"Tab 1\",items:[]}];}return rawTabs;},[rawTabs]);const[activeTabIndex,setActiveTabIndex]=useState(0);const safeTabIndex=Math.min(activeTabIndex,tabs.length-1);const validItems=useMemo(()=>normalizeItems(tabs[safeTabIndex]?.items??[]),[tabs,safeTabIndex]);const panels=useMemo(()=>buildPanels(validItems),[validItems]);/* ── Motion values ─────────────────────────────────────────── */const angle=useMotionValue(0);const speedRef=useRef(anim.rotationSpeed);const hasIntroPlayed=useRef(false);const isAnimatingRef=useRef(false);const[introComplete,setIntroComplete]=useState(false);const wrapRef=useRef(null);const contentRefs=useRef([]);const pendingTimeoutsRef=useRef([]);const isInView=useInView(wrapRef,{once:false,amount:0,margin:\"0px 0px -20% 0px\"});const wrapScale=useMotionValue(INITIAL_SCALE);const wrapRotation=useMotionValue(INITIAL_ROTATION);/* ── Responsive sizing ─────────────────────────────────────── */const[containerWidth,setContainerWidth]=useState(800);useEffect(()=>{const el=wrapRef.current;if(!el)return;const ro=new ResizeObserver(entries=>{for(const entry of entries)setContainerWidth(entry.contentRect.width);});ro.observe(el);return()=>ro.disconnect();},[]);const unit=containerWidth/80;const panelWidth=13*unit;const panelHeight=(26+itemGap)*unit;const radius=containerWidth*.625;const perspective=containerWidth*1.125;/* ── Stable ref indices ────────────────────────────────────── */const contentIndices=useMemo(()=>{let idx=0;return panels.map(p=>p.items.map(()=>idx++));},[panels]);/* ── Cleanup on unmount ────────────────────────────────────── */useEffect(()=>{return()=>{pendingTimeoutsRef.current.forEach(clearTimeout);};},[]);/* ── Animation functions ───────────────────────────────────── */const playIntro=useCallback(()=>{return new Promise(resolve=>{const{rotationSpeed,introSpinSpeed,tiltAngle}=animRef.current;speedRef.current=introSpinSpeed;animate(introSpinSpeed,rotationSpeed,{duration:INTRO_SPIN_DURATION,ease:expoInOut,onUpdate:v=>{speedRef.current=v;}});animate(wrapScale,1,{duration:INTRO_SCALE_DURATION,ease:expoInOut});animate(wrapRotation,tiltAngle,{duration:INTRO_SCALE_DURATION,ease:expoInOut});const items=contentRefs.current.filter(Boolean);const indices=items.map((_,i)=>i);for(let i=indices.length-1;i>0;i-=1){const j=Math.floor(Math.random()*(i+1));[indices[i],indices[j]]=[indices[j],indices[i]];}indices.forEach((origIdx,order)=>{const delay=order*(STAGGER_DURATION/Math.max(indices.length-1,1));const item=items[origIdx];const timeoutId=window.setTimeout(()=>{item.style.visibility=\"visible\";animate(item,{opacity:1},{duration:FADE_DURATION,ease:expoInOut});},delay*1e3);pendingTimeoutsRef.current.push(timeoutId);});const doneTimeout=window.setTimeout(resolve,INTRO_SPIN_DURATION*1e3+100);pendingTimeoutsRef.current.push(doneTimeout);});},[wrapScale,wrapRotation]);const playOutro=useCallback(()=>{return new Promise(resolve=>{const{rotationSpeed,introSpinSpeed}=animRef.current;// Speed up rotation first (leads the other animations)\nspeedRef.current=rotationSpeed;animate(rotationSpeed,introSpinSpeed,{duration:1.2,ease:expoIn,onUpdate:v=>{speedRef.current=v;}});// After a delay, scale down + tilt back + fade out content\nconst delayTimeout=window.setTimeout(()=>{animate(wrapScale,INITIAL_SCALE,{duration:.8,ease:expoIn});animate(wrapRotation,INITIAL_ROTATION,{duration:.8,ease:expoIn,onComplete:resolve});// Stagger fade-out content items in random order\nconst items=contentRefs.current.filter(Boolean);const indices=items.map((_,i)=>i);for(let i=indices.length-1;i>0;i-=1){const j=Math.floor(Math.random()*(i+1));[indices[i],indices[j]]=[indices[j],indices[i]];}indices.forEach((origIdx,order)=>{const delay=order*(.6/Math.max(indices.length-1,1));const item=items[origIdx];const timeoutId=window.setTimeout(()=>{animate(item,{opacity:0},{duration:.3,ease:expoIn,onComplete:()=>{item.style.visibility=\"hidden\";}});},delay*1e3);pendingTimeoutsRef.current.push(timeoutId);});},400);pendingTimeoutsRef.current.push(delayTimeout);});},[wrapScale,wrapRotation]);/* ── Tab switch handler ─────────────────────────────────────── */const handleTabSwitch=useCallback(async newIndex=>{if(newIndex===activeTabIndex)return;if(isAnimatingRef.current)return;isAnimatingRef.current=true;await playOutro();setActiveTabIndex(newIndex);await new Promise(resolve=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{contentRefs.current.filter(Boolean).forEach(el=>{el.style.opacity=\"0\";el.style.visibility=\"hidden\";});resolve();});});});await playIntro();isAnimatingRef.current=false;},[activeTabIndex,playOutro,playIntro]);/* ── Intro animation ───────────────────────────────────────── */useEffect(()=>{if(isInView&&!hasIntroPlayed.current){hasIntroPlayed.current=true;const delayMs=animRef.current.introDelay*1e3;const mainTid=window.setTimeout(async()=>{isAnimatingRef.current=true;await playIntro();isAnimatingRef.current=false;setIntroComplete(true);},delayMs);pendingTimeoutsRef.current.push(mainTid);return()=>{window.clearTimeout(mainTid);};}else if(isInView&&hasIntroPlayed.current){speedRef.current=animRef.current.rotationSpeed;}},[isInView,playIntro]);/* ── Auto-rotation ─────────────────────────────────────────── */useAnimationFrame((_,delta)=>{angle.set(angle.get()-speedRef.current*(delta/1e3));});/* ── Render ────────────────────────────────────────────────── */if(panels.length===0){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#999\",fontFamily:\"Inter, sans-serif\",fontSize:14},children:\"Add media items to the carousel\"});}return /*#__PURE__*/_jsxs(\"div\",{ref:wrapRef,style:{width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",overflow:\"hidden\",position:\"relative\",background:containerStyle.background},children:[/*#__PURE__*/_jsx(motion.div,{style:{perspective,perspectiveOrigin:\"50%\",transformStyle:\"preserve-3d\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",width:\"100%\",height:\"100%\",position:\"relative\",scale:wrapScale,rotate:wrapRotation,pointerEvents:\"none\"},children:panels.map((panel,pi)=>/*#__PURE__*/_jsx(CarouselPanel,{index:pi,total:panels.length,angle:angle,radius:radius,width:panelWidth,height:panelHeight,justifyContent:panel.items.length===1?\"center\":\"space-between\",children:panel.items.map((item,ji)=>{const idx=contentIndices[pi]?.[ji]??0;return /*#__PURE__*/_jsx(\"div\",{ref:el=>{contentRefs.current[idx]=el;if(!el)return;if(isAnimatingRef.current||!hasIntroPlayed.current){el.style.opacity=\"0\";el.style.visibility=\"hidden\";}else{el.style.opacity=\"1\";el.style.visibility=\"visible\";}},style:{aspectRatio:ASPECT_RATIOS[idx%ASPECT_RATIOS.length],height:panelWidth,position:\"relative\",overflow:\"hidden\",clipPath:\"inset(0%)\",borderRadius:imageStyle.borderRadius},children:/*#__PURE__*/_jsx(MediaSlot,{src:item,placeholderColor:imageStyle.placeholderColor})},ji);})},pi))}),tabs.length>1&&/*#__PURE__*/_jsx(TabBar,{tabs:tabs,activeIndex:safeTabIndex,onTabClick:handleTabSwitch,visible:introComplete,barStyle:barStyle,buttonStyle:buttonStyle})]});}/* ── Framer defaults ─────────────────────────────────────────────── */Carousel3D.defaultProps={tabs:[{title:\"Tab 1\",items:[]}],itemGap:7.5,tabBar:DEFAULT_TAB_BAR,tabButton:DEFAULT_TAB_BUTTON,images:DEFAULT_IMAGES,container:DEFAULT_CONTAINER,animation:DEFAULT_ANIMATION};/* ── Property Controls ───────────────────────────────────────────── */addPropertyControls(Carousel3D,{tabs:{type:ControlType.Array,title:\"Tabs\",maxCount:10,defaultValue:[{title:\"Tab 1\",items:[]}],control:{type:ControlType.Object,controls:{title:{type:ControlType.String,title:\"Title\",defaultValue:\"Tab\"},items:{type:ControlType.Array,title:\"Images\",maxCount:12,control:{type:ControlType.Image}}}}},itemGap:{type:ControlType.Number,title:\"Item Gap\",defaultValue:7.5,min:0,max:30,step:1},tabBar:{type:ControlType.Object,title:\"Tab Bar\",optional:true,controls:{position:{type:ControlType.Number,title:\"Position\",defaultValue:92,min:0,max:100,step:1,unit:\"%\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#555555\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:50,min:0,max:100,step:1},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:4,min:0,max:20,step:1},padding:{// @ts-ignore\ntype:ControlType.Padding,title:\"Padding\",defaultValue:\"4px 4px 4px 4px\"},shadow:{// @ts-ignore\ntype:ControlType.BoxShadow,title:\"Shadow\"}}},tabButton:{type:ControlType.Object,title:\"Tab Button\",optional:true,controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"extended\"},textTransform:{type:ControlType.Enum,title:\"Case\",options:[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"],optionTitles:[\"None\",\"UPPER\",\"lower\",\"Title\"],defaultValue:\"uppercase\"},padding:{// @ts-ignore\ntype:ControlType.Padding,title:\"Padding\",defaultValue:\"8px 20px 8px 20px\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:50,min:0,max:100,step:1},activeColor:{type:ControlType.Color,title:\"Active Text\",defaultValue:\"#1a1a1a\"},activeBackground:{type:ControlType.Color,title:\"Active BG\",defaultValue:\"#D4FF00\"},inactiveColor:{type:ControlType.Color,title:\"Inactive Text\",defaultValue:\"#ffffff\"},inactiveBackground:{type:ControlType.Color,title:\"Inactive BG\",defaultValue:\"rgba(255,255,255,0)\"},hoverColor:{type:ControlType.Color,title:\"Hover Text\",defaultValue:\"#ffffff\"},hoverBackground:{type:ControlType.Color,title:\"Hover BG\",defaultValue:\"rgba(255,255,255,0.1)\"}}},images:{type:ControlType.Object,title:\"Images\",optional:true,controls:{borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:0,min:0,max:50,step:1},placeholderColor:{type:ControlType.Color,title:\"Placeholder\",defaultValue:\"#e0e0e0\"}}},container:{type:ControlType.Object,title:\"Container\",optional:true,controls:{background:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0)\"}}},animation:{type:ControlType.Object,title:\"Animation\",optional:true,controls:{introDelay:{type:ControlType.Number,title:\"Intro Delay\",defaultValue:1,min:0,max:5,step:.1,unit:\"s\"},rotationSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:12,min:1,max:40,step:1},introSpinSpeed:{type:ControlType.Number,title:\"Intro Spin\",defaultValue:180,min:30,max:360,step:10},tiltAngle:{type:ControlType.Number,title:\"Tilt\",defaultValue:5,min:0,max:20,step:.5}}}});export default Carousel3D;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Carousel3D\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Carousel3d.map"],"mappings":"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"}