{"version":3,"file":"SliderEdgeArrows.CIbBPDvL.mjs","names":["useRef","useState","useCallback","_Fragment","__esmMin","ne","init_npm_react_18_3_1","window","_e","de","init_jsx_runtime","init_npm_react_dom_18_3_1","c","p","ce","init_ssg_sandbox_shims","addPropertyControls","ControlType","useIsStaticRenderer","init_framer_BL9pqxmF","Chevron","size","back","SliderEdgeArrows","props","isStatic","rootRef","scrollerRef","hostRef","host","setHost","edges","setEdges","box","setBox","measure","el","parent","max","style","padLeft","padRight","padTop","padBottom","target","frame","root","pick","scopeName","targetName","cleanup","retry","retryTimer","frame1","frame2","attach","observer","scroll","direction","overlayStyle","buttonStyle","top","buttonColor","iconColor","ready","bottom","placement","rowStyle","pairButton","enabled","l","backLabel","nextLabel","inset","init_SliderEdgeArrows"],"sources":["https:/framerusercontent.com/modules/JwMXAAXlk5KtfqfEiEVw/qUF1vWjfuRTeF36MUrdS/SliderEdgeArrows.js"],"sourcesContent":["// Edge arrows for a Framer overflow stack, matching the catalogue rows in\n// StartDesigning exactly.\n//\n// The catalogue puts .sd-row-arrow inside .sd-row-body at left/right 8px, and\n// .sd-row-body is the scroller's content column. The Framer frame that carries\n// these rows has 20px horizontal padding, so the arrow lands 28px from the\n// window edge. To match, measure the target's CONTENT box, not its border box:\n// 8px inside a padding box would sit 20px too far out.\n//\n// The buttons are portalled into the scroller's own parent, so this component\n// can sit anywhere in the section without touching the layout.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useCallback,useEffect,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";function Chevron({back=false,size=16}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.25\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:back?\"M14 5l-7 7 7 7\":\"M10 5l7 7-7 7\"})});}/**\n * Scroll arrows overlaid on the edges of a horizontal slider.\n *\n * @framerIntrinsicWidth 1\n * @framerIntrinsicHeight 1\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerDisableUnlink\n */export default function SliderEdgeArrows(props){const{scopeName=\"section_slider_features\",targetName=\"Design Studio Feature Slider\",size=36,inset=8,top=42,buttonColor=\"#ffffff\",iconColor=\"#1d1d1f\",backLabel=\"Scroll back\",nextLabel=\"Scroll forward\",placement=\"edges\"}=props;const isStatic=useIsStaticRenderer();const rootRef=useRef(null);const scrollerRef=useRef(null);const hostRef=useRef(null);const[host,setHost]=useState(null);const[edges,setEdges]=useState({back:false,next:false});const[box,setBox]=useState({left:0,top:0,width:0,height:0});// The content column of the scroller, in the host's coordinate space.\nconst measure=useCallback(()=>{const el=scrollerRef.current;const parent=hostRef.current;if(!el||!parent)return;const max=el.scrollWidth-el.clientWidth;setEdges({back:el.scrollLeft>4,next:max>4&&el.scrollLeft<max-4});const style=getComputedStyle(el);const padLeft=parseFloat(style.paddingLeft)||0;const padRight=parseFloat(style.paddingRight)||0;const padTop=parseFloat(style.paddingTop)||0;const padBottom=parseFloat(style.paddingBottom)||0;const target=el.getBoundingClientRect();const frame=parent.getBoundingClientRect();setBox({left:target.left-frame.left+parent.scrollLeft+padLeft,top:target.top-frame.top+parent.scrollTop+padTop,width:Math.max(0,target.width-padLeft-padRight),height:Math.max(0,target.height-padTop-padBottom)});},[]);useEffect(()=>{if(isStatic||typeof document===\"undefined\")return;const root=rootRef.current;if(!root)return;// Stay inside our own breakpoint copy: the layer name is not unique.\nconst pick=()=>{const scope=scopeName?root.closest(`[data-framer-name=\"${scopeName}\"]`):null;const within=scope??document;return within.querySelector(`[data-framer-name=\"${targetName}\"]`);};let cleanup;let retry=0;let retryTimer=0;let frame1=0;let frame2=0;const attach=()=>{const el=pick();if(!el||!el.parentElement){if(retry++<40)retryTimer=window.setTimeout(attach,100);return;}const parent=el.parentElement;if(getComputedStyle(parent).position===\"static\"){parent.style.position=\"relative\";}scrollerRef.current=el;hostRef.current=parent;setHost(parent);measure();// Layout keeps moving after mount: fonts, images, a hidden tab that\n// only gets a real size later. Measure again instead of trusting the\n// first pass.\nframe1=requestAnimationFrame(()=>{measure();frame2=requestAnimationFrame(measure);});el.addEventListener(\"scroll\",measure,{passive:true});const observer=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(measure):null;observer?.observe(el);observer?.observe(parent);cleanup=()=>{el.removeEventListener(\"scroll\",measure);observer?.disconnect();};};attach();window.addEventListener(\"resize\",measure);window.addEventListener(\"load\",measure);return()=>{window.clearTimeout(retryTimer);cancelAnimationFrame(frame1);cancelAnimationFrame(frame2);window.removeEventListener(\"resize\",measure);window.removeEventListener(\"load\",measure);cleanup?.();};},[isStatic,scopeName,targetName,measure]);function scroll(direction){const el=scrollerRef.current;if(!el)return;el.scrollBy({left:direction*el.clientWidth*.9,behavior:window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches?\"auto\":\"smooth\"});}const overlayStyle={position:\"absolute\",left:box.left,top:box.top,width:box.width,height:box.height,pointerEvents:\"none\",zIndex:5};const buttonStyle={position:\"absolute\",top:`${top}%`,width:size,height:size,borderRadius:\"50%\",background:buttonColor,border:\"1px solid rgba(0,0,0,.06)\",boxShadow:\"0 6px 16px rgba(0,0,0,.14)\",display:\"grid\",placeItems:\"center\",transform:\"translateY(-50%)\",color:iconColor,cursor:\"pointer\",padding:0,pointerEvents:\"auto\"};const ready=box.width>size*2;// Bottom right: the same pair ProductCollection and StartDesigning draw\n// under their rows, so every slider on a page shares one control.\nconst bottom=placement===\"bottom\";const rowStyle={position:\"absolute\",left:box.left,top:box.top+box.height+14,width:box.width,display:\"flex\",justifyContent:\"flex-end\",gap:8,zIndex:5};const pairButton=enabled=>({width:36,height:36,borderRadius:\"50%\",border:0,padding:0,background:\"rgba(0,0,0,.06)\",color:\"rgba(0,0,0,.88)\",display:\"grid\",placeItems:\"center\",cursor:enabled?\"pointer\":\"default\",opacity:enabled?1:.35});return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n.mm-carousel-arrow{box-sizing:border-box!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;flex-shrink:0!important;border:0!important;border-radius:50%!important;padding:0!important;background:rgba(0,0,0,.06)!important;color:rgba(0,0,0,.88)!important;box-shadow:none!important;display:inline-flex;align-items:center!important;justify-content:center!important;cursor:pointer;transition:background-color 180ms,opacity 180ms}\n.mm-carousel-arrow:not(:disabled):not([aria-disabled=\"true\"]):hover{background:rgba(0,0,0,.10)!important}\n.mm-carousel-arrow:disabled,.mm-carousel-arrow[aria-disabled=\"true\"]{opacity:.35!important;cursor:default!important}\n.mm-carousel-arrow:focus-visible{outline:2px solid #007aff;outline-offset:4px}\n.mm-carousel-arrow svg{width:16px!important;height:16px!important;background:none!important;fill:none!important;stroke:currentColor!important;stroke-width:2.25!important;stroke-linecap:round!important;stroke-linejoin:round!important}\n.mm-carousel-arrow svg path{fill:none!important;stroke:currentColor!important;stroke-width:2.25!important;stroke-linecap:round!important;stroke-linejoin:round!important}\n`}),/*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:{width:1,height:1,pointerEvents:\"none\"},\"aria-hidden\":\"true\"}),host&&ready&&bottom&&(edges.back||edges.next)&&/*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{style:rowStyle,children:[/*#__PURE__*/_jsx(\"button\",{className:\"mm-carousel-arrow\",type:\"button\",\"aria-label\":backLabel,disabled:!edges.back,onClick:()=>scroll(-1),style:pairButton(edges.back),children:/*#__PURE__*/_jsx(Chevron,{back:true,size:16})}),/*#__PURE__*/_jsx(\"button\",{className:\"mm-carousel-arrow\",type:\"button\",\"aria-label\":nextLabel,disabled:!edges.next,onClick:()=>scroll(1),style:pairButton(edges.next),children:/*#__PURE__*/_jsx(Chevron,{size:16})})]}),host),host&&ready&&!bottom&&/*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{style:overlayStyle,children:[edges.back&&/*#__PURE__*/_jsx(\"button\",{className:\"mm-carousel-arrow\",type:\"button\",\"aria-label\":backLabel,onClick:()=>scroll(-1),style:{...buttonStyle,left:inset},children:/*#__PURE__*/_jsx(Chevron,{back:true,size:Math.round(size*.44)})}),edges.next&&/*#__PURE__*/_jsx(\"button\",{className:\"mm-carousel-arrow\",type:\"button\",\"aria-label\":nextLabel,onClick:()=>scroll(1),style:{...buttonStyle,right:inset},children:/*#__PURE__*/_jsx(Chevron,{size:Math.round(size*.44)})})]}),host)]});}addPropertyControls(SliderEdgeArrows,{placement:{type:ControlType.Enum,title:\"Placement\",options:[\"edges\",\"bottom\"],optionTitles:[\"Edges\",\"Bottom right\"],defaultValue:\"edges\",displaySegmentedControl:true},scopeName:{type:ControlType.String,title:\"Section\",description:\"Layer name of the section the slider lives in.\",defaultValue:\"section_slider_features\",preventLocalization:true},targetName:{type:ControlType.String,title:\"Slider\",description:\"Layer name of the scrolling stack.\",defaultValue:\"Design Studio Feature Slider\",preventLocalization:true},size:{type:ControlType.Number,title:\"Size\",defaultValue:36,min:24,max:64,step:2,unit:\"px\"},inset:{type:ControlType.Number,title:\"Inset\",description:\"From the content column, like the catalogue rows.\",defaultValue:8,min:0,max:64,step:1,unit:\"px\"},top:{type:ControlType.Number,title:\"Vertical\",defaultValue:42,min:0,max:100,step:1,unit:\"%\"},buttonColor:{type:ControlType.Color,title:\"Button\",defaultValue:\"#ffffff\"},iconColor:{type:ControlType.Color,title:\"Icon\",defaultValue:\"#1d1d1f\"},backLabel:{type:ControlType.String,title:\"Back label\",defaultValue:\"Scroll back\"},nextLabel:{type:ControlType.String,title:\"Forward label\",defaultValue:\"Scroll forward\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SliderEdgeArrows\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SliderEdgeArrows.map"],"mappings":"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"}