{"version":3,"file":"CardSlider.CJyS7U-R.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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"}