{"version":3,"file":"CarouselNavigation.Cga3xc2x.mjs","names":["useState","useCallback","useMemo"],"sources":["https:/framerusercontent.com/modules/wBBxStYSek6YX0bVCq7W/YAS0nFQrSeDg2K1VxoX4/CarouselNavigation.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{startTransition,useCallback,useEffect,useMemo,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function CarouselNavigation(props){const{targetElementId,step,buttonSize,iconSize,gap,backBackground,forwardBackground,backIconColor,forwardIconColor,ariaLabelBack,ariaLabelForward}=props;const[isBackDisabled,setIsBackDisabled]=useState(true);const updateBackDisabledState=useCallback(()=>{if(typeof window===\"undefined\")return;const target=document.getElementById(targetElementId);if(!target){startTransition(()=>setIsBackDisabled(true));return;}const atStart=target.scrollLeft<=1;startTransition(()=>setIsBackDisabled(atStart));},[targetElementId]);const containerStyle=useMemo(()=>({position:\"relative\",display:\"inline-flex\",alignItems:\"center\",gap:`${gap}px`,width:\"max-content\"}),[gap]);const baseButtonStyle=useMemo(()=>({width:`${buttonSize}px`,height:`${buttonSize}px`,borderRadius:\"999px\",border:\"none\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",padding:0,outline:\"none\",transition:\"transform 0.2s ease, opacity 0.2s ease\",WebkitTapHighlightColor:\"transparent\"}),[buttonSize]);const scrollByStep=useCallback(direction=>{if(typeof window===\"undefined\")return;const target=document.getElementById(targetElementId);if(!target)return;target.scrollBy({left:direction*step,behavior:\"smooth\"});window.setTimeout(()=>{updateBackDisabledState();},240);},[step,targetElementId,updateBackDisabledState]);useEffect(()=>{if(typeof window===\"undefined\")return;let cleanup;let rafId=0;let attempts=0;const maxAttempts=60;const bindToTarget=()=>{const target=document.getElementById(targetElementId);if(!target){attempts+=1;if(attempts<maxAttempts){rafId=window.requestAnimationFrame(bindToTarget);}else{updateBackDisabledState();}return;}updateBackDisabledState();target.addEventListener(\"scroll\",updateBackDisabledState,{passive:true});window.addEventListener(\"resize\",updateBackDisabledState);cleanup=()=>{target.removeEventListener(\"scroll\",updateBackDisabledState);window.removeEventListener(\"resize\",updateBackDisabledState);};};bindToTarget();return()=>{window.cancelAnimationFrame(rafId);cleanup?.();};},[targetElementId,updateBackDisabledState]);const chevronCommonStyle=useMemo(()=>({width:`${iconSize}px`,height:`${iconSize}px`,display:\"block\",flexShrink:0}),[iconSize]);return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":ariaLabelBack,\"aria-disabled\":isBackDisabled,disabled:isBackDisabled,onClick:()=>{if(isBackDisabled)return;scrollByStep(-1);},style:{...baseButtonStyle,background:backBackground,opacity:isBackDisabled?.55:1,cursor:isBackDisabled?\"not-allowed\":\"pointer\"},children:/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",style:chevronCommonStyle,\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M14.5 5.5L8 12L14.5 18.5\",stroke:backIconColor,strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":ariaLabelForward,onClick:()=>scrollByStep(1),style:{...baseButtonStyle,background:forwardBackground},children:/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",style:chevronCommonStyle,\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M9.5 5.5L16 12L9.5 18.5\",stroke:forwardIconColor,strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})})]});}addPropertyControls(CarouselNavigation,{targetElementId:{type:ControlType.String,title:\"Target ID\",defaultValue:\"testimonial-carousel\",placeholder:\"carousel-element-id\"},step:{type:ControlType.Number,title:\"Step\",defaultValue:320,min:80,max:1200,unit:\"px\",step:10},buttonSize:{type:ControlType.Number,title:\"Btn Size\",defaultValue:36,min:24,max:80,unit:\"px\",step:1},iconSize:{type:ControlType.Number,title:\"Icon Size\",defaultValue:18,min:10,max:40,unit:\"px\",step:1},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:10,min:0,max:40,unit:\"px\",step:1},backBackground:{type:ControlType.Color,title:\"Back BG\",defaultValue:\"#F5F5F5\"},forwardBackground:{type:ControlType.Color,title:\"Next BG\",defaultValue:\"#000000\"},backIconColor:{type:ControlType.Color,title:\"Back Icon\",defaultValue:\"#000000\"},forwardIconColor:{type:ControlType.Color,title:\"Next Icon\",defaultValue:\"#FFFFFF\"},ariaLabelBack:{type:ControlType.String,title:\"Back Aria\",defaultValue:\"Scroll testimonials backward\"},ariaLabelForward:{type:ControlType.String,title:\"Next Aria\",defaultValue:\"Scroll testimonials forward\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CarouselNavigation\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CarouselNavigation.map"],"mappings":"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"}