{"version":3,"file":"Carousel_Controls.D_WZiJUD.mjs","names":["useRef","useState","useMemo"],"sources":["https:/framerusercontent.com/modules/1IxO3dYW8Cn1YANUnqPv/eVerxjMP4cRxE7zL4qST/Carousel_Controls.js"],"sourcesContent":["// Arrow controls for carousels and scroll containers\n// Optimized for Framer code components: fewer DOM queries, stable callbacks,\n// passive event listeners, rAF-batched state updates, and smaller bundle surface.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useLayoutEffect,useMemo,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function CarouselControls(props){const{direction=\"horizontal\",arrowColor=\"#000000\",backgroundColor=\"#F5F5F5\",borderRadius=8,size=40,spacing=12,selectedCarousel=\"\",showLabels=false,previousLabel=\"Previous\",nextLabel=\"Next\",font,useCustomIcons=false,previousIcon=\"\",nextIcon=\"\"}=props;const carouselRef=useRef(null);const isScrollContainerRef=useRef(false);const[canGoPrevious,setCanGoPrevious]=useState(false);const[canGoNext,setCanGoNext]=useState(true);// Utility: cheap check if element is scrollable (style + dimensions)\nconst isElementScrollable=el=>{if(!el)return false;// Computed style so overflow set by classes (not only inline styles) is detected\nconst{overflow,overflowX,overflowY}=typeof window!==\"undefined\"?window.getComputedStyle(el):el.style;const mayScroll=v=>v===\"scroll\"||v===\"auto\";if(!(mayScroll(overflow)||mayScroll(overflowX)||mayScroll(overflowY)))return false;return el.scrollWidth>el.clientWidth||el.scrollHeight>el.clientHeight;};const isHorizontal=direction===\"horizontal\";// rAF batcher to avoid layout thrash when scroll/observer fires rapidly\nconst schedule=useRef(null);const batched=fn=>{if(schedule.current!=null)return;schedule.current=requestAnimationFrame(()=>{schedule.current=null;fn();});};const checkScrollState=container=>{if(!container){setCanGoPrevious(false);setCanGoNext(false);return;}if(isHorizontal){const left=container.scrollLeft;const max=container.scrollWidth-container.clientWidth;setCanGoPrevious(left>1);setCanGoNext(left<max-1);}else{const top=container.scrollTop;const max=container.scrollHeight-container.clientHeight;setCanGoPrevious(top>1);setCanGoNext(top<max-1);}};const queryOnce=()=>{if(typeof window===\"undefined\")return null;const name=selectedCarousel?.trim();if(!name)return null;// Prioritize exact data-framer-name match\nconst named=document.querySelector(`[data-framer-name=\"${CSS.escape(name)}\"]`);if(named)return named;// Fallbacks: class contains, role/aria-label contains\nconst byClass=Array.from(document.querySelectorAll('[class*=\"carousel\" i]')).find(el=>el.className.toLowerCase().includes(name.toLowerCase()));if(byClass)return byClass;const byLabel=Array.from(document.querySelectorAll('[role*=\"carousel\" i], [aria-label*=\"carousel\" i]')).find(el=>(el.getAttribute(\"aria-label\")||el.getAttribute(\"role\")||\"\").toLowerCase().includes(name.toLowerCase()));return byLabel||null;};const updateForCarousel=el=>{carouselRef.current=el;const isScroll=isElementScrollable(el);isScrollContainerRef.current=isScroll;if(!el){setCanGoPrevious(false);setCanGoNext(false);return;}if(isScroll){checkScrollState(el);return;}// Non-scroll carousels: infer state from buttons, indicators, or active slide\nconst q=s=>el.querySelector(s);const qa=s=>el.querySelectorAll(s);const prevBtn=q('[aria-label*=\"previous\" i], .carousel-prev, .prev');const nextBtn=q('[aria-label*=\"next\" i], .carousel-next, .next');if(prevBtn)setCanGoPrevious(!prevBtn.disabled&&!prevBtn.hasAttribute(\"aria-disabled\"));if(nextBtn)setCanGoNext(!nextBtn.disabled&&!nextBtn.hasAttribute(\"aria-disabled\"));const indicators=qa('[role=\"tab\"], .carousel-indicator, .slide-indicator');if(indicators.length){const active=el.querySelector('[role=\"tab\"][aria-selected=\"true\"], .carousel-indicator.active, .slide-indicator.active');if(active){const list=Array.from(indicators);const i=list.indexOf(active);setCanGoPrevious(i>0);setCanGoNext(i<list.length-1);return;}}const slideContainer=q('.carousel-inner, .slides-container, [data-framer-name*=\"slide\" i]');if(slideContainer){const slides=Array.from(slideContainer.children);const active=slideContainer.querySelector('.active, .current, [aria-current=\"true\"]');if(active){const i=slides.indexOf(active);setCanGoPrevious(i>0);setCanGoNext(i<slides.length-1);}}};// Initial mount: pessimistic defaults\nuseEffect(()=>{setCanGoPrevious(false);setCanGoNext(true);},[]);// Observe DOM mutations around the selected carousel with minimal cost\nuseLayoutEffect(()=>{const el=queryOnce();updateForCarousel(el);if(!el)return;const observer=new MutationObserver(()=>{batched(()=>updateForCarousel(el));});observer.observe(el,{subtree:true,childList:true,attributes:true,attributeFilter:[\"class\",\"data-framer-name\",\"role\",\"aria-label\",\"aria-selected\",\"aria-current\",\"disabled\",\"aria-disabled\"]});// Re-check when the carousel changes size, e.g. when a hidden tab becomes visible\nconst resizeObserver=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(()=>batched(()=>updateForCarousel(el))):null;resizeObserver?.observe(el);return()=>{observer.disconnect();resizeObserver?.disconnect();};// eslint-disable-next-line react-hooks/exhaustive-deps\n},[selectedCarousel,direction]);// Scroll listener only when needed\nuseEffect(()=>{const el=carouselRef.current;if(!el)return;// Attach even if the carousel isn't scrollable yet; it can become scrollable later\nconst onScroll=()=>batched(()=>{if(isScrollContainerRef.current)checkScrollState(el);});el.addEventListener(\"scroll\",onScroll,{passive:true});// initial\nif(isScrollContainerRef.current)checkScrollState(el);return()=>el.removeEventListener(\"scroll\",onScroll);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[carouselRef.current,direction]);const clickOrKey=type=>{if(!carouselRef.current||!isScrollContainerRef.current){updateForCarousel(queryOnce());}const el=carouselRef.current;if(!el)return;if(isScrollContainerRef.current){const delta=(isHorizontal?el.clientWidth:el.clientHeight)*.8*(type===\"prev\"?-1:1);if(isHorizontal)el.scrollBy({left:delta,behavior:\"smooth\"});else el.scrollBy({top:delta,behavior:\"smooth\"});return;}const target=el.querySelector(type===\"prev\"?'[aria-label*=\"previous\" i], .carousel-prev, .prev':'[aria-label*=\"next\" i], .carousel-next, .next');if(target){target.click();// post-click state sync\nsetTimeout(()=>updateForCarousel(el),80);return;}const focusable=el.querySelector('[tabindex], button, [role=\"button\"]');if(focusable){focusable.focus();const key=isHorizontal?type===\"prev\"?\"ArrowLeft\":\"ArrowRight\":type===\"prev\"?\"ArrowUp\":\"ArrowDown\";const ev=new KeyboardEvent(\"keydown\",{key,bubbles:true});focusable.dispatchEvent(ev);setTimeout(()=>updateForCarousel(el),80);}};const previousEnabled=!!carouselRef.current&&canGoPrevious;const nextEnabled=!!carouselRef.current&&canGoNext;const baseButtonStyle=useMemo(()=>({width:size,height:size,backgroundColor,border:\"none\",borderRadius,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",transition:\"background-color .18s cubic-bezier(.4,0,.2,1), opacity .18s\",userSelect:\"none\"}),[size,backgroundColor,borderRadius]);const disabledStyle=useMemo(()=>({opacity:.4,cursor:\"not-allowed\"}),[]);const arrowStyle=useMemo(()=>({width:size*.4,height:size*.4,fill:\"none\",stroke:arrowColor,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",transition:\"stroke .18s\"}),[size,arrowColor]);const containerStyle=useMemo(()=>({display:\"flex\",alignItems:\"center\",gap:spacing,flexDirection:isHorizontal?\"row\":\"column\",width:\"100%\",height:\"100%\"}),[spacing,isHorizontal]);const labelStyle=useMemo(()=>({...font||{},color:arrowColor,margin:0,userSelect:\"none\"}),[font,arrowColor]);const renderArrow=(kind,enabled)=>{const icon=kind===\"prev\"?previousIcon:nextIcon;if(useCustomIcons&&icon){return /*#__PURE__*/_jsx(\"img\",{src:icon,alt:kind===\"prev\"?\"previous\":\"next\",style:{width:size*.5,height:size*.5,objectFit:\"contain\",opacity:enabled?1:.4}});}return /*#__PURE__*/_jsx(\"svg\",{style:{...arrowStyle,stroke:enabled?arrowColor:\"#999999\"},viewBox:\"0 0 24 24\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"path\",{d:kind===\"prev\"?\"M15 18l-6-6 6-6\":\"M9 18l6-6-6-6\"})});};return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:8,flexDirection:isHorizontal?\"row\":\"column\"},children:[/*#__PURE__*/_jsx(\"button\",{style:{...baseButtonStyle,...previousEnabled?{}:disabledStyle},onClick:()=>clickOrKey(\"prev\"),disabled:!previousEnabled,\"aria-label\":\"Previous\",onMouseEnter:e=>{if(previousEnabled)e.currentTarget.style.backgroundColor=\"#E0E2E5\";},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=backgroundColor;},children:renderArrow(\"prev\",previousEnabled)}),showLabels&&/*#__PURE__*/_jsx(\"span\",{style:labelStyle,children:previousLabel})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:8,flexDirection:isHorizontal?\"row\":\"column\"},children:[/*#__PURE__*/_jsx(\"button\",{style:{...baseButtonStyle,...nextEnabled?{}:disabledStyle},onClick:()=>clickOrKey(\"next\"),disabled:!nextEnabled,\"aria-label\":\"Next\",onMouseEnter:e=>{if(nextEnabled)e.currentTarget.style.backgroundColor=\"#E0E2E5\";},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=backgroundColor;},children:renderArrow(\"next\",nextEnabled)}),showLabels&&/*#__PURE__*/_jsx(\"span\",{style:labelStyle,children:nextLabel})]})]});}addPropertyControls(CarouselControls,{selectedCarousel:{type:ControlType.String,title:\"Select Carousel\",defaultValue:\"\",placeholder:\"Enter carousel name...\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"vertical\"],optionTitles:[\"↔\",\"↕\"],defaultValue:\"horizontal\",displaySegmentedControl:true},size:{type:ControlType.Number,title:\"Button Size\",defaultValue:40,min:24,max:80,step:4,unit:\"px\"},spacing:{type:ControlType.Number,title:\"Spacing\",defaultValue:12,min:0,max:40,step:2,unit:\"px\"},useCustomIcons:{type:ControlType.Boolean,title:\"Custom Icons\",defaultValue:false,enabledTitle:\"Custom\",disabledTitle:\"Default\"},previousIcon:{type:ControlType.File,title:\"Previous Icon\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"gif\",\"webp\",\"svg\"],hidden:({useCustomIcons})=>!useCustomIcons},nextIcon:{type:ControlType.File,title:\"Next Icon\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"gif\",\"webp\",\"svg\"],hidden:({useCustomIcons})=>!useCustomIcons},arrowColor:{type:ControlType.Color,title:\"Arrow Color\",defaultValue:\"#000000\",hidden:({useCustomIcons})=>useCustomIcons},backgroundColor:{type:ControlType.Color,title:\"Background Color\",defaultValue:\"#F5F5F5\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:8,min:0,step:1,unit:\"px\"},showLabels:{type:ControlType.Boolean,title:\"Show Labels\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"},previousLabel:{type:ControlType.String,title:\"Previous Label\",defaultValue:\"Previous\",hidden:({showLabels})=>!showLabels},nextLabel:{type:ControlType.String,title:\"Next Label\",defaultValue:\"Next\",hidden:({showLabels})=>!showLabels},font:{type:ControlType.Font,title:\"Label Font\",defaultValue:{fontSize:\"14px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"},controls:\"extended\",defaultFontType:\"sans-serif\",hidden:({showLabels})=>!showLabels}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CarouselControls\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Carousel_Controls.map"],"mappings":"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"}