{"version":3,"file":"CardSlider.CrWPgIFA.mjs","names":["useRef","useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/Pky10VN9luTJ1aC10fKr/Ty3upwC0UgdUnXi6Mb8r/CardSlider.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{cloneElement,useRef,useState,useEffect}from\"react\";export default function CardSlider({cards,arrowColor,paddingTop,paddingBottom,paddingLeft,paddingRight,leftArrow,rightArrow}){const containerRef=useRef(null);const trackRef=useRef(null);const arrowRef=useRef(null);const[visible,setVisible]=useState(false);const[direction,setDirection]=useState(\"right\");const mousePos=useRef({x:0,y:0});// Drag state\nconst isDragging=useRef(false);const startX=useRef(0);const scrollStart=useRef(0);const hasMoved=useRef(false);const DRAG_THRESHOLD=6;// 🔒 Detect links / buttons\nconst isInteractiveElement=el=>{if(!el)return false;return!!el.closest(\"a, button, input, textarea, select\");};// Arrow follow animation\nuseEffect(()=>{let raf;const animate=()=>{if(arrowRef.current){arrowRef.current.style.left=mousePos.current.x+\"px\";arrowRef.current.style.top=mousePos.current.y+\"px\";}raf=requestAnimationFrame(animate);};animate();return()=>cancelAnimationFrame(raf);},[]);const handleMove=e=>{const container=containerRef.current;if(!container)return;const rect=container.getBoundingClientRect();const x=e.clientX-rect.left;const y=e.clientY-rect.top;mousePos.current={x,y};setDirection(x<rect.width/2?\"left\":\"right\");if(isDragging.current&&trackRef.current){const dx=e.clientX-startX.current;if(Math.abs(dx)>DRAG_THRESHOLD)hasMoved.current=true;trackRef.current.scrollLeft=scrollStart.current-dx;}};const handleMouseDown=e=>{if(!trackRef.current)return;isDragging.current=true;hasMoved.current=false;startX.current=e.clientX;scrollStart.current=trackRef.current.scrollLeft;};const handleMouseUp=()=>{isDragging.current=false;};const handleClick=e=>{// ❌ drag hua\nif(hasMoved.current)return;// ❌ link / button pe click\nif(isInteractiveElement(e.target))return;const track=trackRef.current;if(!track)return;const card=track.children[0];if(!card)return;const cardWidth=card.offsetWidth+20// gap included\n;track.scrollBy({left:direction===\"left\"?-cardWidth:cardWidth,behavior:\"smooth\"});};return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .hide-scrollbar::-webkit-scrollbar { display: none; }\n            `}),/*#__PURE__*/_jsxs(\"div\",{ref:containerRef,onMouseEnter:()=>setVisible(true),onMouseLeave:()=>setVisible(false),onMouseMove:handleMove,onMouseDown:handleMouseDown,onMouseUp:handleMouseUp,onClickCapture:handleClick,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",// 🔥 stacking safety\nzIndex:0,isolation:\"isolate\",cursor:isDragging.current?\"grabbing\":\"none\",userSelect:\"none\"},children:[/*#__PURE__*/_jsx(\"div\",{ref:trackRef,className:\"hide-scrollbar\",style:{display:\"flex\",alignItems:\"center\",gap:15,paddingTop,paddingBottom,paddingLeft,paddingRight,overflowX:\"auto\",scrollBehavior:\"smooth\",scrollbarWidth:\"none\",msOverflowStyle:\"none\"},children:cards?.map((card,i)=>/*#__PURE__*/_jsx(\"div\",{style:{flex:\"0 0 auto\"},children:/*#__PURE__*/cloneElement(card)},i))}),/*#__PURE__*/_jsx(\"div\",{ref:arrowRef,style:{position:\"absolute\",zIndex:9999,pointerEvents:\"none\",width:64,height:64,borderRadius:\"50%\",background:arrowColor,color:\"#fff\",fontSize:28,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transform:\"translate(-50%, -50%)\",opacity:visible?1:0,transition:\"opacity 0.25s ease\"},children:direction===\"left\"?leftArrow:rightArrow})]})]});}addPropertyControls(CardSlider,{cards:{title:\"Cards\",type:ControlType.Array,control:{type:ControlType.ComponentInstance}},arrowColor:{title:\"Arrow Color\",type:ControlType.Color,defaultValue:\"#A05AFF\"},leftArrow:{title:\"Left Arrow\",type:ControlType.String,defaultValue:\"←\"},rightArrow:{title:\"Right Arrow\",type:ControlType.String,defaultValue:\"→\"},paddingTop:{type:ControlType.Number,defaultValue:10},paddingBottom:{type:ControlType.Number,defaultValue:10},paddingLeft:{type:ControlType.Number,defaultValue:10},paddingRight:{type:ControlType.Number,defaultValue:10}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CardSlider\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CardSlider.map"],"mappings":"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"}