{"version":3,"file":"Carousel_Controls.DgdLTacf.mjs","names":["useRef","useState","useMemo"],"sources":["https:/framerusercontent.com/modules/MeTS9xAapaYURsyJ2CxK/qBNY70g5zwINd16QbPy5/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 any\n * @framerSupportedLayoutHeight any\n */export default function CarouselControls(props){const{direction=\"horizontal\",arrowColor=\"#000000\",backgroundColor=\"#F5F5F5\",borderRadius=8,border={borderWidth:0,borderStyle:\"solid\",borderColor:\"#000000\"},size=40,arrowSize=16,spacing=12,layout=\"flex-start\",selectedCarousel=\"\",showLabels=false,previousLabel=\"Previous\",nextLabel=\"Next\",font,useCustomIcons=false,previousIcon=\"\",nextIcon=\"\",enableHover=true,hoverScale=1.05,hoverBackgroundColor,hoverArrowColor,hoverBorderColor,style}=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;const{overflow,overflowX,overflowY}=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);}}};// 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\"]});return()=>observer.disconnect();// eslint-disable-next-line react-hooks/exhaustive-deps\n},[selectedCarousel,direction]);// Scroll listener only when needed\nuseEffect(()=>{const el=carouselRef.current;if(!el||!isScrollContainerRef.current)return;const onScroll=()=>batched(()=>checkScrollState(el));el.addEventListener(\"scroll\",onScroll,{passive:true});// initial\ncheckScrollState(el);return()=>el.removeEventListener(\"scroll\",onScroll);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[carouselRef.current,direction]);const clickOrKey=type=>{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:border.borderWidth>0?`${border.borderWidth}px ${border.borderStyle} ${border.borderColor}`:\"none\",borderRadius,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:enableHover?\"transform .18s cubic-bezier(.4,0,.2,1), opacity .18s, background-color .18s, border-color .18s\":\"opacity .18s\",willChange:enableHover?\"transform\":undefined,userSelect:\"none\",cursor:\"pointer\",transform:\"scale(1)\",transformOrigin:\"center\"}),[size,backgroundColor,borderRadius,border,enableHover]);const disabledStyle={opacity:.4,cursor:\"not-allowed\"};const arrowStyle=useMemo(()=>({width:arrowSize,height:arrowSize,fill:\"none\",stroke:arrowColor,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\",transition:\"stroke .18s\"}),[arrowSize,arrowColor]);const containerStyle=useMemo(()=>({display:\"flex\",alignItems:\"center\",justifyContent:layout,gap:spacing,flexDirection:isHorizontal?\"row\":\"column\",// Let Framer control width/height via style prop\n    // Only set defaults if no style is provided\n    ...style?.width===undefined&&{width:\"100%\"},...style?.height===undefined&&{height:\"100%\"}}),[spacing,isHorizontal,layout,style]);const labelStyle=useMemo(()=>({...font||{},color:arrowColor,margin:0,userSelect:\"none\"}),[font,arrowColor]);const renderArrow=(kind,enabled,isHovered=false)=>{const icon=kind===\"prev\"?previousIcon:nextIcon;const currentArrowColor=isHovered&&hoverArrowColor?hoverArrowColor:arrowColor;const finalArrowColor=enabled?currentArrowColor:\"#FFFFFF\";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,transition:\"opacity .18s\"}});}return /*#__PURE__*/_jsx(\"svg\",{style:{...arrowStyle,stroke:finalArrowColor,transition:\"stroke .18s\"},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\"})});};const[hoveredButton,setHoveredButton]=useState(null);const getButtonStyle=(enabled,buttonType)=>{const isHovered=enableHover&&hoveredButton===buttonType&&enabled;const scale=isHovered?hoverScale:1;const bgColor=isHovered&&hoverBackgroundColor?hoverBackgroundColor:backgroundColor;const borderColor=isHovered&&hoverBorderColor&&border.borderWidth>0?hoverBorderColor:border.borderColor;return{...baseButtonStyle,...enabled?{}:disabledStyle,transform:`scale(${scale})`,backgroundColor:bgColor,border:border.borderWidth>0?`${border.borderWidth}px ${border.borderStyle} ${borderColor}`:\"none\"};};const buttonGroupStyle=useMemo(()=>({display:\"flex\",alignItems:\"center\",gap:8,flexDirection:isHorizontal?\"row\":\"column\",overflow:\"visible\"}),[isHorizontal]);return /*#__PURE__*/_jsxs(\"div\",{style:{...containerStyle,...style,overflow:\"visible\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:buttonGroupStyle,children:[/*#__PURE__*/_jsx(\"button\",{style:getButtonStyle(previousEnabled,\"prev\"),onClick:()=>clickOrKey(\"prev\"),disabled:!previousEnabled,\"aria-label\":\"Previous\",onMouseEnter:()=>enableHover&&setHoveredButton(\"prev\"),onMouseLeave:()=>enableHover&&setHoveredButton(null),children:renderArrow(\"prev\",previousEnabled,hoveredButton===\"prev\")}),showLabels&&/*#__PURE__*/_jsx(\"span\",{style:labelStyle,children:previousLabel})]}),/*#__PURE__*/_jsxs(\"div\",{style:buttonGroupStyle,children:[/*#__PURE__*/_jsx(\"button\",{style:getButtonStyle(nextEnabled,\"next\"),onClick:()=>clickOrKey(\"next\"),disabled:!nextEnabled,\"aria-label\":\"Next\",onMouseEnter:()=>enableHover&&setHoveredButton(\"next\"),onMouseLeave:()=>enableHover&&setHoveredButton(null),children:renderArrow(\"next\",nextEnabled,hoveredButton===\"next\")}),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\"},arrowSize:{type:ControlType.Number,title:\"Arrow Size\",defaultValue:16,min:8,max:40,step:1,unit:\"px\",hidden:({useCustomIcons})=>useCustomIcons},spacing:{type:ControlType.Number,title:\"Spacing\",defaultValue:12,min:0,max:40,step:2,unit:\"px\"},layout:{type:ControlType.Enum,title:\"Layout\",options:[\"flex-start\",\"center\",\"flex-end\",\"space-between\",\"space-around\",\"space-evenly\"],optionTitles:[\"Start\",\"Center\",\"End\",\"Space Between\",\"Space Around\",\"Space Evenly\"],defaultValue:\"flex-start\"},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\"},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:0,borderStyle:\"solid\",borderColor:\"rgba(0, 0, 0, 0.5)\"}},enableHover:{type:ControlType.Boolean,title:\"Hover Effects\",defaultValue:true,enabledTitle:\"Enabled\",disabledTitle:\"Disabled\"},hoverScale:{type:ControlType.Number,title:\"Hover Scale\",defaultValue:1.05,min:1,max:1.5,step:.01,displayStepper:true,hidden:({enableHover})=>!enableHover},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background\",defaultValue:\"\",hidden:({enableHover})=>!enableHover},hoverArrowColor:{type:ControlType.Color,title:\"Hover Arrow Color\",defaultValue:\"\",hidden:({enableHover,useCustomIcons})=>!enableHover||useCustomIcons},hoverBorderColor:{type:ControlType.Color,title:\"Hover Border Color\",defaultValue:\"\",hidden:({enableHover,border})=>!enableHover||border.borderWidth===0},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\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Carousel_Controls.map"],"mappings":"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"}