{"version":3,"file":"Carousel_Controls_Collection.CDlyGDRK.mjs","names":["useRef","useState","useCallback","useMemo"],"sources":["https:/framerusercontent.com/modules/f4reHtcZudGI4BXRiTh9/wU8a4q395WzEXu5Kbf6X/Carousel_Controls_Collection.js"],"sourcesContent":["// Arrow controls for scrollable Framer Collections / stacks\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{startTransition,useCallback,useEffect,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=\"\",galleryKey=\"\",style}=props;const normalizedDirection=direction===\"vertical\"||direction===\"↕\"?\"vertical\":\"horizontal\";const isHorizontal=normalizedDirection===\"horizontal\";const previousAriaLabel=previousLabel?.trim()||\"Previous\";const nextAriaLabel=nextLabel?.trim()||\"Next\";const rootRef=useRef(null);const carouselRef=useRef(null);const targetCleanupRef=useRef(null);const resolveAndBindRef=useRef(null);const scheduleUpdateRef=useRef(null);const[hasTarget,setHasTarget]=useState(false);const[canScrollPrevious,setCanScrollPrevious]=useState(false);const[canScrollNext,setCanScrollNext]=useState(false);const setTargetState=useCallback((nextHasTarget,nextCanScrollPrevious=false,nextCanScrollNext=false)=>{startTransition(()=>{setHasTarget(nextHasTarget);setCanScrollPrevious(nextCanScrollPrevious);setCanScrollNext(nextCanScrollNext);});},[]);const isElementDisplayed=useCallback(el=>{if(typeof window===\"undefined\")return false;if(!el.isConnected)return false;if(el.clientWidth<=0||el.clientHeight<=0)return false;if(el.getClientRects().length===0)return false;let current=el;while(current){const computed=window.getComputedStyle(current);if(computed.display===\"none\"||computed.visibility===\"hidden\"||computed.visibility===\"collapse\"){return false;}if(current.hidden)return false;current=current.parentElement;}return true;},[]);const canScrollOnAxis=useCallback(el=>{if(isHorizontal)return el.scrollWidth>el.clientWidth+1;return el.scrollHeight>el.clientHeight+1;},[isHorizontal]);const hasScrollableOverflowStyle=useCallback(el=>{if(typeof window===\"undefined\")return false;const computed=window.getComputedStyle(el);const overflow=isHorizontal?computed.overflowX:computed.overflowY;const normalized=overflow.toLowerCase();return normalized===\"auto\"||normalized===\"scroll\"||normalized===\"overlay\";},[isHorizontal]);const findScrollableFromNamedRoot=useCallback(namedRoot=>{if(isElementDisplayed(namedRoot)&&canScrollOnAxis(namedRoot)&&hasScrollableOverflowStyle(namedRoot)){return namedRoot;}const candidates=[namedRoot];const explicitNested=[namedRoot.querySelector(\"[data-framer-collection-layout]\"),namedRoot.querySelector('[data-framer-component-type=\"Scroll\"]')].filter(el=>Boolean(el));candidates.push(...explicitNested);candidates.push(...Array.from(namedRoot.querySelectorAll(\"*\")));const preferred=candidates.find(el=>isElementDisplayed(el)&&canScrollOnAxis(el)&&hasScrollableOverflowStyle(el));if(preferred)return preferred;const fallback=candidates.find(el=>isElementDisplayed(el)&&canScrollOnAxis(el));return fallback||null;},[canScrollOnAxis,hasScrollableOverflowStyle,isElementDisplayed]);const resolveScopeRoot=useCallback(()=>{if(typeof window===\"undefined\")return null;const controlRoot=rootRef.current;if(!controlRoot)return document.body;const name=selectedCarousel?.trim();if(!name)return controlRoot.parentElement||document.body;let current=controlRoot.parentElement;while(current){const candidates=Array.from(current.querySelectorAll(`[data-framer-name=\"${CSS.escape(name)}\"]`)).filter(node=>!controlRoot.contains(node));if(candidates.length>0)return current;current=current.parentElement;}return document.body;},[selectedCarousel]);// Find the scrollable container for a given Framer layer name\nconst findTarget=useCallback(()=>{if(typeof window===\"undefined\")return null;const name=selectedCarousel?.trim();if(!name)return null;const controlRoot=rootRef.current;const scopeRoot=resolveScopeRoot();if(!scopeRoot)return null;const namedRoots=Array.from(scopeRoot.querySelectorAll(`[data-framer-name=\"${CSS.escape(name)}\"]`)).filter(node=>!controlRoot?.contains(node));for(const root of namedRoots){const target=findScrollableFromNamedRoot(root);if(target)return target;}return null;},[findScrollableFromNamedRoot,resolveScopeRoot,selectedCarousel]);// Resolve the target once the Collection has rendered\nuseEffect(()=>{carouselRef.current=null;targetCleanupRef.current?.();targetCleanupRef.current=null;setTargetState(false);if(!selectedCarousel.trim())return;let cancelled=false;let frameId=null;let settleFrameId=null;let settleUntil=0;let scopeObserver=null;let observedScopeRoot=null;let currentTarget=null;const resolveAndBind=()=>{if(cancelled)return;const found=findTarget();const bound=bindResolvedTarget(found);if(!bound&&typeof window!==\"undefined\"&&Date.now()<settleUntil){if(settleFrameId!==null)cancelAnimationFrame(settleFrameId);settleFrameId=requestAnimationFrame(()=>{settleFrameId=null;resolveAndBind();});}};const scheduleResolveAndBind=()=>{if(frameId!==null)cancelAnimationFrame(frameId);frameId=requestAnimationFrame(()=>{frameId=null;resolveAndBind();});};const bindResolvedTarget=el=>{if(!el||!isElementDisplayed(el)){if(currentTarget){targetCleanupRef.current?.();targetCleanupRef.current=null;scheduleUpdateRef.current=null;currentTarget=null;carouselRef.current=null;}setTargetState(false);return null;}if(currentTarget===el&&carouselRef.current===el){scheduleUpdateRef.current?.();return el;}targetCleanupRef.current?.();targetCleanupRef.current=null;scheduleUpdateRef.current=null;carouselRef.current=null;let resizeObserver=null;let targetObserver=null;const imageListeners=[];let updateFrame=null;const updateScrollState=()=>{if(!carouselRef.current||!carouselRef.current.isConnected){setTargetState(false);scheduleResolveAndBind();return;}const target=carouselRef.current;const scrollPosition=isHorizontal?target.scrollLeft:target.scrollTop;const viewportSize=isHorizontal?target.clientWidth:target.clientHeight;const contentSize=isHorizontal?target.scrollWidth:target.scrollHeight;const maxScroll=Math.max(0,contentSize-viewportSize);const edgeTolerance=2;setTargetState(true,scrollPosition>edgeTolerance,scrollPosition<maxScroll-edgeTolerance);};const scheduleUpdate=()=>{if(updateFrame!==null)cancelAnimationFrame(updateFrame);updateFrame=requestAnimationFrame(()=>{updateFrame=null;updateScrollState();});};const attachImageLoadListeners=()=>{imageListeners.forEach(({img,fn})=>{img.removeEventListener(\"load\",fn);img.removeEventListener(\"error\",fn);});imageListeners.length=0;const imgs=Array.from(el.querySelectorAll(\"img\"));imgs.forEach(img=>{const fn=()=>scheduleUpdate();img.addEventListener(\"load\",fn);img.addEventListener(\"error\",fn);imageListeners.push({img,fn});});};currentTarget=el;carouselRef.current=el;el.addEventListener(\"scroll\",scheduleUpdate,{passive:true});window.addEventListener(\"resize\",scheduleUpdate);if(typeof ResizeObserver!==\"undefined\"){resizeObserver=new ResizeObserver(()=>{scheduleUpdate();});resizeObserver.observe(el);if(el.firstElementChild instanceof HTMLElement){resizeObserver.observe(el.firstElementChild);}}if(typeof MutationObserver!==\"undefined\"){targetObserver=new MutationObserver(()=>{attachImageLoadListeners();scheduleUpdate();});targetObserver.observe(el,{childList:true,subtree:true});}scheduleUpdateRef.current=scheduleUpdate;attachImageLoadListeners();scheduleUpdate();targetCleanupRef.current=()=>{if(updateFrame!==null)cancelAnimationFrame(updateFrame);el.removeEventListener(\"scroll\",scheduleUpdate);window.removeEventListener(\"resize\",scheduleUpdate);resizeObserver?.disconnect();targetObserver?.disconnect();imageListeners.forEach(({img,fn})=>{img.removeEventListener(\"load\",fn);img.removeEventListener(\"error\",fn);});if(currentTarget===el){currentTarget=null;}};return el;};const bindScopeObserver=()=>{if(typeof MutationObserver===\"undefined\")return;const scopeRoot=resolveScopeRoot();if(!scopeRoot||scopeRoot===observedScopeRoot)return;scopeObserver?.disconnect();observedScopeRoot=scopeRoot;scopeObserver=new MutationObserver(records=>{const controlRoot=rootRef.current;const target=carouselRef.current;const selectedName=selectedCarousel.trim();const nodeMayContainNamedRoot=node=>{if(!(node instanceof HTMLElement)||!selectedName)return false;const ownName=node.getAttribute(\"data-framer-name\");if(ownName&&ownName===selectedName)return true;return Boolean(node.querySelector(`[data-framer-name=\"${CSS.escape(selectedName)}\"]`));};const hasExternalMutation=records.some(record=>{const recordTarget=record.target;if(controlRoot&&recordTarget instanceof Node&&controlRoot.contains(recordTarget)){return false;}const hasTarget=Boolean(target);if(!(recordTarget instanceof Node))return!hasTarget;if(record.type===\"attributes\"){const attr=record.attributeName;if(!attr)return false;const isStyleOrClass=attr===\"style\"||attr===\"class\";const isVisibilityOrName=attr===\"hidden\"||attr===\"data-framer-name\";if(!isStyleOrClass&&!isVisibilityOrName)return false;if(!target)return isVisibilityOrName;if(recordTarget===target)return true;const targetContainsRecord=target.contains(recordTarget);const recordContainsTarget=recordTarget instanceof HTMLElement&&recordTarget.contains(target);if(targetContainsRecord){return isVisibilityOrName;}if(recordContainsTarget)return true;return false;}if(record.type===\"childList\"){if(!target){return Array.from(record.addedNodes).some(nodeMayContainNamedRoot)||Array.from(record.removedNodes).some(nodeMayContainNamedRoot);}if(recordTarget===target||target.contains(recordTarget)){return false;}const removedContainsTarget=Array.from(record.removedNodes).some(node=>node.contains?.(target)===true);if(removedContainsTarget)return true;return false;}return!hasTarget;});if(!hasExternalMutation)return;scheduleResolveAndBind();});scopeObserver.observe(scopeRoot,{childList:true,subtree:true,attributes:true,attributeFilter:[\"hidden\",\"data-framer-name\",\"style\",\"class\"]});};if(typeof window!==\"undefined\"){settleUntil=Date.now()+1500;}bindScopeObserver();scheduleResolveAndBind();resolveAndBindRef.current=()=>{const cached=carouselRef.current;if(cached&&cached.isConnected){scheduleUpdateRef.current?.();return cached;}bindScopeObserver();return bindResolvedTarget(findTarget());};return()=>{cancelled=true;if(frameId!==null)cancelAnimationFrame(frameId);if(settleFrameId!==null)cancelAnimationFrame(settleFrameId);scopeObserver?.disconnect();targetCleanupRef.current?.();targetCleanupRef.current=null;scheduleUpdateRef.current=null;resolveAndBindRef.current=null;carouselRef.current=null;};},[direction,findTarget,galleryKey,isElementDisplayed,selectedCarousel,setTargetState,resolveScopeRoot]);const scrollByArrow=type=>{const cached=carouselRef.current;const el=cached&&cached.isConnected?cached:resolveAndBindRef.current?.()||null;if(!el)return;const base=isHorizontal?el.clientWidth:el.clientHeight;const delta=base*.8*(type===\"prev\"?-1:1);if(isHorizontal){el.scrollBy({left:delta,behavior:\"smooth\"});}else{el.scrollBy({top:delta,behavior:\"smooth\"});}};const baseButtonStyle=useMemo(()=>({width:size,height:size,backgroundColor,border:\"none\",borderRadius,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"transform .18s cubic-bezier(.4,0,.2,1), opacity .18s\",willChange:\"transform\",userSelect:\"none\",cursor:hasTarget?\"pointer\":\"default\"}),[size,backgroundColor,borderRadius,hasTarget]);const getButtonStyle=disabled=>({...baseButtonStyle,opacity:disabled?.4:1,cursor:disabled?\"default\":\"pointer\"});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(()=>({position:\"relative\",display:\"flex\",alignItems:\"center\",gap:spacing,flexDirection:isHorizontal?\"row\":\"column\",width:\"100%\",height:\"100%\",...style}),[spacing,isHorizontal,style]);const labelStyle=useMemo(()=>({...font||{},color:arrowColor,margin:0,userSelect:\"none\"}),[font,arrowColor]);const renderArrow=(kind,disabled)=>{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:disabled?.4:1}});}return /*#__PURE__*/_jsx(\"svg\",{style:{...arrowStyle,stroke:disabled?\"#999999\":arrowColor},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 onHover=(e,up)=>{if(e.currentTarget.disabled)return;const el=e.currentTarget;el.style.transform=up?\"scale(1.05)\":\"scale(1)\";};return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:containerStyle,children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:8,flexDirection:isHorizontal?\"row\":\"column\"},children:[/*#__PURE__*/_jsx(\"button\",{style:getButtonStyle(!hasTarget||!canScrollPrevious),disabled:!hasTarget||!canScrollPrevious,onClick:()=>scrollByArrow(\"prev\"),\"aria-label\":previousAriaLabel,onMouseEnter:e=>onHover(e,true),onMouseLeave:e=>onHover(e,false),children:renderArrow(\"prev\",!hasTarget||!canScrollPrevious)}),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:getButtonStyle(!hasTarget||!canScrollNext),disabled:!hasTarget||!canScrollNext,onClick:()=>scrollByArrow(\"next\"),\"aria-label\":nextAriaLabel,onMouseEnter:e=>onHover(e,true),onMouseLeave:e=>onHover(e,false),children:renderArrow(\"next\",!hasTarget||!canScrollNext)}),showLabels&&/*#__PURE__*/_jsx(\"span\",{style:labelStyle,children:nextLabel})]})]});}addPropertyControls(CarouselControls,{selectedCarousel:{type:ControlType.String,title:\"Collection\",defaultValue:\"\",placeholder:\"Framer layer name…\"},galleryKey:{type:ControlType.String,title:\"Gallery Key\",defaultValue:\"\",placeholder:\"corelli / monteverdi\"},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})=>Boolean(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\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Carousel_Controls_Collection.map"],"mappings":"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"}