{"version":3,"file":"TCarousel.CihFsHJm.mjs","names":["React.useRef","React.useState","React.useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/Yh76Eq9NlMtNDUKrIV8k/QVGMvcghCBLKMtZhfuta/TCarousel.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion,useMotionValue,useTransform,animate}from\"framer-motion\";/**\n * Card Carousel — центрована активна картка, сусідні визирають з боків\n * зі зменшеним scale. Окремі конектори карток для Desktop / Tablet / Phone.\n *\n * Loop: справжній нескінченний скрол в один бік. Трек їде безкінечно,\n * а кожен слайд сам \"перестрибує\" по колу ЗА МЕЖАМИ екрану через\n * модульну арифметику — жодних телепортів треку і стрибків назад.\n *\n * ВАЖЛИВО: Width = Fill (не Fit Content), Height = Fixed.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 620\n */export default function CardCarousel(props){const{mode,bpTablet,bpPhone,cardsDesktop,cardsTablet,cardsPhone,widthMode,cardWidthPct,cardWidthPx,minHeight,gap,sideScale,loop,startIndex,showArrows,arrowColor,arrowBg,showDots,dotsPosition,dotsOffset,dotSize,dotGap,dotColor,dotActiveColor,autoplay,interval,style}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;// ---------- вимірюємо ширину в'юпорта каруселі ----------\nconst viewportRef=React.useRef(null);const[width,setWidth]=React.useState(0);React.useEffect(()=>{const el=viewportRef.current;if(!el)return;setWidth(el.getBoundingClientRect().width);const ro=new ResizeObserver(([entry])=>setWidth(entry.contentRect.width));ro.observe(el);return()=>ro.disconnect();},[]);// ---------- ширина в'юпорта сторінки (нею керуються брейкпоінти) ----------\nconst[vw,setVw]=React.useState(0);React.useEffect(()=>{const update=()=>setVw(window.innerWidth);update();window.addEventListener(\"resize\",update);return()=>window.removeEventListener(\"resize\",update);},[]);// ---------- вибір набору карток ----------\nlet device=mode;if(mode===\"auto\"){// на превью/лайві — справжня ширина вікна (як брейкпоінти Framer);\n// на канвасі реального в'юпорта немає, тому беремо ширину контейнера\nconst w=isCanvas?width:vw;device=w<bpPhone?\"phone\":w<bpTablet?\"tablet\":\"desktop\";}const raw=device===\"phone\"?cardsPhone:device===\"tablet\"?cardsTablet:cardsDesktop;const cards=raw&&raw.length>0?raw:cardsDesktop??[];const count=cards.length;const looping=loop&&count>1;// для loop дублюємо набір так, щоб слайдів було мінімум 6 —\n// тоді \"перестрибування\" слайда по колу гарантовано поза екраном\nconst reps=looping?Math.max(1,Math.ceil(6/count)):1;const N=count*reps;// ---------- геометрія ----------\nconst cardW=Math.max(1,widthMode===\"pixels\"?cardWidthPx:width*cardWidthPct/100);const step=cardW+gap;const centerLeft=width/2-cardW/2// left активної картки\n;const xFor=i=>centerLeft-i*step;// v — індекс активного слайда; при loop НЕОБМЕЖЕНИЙ (росте нескінченно)\nconst clampV=i=>looping?i:Math.max(0,Math.min(count-1,i));const startV=Math.max(0,Math.min(startIndex,Math.max(0,count-1)));const[v,setV]=React.useState(startV);const x=useMotionValue(xFor(startV));const vRef=React.useRef(v);vRef.current=v;const spring={type:\"spring\",stiffness:260,damping:34};const go=React.useCallback(i=>{const t=clampV(i);if(t===vRef.current){animate(x,xFor(t),spring);}else{setV(t);}},[looping,count,width,cardW,gap]);const goRef=React.useRef(go);goRef.current=go;// при зміні набору карток / loop — скидаємось на старт без анімації\nReact.useEffect(()=>{setV(startV);if(width>0){x.stop();x.set(xFor(startV));}},[count,looping]);// анімація до активного слайда (і при resize)\nReact.useEffect(()=>{if(width===0||count===0)return;const controls=animate(x,xFor(v),spring);return()=>controls.stop();},[v,width,cardW,gap,count,looping]);// автоплей (вимкнений на канвасі)\nReact.useEffect(()=>{if(!autoplay||isCanvas||count<2)return;const id=setInterval(()=>{const next=vRef.current+1;goRef.current(!looping&&next>count-1?0:next);},Math.max(1,interval)*1e3);return()=>clearInterval(id);},[autoplay,interval,count,isCanvas,looping]);// ---------- pan (свайп) ----------\nconst panned=React.useRef(false);const onPanStart=()=>{panned.current=false;x.stop();};const onPan=(_,info)=>{if(Math.abs(info.offset.x)>5)panned.current=true;let next=x.get()+info.delta.x;if(!looping){// без loop не даємо тягнути за межі\nconst min=xFor(count-1);const max=xFor(0);next=Math.max(min-40,Math.min(max+40,next));}x.set(next);};const onPanEnd=(_,info)=>{const projected=x.get()+info.velocity.x*.25;const target=Math.round((centerLeft-projected)/step);go(target);};// клік по бічній зоні = перейти до сусідньої картки\nconst onViewportClick=e=>{if(panned.current){panned.current=false;return;}const rect=viewportRef.current?.getBoundingClientRect();if(!rect)return;const localX=e.clientX-rect.left;if(localX<centerLeft)go(vRef.current-1);else if(localX>centerLeft+cardW)go(vRef.current+1);};const activeDot=count>0?(v%count+count)%count:0;// ---------- порожній стан ----------\nif(count===0){return /*#__PURE__*/_jsx(\"div\",{style:{...style,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"rgba(136, 85, 255, 0.08)\",border:\"1px dashed rgba(136, 85, 255, 0.5)\",borderRadius:12,color:\"#85f\",fontSize:14,fontFamily:\"Inter, sans-serif\",textAlign:\"center\",padding:24},children:\"Підключи картки до Cards \\xb7 Desktop / Tablet / Phone\"});}const dots=showDots&&count>1?/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",justifyContent:\"center\",gap:dotGap,zIndex:2,...dotsPosition===\"overlay\"?{position:\"absolute\",bottom:dotsOffset,left:0,right:0}:{marginTop:dotsOffset}},children:cards.map((_,i)=>/*#__PURE__*/_jsx(\"button\",{onClick:()=>{// найкоротший шлях до потрібної картки\n    let d=((i-activeDot)%count+count)%count;if(d>count/2)d-=count;go(vRef.current+(looping?d:i-vRef.current));},\"aria-label\":`Slide ${i+1}`,style:{width:dotSize,height:dotSize,borderRadius:\"50%\",border:\"none\",padding:0,cursor:\"pointer\",background:i===activeDot?dotActiveColor:dotColor,transition:\"background 0.2s\"}},i))}):null;return /*#__PURE__*/_jsxs(\"div\",{style:{...style,display:\"flex\",flexDirection:\"column\",position:\"relative\"},children:[/*#__PURE__*/_jsxs(motion.div,{ref:viewportRef,onPanStart:count>1?onPanStart:undefined,onPan:count>1?onPan:undefined,onPanEnd:count>1?onPanEnd:undefined,onClick:count>1?onViewportClick:undefined,style:{position:\"relative\",overflow:\"hidden\",flex:1,minHeight:minHeight,touchAction:\"pan-y\",userSelect:\"none\",cursor:count>1?\"grab\":\"default\"},children:[Array.from({length:N},(_,i)=>/*#__PURE__*/_jsx(Slide,{i:i,x:x,card:cards[i%count],cardW:cardW,step:step,N:N,containerW:width,sideScale:sideScale,looping:looping},i)),showArrows&&count>1&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Arrow,{side:\"left\",onClick:e=>{e.stopPropagation();go(vRef.current-1);},disabled:!looping&&v===0,color:arrowColor,bg:arrowBg}),/*#__PURE__*/_jsx(Arrow,{side:\"right\",onClick:e=>{e.stopPropagation();go(vRef.current+1);},disabled:!looping&&v===count-1,color:arrowColor,bg:arrowBg})]}),dotsPosition===\"overlay\"&&dots]}),dotsPosition===\"below\"&&dots]});}// ---------- окремий слайд ----------\n// Позиція рахується модульно: слайд завжди з'являється у \"вікні\"\n// шириною N*step, відцентрованому на в'юпорті. Коли трек їде вперед,\n// слайд, що виїхав за ліву межу вікна (далеко за екраном), миттєво\n// стає в чергу справа — і навпаки. Трек ніколи не стрибає.\nfunction Slide({i,x,card,cardW,step,N,containerW,sideScale,looping}){const L=N*step;const tx=useTransform(x,latest=>{const rawLeft=i*step+latest;if(!looping||containerW===0)return rawLeft;const W0=containerW/2-cardW/2-L/2// ліва межа вікна\n;return((rawLeft-W0)%L+L)%L+W0;});const scale=useTransform(tx,left=>{if(containerW===0)return 1;const dist=Math.abs(left+cardW/2-containerW/2);const t=Math.min(1,dist/step);return 1-(1-sideScale)*t;});return /*#__PURE__*/_jsx(motion.div,{style:{position:\"absolute\",top:0,left:0,height:\"100%\",width:cardW,x:tx,scale,transformOrigin:\"center center\"},children:/*#__PURE__*/React.isValidElement(card)?/*#__PURE__*/React.cloneElement(card,{style:{width:\"100%\",height:\"100%\",position:\"relative\"}}):card});}function Arrow({side,onClick,disabled,color,bg}){return /*#__PURE__*/_jsx(\"button\",{onClick:onClick,disabled:disabled,\"aria-label\":side===\"left\"?\"Previous\":\"Next\",style:{position:\"absolute\",top:\"50%\",transform:\"translateY(-50%)\",[side]:16,width:44,height:44,borderRadius:\"50%\",border:\"none\",background:bg,color,cursor:disabled?\"default\":\"pointer\",opacity:disabled?.35:1,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",boxShadow:\"0 2px 10px rgba(0,0,0,0.12)\",zIndex:3,transition:\"opacity 0.2s\"},children:/*#__PURE__*/_jsx(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",style:{transform:side===\"left\"?\"rotate(180deg)\":\"none\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M9 6l6 6-6 6\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})});}CardCarousel.defaultProps={mode:\"auto\",bpTablet:1440,bpPhone:810,widthMode:\"percent\",cardWidthPct:78,cardWidthPx:900,minHeight:520,gap:24,sideScale:.92,loop:true,startIndex:0,showArrows:true,arrowColor:\"#1a1a1a\",arrowBg:\"#ffffff\",showDots:true,dotsPosition:\"below\",dotsOffset:24,dotSize:8,dotGap:8,dotColor:\"rgba(0,0,0,0.15)\",dotActiveColor:\"#1a1a1a\",autoplay:false,interval:5};addPropertyControls(CardCarousel,{cardsDesktop:{type:ControlType.Array,title:\"Cards \\xb7 Desktop\",control:{type:ControlType.ComponentInstance}},cardsTablet:{type:ControlType.Array,title:\"Cards \\xb7 Tablet\",control:{type:ControlType.ComponentInstance}},cardsPhone:{type:ControlType.Array,title:\"Cards \\xb7 Phone\",control:{type:ControlType.ComponentInstance}},mode:{type:ControlType.Enum,title:\"Режим\",options:[\"auto\",\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Auto (за шириною)\",\"Desktop\",\"Tablet\",\"Phone\"],defaultValue:\"auto\"},bpTablet:{type:ControlType.Number,title:\"BP Tablet <\",defaultValue:1440,min:320,max:2560,step:1,hidden:p=>p.mode!==\"auto\"},bpPhone:{type:ControlType.Number,title:\"BP Phone <\",defaultValue:810,min:320,max:1440,step:1,hidden:p=>p.mode!==\"auto\"},widthMode:{type:ControlType.Enum,title:\"Card Width\",options:[\"percent\",\"pixels\"],optionTitles:[\"% контейнера\",\"Пікселі\"],defaultValue:\"percent\",displaySegmentedControl:true},cardWidthPct:{type:ControlType.Number,title:\"Width %\",defaultValue:78,min:20,max:100,step:1,hidden:p=>p.widthMode!==\"percent\"},cardWidthPx:{type:ControlType.Number,title:\"Width px\",defaultValue:900,min:100,max:2e3,step:1,hidden:p=>p.widthMode!==\"pixels\"},minHeight:{type:ControlType.Number,title:\"Min Height\",defaultValue:520,min:100,max:1200,step:1},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:24,min:0,max:120,step:1},sideScale:{type:ControlType.Number,title:\"Side Scale\",defaultValue:.92,min:.5,max:1,step:.01},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true},startIndex:{type:ControlType.Number,title:\"Start Index\",defaultValue:0,min:0,step:1,displayStepper:true},showArrows:{type:ControlType.Boolean,title:\"Arrows\",defaultValue:true},arrowColor:{type:ControlType.Color,title:\"Arrow Icon\",defaultValue:\"#1a1a1a\",hidden:p=>!p.showArrows},arrowBg:{type:ControlType.Color,title:\"Arrow BG\",defaultValue:\"#ffffff\",hidden:p=>!p.showArrows},showDots:{type:ControlType.Boolean,title:\"Dots\",defaultValue:true},dotsPosition:{type:ControlType.Enum,title:\"Dots Position\",options:[\"overlay\",\"below\"],optionTitles:[\"На картці\",\"Під карткою\"],defaultValue:\"below\",displaySegmentedControl:true,hidden:p=>!p.showDots},dotsOffset:{type:ControlType.Number,title:\"Dots Offset\",defaultValue:24,min:0,max:200,step:1,hidden:p=>!p.showDots},dotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:8,min:4,max:24,step:1,hidden:p=>!p.showDots},dotGap:{type:ControlType.Number,title:\"Dot Gap\",defaultValue:8,min:2,max:40,step:1,hidden:p=>!p.showDots},dotColor:{type:ControlType.Color,title:\"Dot\",defaultValue:\"rgba(0,0,0,0.15)\",hidden:p=>!p.showDots},dotActiveColor:{type:ControlType.Color,title:\"Dot Active\",defaultValue:\"#1a1a1a\",hidden:p=>!p.showDots},autoplay:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:false},interval:{type:ControlType.Number,title:\"Interval (s)\",defaultValue:5,min:1,max:20,step:.5,hidden:p=>!p.autoplay}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CardCarousel\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1200\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"620\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TCarousel.map"],"mappings":"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"}