{"version":3,"file":"Carousel_Controls.D3mInQfC.mjs","names":["useState","progress","useRef","Children","useCallback","_jsx","dotStyle","useRef","useState","q","useMemo"],"sources":["https:/ga.jspm.io/npm:@motionone/utils@10.12.0/dist/index.es.js","https:/framerusercontent.com/modules/UIrMjSS6ZX89L0CsT8k6/w90zR0qzeh1mgaDSvD54/Carousel.js","https:/framerusercontent.com/modules/hGPQJT05JOnYq6dP3T7W/qQkUY4zT4XJAO27qnrud/Carousel_Controls.js"],"sourcesContent":["function addUniqueItem(t,e){-1===t.indexOf(e)&&t.push(e)}function removeItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const t={duration:.3,delay:0,endDelay:0,repeat:0,easing:\"ease\"};const isNumber=t=>\"number\"===typeof t;const isString=t=>\"string\"===typeof t;const isEasingGenerator=t=>\"object\"===typeof t&&Boolean(t.createAnimation);const isCubicBezier=t=>Array.isArray(t)&&isNumber(t[0]);const isEasingList=t=>Array.isArray(t)&&!isNumber(t[0]);const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};function getEasingForSegment(t,e){return isEasingList(t)?t[wrap(0,t.length,e)]:t}const mix=(t,e,n)=>-n*t+n*e+t;const noop=()=>{};const noopReturn=t=>t;const progress=(t,e,n)=>e-t===0?1:(n-t)/(e-t);function fillOffset(t,e){const n=t[t.length-1];for(let o=1;o<=e;o++){const s=progress(0,e,o);t.push(mix(n,1,s))}}function defaultOffset(t){const e=[0];fillOffset(e,t-1);return e}function interpolate(t,e=defaultOffset(t.length),n=noopReturn){const o=t.length;const s=o-e.length;s>0&&fillOffset(e,s);return s=>{let r=0;for(;r<o-2;r++)if(s<e[r+1])break;let f=clamp(0,1,progress(e[r],e[r+1],s));const c=getEasingForSegment(n,r);f=c(f);return mix(t[r],t[r+1],f)}}const e={ms:t=>1e3*t,s:t=>t/1e3};\n/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/function velocityPerSecond(t,e){return e?t*(1e3/e):0}export{addUniqueItem,clamp,defaultOffset,t as defaults,fillOffset,getEasingForSegment,interpolate,isCubicBezier,isEasingGenerator,isEasingList,isNumber,isString,mix,noop,noopReturn,progress,removeItem,e as time,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.es.js.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{Children,useCallback,useLayoutEffect,useEffect,useState,useRef,cloneElement}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{scroll,resize}from\"@motionone/dom\";import{clamp,progress}from\"@motionone/utils\";import{animate,motion,useMotionValue,useTransform,useReducedMotion}from\"framer-motion\";import{usePadding,paddingControl}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";/**\n * Calculate the width of the fade mask. Fade width and inset are provided\n * as percentages. There's a fade on the left and the right, so we return\n * a maximum of 50%.\n */ function calcMaskWidth([inset,width]){return inset+(100-inset)*(width/100)*.5;}/**\n * Use media queries to determine if this device uses a mouse as\n * the primary input.\n */ function useIsMouse(){const[isMouseDevice,setIsMouseDevice]=useState(false);useLayoutEffect(()=>{setIsMouseDevice(window.matchMedia(\"(pointer:fine)\").matches);},[]);return isMouseDevice;}/**\n * This checks a scroll position against the available scrollable\n * range. If we have hit an edge, start/end, we fade out the pagination\n * controls and mask. Likewise if we've just moved away from an edge we\n * fade them back in.\n */ function checkLimit(progress,target,{edgeOpacity,moreItems,buttonRef},transition){if(moreItems.current&&progress===target){moreItems.current=false;animate(edgeOpacity,1,transition);buttonRef.current.setAttribute(\"disabled\",\"\");}else if(!moreItems.current&&progress!==target){moreItems.current=true;animate(edgeOpacity,0,transition);buttonRef.current.removeAttribute(\"disabled\");}}function useGUI(initialMoreItems,initialAlpha){const moreItems=useRef(initialMoreItems);const edgeOpacity=useMotionValue(moreItems.current?0:1);const fadeOpacity=useTransform(edgeOpacity,[0,1],[initialAlpha||0,1]);const buttonOpacity=useTransform(edgeOpacity,v=>1-v);const buttonRef=useRef(null);/**\n     * Returns a pointer-events CSS value for a given opacity.\n     * The threshold here is arbitrary, the theory being we\n     * should only enable pointer-events when the button is\n     * somewhat visible.\n     */ const pointerEvents=useTransform(buttonOpacity,v=>v>.2?\"auto\":\"none\");/**\n     * Returns a cursor CSS value for a given pointer-events value.\n     * So only indicate\n     */ const cursor=useTransform(pointerEvents,v=>v===\"auto\"?\"pointer\":\"default\");const buttonStyle={...baseButtonStyles,opacity:buttonOpacity,pointerEvents,cursor};return{moreItems,fadeOpacity,edgeOpacity,buttonStyle,buttonRef};}function setAriaVisible({element}){element.setAttribute(\"aria-hidden\",false);}function useScrollLimits(container,axis,scrollInfo,updateCurrentScroll,targetScroll,checkLimits,measureItems){useEffect(()=>{if(!container.current)return;const updateScrollInfo=info=>{scrollInfo.current=info[axis];/**\n             * If we've reached our target scroll, delete it.\n             * This way we know when to make calculations based on the\n             * actual current scroll or the target scroll.\n             */ if(info[axis].current===targetScroll.current){targetScroll.current=undefined;}updateCurrentScroll(info[axis].current);checkLimits();};const stopScroll=scroll(updateScrollInfo,{container:container.current,axis});const stopResize=resize(container.current,()=>{measureItems();checkLimits();});return()=>{stopScroll();stopResize();};},[checkLimits,measureItems]);}/**\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */ export default function Carousel({slots,gap,axis,align,sizingObject,fadeObject,arrowObject,snapObject,progressObject,ariaLabel,borderRadius,effectsObject,...props}){const numItems=Children.count(slots);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const padding=usePadding(props);const axisLabel=axis?\"x\":\"y\";const{fadeContent,fadeWidth,fadeInset,fadeTransition,fadeAlpha}=fadeObject;const{snap,snapEdge,fluid}=snapObject;const{widthType,widthInset,widthColumns,heightType,heightInset,heightRows}=sizingObject;const{showScrollbar,showProgressDots,dotSize,dotsInset,dotsRadius,dotsPadding,dotsGap,dotsFill,dotsBackground,dotsActiveOpacity,dotsOpacity,dotsBlur}=progressObject;const{showMouseControls,arrowSize,arrowRadius,arrowFill,leftArrow,rightArrow,arrowPadding}=arrowObject;/**\n     * The latest scroll info on the scrollable axis as reported by Motion One.\n     */ const scrollInfo=useRef(undefined);/**\n     * The target scroll we're currently animating to, calculated when\n     * a user presses a pagination button.\n     */ const targetScroll=useRef(undefined);/**\n     * If we're performing a scroll animation, return the target scroll instead\n     * of the latest scroll position. This will help users paginate through\n     * a carousel much quicker.\n     */ const currentScroll=useMotionValue(0);const updateCurrentScroll=newScroll=>{currentScroll.set(targetScroll.current!==undefined?targetScroll.current:newScroll);};/**\n     * We only want to display pagination buttons if the user has enabled the setting\n     * and this is actually a mouse device.\n     */ const isMouseDevice=useIsMouse();/**\n     * Create all the motion values for the GUI at each end of the carousel.\n     */ const start=useGUI(false,fadeAlpha);const end=useGUI(true,fadeAlpha);const startMaskInset=useMotionValue(fadeInset*.5);const endMaskInset=useTransform(startMaskInset,v=>100-v);const baseWidth=useMotionValue(fadeWidth);const startMaskWidth=useTransform([startMaskInset,baseWidth],calcMaskWidth);const endMaskWidth=useTransform(startMaskWidth,v=>100-v);const direction=useMotionValue(axis?\"right\":\"bottom\");const mask=useTransform([direction,start.fadeOpacity,startMaskInset,startMaskWidth,end.fadeOpacity,endMaskInset,endMaskWidth,],latest=>{return`linear-gradient(to ${latest[0]}, rgb(0, 0, 0, ${latest[1]}) ${latest[2]}%, rgb(0, 0, 0, 1) ${latest[3]}%, rgba(0, 0, 0, 1) ${latest[6]}%, rgb(0, 0, 0, ${latest[4]}) ${latest[5]}%)`;});const carouselRef=useRef(null);/**\n     * Dots state\n     */ const[numPages,setNumPages]=useState(isCanvas?4:1);/**\n     * Generate styles for components.\n     */ const itemStyle={scrollSnapAlign:snapEdge,flexShrink:0};const childStyle={};if(align===\"stretch\"){if(axis){childStyle.height=\"100%\";itemStyle.height=\"auto\";}else{childStyle.width=\"100%\";itemStyle.width=\"auto\";}}if(!fluid){itemStyle.scrollSnapStop=\"always\";}if(widthType===\"stretch\"){itemStyle.width=`calc(100% - ${widthInset||0}px)`;childStyle.width=\"100%\";}else if(widthType===\"columns\"){itemStyle.width=`calc(${100/widthColumns}% - ${gap}px + ${gap/widthColumns}px)`;childStyle.width=\"100%\";}if(heightType===\"stretch\"){itemStyle.height=`calc(100% - ${heightInset||0}px)`;childStyle.height=\"100%\";}else if(heightType===\"rows\"){itemStyle.height=`calc(${100/heightRows}% - ${gap}px + ${gap/heightRows}px)`;childStyle.height=\"100%\";}const scrollOverflow=isCanvas?\"hidden\":\"auto\";const containerStyle={...baseContainerStyle,padding};const carouselStyle={...baseCarouselStyle,gap,alignItems:align,flexDirection:axis?\"row\":\"column\",overflowX:axis?scrollOverflow:\"hidden\",overflowY:axis?\"hidden\":scrollOverflow,scrollSnapType:snap?`${axisLabel} mandatory`:undefined,WebkitOverflowScrolling:\"touch\",WebkitMaskImage:fadeContent?mask:undefined,MozMaskImage:fadeContent?mask:undefined,maskImage:fadeContent?mask:undefined,borderRadius};const carouselA11y={[\"aria-roledescription\"]:\"carousel\"};if(ariaLabel){carouselA11y[\"aria-title\"]=ariaLabel;}const itemA11y={};if(align===\"stretch\"){itemA11y[\"aria-role\"]=\"group\";itemA11y[\"aria-roledescription\"]=\"slide\";}if(!isCanvas){const itemSizes=useRef([]);useScrollLimits(carouselRef,axisLabel,scrollInfo,updateCurrentScroll,targetScroll,useCallback(()=>{if(!scrollInfo.current)return;const{targetLength,containerLength,scrollLength}=scrollInfo.current;const current=currentScroll.get();if(!targetLength&&!containerLength)return;if(targetLength>containerLength){checkLimit(current,0,start,fadeTransition);checkLimit(current,scrollLength,end,fadeTransition);for(let i=0;i<itemSizes.current.length;i++){const{element,start:start1,end:end1}=itemSizes.current[i];if(end1<current||start1>current+containerLength){element.setAttribute(\"aria-hidden\",true);}else{element.setAttribute(\"aria-hidden\",false);}}}else{checkLimit(0,0,start,fadeTransition);checkLimit(1,1,end,fadeTransition);itemSizes.current.forEach(setAriaVisible);}// This used to be Math.ceil, which would round 3.05 to 4.\n// This now uses Math.round to ensure people get a perfect amount of dots\n// when using Columns or Rows — Benjamin\n/**\n                 * Update by Matt: changing back to ceil, might break dots but round was incorrectly\n                 * paginating for all widths - overshooting items at shorter viewports and\n                 * not paginating at all for wide.\n                 */ let newNumPages=Math.ceil(targetLength/containerLength);if(!isNaN(newNumPages)){// If the number of dots is 65% of the number of items, make it 100%\nif(newNumPages/numItems>.65)newNumPages=numItems;if(newNumPages!==numPages)setNumPages(newNumPages);}},[numPages]),useCallback(()=>{if(!carouselRef.current)return;itemSizes.current=Array.from(carouselRef.current.children).map(element=>{return axis?{element,start:element.offsetLeft,end:element.offsetLeft+element.offsetWidth}:{element,start:element.offsetTop,end:element.offsetTop+element.offsetHeight};});},[]));}/**\n     * On the canvas, we want to keep the motion values updated\n     * with the latest props. Outside of the canvas these will never\n     * update.\n     */ if(isCanvas){useEffect(()=>{baseWidth.set(fadeWidth);},[fadeWidth]);useEffect(()=>{startMaskInset.set(fadeInset*.5);},[fadeInset]);useEffect(()=>{direction.set(axis?\"right\":\"bottom\");},[axis]);}const findNextItem=(delta,target)=>{if(!scrollInfo.current)return;const{current}=scrollInfo.current;const{children}=carouselRef.current;let scrollTarget;let i=delta===1?0:children.length-1;while(scrollTarget===undefined){const item=children[i];const start=axis?item.offsetLeft:item.offsetTop;const length=axis?item.offsetWidth:item.offsetHeight;const end=start+length;const threshold=.05;if(delta===1){const visibility=progress(start,end,target);if(visibility<1-threshold){scrollTarget=start;}else if(i===children.length-1){scrollTarget=end;}}else if(delta===-1){const visibility1=progress(start,end,target);if(visibility1>threshold){scrollTarget=end;}else if(i===0){scrollTarget=start;}}i+=delta;}return scrollTarget;};const isReducedMotion=useReducedMotion();const goto=scrollTo=>{targetScroll.current=scrollTo;const options=axis?{left:scrollTo}:{top:scrollTo};carouselRef.current.scrollTo({...options,behavior:isReducedMotion?\"auto\":\"smooth\"});};const gotoPage=page=>{if(!scrollInfo.current)return;const{scrollLength}=scrollInfo.current;goto(page*(scrollLength/(numPages-1)));};const gotoDelta=delta=>()=>{if(!scrollInfo.current)return;const{containerLength,scrollLength}=scrollInfo.current;const current=currentScroll.get();const pageLength=scrollLength/numPages;const currentPage=clamp(0,numPages-1,Math.floor(current/pageLength));gotoPage(currentPage+delta);};/**\n     * Return placeholder if no children\n     */ if(numItems===0){return /*#__PURE__*/ _jsx(Placeholder,{});}const dots=[];const dotsBlurStyle={};if(numPages>1&&showProgressDots&&!showScrollbar){for(let i=0;i<numPages;i++){const isSelected=isCanvas&&!i||false;dots.push(/*#__PURE__*/ _jsx(Dot,{dotStyle:{...dotStyle,width:dotSize,height:dotSize,backgroundColor:dotsFill},buttonStyle:baseButtonStyles,isSelected:isSelected,selectedOpacity:dotsActiveOpacity,opacity:dotsOpacity,onClick:()=>gotoPage(i),currentScroll:currentScroll,scrollInfo:scrollInfo,total:numPages,index:i,gap:dotsGap,padding:dotsPadding,axis:axis}));}if(dotsBlur){dotsBlurStyle.backdropFilter=dotsBlurStyle.WebkitBackdropFilter=dotsBlurStyle.MozBackdropFilter=`blur(${dotsBlur}px)`;}}return /*#__PURE__*/ _jsxs(\"section\",{style:containerStyle,...carouselA11y,children:[/*#__PURE__*/ _jsx(motion.ul,{ref:carouselRef,style:carouselStyle,className:\"framer--carousel\",\"data-show-scrollbar\":showScrollbar,\"aria-atomic\":\"false\",\"aria-live\":\"polite\",onWheel:()=>targetScroll.current=undefined,children:Children.map(slots,(child,index)=>{var ref;/*#__PURE__*/ return _jsx(\"li\",{style:itemStyle,...itemA11y,\"aria-label\":`${index+1} of ${numItems}`,children:/*#__PURE__*/ cloneElement(child,{...child.props,style:{...(ref=child.props)===null||ref===void 0?void 0:ref.style,...childStyle}})});})}),/*#__PURE__*/ _jsxs(\"fieldset\",{style:{...controlsStyles,padding:arrowPadding,display:\"flex\",flexDirection:axis?\"row\":\"column\"},\"aria-label\":\"Carousel pagination controls\",className:\"framer--carousel-controls\",\"data-show-mouse-controls\":showMouseControls,children:[/*#__PURE__*/ _jsx(motion.button,{ref:start.buttonRef,type:\"button\",style:{...start.buttonStyle,backgroundColor:arrowFill,width:arrowSize,height:arrowSize,borderRadius:arrowRadius,rotate:!axis?90:0,display:showMouseControls?\"block\":\"none\"},onClick:gotoDelta(-1),\"aria-label\":\"Previous\",whileTap:{scale:.9},transition:{duration:.05},children:/*#__PURE__*/ _jsx(\"img\",{alt:\"\",width:arrowSize,height:arrowSize,src:leftArrow||\"https://framerusercontent.com/images/6tTbkXggWgQCAJ4DO2QEdXXmgM.svg\"})}),/*#__PURE__*/ _jsx(motion.button,{ref:end.buttonRef,type:\"button\",style:{...end.buttonStyle,backgroundColor:arrowFill,width:arrowSize,height:arrowSize,borderRadius:arrowRadius,rotate:!axis?90:0,display:showMouseControls?\"block\":\"none\"},onClick:gotoDelta(1),\"aria-label\":\"Next\",whileTap:{scale:.9},transition:{duration:.05},children:/*#__PURE__*/ _jsx(\"img\",{alt:\"\",width:arrowSize,height:arrowSize,src:rightArrow||\"https://framerusercontent.com/images/11KSGbIZoRSg4pjdnUoif6MKHI.svg\"})}),dots.length>1?/*#__PURE__*/ _jsx(\"div\",{style:{...dotsContainerStyle,left:axis?\"50%\":dotsInset,top:!axis?\"50%\":\"unset\",transform:axis?\"translateX(-50%)\":\"translateY(-50%)\",flexDirection:axis?\"row\":\"column\",bottom:axis?dotsInset:\"unset\",borderRadius:dotsRadius,backgroundColor:dotsBackground,...dotsBlurStyle},children:dots}):null]}),/*#__PURE__*/ _jsx(MouseStyles,{})]});};/* Default Properties */ Carousel.defaultProps={gap:10,padding:10,progressObject:{showScrollbar:false,showProgressDots:false},sizingObject:{widthType:\"auto\",widthOffset:0,widthColumns:2,heightType:\"auto\",heightOffset:0,heightRows:2},borderRadius:0};/* Property Controls */ addPropertyControls(Carousel,{slots:{type:ControlType.Array,title:\"Children\",control:{type:ControlType.ComponentInstance}},axis:{type:ControlType.Enum,title:\"Direction\",options:[true,false],optionIcons:[\"direction-horizontal\",\"direction-vertical\"],displaySegmentedControl:true},align:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionIcons:{axis:{true:[\"align-top\",\"align-middle\",\"align-bottom\"],false:[\"align-left\",\"align-center\",\"align-right\"]}},defaultValue:\"center\",displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\"},...paddingControl,sizingObject:{type:ControlType.Object,title:\"Sizing\",controls:{widthType:{type:ControlType.Enum,title:\"Width\",options:[\"auto\",\"stretch\",\"columns\"],optionTitles:[\"Auto\",\"Stretch\",\"Columns\"],defaultValue:\"auto\"},widthInset:{type:ControlType.Number,title:\"Inset\",min:0,max:500,defaultValue:0,hidden:props=>props.widthType!==\"stretch\"},widthColumns:{type:ControlType.Number,title:\"Columns\",min:1,max:10,defaultValue:2,displayStepper:true,hidden:props=>props.widthType!==\"columns\"},heightType:{type:ControlType.Enum,title:\"Height\",options:[\"auto\",\"stretch\",\"rows\"],optionTitles:[\"Auto\",\"Stretch\",\"Rows\"],defaultValue:\"auto\"},heightInset:{type:ControlType.Number,title:\"Inset\",min:0,max:500,defaultValue:0,hidden:props=>props.heightType!==\"stretch\"},heightRows:{type:ControlType.Number,title:\"Rows\",min:1,max:10,defaultValue:2,displayStepper:true,hidden:props=>props.heightType!==\"rows\"}}},snapObject:{type:ControlType.Object,title:\"Snapping\",controls:{snap:{type:ControlType.Boolean,title:\"Enable\"},snapEdge:{type:ControlType.Enum,title:\"Edge\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\",hidden:props=>!props.snap},fluid:{type:ControlType.Boolean,title:\"Fluid\",defaultValue:false,hidden:props=>!props.snap}}},fadeObject:{type:ControlType.Object,title:\"Fading\",controls:{fadeContent:{type:ControlType.Boolean,title:\"Enable\",defaultValue:false},fadeWidth:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:100,unit:\"%\",hidden:props=>!props.fadeContent},fadeInset:{type:ControlType.Number,title:\"Inset\",defaultValue:0,min:0,max:100,unit:\"%\",hidden:props=>!props.fadeContent},fadeAlpha:{type:ControlType.Number,title:\"Opacity\",hidden:props=>!props.fadeContent,min:0,max:1,step:.05,defaultValue:0},fadeTransition:{type:ControlType.Transition,title:\"Transition\",hidden:props=>!props.fadeContent}}},progressObject:{type:ControlType.Object,title:\"Progress\",controls:{showScrollbar:{type:ControlType.Boolean,title:\"Scroll Bar\",defaultValue:false},showProgressDots:{type:ControlType.Boolean,title:\"Dots\",defaultValue:false,hidden:props=>props.showScrollbar},dotSize:{type:ControlType.Number,title:\"Size\",min:1,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsInset:{type:ControlType.Number,title:\"Inset\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsGap:{type:ControlType.Number,title:\"Gap\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsPadding:{type:ControlType.Number,title:\"Padding\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsFill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#fff\",hidden:props=>!props.showProgressDots||props.showScrollbar},dotsBackground:{type:ControlType.Color,title:\"Backdrop\",defaultValue:\"rgba(0,0,0,0.2)\",hidden:props=>!props.showProgressDots||props.showScrollbar},dotsRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:200,defaultValue:50,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsOpacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:1,defaultValue:.5,step:.1,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsActiveOpacity:{type:ControlType.Number,title:\"Current\",min:0,max:1,defaultValue:1,step:.1,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsBlur:{type:ControlType.Number,title:\"Blur\",min:0,max:50,defaultValue:4,step:1,hidden:props=>!props.showProgressDots||props.showScrollbar}}},arrowObject:{type:ControlType.Object,title:\"Arrows\",controls:{showMouseControls:{type:ControlType.Boolean,title:\"Show\",defaultValue:true},arrowFill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"rgba(0,0,0,0.2)\",hidden:props=>!props.showMouseControls},leftArrow:{type:ControlType.Image,title:\"Previous\",hidden:props=>!props.showMouseControls},rightArrow:{type:ControlType.Image,title:\"Next\",hidden:props=>!props.showMouseControls},arrowSize:{type:ControlType.Number,title:\"Size\",min:0,max:200,displayStepper:true,defaultValue:40,hidden:props=>!props.showMouseControls},arrowRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:500,defaultValue:40,hidden:props=>!props.showMouseControls},arrowPadding:{type:ControlType.Number,title:\"Inset\",min:0,max:100,defaultValue:20,displayStepper:true,hidden:props=>!props.showMouseControls}}},ariaLabel:{type:ControlType.String,title:\"Aria Label\",placeholder:\"Movies...\"},borderRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:500,displayStepper:true,defaultValue:0}});function Dot({currentScroll,scrollInfo,isSelected,selectedOpacity,opacity:unselectedOpacity,total,index,dotStyle,buttonStyle,gap,padding,axis,...props}){const opacity=useTransform(currentScroll,v=>{var ref,ref1;if(!((ref=scrollInfo.current)===null||ref===void 0?void 0:ref.scrollLength)){return index===0?selectedOpacity:unselectedOpacity;}const pageLength=((ref1=scrollInfo.current)===null||ref1===void 0?void 0:ref1.scrollLength)/total;const minScroll=pageLength*index;const maxScroll=minScroll+pageLength;const isSelected=v>=minScroll&&(index<total-1?v<maxScroll:index===total-1);return isSelected?selectedOpacity:unselectedOpacity;});const inlinePadding=gap/2;let top=!axis&&index>0?inlinePadding:padding;let bottom=!axis&&index!==total-1?inlinePadding:padding;let right=axis&&index!==total-1?inlinePadding:padding;let left=axis&&index>0?inlinePadding:padding;return /*#__PURE__*/ _jsx(\"button\",{\"aria-label\":`Scroll to page ${index+1}`,type:\"button\",...props,style:{...buttonStyle,padding:`${top}px ${right}px ${bottom}px ${left}px`},children:/*#__PURE__*/ _jsx(motion.div,{style:{...dotStyle,opacity}})});}function Placeholder(){return /*#__PURE__*/ _jsxs(\"section\",{style:placeholderStyles,children:[/*#__PURE__*/ _jsx(\"div\",{style:emojiStyles,children:\"✨\"}),/*#__PURE__*/ _jsx(\"p\",{style:titleStyles,children:\"Connect to Content\"}),/*#__PURE__*/ _jsx(\"p\",{style:subtitleStyles,children:\"Add layers or components to swipe between.\"})]});}function MouseStyles(){return /*#__PURE__*/ _jsx(\"div\",{dangerouslySetInnerHTML:{__html:`<style>@media (pointer: fine) {\n                .framer--carousel[data-show-scrollbar=\"false\"]::-webkit-scrollbar {\n                    display: none;\n                    -webkit-appearance: none;\n                    width: 0;\n                    height: 0;\n                }\n\n                .framer--carousel[data-show-scrollbar=\"false\"]::-webkit-scrollbar-thumb {\n                    display: none;\n                }\n\n                .framer--carousel[data-show-scrollbar=\"false\"] {\n                    scrollbar-width: none;\n                    scrollbar-height: none;\n                }\n            }</style>`}});}/* Styles */ const placeholderStyles={display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",color:\"#96F\",background:\"rgba(136, 85, 255, 0.1)\",fontSize:11,overflow:\"hidden\",padding:\"20px 20px 30px 20px\"};const emojiStyles={fontSize:32,marginBottom:10};const titleStyles={margin:0,marginBottom:10,fontWeight:600,textAlign:\"center\"};const subtitleStyles={margin:0,opacity:.7,maxWidth:130,lineHeight:1.5,textAlign:\"center\"};const labelStyle={clip:\"rect(0 0 0 0)\",WebkitClipPath:\"inset(50%)\",clipPath:\"inset(50%)\",height:1,width:1,margin:-1,padding:0,overflow:\"hidden\",position:\"absolute\",whiteSpace:\"nowrap\"};/**\n * GUI styles\n */ const baseContainerStyle={display:\"flex\",overflow:\"hidden\",width:\"100%\",height:\"100%\",position:\"relative\"};const baseCarouselStyle={padding:0,margin:0,listStyle:\"none\",position:\"relative\",display:\"flex\",flex:\"1 1 100%\",width:\"100%\",height:\"100%\"};const baseButtonStyles={border:\"none\",display:\"flex\",placeContent:\"center\",placeItems:\"center\",overflow:\"hidden\",background:\"transparent\",cursor:\"pointer\",margin:0,padding:0};const controlsStyles={display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",position:\"absolute\",top:0,left:0,right:0,bottom:0,pointerEvents:\"none\",border:0,padding:0,margin:0};/**\n * Dot styles\n */ const dotsContainerStyle={display:\"flex\",placeContent:\"center\",placeItems:\"center\",overflow:\"hidden\",position:\"absolute\",pointerEvents:\"auto\"};const dotStyle={borderRadius:\"50%\",background:\"white\",cursor:\"pointer\",border:\"none\",placeContent:\"center\",placeItems:\"center\",padding:0};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Carousel\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"200\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Carousel.map","// 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);// `isReady` is real state (not a ref) so button enabled/disabled always\n// reflects whether we actually have a live carousel element. Previously\n// !!carouselRef.current was evaluated at render time from a ref that could\n// be null even after the layout effect ran, making buttons appear clickable\n// while clickOrKey silently returned early.\nconst[isReady,setIsReady]=useState(false);const[canGoPrevious,setCanGoPrevious]=useState(false);const[canGoNext,setCanGoNext]=useState(true);// FIX #1: Use getComputedStyle instead of el.style so CSS-class-applied\n// overflow values are detected, not just inline styles.\nconst isElementScrollable=el=>{if(!el)return false;const computed=getComputedStyle(el);const{overflow,overflowX,overflowY}=computed;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\";// FIX #2: Track the pending function separately so rapid batched() calls\n// always execute the *latest* fn rather than silently dropping updates.\nconst schedule=useRef(null);const pendingFn=useRef(null);const batched=fn=>{pendingFn.current=fn;if(schedule.current!=null)return;schedule.current=requestAnimationFrame(()=>{schedule.current=null;pendingFn.current?.();pendingFn.current=null;});};// FIX #4: Cancel any pending rAF on unmount to prevent state updates on\n// an unmounted component.\nuseEffect(()=>{return()=>{if(schedule.current!=null){cancelAnimationFrame(schedule.current);}};},[]);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;};// Read-only state sync — never touches carouselRef.current.\n// Safe to call from async contexts (observer callbacks, setTimeout).\nconst syncState=el=>{if(isScrollContainerRef.current){checkScrollState(el);return;}const q=s=>el.querySelector(s);const qa=s=>el.querySelectorAll(s);// Priority 1 — explicit prev/next buttons with disabled state.\n// If found, these are the ground truth; return immediately so\n// indicator/slide logic doesn't overwrite with stale data.\nconst prevBtn=q('[aria-label*=\"previous\" i], .carousel-prev, .prev');const nextBtn=q('[aria-label*=\"next\" i], .carousel-next, .next');if(prevBtn&&nextBtn){setCanGoPrevious(!prevBtn.disabled&&!prevBtn.hasAttribute(\"aria-disabled\"));setCanGoNext(!nextBtn.disabled&&!nextBtn.hasAttribute(\"aria-disabled\"));return;}// Priority 2 — indicator tabs/dots.\nconst 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;}// Indicators exist but none is marked active — don't leave state\n// stale; enable both so the user isn't stuck.\nsetCanGoPrevious(true);setCanGoNext(true);return;}// Priority 3 — active slide inside a slide container.\nconst 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);return;}}// Fallback — couldn't determine position; enable both directions.\nsetCanGoPrevious(true);setCanGoNext(true);};// Initialise the ref and scroll-container flag ONCE per carousel/direction\n// change. Never called from async paths so the ref assignment is always stable.\nconst updateForCarousel=el=>{carouselRef.current=el;isScrollContainerRef.current=isElementScrollable(el);if(!el){setIsReady(false);setCanGoPrevious(false);setCanGoNext(false);return;}setIsReady(true);syncState(el);};// Observe DOM mutations around the selected carousel with minimal cost\nuseLayoutEffect(()=>{const el=queryOnce();updateForCarousel(el);if(!el)return;// Observer only calls syncState — never touches the ref.\nconst observer=new MutationObserver(()=>{batched(()=>syncState(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]);// FIX #3: Depend on selectedCarousel/direction (stable values) instead of\n// carouselRef.current (a mutable ref value React cannot track). Re-read\n// carouselRef.current fresh inside the effect so it always reflects the\n// element resolved by the layout effect above.\nuseEffect(()=>{const el=carouselRef.current;if(!el||!isScrollContainerRef.current)return;const onScroll=()=>batched(()=>checkScrollState(el));el.addEventListener(\"scroll\",onScroll,{passive:true});checkScrollState(el);return()=>el.removeEventListener(\"scroll\",onScroll);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[selectedCarousel,direction]);const clickOrKey=type=>{// Capture at call time — immune to any re-render that happens\n// between now and the async syncState callback below.\nconst 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();// Use syncState (not updateForCarousel) so the ref is never\n// reassigned from an async context.\nsetTimeout(()=>syncState(el),80);return;}// Keyboard fallback — dispatch on the carousel root itself, NOT on\n// querySelector's first focusable child. That first child is almost\n// always a nav indicator dot (e.g. card 1's tab/button), so dispatching\n// ArrowRight to it either does nothing or jumps to the wrong card.\n// Framer's carousel root handles arrow-key events directly when focused.\nconst key=isHorizontal?type===\"prev\"?\"ArrowLeft\":\"ArrowRight\":type===\"prev\"?\"ArrowUp\":\"ArrowDown\";// 1. Try the currently active/current slide — it's the natural keyboard\n//    focus target inside the carousel and will bubble up correctly.\nconst activeSlide=el.querySelector('.active, .current, [aria-current=\"true\"], [aria-selected=\"true\"]');const keyTarget=activeSlide??el;keyTarget.focus({preventScroll:true});keyTarget.dispatchEvent(new KeyboardEvent(\"keydown\",{key,bubbles:true,cancelable:true}));// 2. Also dispatch on the root in case the carousel listens there\n//    (Framer's built-in carousel does).\nif(keyTarget!==el){el.dispatchEvent(new KeyboardEvent(\"keydown\",{key,bubbles:false,cancelable:true}));}setTimeout(()=>syncState(el),80);};const previousEnabled=isReady&&canGoPrevious;const nextEnabled=isReady&&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]);// FIX #5: Remove `style` from the memo dependency array — it's an object\n// reference that changes every render, defeating memoization. The style\n// prop is spread onto the container in JSX anyway, so it doesn't belong here.\nconst containerStyle=useMemo(()=>({display:\"flex\",alignItems:\"center\",justifyContent:layout,gap:spacing,flexDirection:isHorizontal?\"row\":\"column\",width:\"100%\",height:\"100%\"}),[spacing,isHorizontal,layout]);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:\"#999999\";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,// FIX #6: Align label placement consistently for both buttons.\n    // Previous: label comes BEFORE the button (← Previous)\n    // Next:     label comes AFTER the button  (Next →)\n    // Use row-reverse for the prev group so the label sits left of the button\n    // without changing the underlying DOM order for accessibility.\n    flexDirection:isHorizontal?\"row\":\"column\",overflow:\"visible\"}),[isHorizontal]);// Separate group style for the previous button so we can reverse label order\nconst prevButtonGroupStyle=useMemo(()=>({...buttonGroupStyle,flexDirection:isHorizontal?\"row-reverse\":\"column-reverse\"}),[buttonGroupStyle,isHorizontal]);return /*#__PURE__*/_jsxs(\"div\",{style:{...containerStyle,...style,overflow:\"visible\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:prevButtonGroupStyle,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\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Carousel_Controls.map"],"mappings":"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"}