{"version":3,"file":"EmblaNavigationButton.CP_x7q26.mjs","names":["useState","useCallback"],"sources":["https:/framerusercontent.com/modules/Puo3ZO7bCrj0OpyNBdCB/5OdSo1MgVCXB9wV73Ji1/EmblaNavigationButton.js"],"sourcesContent":["// Get Started: https://www.framer.com/developers\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{isValidElement,useState,useCallback,useEffect,cloneElement}from\"react\";import{useEmblaStore}from\"https://framer.com/m/emblaStore-y8Nj.js@4f4w4z5R8hLcqBAYxioy\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicHeight 200\n * @framerIntrinsicWidth 200\n */export default function EmblaNavigationButton(props){const{carouselID,action,componentSlot,inactiveOpacity}=props;const[isDisabled,setIsDisabled]=useState(false);const isCanvas=RenderTarget.current()==RenderTarget.canvas;const component=componentSlot?.[0];const emblaApi=useEmblaStore(state=>state.emblaInstances.get(carouselID));const handleClick=useCallback(event=>{if(emblaApi){if(action==\"Next\"){emblaApi.scrollNext();}else{emblaApi.scrollPrev();}}else{console.warn(`Embla instance with ID \"${carouselID}\" not found.`);}},[emblaApi,action]);const onButtonAutoplayClick=useCallback(callback=>{const autoScroll=emblaApi?.plugins()?.autoScroll;const autoPlay=emblaApi?.plugins()?.autoplay;const autoMove=autoPlay||autoScroll;if(autoMove){const resetOrStop=autoMove.options.stopOnInteraction===false?autoMove.reset:autoMove.stop;resetOrStop();}callback();},[emblaApi]);const onSelect=useCallback(emblaApi=>{if(isCanvas)return;if(action==\"Next\"){setIsDisabled(!emblaApi.canScrollNext());}else{setIsDisabled(!emblaApi.canScrollPrev());}},[action,emblaApi]);useEffect(()=>{if(!emblaApi)return;onSelect(emblaApi);emblaApi.on(\"reInit\",onSelect).on(\"select\",onSelect);},[emblaApi,onSelect]);const styleObj={background:component?\"transparent\":\"lavender\",padding:component?0:\"8px 16px\",color:component?undefined:\"RebeccaPurple\",border:component?\"none\":\"1px solid RebeccaPurple\",opacity:isDisabled?inactiveOpacity:undefined,pointerEvents:isDisabled?\"none\":\"all\",userSelect:\"none\",cursor:isDisabled?\"not-allowed\":\"pointer\",width:\"100%\",height:\"100%\"};return /*#__PURE__*/_jsx(DivButton,{style:styleObj,onActivate:e=>{onButtonAutoplayClick(handleClick);},children:component?/*#__PURE__*/cloneElement(component,{...component.props,tabIndex:-1,style:{...component.props.style,maxWidth:\"100%\",maxHeight:\"100%\"}}):action});}const DivButton=({onActivate,onClick,children,...rest})=>/*#__PURE__*/_jsx(\"button\",{onClick:e=>{onClick?.(e);onActivate?.(e);},type:\"button\",...rest,children:children});function sanitizeInteractiveElement(element){if(!/*#__PURE__*/isValidElement(element))return element;const{type,props}=element;console.log(type,props,/*#__PURE__*/isValidElement(element));const isInteractive=type===\"a\"||type===\"button\"||typeof props.onClick===\"function\"||props.role===\"button\"||props.tabIndex===0;if(isInteractive){// Replace interactive element with span\nreturn /*#__PURE__*/_jsx(\"span\",{style:props.style,className:props.className,children:props.children});}// Recurse into children (in case of nested <a>/<button>)\nreturn /*#__PURE__*/cloneElement(element,{...props,children:sanitizeInteractiveElement(props.children)});}addPropertyControls(EmblaNavigationButton,{carouselID:{title:\"ID\",defaultValue:\"kniff-swiper-1\",type:ControlType.String,description:\"Use the same ID as the Swiper instance you want to control\"},action:{type:ControlType.Enum,options:[\"Prev\",\"Next\"],defaultValue:\"Next\"},componentSlot:{title:\"Connect\",type:ControlType.Slot,maxCount:1},inactiveOpacity:{type:ControlType.Number,defaultValue:.5,min:0,max:1,step:.01}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"EmblaNavigationButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"200\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./EmblaNavigationButton.map"],"mappings":"0QAMG,SAAwB,EAAsB,EAAM,CAAC,GAAK,CAAC,aAAW,SAAO,gBAAc,mBAAiB,EAAW,CAAC,EAAW,GAAeA,EAAS,EAAK,EAAQ,EAAS,EAAa,QAAQ,GAAG,EAAa,OAAa,EAAU,IAAgB,GAAS,EAAS,EAAc,GAAO,EAAM,eAAe,IAAI,CAAU,CAAC,EAAQ,EAAYC,EAAY,GAAO,CAAI,EAAa,GAAQ,OAAQ,EAAS,WAAW,EAAQ,EAAS,WAAW,EAAS,QAAQ,KAAK,2BAA2B,EAAW,aAAa,CAAG,EAAE,CAAC,EAAS,CAAM,CAAC,EAAQ,EAAsBA,EAAY,GAAU,CAAC,IAAM,EAAW,GAAU,QAAQ,CAAC,EAAE,WAA8D,EAApC,GAAU,QAAQ,CAAC,EAAE,UAAkC,EAAc,IAA4B,EAAS,QAAQ,oBAAoB,GAAM,EAAS,MAAM,EAAS,KAAA,CAAiB,EAAG,EAAS,CAAE,EAAE,CAAC,CAAQ,CAAC,EAAQ,EAASA,EAAY,GAAU,CAAI,GAAmC,EAAhB,GAAQ,OAAsB,CAAC,EAAS,cAAc,EAAuB,CAAC,EAAS,cAAc,CAAC,CAAG,EAAE,CAAC,EAAO,CAAQ,CAAC,EAAwe,OAAte,MAAc,CAAK,IAAgB,EAAS,CAAQ,EAAE,EAAS,GAAG,SAAS,CAAQ,CAAC,CAAC,GAAG,SAAS,CAAQ,EAAE,EAAE,CAAC,EAAS,CAAQ,CAAC,EAA0X,EAAK,EAAU,CAAC,MAAM,CAA9X,WAAW,EAAU,cAAc,WAAW,QAAQ,EAAU,EAAE,WAAW,MAAM,EAAU,IAAA,GAAU,gBAAgB,OAAO,EAAU,OAAO,0BAA0B,QAAQ,EAAW,EAAgB,IAAA,GAAU,cAAc,EAAW,OAAO,MAAM,WAAW,OAAO,OAAO,EAAW,cAAc,UAAU,MAAM,OAAO,OAAO,MAAyD,EAAE,WAAW,GAAG,CAAC,EAAsB,CAAW,CAAE,EAAE,SAAS,EAAuB,EAAa,EAAU,CAAC,GAAG,EAAU,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAU,MAAM,MAAM,SAAS,OAAO,UAAU,MAAM,CAAC,CAAC,EAAE,CAAM,CAAC,CAAE,mBALzuD,IAAiE,IAA8E,IAAwF,EAKygD,GAAW,CAAC,aAAW,UAAQ,WAAS,GAAG,KAAqB,EAAK,SAAS,CAAC,QAAQ,GAAG,CAAC,IAAU,CAAC,EAAE,IAAa,CAAC,CAAE,EAAE,KAAK,SAAS,GAAG,EAAc,UAAQ,CAAC,EAEl1D,EAAoB,EAAsB,CAAC,WAAW,CAAC,MAAM,KAAK,aAAa,iBAAiB,KAAK,EAAY,OAAO,YAAY,4DAA4D,EAAE,OAAO,CAAC,KAAK,EAAY,KAAK,QAAQ,CAAC,OAAO,MAAM,EAAE,aAAa,MAAM,EAAE,cAAc,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,SAAS,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC"}