{"version":3,"file":"SliderControls.CbAVO9Ax.mjs","names":["useId","useMemo","_Fragment","useState","useRef","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/77pVzj1i5jus0iPb5HFa/nooj1VTgURNaLJQdp2wB/SnapScrollOverride.js","https:/framerusercontent.com/modules/dzb7oENORMCioAZwrHQ5/smPKM4O8xTUuWH5Gmb65/SliderControls.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{forwardRef,useId,useMemo}from\"react\";export function withSnapScroll(Component){return /*#__PURE__*/forwardRef(function WithSnapScroll(props,ref){const generatedId=useId();const scopedClassName=useMemo(()=>{const safeId=generatedId.replace(/[^a-zA-Z0-9_-]/g,\"\");return`snap-scroll-${safeId}`;},[generatedId]);const mergedClassName=[props.className,scopedClassName].filter(Boolean).join(\" \");return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`.${scopedClassName} > * { scroll-snap-align: start; scroll-snap-stop: always; }`}),/*#__PURE__*/_jsx(Component,{ref:ref,...props,className:mergedClassName,style:{...props.style,scrollSnapType:\"x mandatory\",scrollPaddingLeft:\"20px\",scrollPaddingRight:\"20px\",WebkitOverflowScrolling:\"touch\"}})]});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withSnapScroll\":{\"type\":\"reactHoc\",\"name\":\"withSnapScroll\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SnapScrollOverride.map","// Instructions: Make a slider controls with space between and customisable options as seen on the photo. Big white cicle background with arrows\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{startTransition,useCallback,useEffect,useMemo,useRef,useState}from\"react\";/**\n * @framerIntrinsicWidth 900\n * @framerIntrinsicHeight 90\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight fixed\n */export default function SliderControls(props){const{count,initialIndex,spacing,padding,showDots,dotsPosition,dotInactiveColor,dotActiveColor,dotGap,dotSize,buttonSize=64,buttonBackground=\"#FFFFFF\",iconColor=\"#000000\",buttonShadow=\"0 10px 24px rgba(0,0,0,0.14)\",loop,interaction,scrollContainerId,scrollBehavior,onPrev,onNext,style}=props;const isStatic=useIsStaticRenderer();const[domCount,setDomCount]=useState(null);const effectiveCount=interaction===\"scroll\"?domCount??count:count;const[index,setIndex]=useState(()=>clampIndex(initialIndex,effectiveCount));const lastCountRef=useRef(effectiveCount);const programmaticTargetRef=useRef(null);const programmaticUntilRef=useRef(0);const scrollEndTimerRef=useRef(null);useEffect(()=>{if(lastCountRef.current!==count){lastCountRef.current=count;startTransition(()=>setIndex(prev=>clampIndex(prev,count)));}},[count]);useEffect(()=>{if(lastCountRef.current!==effectiveCount){lastCountRef.current=effectiveCount;startTransition(()=>setIndex(prev=>clampIndex(prev,effectiveCount)));}},[effectiveCount]);useEffect(()=>{startTransition(()=>setIndex(clampIndex(initialIndex,count)));// eslint-disable-next-line react-hooks/exhaustive-deps\n},[initialIndex]);useEffect(()=>{if(interaction!==\"scroll\")return;if(typeof window===\"undefined\")return;if(!scrollContainerId)return;const scroller=getScrollElementById(scrollContainerId);if(!scroller)return;const measure=()=>{const slides=resolveSlides(scroller);const next=Math.max(0,slides.length);startTransition(()=>setDomCount(next));};measure();const ro=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(measure):null;ro?.observe(scroller);const mo=typeof MutationObserver!==\"undefined\"?new MutationObserver(()=>{measure();}):null;mo?.observe(scroller,{childList:true,subtree:true});return()=>{ro?.disconnect();mo?.disconnect();};},[interaction,scrollContainerId]);useEffect(()=>{if(interaction!==\"scroll\")return;if(typeof window===\"undefined\")return;if(!scrollContainerId)return;const scroller=getScrollElementById(scrollContainerId);if(!scroller)return;let raf=0;const updateFromScroll=()=>{raf=0;const slides=resolveSlides(scroller);if(slides.length<=0)return;const maxScrollLeft=Math.max(0,scroller.scrollWidth-scroller.clientWidth);const sl=scroller.scrollLeft;// Hard clamp at the edges so the first/last dot can be reached reliably.\nif(sl<=1){programmaticTargetRef.current=null;startTransition(()=>setIndex(prev=>prev===0?prev:0));return;}if(sl>=maxScrollLeft-1){programmaticTargetRef.current=null;const last=Math.max(0,slides.length-1);startTransition(()=>setIndex(prev=>prev===last?prev:last));return;}const scrollerRect=scroller.getBoundingClientRect();const targetCenter=sl+scroller.clientWidth/2;let bestIndex=0;let bestDist=Number.POSITIVE_INFINITY;for(let i=0;i<slides.length;i++){const slide=slides[i];const slideRect=slide.getBoundingClientRect();const slideCenter=sl+(slideRect.left-scrollerRect.left)+slideRect.width/2;const d=Math.abs(slideCenter-targetCenter);if(d<bestDist){bestDist=d;bestIndex=i;}}const now=Date.now();const target=programmaticTargetRef.current;const isDuringProgrammatic=target!=null&&now<programmaticUntilRef.current;// During a programmatic smooth scroll, ignore intermediate indices to prevent flicker/lag.\nif(isDuringProgrammatic&&bestIndex!==target)return;if(target!=null&&bestIndex===target)programmaticTargetRef.current=null;startTransition(()=>setIndex(prev=>prev===bestIndex?prev:bestIndex));};const onScroll=()=>{if(raf)return;raf=window.requestAnimationFrame(updateFromScroll);if(scrollEndTimerRef.current!=null)window.clearTimeout(scrollEndTimerRef.current);scrollEndTimerRef.current=window.setTimeout(()=>{scrollEndTimerRef.current=null;programmaticTargetRef.current=null;updateFromScroll();},120);};scroller.addEventListener(\"scroll\",onScroll,{passive:true});updateFromScroll();return()=>{scroller.removeEventListener(\"scroll\",onScroll);if(raf)window.cancelAnimationFrame(raf);if(scrollEndTimerRef.current!=null)window.clearTimeout(scrollEndTimerRef.current);};},[interaction,scrollContainerId]);const canPrev=useMemo(()=>loop||index>0,[loop,index]);const canNext=useMemo(()=>loop||index<Math.max(0,effectiveCount-1),[loop,index,effectiveCount]);const scrollToIndex=useCallback((targetIndex,behaviorOverride)=>{if(interaction!==\"scroll\")return;if(typeof window===\"undefined\")return;if(!scrollContainerId)return;const scroller=getScrollElementById(scrollContainerId);if(!scroller)return;const slides=resolveSlides(scroller);const safeIndex=clampIndex(targetIndex,slides.length||effectiveCount);const slide=slides[safeIndex];if(!slide)return;const maxLeft=Math.max(0,scroller.scrollWidth-scroller.clientWidth);const scrollerRect=scroller.getBoundingClientRect();const slideRect=slide.getBoundingClientRect();const rawLeft=scroller.scrollLeft+(slideRect.left-scrollerRect.left)+slideRect.width/2-scroller.clientWidth/2;const left=Math.max(0,Math.min(maxLeft,rawLeft));const behavior=behaviorOverride??scrollBehavior??\"smooth\";programmaticTargetRef.current=safeIndex;programmaticUntilRef.current=Date.now()+(behavior===\"smooth\"?800:0);try{scroller.scrollTo({left,behavior});}catch(e){scroller.scrollLeft=left;}},[interaction,scrollContainerId,scrollBehavior,effectiveCount]);const handlePrev=useCallback(()=>{if(!canPrev)return;const willWrap=loop&&index===0&&effectiveCount>0;const nextIndex=(()=>{const next=index-1;if(loop)return mod(next,Math.max(1,effectiveCount));return clampIndex(next,effectiveCount);})();startTransition(()=>{setIndex(nextIndex);});if(!isStatic){onPrev?.();// If wrapping (1 -> last), jump instantly to avoid animating through all dots.\nscrollToIndex(nextIndex,willWrap?\"auto\":undefined);}},[canPrev,loop,effectiveCount,isStatic,onPrev,index,scrollToIndex]);const handleNext=useCallback(()=>{if(!canNext)return;const willWrap=loop&&index===Math.max(0,effectiveCount-1)&&effectiveCount>0;const nextIndex=(()=>{const next=index+1;if(loop)return mod(next,Math.max(1,effectiveCount));return clampIndex(next,effectiveCount);})();startTransition(()=>{setIndex(nextIndex);});if(!isStatic){onNext?.();// If wrapping (last -> 1), jump instantly to avoid animating through all dots.\nscrollToIndex(nextIndex,willWrap?\"auto\":undefined);}},[canNext,loop,effectiveCount,isStatic,onNext,index,scrollToIndex]);const dots=useMemo(()=>{const safeCount=Math.max(0,Math.floor(effectiveCount));if(!showDots||safeCount<=1)return null;return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:Math.max(0,dotGap),minWidth:0,flex:dotsPosition===\"between\"?\"1 1 auto\":\"0 0 auto\"},role:\"tablist\",\"aria-label\":\"Slider pagination\",children:Array.from({length:safeCount}).map((_,i)=>{const active=i===index;return /*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":`Go to slide ${i+1}`,\"aria-current\":active?\"true\":\"false\",onClick:isStatic?undefined:()=>{startTransition(()=>setIndex(i));scrollToIndex(i);},style:{width:Math.max(2,dotSize),height:Math.max(2,dotSize),borderRadius:999,border:\"none\",padding:0,background:active?dotActiveColor:dotInactiveColor,cursor:isStatic?\"default\":\"pointer\",outline:\"none\",opacity:1}},i);})});},[effectiveCount,showDots,dotGap,dotSize,dotActiveColor,dotInactiveColor,index,isStatic,dotsPosition]);const rootJustify=dotsPosition===\"between\"?\"space-between\":\"space-between\";const leftDisabled=!canPrev;const rightDisabled=!canNext;const isThumbnail=RenderTarget.current()===RenderTarget.thumbnail;return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:rootJustify,gap:spacing,padding:padding,boxSizing:\"border-box\",...style},\"aria-label\":\"Slider controls\",children:[/*#__PURE__*/_jsx(ArrowButton,{direction:\"left\",size:buttonSize,iconSize:Math.max(12,Math.round(buttonSize*.34)),background:buttonBackground,iconColor:iconColor,border:\"none\",shadow:buttonShadow,radius:999,disabled:leftDisabled||isThumbnail,disabledOpacity:.35,onClick:isStatic?undefined:handlePrev}),showDots?dotsPosition===\"center\"?/*#__PURE__*/_jsx(\"div\",{style:{flex:\"1 1 auto\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:dots}):dots:/*#__PURE__*/_jsx(\"div\",{style:{flex:\"1 1 auto\"}}),/*#__PURE__*/_jsx(ArrowButton,{direction:\"right\",size:buttonSize,iconSize:Math.max(12,Math.round(buttonSize*.34)),background:buttonBackground,iconColor:iconColor,border:\"none\",shadow:buttonShadow,radius:999,disabled:rightDisabled||isThumbnail,disabledOpacity:.35,onClick:isStatic?undefined:handleNext})]});}function ArrowButton(props){const{direction,size,iconSize,background,iconColor,border,shadow,radius,disabled,disabledOpacity,onClick}=props;const line=direction===\"left\"?{x1:19,x2:5}:{x1:5,x2:19};const points=direction===\"left\"?\"12 19 5 12 12 5\":\"12 5 19 12 12 19\";return /*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":direction===\"left\"?\"Previous slide\":\"Next slide\",onClick:disabled?undefined:onClick,disabled:disabled,style:{width:size,height:size,minWidth:size,minHeight:size,borderRadius:radius,border:border,background:background,boxShadow:shadow,display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",cursor:disabled?\"not-allowed\":\"pointer\",opacity:disabled?disabledOpacity:1,padding:0,userSelect:\"none\",outline:\"none\",WebkitTapHighlightColor:\"transparent\"},children:/*#__PURE__*/_jsxs(\"svg\",{width:iconSize,height:iconSize,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",\"aria-hidden\":\"true\",focusable:\"false\",children:[/*#__PURE__*/_jsx(\"line\",{x1:line.x1,y1:\"12\",x2:line.x2,y2:\"12\",stroke:iconColor,strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"polyline\",{points:points,stroke:iconColor,strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",fill:\"none\"})]})});}function clampIndex(i,count){const c=Math.max(0,Math.floor(count));if(c<=0)return 0;const n=Math.floor(i);return Math.max(0,Math.min(c-1,n));}function mod(n,m){if(m<=0)return 0;return(n%m+m)%m;}function resolveSlides(scroller){const rootChildren=Array.from(scroller.children).filter(node=>node instanceof HTMLElement);if(rootChildren.length>1)return rootChildren;if(rootChildren.length===0)return[];let node=rootChildren[0];while(true){const children=Array.from(node.children).filter(child=>child instanceof HTMLElement);if(children.length>1)return children;if(children.length===1){node=children[0];continue;}return[node];}}function getScrollElementById(id){if(typeof document===\"undefined\")return null;const root=document.getElementById(id);if(!root)return null;const rootScrollableX=getScrollableXDistance(root);if(rootScrollableX>0||canElementScrollX(root))return root;const descendants=Array.from(root.querySelectorAll(\"*\")).filter(node=>node instanceof HTMLElement);let best=null;let bestDistance=-1;for(const node of descendants){const distance=getScrollableXDistance(node);if(distance>bestDistance&&(distance>0||canElementScrollX(node))){bestDistance=distance;best=node;}}return best??root;}function getScrollableXDistance(el){return Math.max(0,el.scrollWidth-el.clientWidth);}function canElementScrollX(el){const style=window.getComputedStyle(el);const overflowX=style.overflowX;return overflowX===\"auto\"||overflowX===\"scroll\"||overflowX===\"overlay\";}addPropertyControls(SliderControls,{count:{type:ControlType.Number,title:\"Count\",defaultValue:5,min:0,max:20,step:1,displayStepper:true,hidden:p=>p.interaction===\"scroll\"},initialIndex:{type:ControlType.Number,title:\"Active\",defaultValue:2,min:0,max:19,step:1,displayStepper:true},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},spacing:{type:ControlType.Number,title:\"Gap\",defaultValue:24,min:0,max:120,step:1},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:16,min:0,max:80,step:1},showDots:{type:ControlType.Boolean,title:\"Dots\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},dotsPosition:{type:ControlType.Enum,title:\"Dots Layout\",options:[\"center\",\"between\"],optionTitles:[\"Center\",\"Between Buttons\"],defaultValue:\"center\",displaySegmentedControl:true,hidden:p=>!p.showDots},dotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:7,min:2,max:20,step:1,hidden:p=>!p.showDots},dotGap:{type:ControlType.Number,title:\"Dot Gap\",defaultValue:10,min:0,max:40,step:1,hidden:p=>!p.showDots},dotInactiveColor:{type:ControlType.Color,title:\"Dot Inactive\",defaultValue:\"#CCCCCC\",hidden:p=>!p.showDots},dotActiveColor:{type:ControlType.Color,title:\"Dot Active\",defaultValue:\"#000000\",hidden:p=>!p.showDots},buttonSize:{type:ControlType.Number,title:\"Button Size\",defaultValue:64,min:32,max:120,step:1},buttonBackground:{type:ControlType.Color,title:\"Button Bg\",defaultValue:\"#FFFFFF\"},iconColor:{type:ControlType.Color,title:\"Arrow Color\",defaultValue:\"#000000\"},buttonShadow:{type:ControlType.BoxShadow,title:\"Button Shadow\",defaultValue:\"0 10px 24px rgba(0,0,0,0.14)\"},interaction:{type:ControlType.Enum,title:\"Action\",options:[\"events\",\"scroll\"],optionTitles:[\"Events\",\"Link to horizontal scroll\"],defaultValue:\"scroll\",displaySegmentedControl:true},scrollContainerId:{type:ControlType.String,title:\"Scroll ID\",defaultValue:\"scroll-grid\",hidden:p=>p.interaction!==\"scroll\"},scrollBehavior:{type:ControlType.Enum,title:\"Scroll\",options:[\"smooth\",\"auto\"],optionTitles:[\"Smooth\",\"Instant\"],defaultValue:\"smooth\",hidden:p=>p.interaction!==\"scroll\"},onPrev:{type:ControlType.EventHandler,title:\"On Prev\",hidden:p=>p.interaction!==\"events\"},onNext:{type:ControlType.EventHandler,title:\"On Next\",hidden:p=>p.interaction!==\"events\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SliderControls\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"900\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"90\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SliderControls.map"],"mappings":"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"}