{"version":3,"file":"ProjectCarouselInteraction.CQug94er.mjs","names":["React.useState","React.useMemo","React.forwardRef","React.useRef","React.useCallback","_Fragment","__esmMin","pe","init_npm_react_18_3_1","ne","init_ssg_sandbox_shims","te","window","l","_e","K","c","J","init_jsx_runtime","ce","de","init_framer_BWFVvmND","addPropertyControls","useIsStaticRenderer","ControlType","GlassWallSystems","props","active","setActive","animationKey","setAnimationKey","activeSystem","systems","item","rawSystem","mapped","systemParamToId","choose","nextActive","id","value","textColor","accent","selected","system","activeColor","SystemIcon","ArchitecturalScene","Benefit","quoteURL","projectsURL","panelStyles","i","animation","type","background","index","symbol","icon","title","text","ManufacturerCarouselInteraction","rest","isStatic","hostRef","railRef","reducedMotionRef","dragStateRef","touchSwipeRef","rafRef","slideCount","setSlideCount","activeIndex","setActiveIndex","viewportWidth","setViewportWidth","arrowAnchor","setArrowAnchor","isPhone","isTablet","isMobileTablet","canNavigate","setStateTransition","updater","setMergedRailRef","node","forwardedRef","syncReducedMotion","updateSlidesMeta","rail","count","prev","getWrappedIndex","snapToIndex","targetIndex","wrap","target","left","updateArrowAnchor","host","activeSlide","hostRect","targetRect","centerY","nextLeft","nextRight","media","onMedia","onResize","el","child","updateActiveFromScroll","centerX","nearestIndex","nearestDistance","childCenter","distance","observer","hostObserver","onPointerDown","event","onPointerMove","delta","endDrag","onTouchStart","touch","onTouchMove","dx","dy","onTouchEnd","state","totalDx","elapsed","velocity","onTouchCancel","Component","style","isActive","EditorialFeatureRowHover","rowRef","savedStylesRef","isDesktopWide","setMergedRef","deepenNeutralColor","color","rgbaMatch","parts","part","amount","alphaBoost","onEnter","row","saveAndSet","next","key","computedRow","svg","textNode","computed","onLeave","saved","ProjectLoadMoreController","observerRef","debounceTimerRef","buttonRef","visibleCountRef","getGridAndButton","grid","button","clearControlledHiding","card","originalDisplay","collectMatchingCards","setCardMediaLazy","cards","applyVisibleCount","refs","options","targetVisibleCount","matchingCards","visibleLimit","scheduleReset","hasDescendant","nodes","element","attachButtonListener","onLoadMoreClick","resetVisibleCount","nextCount","shouldReset","mutation","mutations","targetElement","VendorLinkAccessibility","parseColor","trimmed","hex","raw","full","rgb","getEffectiveBackground","current","startElement","isDarkBackground","vendorHrefBySlug","vendorProductsHrefBySlug","vendorLabelToSlug","normalizeLabel","extractTextFromNode","resolveVendorHrefFromCandidates","candidates","normalized","directSlug","inferredSlug","hasProductsIntent","resolveVendorHref","authoredHref","anchor","baseHref","slug","resolvedHrefFromProps","textFromChildren","nextHref","handleFocusIn","dark","handleFocusOut","handleClickCapture","mergedLinkProp","init_ProjectCarouselInteraction"],"sources":["https:/framerusercontent.com/modules/A7VPRCNEyiHH4lEGlW5W/EH14mm5uYD07JTPzyk1N/ProjectCarouselInteraction.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const systems=[{id:\"multi\",name:\"Multi-Slide\",short:\"Panels slide on parallel tracks and stack neatly to create expansive openings.\",description:\"Multiple glass panels glide along parallel tracks and stack neatly to create expansive openings.\"},{id:\"pocket\",name:\"Pocketing Systems\",short:\"Panels disappear completely into concealed wall pockets for a clean, open connection.\",description:\"Sliding panels disappear completely into concealed wall pockets for an uninterrupted indoor-outdoor connection.\"},{id:\"stack\",name:\"Stacking Systems\",short:\"Panels collect neatly at one or both ends without requiring a concealed wall pocket.\",description:\"Panels collect neatly at one or both ends of the opening while maximizing usable space.\"},{id:\"lift\",name:\"Lift & Slide\",short:\"Oversized panels lift from their seals and glide smoothly with exceptional performance.\",description:\"Oversized, high-performance panels are engineered to move smoothly while providing exceptional weather sealing when closed.\"}];const systemParamToId={\"multi-slide\":\"multi\",pocketing:\"pocket\",stacking:\"stack\",\"lift-slide\":\"lift\"};export default function GlassWallSystems(props){const{background,textColor,accent,activeColor,quoteURL,projectsURL}=props;const[active,setActive]=React.useState(\"multi\");const[animationKey,setAnimationKey]=React.useState(0);const activeSystem=React.useMemo(()=>systems.find(item=>item.id===active)??systems[0],[active]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const params=new URLSearchParams(window.location.search);const rawSystem=params.get(\"system\")?.trim().toLowerCase()??\"\";const mapped=systemParamToId[rawSystem]??\"multi\";React.startTransition(()=>{setActive(mapped);});},[]);function choose(id){const nextActive=id===\"multi\"||id===\"pocket\"||id===\"stack\"||id===\"lift\"?id:\"multi\";React.startTransition(()=>{setActive(nextActive);setAnimationKey(value=>value+1);});}return /*#__PURE__*/_jsxs(\"section\",{className:\"pellco-glass-root\",style:{width:\"100%\",maxWidth:\"100%\",boxSizing:\"border-box\",overflow:\"hidden\",background,color:textColor},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .pellco-glass-root,\n                .pellco-glass-root * {\n                    box-sizing: border-box;\n                }\n\n                .pellco-glass-inner {\n                    width: 100%;\n                    max-width: 1240px;\n                    margin: 0 auto;\n                    padding: 90px 54px;\n                    min-width: 0;\n                }\n\n                /* HEADER */\n\n                .pellco-system-header {\n                    max-width: 900px;\n                    margin: 0 auto 48px;\n                    text-align: center;\n                }\n\n                .pellco-system-eyebrow {\n                    font-family: Arial, sans-serif;\n                    font-size: 11px;\n                    font-weight: 700;\n                    letter-spacing: .16em;\n                    margin-bottom: 16px;\n                }\n\n                .pellco-system-heading {\n                    margin: 0;\n                    font-family: Georgia, serif;\n                    font-weight: 400;\n                    font-size: clamp(42px, 6vw, 76px);\n                    line-height: .98;\n                    letter-spacing: -.035em;\n                }\n\n                .pellco-system-intro {\n                    max-width: 720px;\n                    margin: 24px auto 0;\n                    font-family: Arial, sans-serif;\n                    font-size: 16px;\n                    line-height: 1.65;\n                    opacity: .7;\n                }\n\n                /* SELECTORS */\n\n                .pellco-system-grid {\n                    display: grid;\n                    grid-template-columns: repeat(4, minmax(0, 1fr));\n                }\n\n                .pellco-system-button {\n                    min-width: 0;\n                    min-height: 132px;\n                    padding: 22px;\n                    border: 1px solid rgba(32,32,29,.14);\n                    margin: -1px 0 0 -1px;\n                    cursor: pointer;\n                    text-align: left;\n                    transition:\n                        background .25s ease,\n                        color .25s ease;\n                }\n\n                .pellco-system-short {\n                    font-family: Arial, sans-serif;\n                    font-size: 12px;\n                    line-height: 1.5;\n                }\n\n                .pellco-system-icon-wrap {\n                    margin-bottom: 15px;\n                }\n\n                /* DESCRIPTION */\n\n                .pellco-active-description {\n                    max-width: 700px;\n                    margin: 34px auto 30px;\n                    text-align: center;\n                }\n\n                /* SCENE */\n\n                .pellco-scene-wrap {\n                    position: relative;\n                    width: 100%;\n                    aspect-ratio: 2.45 / 1;\n                    min-height: 260px;\n                    margin-top: 0;\n                    overflow: hidden;\n                    border-bottom: 1px solid rgba(32,32,29,.13);\n                }\n\n                /* BENEFITS */\n\n                .pellco-benefits {\n                    display: grid;\n                    grid-template-columns: repeat(4, minmax(0, 1fr));\n                    border-top: 1px solid rgba(32,32,29,.13);\n                    border-bottom: 1px solid rgba(32,32,29,.13);\n                    margin-bottom: 38px;\n                }\n\n                /* CTA */\n\n                .pellco-cta {\n                    display: flex;\n                    align-items: center;\n                    justify-content: space-between;\n                    gap: 30px;\n                    padding: 28px 32px;\n                }\n\n                .pellco-buttons {\n                    display: flex;\n                    gap: 10px;\n                    flex-shrink: 0;\n                }\n\n                /* ANIMATIONS */\n\n                @keyframes panelMulti1 {\n                    from { transform: translateX(0); }\n                    to { transform: translateX(192%); }\n                }\n\n                @keyframes panelMulti2 {\n                    from { transform: translateX(0); }\n                    to { transform: translateX(128%); }\n                }\n\n                @keyframes panelMulti3 {\n                    from { transform: translateX(0); }\n                    to { transform: translateX(64%); }\n                }\n\n                @keyframes pocketAway {\n                    from {\n                        transform: translateX(0);\n                        opacity: 1;\n                    }\n                    to {\n                        transform: translateX(-115%);\n                        opacity: 0;\n                    }\n                }\n\n                @keyframes stackOne {\n                    from {\n                        transform: translateX(0) scaleX(1);\n                    }\n                    to {\n                        transform: translateX(205%) scaleX(.28);\n                    }\n                }\n\n                @keyframes stackTwo {\n                    from {\n                        transform: translateX(0) scaleX(1);\n                    }\n                    to {\n                        transform: translateX(135%) scaleX(.28);\n                    }\n                }\n\n                @keyframes stackThree {\n                    from {\n                        transform: translateX(0) scaleX(1);\n                    }\n                    to {\n                        transform: translateX(65%) scaleX(.28);\n                    }\n                }\n\n                @keyframes liftSlide {\n                    0% {\n                        transform: translate(0,0);\n                    }\n                    20% {\n                        transform: translate(0,-8px);\n                    }\n                    100% {\n                        transform: translate(70%,-8px);\n                    }\n                }\n\n                .glass-panel {\n                    will-change: transform;\n                }\n\n                /* TABLET */\n\n                @media (max-width: 900px) {\n                    .pellco-glass-inner {\n                        padding: 72px 36px;\n                    }\n\n                    .pellco-system-grid {\n                        grid-template-columns: repeat(2, minmax(0, 1fr));\n                    }\n\n                    .pellco-benefits {\n                        grid-template-columns: repeat(2, minmax(0, 1fr));\n                    }\n\n                    .pellco-cta {\n                        flex-direction: column;\n                        align-items: flex-start;\n                    }\n                }\n\n                /* PHONE */\n\n                @media (max-width: 560px) {\n                    .pellco-glass-inner {\n                        padding: 54px 18px 62px;\n                    }\n\n                    .pellco-system-header {\n                        width: 100%;\n                        margin-bottom: 30px;\n                    }\n\n                    .pellco-system-eyebrow {\n                        font-size: 9px;\n                        letter-spacing: .14em;\n                        margin-bottom: 12px;\n                    }\n\n                    .pellco-system-heading {\n                        width: 100%;\n                        max-width: 340px;\n                        margin-left: auto;\n                        margin-right: auto;\n                        font-size: 38px;\n                        line-height: 1.02;\n                        letter-spacing: -.025em;\n                        overflow-wrap: normal;\n                        word-break: normal;\n                    }\n\n                    .pellco-system-intro {\n                        width: 100%;\n                        max-width: 330px;\n                        margin-top: 18px;\n                        font-size: 14px;\n                        line-height: 1.55;\n                    }\n\n                    /* compact selector rows */\n\n                    .pellco-system-grid {\n                        display: flex;\n                        flex-direction: column;\n                        width: 100%;\n                    }\n\n                    .pellco-system-button {\n                        width: 100%;\n                        min-height: 72px;\n                        padding: 13px 15px;\n                        margin: -1px 0 0 0;\n                        display: flex;\n                        align-items: center;\n                        gap: 13px;\n                    }\n\n                    .pellco-mobile-button-copy {\n                        flex: 1;\n                        min-width: 0;\n                    }\n\n                    .pellco-system-icon-wrap {\n                        margin-bottom: 0;\n                    }\n\n                    .pellco-system-short {\n                        display: none;\n                    }\n\n                    /* shorter diagram */\n\n                    .pellco-scene-wrap {\n                        aspect-ratio: auto;\n                        height: 235px;\n                        min-height: 235px;\n                        margin-top: 0;\n                    }\n\n                    .pellco-active-description {\n                        width: 100%;\n                        margin: 26px auto 24px;\n                        padding: 0 4px;\n                    }\n\n                    .pellco-active-description h3 {\n                        font-size: 28px !important;\n                    }\n\n                    .pellco-active-description p {\n                        font-size: 14px !important;\n                        line-height: 1.55 !important;\n                    }\n\n                    .pellco-benefits {\n                        display: grid;\n                        grid-template-columns: 1fr 1fr;\n                    }\n\n                    .pellco-benefit {\n                        padding: 19px 12px !important;\n                    }\n\n                    .pellco-cta {\n                        padding: 24px 0 0;\n                        gap: 24px;\n                    }\n\n                    .pellco-buttons {\n                        width: 100%;\n                        flex-direction: column;\n                    }\n\n                    .pellco-buttons a {\n                        width: 100%;\n                    }\n                }\n\n                /* NARROW PHONE */\n\n                @media (max-width: 380px) {\n                    .pellco-glass-inner {\n                        padding-left: 14px;\n                        padding-right: 14px;\n                    }\n\n                    .pellco-system-heading {\n                        font-size: 34px;\n                    }\n\n                    .pellco-benefits {\n                        grid-template-columns: 1fr;\n                    }\n                }\n            `}),/*#__PURE__*/_jsxs(\"div\",{className:\"pellco-glass-inner\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"pellco-system-header\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"pellco-system-eyebrow\",style:{color:accent},children:\"FOUR WAYS TO OPEN A WALL\"}),/*#__PURE__*/_jsx(\"h2\",{className:\"pellco-system-heading\",children:\"Sliding Glass Wall Systems\"}),/*#__PURE__*/_jsx(\"p\",{className:\"pellco-system-intro\",children:\"Engineered for seamless indoor-outdoor living. Explore four ways to transform a wall into an opening.\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"pellco-system-grid\",children:systems.map(system=>{const selected=active===system.id;return /*#__PURE__*/_jsxs(\"button\",{className:\"pellco-system-button\",onClick:()=>choose(system.id),style:{background:selected?activeColor:\"transparent\",color:selected?\"#F4F1EA\":textColor},children:[/*#__PURE__*/_jsx(\"div\",{className:\"pellco-system-icon-wrap\",children:/*#__PURE__*/_jsx(SystemIcon,{type:system.id,accent:selected?accent:textColor})}),/*#__PURE__*/_jsxs(\"div\",{className:\"pellco-mobile-button-copy\",children:[/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"Arial, sans-serif\",fontWeight:700,fontSize:12,letterSpacing:\".06em\",textTransform:\"uppercase\",marginBottom:7,color:selected?accent:textColor},children:system.name}),/*#__PURE__*/_jsx(\"div\",{className:\"pellco-system-short\",style:{opacity:selected?.75:.65},children:system.short})]})]},system.id);})}),/*#__PURE__*/_jsxs(\"div\",{className:\"pellco-active-description\",children:[/*#__PURE__*/_jsx(\"h3\",{style:{margin:\"0 0 12px\",fontFamily:\"Georgia, serif\",fontSize:\"clamp(28px, 3vw, 38px)\",fontWeight:400},children:activeSystem.name}),/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 auto\",fontFamily:\"Arial, sans-serif\",fontSize:15,lineHeight:1.65,opacity:.7},children:activeSystem.description}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>{React.startTransition(()=>{setAnimationKey(value=>value+1);});},style:{border:0,background:\"transparent\",marginTop:18,cursor:\"pointer\",fontFamily:\"Arial, sans-serif\",fontSize:10,textTransform:\"uppercase\",letterSpacing:\".08em\",color:textColor,textDecoration:\"underline\",textUnderlineOffset:4},children:\"Replay Animation\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"pellco-scene-wrap\",children:/*#__PURE__*/_jsx(ArchitecturalScene,{type:active,accent:accent,textColor:textColor,background:background},`${active}-${animationKey}`)}),/*#__PURE__*/_jsxs(\"div\",{className:\"pellco-benefits\",children:[/*#__PURE__*/_jsx(Benefit,{icon:\"◯\",title:\"Maximum Opening\",text:\"Create wide-open spaces with minimal sightlines.\",accent:accent}),/*#__PURE__*/_jsx(Benefit,{icon:\"◇\",title:\"Engineered Performance\",text:\"Designed for strength, smooth operation, and durability.\",accent:accent}),/*#__PURE__*/_jsx(Benefit,{icon:\"≈\",title:\"Weather Ready\",text:\"Performance and sealing selected for Southern California.\",accent:accent}),/*#__PURE__*/_jsx(Benefit,{icon:\"✦\",title:\"Custom to You\",text:\"Sizes, configurations, finishes, and hardware to fit the architecture.\",accent:accent})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"pellco-cta\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"Georgia, serif\",fontSize:\"clamp(22px, 2.4vw, 30px)\",marginBottom:7},children:\"Not sure which system is right for your project?\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"Arial, sans-serif\",fontSize:13,lineHeight:1.5,opacity:.65},children:\"Our team can help you choose the right configuration for your space.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"pellco-buttons\",children:[/*#__PURE__*/_jsx(\"a\",{href:quoteURL,style:{minHeight:48,padding:\"0 26px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:accent,color:\"#20201D\",fontFamily:\"Arial, sans-serif\",fontWeight:700,fontSize:11,letterSpacing:\".07em\",textTransform:\"uppercase\",textDecoration:\"none\"},children:\"Request a Quote →\"}),/*#__PURE__*/_jsx(\"a\",{href:projectsURL,style:{minHeight:46,padding:\"0 26px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",border:`1px solid ${textColor}`,color:textColor,fontFamily:\"Arial, sans-serif\",fontWeight:700,fontSize:11,letterSpacing:\".07em\",textTransform:\"uppercase\",textDecoration:\"none\"},children:\"View Our Projects\"})]})]})]})]});}function ArchitecturalScene({type,accent,textColor,background}){const panelStyles=[];for(let i=0;i<4;i++){let animation=\"none\";if(type===\"multi\"){if(i===0)animation=\"panelMulti1 1.25s cubic-bezier(.22,1,.36,1) .1s forwards\";if(i===1)animation=\"panelMulti2 1.15s cubic-bezier(.22,1,.36,1) .2s forwards\";if(i===2)animation=\"panelMulti3 1.05s cubic-bezier(.22,1,.36,1) .3s forwards\";}if(type===\"pocket\"){animation=`pocketAway 1.1s cubic-bezier(.22,1,.36,1) ${i*.12}s forwards`;}if(type===\"stack\"){if(i===0)animation=\"stackOne 1.15s cubic-bezier(.22,1,.36,1) .1s forwards\";if(i===1)animation=\"stackTwo 1.1s cubic-bezier(.22,1,.36,1) .2s forwards\";if(i===2)animation=\"stackThree 1.05s cubic-bezier(.22,1,.36,1) .3s forwards\";}if(type===\"lift\"&&i===2){animation=\"liftSlide 1.4s cubic-bezier(.22,1,.36,1) .2s forwards\";}panelStyles.push(animation);}return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 1200 480\",preserveAspectRatio:\"xMidYMid meet\",style:{width:\"100%\",height:\"100%\",position:\"absolute\",inset:0},children:[/*#__PURE__*/_jsx(\"rect\",{x:\"30\",y:\"45\",width:\"1140\",height:\"360\",fill:\"none\",stroke:textColor,strokeOpacity:\".16\"}),/*#__PURE__*/_jsx(\"rect\",{x:\"180\",y:\"90\",width:\"840\",height:\"275\",fill:background,stroke:textColor,strokeWidth:\"3\",strokeOpacity:\".8\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M180 285 C310 235 450 265 590 225 C740 190 870 255 1020 210\",fill:\"none\",stroke:textColor,strokeOpacity:\".09\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M180 310 C320 282 470 305 625 270 C790 240 890 275 1020 240\",fill:\"none\",stroke:textColor,strokeOpacity:\".07\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"50\",y1:\"366\",x2:\"1150\",y2:\"366\",stroke:textColor,strokeOpacity:\".16\"})]}),type===\"pocket\"&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:\"9%\",top:\"18%\",width:\"7%\",height:\"58%\",borderLeft:`2px solid ${accent}`,borderRight:`1px dashed ${accent}`,background:`${accent}10`}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:\"15%\",top:\"19%\",width:\"70%\",height:\"57%\",display:\"flex\",overflow:type===\"pocket\"?\"visible\":\"hidden\"},children:[0,1,2,3].map((panel,index)=>/*#__PURE__*/_jsx(\"div\",{className:\"glass-panel\",style:{position:\"relative\",width:\"25%\",height:\"100%\",boxSizing:\"border-box\",borderLeft:`2px solid ${textColor}`,borderRight:index===3?`2px solid ${textColor}`:\"none\",background:type===\"lift\"&&index===2?`${accent}26`:index===3?`${accent}18`:\"rgba(255,255,255,.05)\",transformOrigin:\"right center\",animation:panelStyles[index]},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:7,border:`1px solid ${textColor}`,opacity:.14}})},index))}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",right:type===\"pocket\"?\"auto\":\"7%\",left:type===\"pocket\"?\"7%\":\"auto\",top:\"45%\",color:accent,fontSize:\"clamp(24px,4vw,42px)\",transform:type===\"pocket\"?\"rotate(180deg)\":\"none\"},children:\"→\"})]});}function SystemIcon({type,accent}){let symbol=\"→\";if(type===\"pocket\")symbol=\"←\";if(type===\"stack\")symbol=\"⇥\";if(type===\"lift\")symbol=\"↗\";return /*#__PURE__*/_jsx(\"div\",{style:{width:42,minWidth:42,height:42,border:`1px solid ${accent}`,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:accent,fontSize:18,flexShrink:0},children:symbol});}function Benefit({icon,title,text,accent}){return /*#__PURE__*/_jsxs(\"div\",{className:\"pellco-benefit\",style:{padding:\"26px 20px\",minWidth:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{color:accent,fontSize:27,marginBottom:10},children:icon}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"Arial, sans-serif\",fontSize:10,fontWeight:700,letterSpacing:\".08em\",textTransform:\"uppercase\",marginBottom:8},children:title}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"Arial, sans-serif\",fontSize:11,lineHeight:1.5,opacity:.65},children:text})]});}GlassWallSystems.defaultProps={background:\"#F4F1EA\",textColor:\"#20201D\",accent:\"#D2A21C\",activeColor:\"#20201D\",quoteURL:\"/contact\",projectsURL:\"/projects\"};addPropertyControls(GlassWallSystems,{background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#F4F1EA\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#20201D\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#D2A21C\"},activeColor:{type:ControlType.Color,title:\"Active Tab\",defaultValue:\"#20201D\"},quoteURL:{type:ControlType.String,title:\"Quote URL\",defaultValue:\"/contact\"},projectsURL:{type:ControlType.String,title:\"Projects URL\",defaultValue:\"/projects\"}});/* ------------------------------------------------------------------ *//* OVERRIDE COMPATIBILITY EXPORTS (RESTORED)                          *//* ------------------------------------------------------------------ */export function ProjectCarouselInteraction(Component){const WrappedOverride=/*#__PURE__*/React.forwardRef(function WrappedOverride(props,forwardedRef){const{desktopSlideWidthPercent=80,gap=24,indicatorColor=\"rgba(40, 35, 30, 0.28)\",activeIndicatorColor=\"#EDC801\",style,...rest}=props;const isStatic=useIsStaticRenderer();const hostRef=React.useRef(null);const railRef=React.useRef(null);const reducedMotionRef=React.useRef(false);const dragStateRef=React.useRef({active:false,startX:0,startScrollLeft:0});const touchSwipeRef=React.useRef({active:false,lockedAxis:\"none\",startX:0,startY:0,startScrollLeft:0,startTime:0,lastX:0,lastTime:0});const rafRef=React.useRef(null);const[slideCount,setSlideCount]=React.useState(0);const[activeIndex,setActiveIndex]=React.useState(0);const[isDesktop,setIsDesktop]=React.useState(false);const[viewportWidth,setViewportWidth]=React.useState(0);const[arrowAnchor,setArrowAnchor]=React.useState({left:8,right:8,top:\"50%\"});const isPhone=viewportWidth>0&&viewportWidth<810;const canGoPrev=slideCount>1;const canGoNext=slideCount>1;const setStateTransition=React.useCallback(updater=>{React.startTransition(()=>updater());},[]);const resolveDesktop=React.useCallback(()=>{if(typeof window===\"undefined\")return false;return window.innerWidth>=768;},[]);const syncReducedMotion=React.useCallback(()=>{if(typeof window===\"undefined\")return;reducedMotionRef.current=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;},[]);const slideSize=React.useMemo(()=>{const safeWidth=Math.min(92,Math.max(52,desktopSlideWidthPercent));const gutter=`${(100-safeWidth)/2}%`;return{safeWidth,gutter};},[desktopSlideWidthPercent]);const setMergedRailRef=React.useCallback(node=>{railRef.current=node;if(typeof forwardedRef===\"function\"){forwardedRef(node);}else if(forwardedRef&&\"current\"in forwardedRef){forwardedRef.current=node;}},[forwardedRef]);const updateSlidesMeta=React.useCallback(()=>{const rail=railRef.current;if(!rail)return;const count=rail.children.length;setStateTransition(()=>{setSlideCount(count);setActiveIndex(prev=>Math.max(0,Math.min(prev,Math.max(0,count-1))));});},[setStateTransition]);const getScrollStep=React.useCallback(()=>{const rail=railRef.current;if(!rail)return 0;const first=rail.children[0];if(!first)return 0;return first.getBoundingClientRect().width+gap;},[gap]);const getWrappedIndex=React.useCallback(index=>{if(slideCount<=0)return 0;return(index%slideCount+slideCount)%slideCount;},[slideCount]);const snapToIndex=React.useCallback((index,wrap=false)=>{const rail=railRef.current;if(!rail)return;const targetIndex=wrap?getWrappedIndex(index):Math.max(0,Math.min(index,Math.max(0,slideCount-1)));const step=getScrollStep();rail.scrollTo({left:step*targetIndex,behavior:reducedMotionRef.current?\"auto\":\"smooth\"});},[getScrollStep,getWrappedIndex,slideCount]);React.useEffect(()=>{syncReducedMotion();if(typeof window===\"undefined\")return;const media=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const onMedia=()=>syncReducedMotion();media.addEventListener(\"change\",onMedia);return()=>media.removeEventListener(\"change\",onMedia);},[syncReducedMotion]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const onResize=()=>{const nextDesktop=resolveDesktop();setStateTransition(()=>{setIsDesktop(nextDesktop);setViewportWidth(window.innerWidth);});};onResize();window.addEventListener(\"resize\",onResize);return()=>window.removeEventListener(\"resize\",onResize);},[resolveDesktop,setStateTransition]);React.useEffect(()=>{const rail=railRef.current;if(!rail)return;rail.style.overflowX=\"auto\";rail.style.overflowY=\"hidden\";rail.style.scrollSnapType=\"x mandatory\";rail.style.scrollBehavior=reducedMotionRef.current?\"auto\":\"smooth\";rail.style.setProperty(\"-webkit-overflow-scrolling\",\"touch\");rail.style.display=\"flex\";rail.style.alignItems=\"stretch\";rail.style.gap=`${gap}px`;rail.style.paddingLeft=slideSize.gutter;rail.style.paddingRight=slideSize.gutter;rail.style.scrollPaddingLeft=slideSize.gutter;rail.style.scrollPaddingRight=slideSize.gutter;rail.style.boxSizing=\"border-box\";rail.style.touchAction=\"pan-y\";rail.style.cursor=isDesktop?\"grab\":\"auto\";Array.from(rail.children).forEach(child=>{const el=child;el.style.flex=`0 0 ${slideSize.safeWidth}%`;el.style.scrollSnapAlign=\"center\";el.style.scrollSnapStop=\"always\";});updateSlidesMeta();},[gap,isDesktop,slideSize,updateSlidesMeta]);const updateArrowAnchor=React.useCallback(()=>{const host=hostRef.current;const rail=railRef.current;if(!host||!rail||slideCount<=0)return;const activeSlide=rail.children[activeIndex];if(!activeSlide)return;const hostRect=host.getBoundingClientRect();const img=activeSlide.querySelector(\"img\");const targetRect=img?.getBoundingClientRect?.()??activeSlide.getBoundingClientRect();const centerY=targetRect.top-hostRect.top+targetRect.height/2;const nextLeft=Math.max(8,targetRect.left-hostRect.left+10);const nextRight=Math.max(8,hostRect.right-targetRect.right+10);setStateTransition(()=>{setArrowAnchor({left:nextLeft,right:nextRight,top:Number.isFinite(centerY)?centerY:\"50%\"});});},[activeIndex,setStateTransition,slideCount]);React.useEffect(()=>{updateArrowAnchor();},[activeIndex,slideCount,updateArrowAnchor]);React.useEffect(()=>{const rail=railRef.current;if(!rail)return;const updateActiveFromScroll=()=>{if(rafRef.current!==null&&typeof window!==\"undefined\"){window.cancelAnimationFrame(rafRef.current);}if(typeof window===\"undefined\")return;rafRef.current=window.requestAnimationFrame(()=>{const step=getScrollStep();if(step<=0)return;const next=Math.round(rail.scrollLeft/step);const bounded=Math.max(0,Math.min(next,Math.max(0,rail.children.length-1)));setStateTransition(()=>setActiveIndex(bounded));updateArrowAnchor();});};const observer=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(()=>updateSlidesMeta()):null;observer?.observe(rail);const hostObserver=typeof ResizeObserver!==\"undefined\"&&hostRef.current?new ResizeObserver(()=>updateArrowAnchor()):null;if(hostObserver&&hostRef.current)hostObserver.observe(hostRef.current);rail.addEventListener(\"scroll\",updateActiveFromScroll,{passive:true});updateActiveFromScroll();return()=>{rail.removeEventListener(\"scroll\",updateActiveFromScroll);observer?.disconnect();hostObserver?.disconnect();if(rafRef.current!==null&&typeof window!==\"undefined\"){window.cancelAnimationFrame(rafRef.current);}};},[getScrollStep,setStateTransition,updateArrowAnchor,updateSlidesMeta]);React.useEffect(()=>{if(!isDesktop||isStatic)return;const rail=railRef.current;if(!rail)return;const onPointerDown=event=>{if(event.pointerType===\"touch\")return;dragStateRef.current={active:true,startX:event.clientX,startScrollLeft:rail.scrollLeft};rail.style.cursor=\"grabbing\";};const onPointerMove=event=>{if(!dragStateRef.current.active)return;event.preventDefault();const delta=event.clientX-dragStateRef.current.startX;rail.scrollLeft=dragStateRef.current.startScrollLeft-delta;};const endDrag=()=>{if(!dragStateRef.current.active)return;dragStateRef.current.active=false;rail.style.cursor=\"grab\";const step=getScrollStep();if(step>0){const nearest=Math.round(rail.scrollLeft/step);snapToIndex(nearest);}};rail.addEventListener(\"pointerdown\",onPointerDown);rail.addEventListener(\"pointermove\",onPointerMove);rail.addEventListener(\"pointerup\",endDrag);rail.addEventListener(\"pointercancel\",endDrag);rail.addEventListener(\"pointerleave\",endDrag);return()=>{rail.removeEventListener(\"pointerdown\",onPointerDown);rail.removeEventListener(\"pointermove\",onPointerMove);rail.removeEventListener(\"pointerup\",endDrag);rail.removeEventListener(\"pointercancel\",endDrag);rail.removeEventListener(\"pointerleave\",endDrag);};},[getScrollStep,isDesktop,isStatic,snapToIndex]);React.useEffect(()=>{if(!isPhone||isStatic)return;const rail=railRef.current;if(!rail)return;const axisThreshold=8;const distanceThreshold=42;const velocityThreshold=.35;const onTouchStart=event=>{if(event.touches.length!==1)return;const touch=event.touches[0];touchSwipeRef.current={active:true,lockedAxis:\"none\",startX:touch.clientX,startY:touch.clientY,startScrollLeft:rail.scrollLeft,startTime:Date.now(),lastX:touch.clientX,lastTime:Date.now()};};const onTouchMove=event=>{if(!touchSwipeRef.current.active||event.touches.length!==1)return;const touch=event.touches[0];const dx=touch.clientX-touchSwipeRef.current.startX;const dy=touch.clientY-touchSwipeRef.current.startY;if(touchSwipeRef.current.lockedAxis===\"none\"){if(Math.abs(dx)<axisThreshold&&Math.abs(dy)<axisThreshold){return;}touchSwipeRef.current.lockedAxis=Math.abs(dx)>Math.abs(dy)?\"x\":\"y\";}touchSwipeRef.current.lastX=touch.clientX;touchSwipeRef.current.lastTime=Date.now();if(touchSwipeRef.current.lockedAxis===\"x\"){event.preventDefault();rail.scrollLeft=touchSwipeRef.current.startScrollLeft-dx;}};const onTouchEnd=()=>{if(!touchSwipeRef.current.active)return;const state=touchSwipeRef.current;touchSwipeRef.current.active=false;if(state.lockedAxis!==\"x\")return;const totalDx=state.lastX-state.startX;const elapsed=Math.max(1,state.lastTime-state.startTime);const velocity=Math.abs(totalDx/elapsed);const shouldAdvance=Math.abs(totalDx)>distanceThreshold||velocity>velocityThreshold;if(shouldAdvance){const direction=totalDx<0?1:-1;snapToIndex(activeIndex+direction,true);}else{snapToIndex(activeIndex);}};const onTouchCancel=()=>{touchSwipeRef.current.active=false;touchSwipeRef.current.lockedAxis=\"none\";snapToIndex(activeIndex);};rail.addEventListener(\"touchstart\",onTouchStart,{passive:true});rail.addEventListener(\"touchmove\",onTouchMove,{passive:false});rail.addEventListener(\"touchend\",onTouchEnd,{passive:true});rail.addEventListener(\"touchcancel\",onTouchCancel,{passive:true});return()=>{rail.removeEventListener(\"touchstart\",onTouchStart);rail.removeEventListener(\"touchmove\",onTouchMove);rail.removeEventListener(\"touchend\",onTouchEnd);rail.removeEventListener(\"touchcancel\",onTouchCancel);};},[activeIndex,isPhone,isStatic,snapToIndex]);return /*#__PURE__*/_jsxs(\"div\",{ref:hostRef,style:{position:\"relative\",width:\"100%\",height:\"100%\"},children:[/*#__PURE__*/_jsx(Component,{ref:setMergedRailRef,...rest,style:{...style}}),slideCount>1&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Previous project\",onClick:()=>snapToIndex(activeIndex-1,true),disabled:!canGoPrev,style:{position:\"absolute\",left:arrowAnchor.left,top:arrowAnchor.top,transform:\"translateY(-50%)\",width:44,height:44,borderRadius:999,border:\"1px solid rgba(255, 255, 255, 0.24)\",background:\"rgba(33, 28, 22, 0.55)\",color:\"rgba(255, 255, 255, 0.95)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:canGoPrev?\"pointer\":\"not-allowed\",opacity:canGoPrev?1:.45,transition:reducedMotionRef.current?\"none\":\"opacity 180ms ease, transform 180ms ease\",pointerEvents:canGoPrev?\"auto\":\"none\",backdropFilter:\"blur(2px)\",zIndex:3},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{fontSize:18,lineHeight:1,transform:\"translateX(-1px)\"},children:\"‹\"})}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Next project\",onClick:()=>snapToIndex(activeIndex+1,true),disabled:!canGoNext,style:{position:\"absolute\",right:arrowAnchor.right,top:arrowAnchor.top,transform:\"translateY(-50%)\",width:44,height:44,borderRadius:999,border:\"1px solid rgba(255, 255, 255, 0.24)\",background:\"rgba(33, 28, 22, 0.55)\",color:\"rgba(255, 255, 255, 0.95)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:canGoNext?\"pointer\":\"not-allowed\",opacity:canGoNext?1:.45,transition:reducedMotionRef.current?\"none\":\"opacity 180ms ease, transform 180ms ease\",pointerEvents:canGoNext?\"auto\":\"none\",backdropFilter:\"blur(2px)\",zIndex:3},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{fontSize:18,lineHeight:1,transform:\"translateX(1px)\"},children:\"›\"})})]}),slideCount>1&&/*#__PURE__*/_jsx(\"div\",{\"aria-label\":\"Project pagination\",role:\"tablist\",style:{position:\"absolute\",left:\"50%\",bottom:8,transform:\"translateX(-50%)\",display:\"flex\",gap:4,alignItems:\"center\",zIndex:2},children:Array.from({length:slideCount}).map((_,index)=>{const isActive=index===activeIndex;return /*#__PURE__*/_jsx(\"button\",{type:\"button\",role:\"tab\",\"aria-label\":`Go to project ${index+1}`,\"aria-selected\":isActive,onClick:()=>snapToIndex(index),style:{width:24,height:24,borderRadius:999,border:\"none\",padding:0,margin:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",background:\"transparent\",transition:reducedMotionRef.current?\"none\":\"all 180ms ease\"},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{width:isActive?8:6,height:isActive?8:6,borderRadius:999,background:isActive?activeIndicatorColor:indicatorColor,transition:reducedMotionRef.current?\"none\":\"all 180ms ease\"}})},index);})})]});});return WrappedOverride;}export function ManufacturerCarouselInteraction(Component){const WrappedOverride=/*#__PURE__*/React.forwardRef(function WrappedOverride(props,forwardedRef){const{style,...rest}=props;const isStatic=useIsStaticRenderer();const hostRef=React.useRef(null);const railRef=React.useRef(null);const reducedMotionRef=React.useRef(false);const dragStateRef=React.useRef({active:false,startX:0,startScrollLeft:0});const touchSwipeRef=React.useRef({active:false,lockedAxis:\"none\",startX:0,startY:0,startScrollLeft:0,startTime:0,lastX:0,lastTime:0});const rafRef=React.useRef(null);const[slideCount,setSlideCount]=React.useState(0);const[activeIndex,setActiveIndex]=React.useState(0);const[viewportWidth,setViewportWidth]=React.useState(0);const[arrowAnchor,setArrowAnchor]=React.useState({left:8,right:8,top:\"50%\"});const isPhone=viewportWidth>0&&viewportWidth<810;const isTablet=viewportWidth>=810&&viewportWidth<1200;const isMobileTablet=isPhone||isTablet;const canNavigate=slideCount>1;const setStateTransition=React.useCallback(updater=>{React.startTransition(()=>updater());},[]);const setMergedRailRef=React.useCallback(node=>{railRef.current=node;if(typeof forwardedRef===\"function\"){forwardedRef(node);}else if(forwardedRef&&\"current\"in forwardedRef){forwardedRef.current=node;}},[forwardedRef]);const syncReducedMotion=React.useCallback(()=>{if(typeof window===\"undefined\")return;reducedMotionRef.current=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;},[]);const updateSlidesMeta=React.useCallback(()=>{const rail=railRef.current;if(!rail)return;const count=rail.children.length;setStateTransition(()=>{setSlideCount(count);setActiveIndex(prev=>Math.max(0,Math.min(prev,Math.max(0,count-1))));});},[setStateTransition]);const getWrappedIndex=React.useCallback(index=>{if(slideCount<=0)return 0;return(index%slideCount+slideCount)%slideCount;},[slideCount]);const snapToIndex=React.useCallback((index,wrap=false)=>{const rail=railRef.current;if(!rail||slideCount<=0)return;const targetIndex=wrap?getWrappedIndex(index):Math.max(0,Math.min(index,slideCount-1));const target=rail.children[targetIndex];if(!target)return;const left=target.offsetLeft-(rail.clientWidth-target.offsetWidth)/2;rail.scrollTo({left:Math.max(0,left),behavior:reducedMotionRef.current?\"auto\":\"smooth\"});},[getWrappedIndex,slideCount]);const updateArrowAnchor=React.useCallback(()=>{const host=hostRef.current;const rail=railRef.current;if(!host||!rail||slideCount<=0)return;const activeSlide=rail.children[activeIndex];if(!activeSlide)return;const hostRect=host.getBoundingClientRect();const img=activeSlide.querySelector(\"img\");const targetRect=img?.getBoundingClientRect?.()??activeSlide.getBoundingClientRect();const centerY=targetRect.top-hostRect.top+targetRect.height/2;const nextLeft=Math.max(8,targetRect.left-hostRect.left+10);const nextRight=Math.max(8,hostRect.right-targetRect.right+10);setStateTransition(()=>{setArrowAnchor({left:nextLeft,right:nextRight,top:Number.isFinite(centerY)?centerY:\"50%\"});});},[activeIndex,setStateTransition,slideCount]);React.useEffect(()=>{syncReducedMotion();if(typeof window===\"undefined\")return;const media=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const onMedia=()=>syncReducedMotion();media.addEventListener(\"change\",onMedia);return()=>media.removeEventListener(\"change\",onMedia);},[syncReducedMotion]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const onResize=()=>{setStateTransition(()=>setViewportWidth(window.innerWidth));};onResize();window.addEventListener(\"resize\",onResize);return()=>window.removeEventListener(\"resize\",onResize);},[setStateTransition]);React.useEffect(()=>{const rail=railRef.current;if(!rail)return;updateSlidesMeta();if(!isMobileTablet)return;rail.style.overflowX=\"auto\";rail.style.overflowY=\"hidden\";rail.style.scrollSnapType=\"x mandatory\";rail.style.scrollBehavior=reducedMotionRef.current?\"auto\":\"smooth\";rail.style.setProperty(\"-webkit-overflow-scrolling\",\"touch\");rail.style.touchAction=\"pan-y\";rail.style.cursor=\"grab\";Array.from(rail.children).forEach(child=>{const el=child;if(!el.style.scrollSnapAlign)el.style.scrollSnapAlign=\"center\";if(!el.style.scrollSnapStop)el.style.scrollSnapStop=\"always\";});},[isMobileTablet,updateSlidesMeta]);React.useEffect(()=>{const rail=railRef.current;if(!rail||!isMobileTablet)return;const updateActiveFromScroll=()=>{if(rafRef.current!==null&&typeof window!==\"undefined\"){window.cancelAnimationFrame(rafRef.current);}if(typeof window===\"undefined\")return;rafRef.current=window.requestAnimationFrame(()=>{if(rail.children.length===0)return;const centerX=rail.scrollLeft+rail.clientWidth/2;let nearestIndex=0;let nearestDistance=Number.POSITIVE_INFINITY;Array.from(rail.children).forEach((child,index)=>{const el=child;const childCenter=el.offsetLeft+el.offsetWidth/2;const distance=Math.abs(childCenter-centerX);if(distance<nearestDistance){nearestDistance=distance;nearestIndex=index;}});setStateTransition(()=>setActiveIndex(nearestIndex));updateArrowAnchor();});};const observer=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(()=>updateSlidesMeta()):null;observer?.observe(rail);const hostObserver=typeof ResizeObserver!==\"undefined\"&&hostRef.current?new ResizeObserver(()=>updateArrowAnchor()):null;if(hostObserver&&hostRef.current)hostObserver.observe(hostRef.current);rail.addEventListener(\"scroll\",updateActiveFromScroll,{passive:true});updateActiveFromScroll();return()=>{rail.removeEventListener(\"scroll\",updateActiveFromScroll);observer?.disconnect();hostObserver?.disconnect();if(rafRef.current!==null&&typeof window!==\"undefined\"){window.cancelAnimationFrame(rafRef.current);}};},[isMobileTablet,setStateTransition,updateArrowAnchor,updateSlidesMeta]);React.useEffect(()=>{if(!isMobileTablet||isStatic)return;const rail=railRef.current;if(!rail)return;const onPointerDown=event=>{if(event.pointerType===\"touch\")return;dragStateRef.current={active:true,startX:event.clientX,startScrollLeft:rail.scrollLeft};rail.style.cursor=\"grabbing\";};const onPointerMove=event=>{if(!dragStateRef.current.active)return;event.preventDefault();const delta=event.clientX-dragStateRef.current.startX;rail.scrollLeft=dragStateRef.current.startScrollLeft-delta;};const endDrag=()=>{if(!dragStateRef.current.active)return;dragStateRef.current.active=false;rail.style.cursor=\"grab\";snapToIndex(activeIndex);};rail.addEventListener(\"pointerdown\",onPointerDown);rail.addEventListener(\"pointermove\",onPointerMove);rail.addEventListener(\"pointerup\",endDrag);rail.addEventListener(\"pointercancel\",endDrag);rail.addEventListener(\"pointerleave\",endDrag);return()=>{rail.removeEventListener(\"pointerdown\",onPointerDown);rail.removeEventListener(\"pointermove\",onPointerMove);rail.removeEventListener(\"pointerup\",endDrag);rail.removeEventListener(\"pointercancel\",endDrag);rail.removeEventListener(\"pointerleave\",endDrag);};},[activeIndex,isMobileTablet,isStatic,snapToIndex]);React.useEffect(()=>{if(!isPhone||isStatic)return;const rail=railRef.current;if(!rail)return;const axisThreshold=8;const distanceThreshold=42;const velocityThreshold=.35;const onTouchStart=event=>{if(event.touches.length!==1)return;const touch=event.touches[0];touchSwipeRef.current={active:true,lockedAxis:\"none\",startX:touch.clientX,startY:touch.clientY,startScrollLeft:rail.scrollLeft,startTime:Date.now(),lastX:touch.clientX,lastTime:Date.now()};};const onTouchMove=event=>{if(!touchSwipeRef.current.active||event.touches.length!==1)return;const touch=event.touches[0];const dx=touch.clientX-touchSwipeRef.current.startX;const dy=touch.clientY-touchSwipeRef.current.startY;if(touchSwipeRef.current.lockedAxis===\"none\"){if(Math.abs(dx)<axisThreshold&&Math.abs(dy)<axisThreshold){return;}touchSwipeRef.current.lockedAxis=Math.abs(dx)>Math.abs(dy)?\"x\":\"y\";}touchSwipeRef.current.lastX=touch.clientX;touchSwipeRef.current.lastTime=Date.now();if(touchSwipeRef.current.lockedAxis===\"x\"){event.preventDefault();rail.scrollLeft=touchSwipeRef.current.startScrollLeft-dx;}};const onTouchEnd=()=>{if(!touchSwipeRef.current.active)return;const state=touchSwipeRef.current;touchSwipeRef.current.active=false;if(state.lockedAxis!==\"x\")return;const totalDx=state.lastX-state.startX;const elapsed=Math.max(1,state.lastTime-state.startTime);const velocity=Math.abs(totalDx/elapsed);const shouldAdvance=Math.abs(totalDx)>distanceThreshold||velocity>velocityThreshold;if(shouldAdvance){const direction=totalDx<0?1:-1;snapToIndex(activeIndex+direction,true);}else{snapToIndex(activeIndex);}};const onTouchCancel=()=>{touchSwipeRef.current.active=false;touchSwipeRef.current.lockedAxis=\"none\";snapToIndex(activeIndex);};rail.addEventListener(\"touchstart\",onTouchStart,{passive:true});rail.addEventListener(\"touchmove\",onTouchMove,{passive:false});rail.addEventListener(\"touchend\",onTouchEnd,{passive:true});rail.addEventListener(\"touchcancel\",onTouchCancel,{passive:true});return()=>{rail.removeEventListener(\"touchstart\",onTouchStart);rail.removeEventListener(\"touchmove\",onTouchMove);rail.removeEventListener(\"touchend\",onTouchEnd);rail.removeEventListener(\"touchcancel\",onTouchCancel);};},[activeIndex,isPhone,isStatic,snapToIndex]);React.useEffect(()=>{if(!isMobileTablet)return;updateArrowAnchor();},[activeIndex,isMobileTablet,slideCount,updateArrowAnchor]);return /*#__PURE__*/_jsxs(\"div\",{ref:hostRef,style:{position:\"relative\",width:\"100%\",height:\"100%\"},children:[/*#__PURE__*/_jsx(Component,{ref:setMergedRailRef,...rest,style:{...style}}),isMobileTablet&&canNavigate&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Previous manufacturer\",onClick:()=>snapToIndex(activeIndex-1,true),style:{position:\"absolute\",left:isTablet?8:arrowAnchor.left,top:arrowAnchor.top,transform:\"translateY(-50%)\",width:44,height:44,borderRadius:999,border:\"1px solid rgba(255, 255, 255, 0.24)\",background:\"rgba(33, 28, 22, 0.55)\",color:\"rgba(255, 255, 255, 0.95)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",transition:reducedMotionRef.current?\"none\":\"opacity 180ms ease, transform 180ms ease\",backdropFilter:\"blur(2px)\",zIndex:3},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{fontSize:18,lineHeight:1,transform:\"translateX(-1px)\"},children:\"‹\"})}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Next manufacturer\",onClick:()=>snapToIndex(activeIndex+1,true),style:{position:\"absolute\",right:isTablet?8:arrowAnchor.right,top:arrowAnchor.top,transform:\"translateY(-50%)\",width:44,height:44,borderRadius:999,border:\"1px solid rgba(255, 255, 255, 0.24)\",background:\"rgba(33, 28, 22, 0.55)\",color:\"rgba(255, 255, 255, 0.95)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",transition:reducedMotionRef.current?\"none\":\"opacity 180ms ease, transform 180ms ease\",backdropFilter:\"blur(2px)\",zIndex:3},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{fontSize:18,lineHeight:1,transform:\"translateX(1px)\"},children:\"›\"})})]}),isPhone&&canNavigate&&/*#__PURE__*/_jsx(\"div\",{\"aria-label\":\"Manufacturer pagination\",role:\"tablist\",style:{position:\"absolute\",left:\"50%\",bottom:8,transform:\"translateX(-50%)\",display:\"flex\",gap:4,alignItems:\"center\",zIndex:2},children:Array.from({length:slideCount}).map((_,index)=>{const isActive=index===activeIndex;return /*#__PURE__*/_jsx(\"button\",{type:\"button\",role:\"tab\",\"aria-label\":`Go to manufacturer ${index+1}`,\"aria-selected\":isActive,onClick:()=>snapToIndex(index),style:{width:24,height:24,borderRadius:999,border:\"none\",padding:0,margin:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",background:\"transparent\",transition:reducedMotionRef.current?\"none\":\"all 180ms ease\"},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{width:isActive?8:6,height:isActive?8:6,borderRadius:999,background:isActive?\"#EDC801\":\"#CCCCCC\",transition:reducedMotionRef.current?\"none\":\"all 180ms ease\"}})},index);})})]});});return WrappedOverride;}export function EditorialFeatureRowHover(Component){const WrappedOverride=/*#__PURE__*/React.forwardRef(function WrappedOverride(props,forwardedRef){const{style,...rest}=props;const rowRef=React.useRef(null);const savedStylesRef=React.useRef(new Map);const[viewportWidth,setViewportWidth]=React.useState(0);const isDesktopWide=viewportWidth>=1200;const setMergedRef=React.useCallback(node=>{rowRef.current=node;if(typeof forwardedRef===\"function\"){forwardedRef(node);}else if(forwardedRef&&\"current\"in forwardedRef){forwardedRef.current=node;}},[forwardedRef]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const onResize=()=>{React.startTransition(()=>setViewportWidth(window.innerWidth));};onResize();window.addEventListener(\"resize\",onResize);return()=>window.removeEventListener(\"resize\",onResize);},[]);const deepenNeutralColor=React.useCallback((color,amount=.1,alphaBoost=.08)=>{if(!color)return color;const trimmed=color.trim();const rgbaMatch=trimmed.match(/^rgba?\\(([^)]+)\\)$/i);if(rgbaMatch){const parts=rgbaMatch[1].split(\",\").map(part=>part.trim());if(parts.length<3)return color;const r=Math.max(0,Math.min(255,Math.round(Number(parts[0])*(1-amount))));const g=Math.max(0,Math.min(255,Math.round(Number(parts[1])*(1-amount))));const b=Math.max(0,Math.min(255,Math.round(Number(parts[2])*(1-amount))));const a=parts[3]!==undefined?Math.max(0,Math.min(1,Number(parts[3])+alphaBoost)):1;return`rgba(${r}, ${g}, ${b}, ${a})`;}return color;},[]);const onEnter=React.useCallback(()=>{if(!isDesktopWide)return;const row=rowRef.current;if(!row)return;savedStylesRef.current.clear();const saveAndSet=(el,next)=>{savedStylesRef.current.set(el,{transform:el.style.transform,transition:el.style.transition,borderColor:el.style.borderColor,borderBottomColor:el.style.borderBottomColor,color:el.style.color,opacity:el.style.opacity});Object.entries(next).forEach(([key,value])=>{if(value!==undefined)el.style[key]=value;});};const computedRow=typeof window!==\"undefined\"?window.getComputedStyle(row):null;saveAndSet(row,{transform:\"translateX(4px)\",transition:\"transform 220ms ease, border-color 220ms ease, border-bottom-color 220ms ease\",borderColor:deepenNeutralColor(computedRow?.borderColor??null),borderBottomColor:deepenNeutralColor(computedRow?.borderBottomColor??null)});const svgNodes=Array.from(row.querySelectorAll(\"svg\"));svgNodes.forEach(svg=>{saveAndSet(svg,{transition:\"opacity 220ms ease\",opacity:\"1\"});});const textNodes=Array.from(row.querySelectorAll(\"span, p, h1, h2, h3, h4, h5, h6, a\"));textNodes.forEach(textNode=>{if(!textNode.textContent?.trim())return;const computed=typeof window!==\"undefined\"?window.getComputedStyle(textNode).color:null;saveAndSet(textNode,{transition:\"color 220ms ease\",color:deepenNeutralColor(computed,.06,0)});});},[deepenNeutralColor,isDesktopWide]);const onLeave=React.useCallback(()=>{savedStylesRef.current.forEach((saved,el)=>{el.style.transform=saved.transform??\"\";el.style.transition=saved.transition??\"\";el.style.borderColor=saved.borderColor??\"\";el.style.borderBottomColor=saved.borderBottomColor??\"\";el.style.color=saved.color??\"\";el.style.opacity=saved.opacity??\"\";});savedStylesRef.current.clear();},[]);return /*#__PURE__*/_jsx(Component,{ref:setMergedRef,...rest,style:{...style},onMouseEnter:event=>{props.onMouseEnter?.(event);onEnter();},onMouseLeave:event=>{props.onMouseLeave?.(event);onLeave();}});});return WrappedOverride;}export function ProjectLoadMoreController(Component){const WrappedOverride=/*#__PURE__*/React.forwardRef(function WrappedOverride(props,forwardedRef){const hostRef=React.useRef(null);const observerRef=React.useRef(null);const debounceTimerRef=React.useRef(null);const buttonRef=React.useRef(null);const visibleCountRef=React.useRef(6);const rafRef=React.useRef(null);const setMergedRef=React.useCallback(node=>{hostRef.current=node;if(typeof forwardedRef===\"function\"){forwardedRef(node);}else if(forwardedRef&&\"current\"in forwardedRef){forwardedRef.current=node;}},[forwardedRef]);const getGridAndButton=React.useCallback(()=>{if(typeof document===\"undefined\")return null;const grid=document.getElementById(\"projects-grid\");const button=document.getElementById(\"load-more-projects\");if(!grid||!button)return null;return{grid,button};},[]);const clearControlledHiding=React.useCallback(grid=>{const cards=Array.from(grid.children).filter(child=>child instanceof HTMLElement);cards.forEach(card=>{if(card.dataset.projectLoadMoreHidden!==\"1\")return;const originalDisplay=card.dataset.projectLoadMoreOriginalDisplay;card.style.display=originalDisplay&&originalDisplay!==\"__empty__\"?originalDisplay:\"\";delete card.dataset.projectLoadMoreHidden;});},[]);const collectMatchingCards=React.useCallback(grid=>{const cards=Array.from(grid.children).filter(child=>child instanceof HTMLElement);return cards.filter(card=>{const computed=window.getComputedStyle(card);return computed.display!==\"none\";});},[]);const setCardMediaLazy=React.useCallback(cards=>{cards.forEach(card=>{const images=Array.from(card.querySelectorAll(\"img\"));images.forEach(img=>{img.loading=\"lazy\";img.decoding=\"async\";});});},[]);const applyVisibleCount=React.useCallback((targetVisibleCount,options)=>{if(typeof window===\"undefined\")return;const refs=getGridAndButton();if(!refs)return;const{grid,button}=refs;if(options?.reset){visibleCountRef.current=6;}else{visibleCountRef.current=targetVisibleCount;}clearControlledHiding(grid);const matchingCards=collectMatchingCards(grid);setCardMediaLazy(matchingCards);const visibleLimit=Math.min(visibleCountRef.current,matchingCards.length);matchingCards.forEach((card,index)=>{if(index<visibleLimit)return;if(!card.dataset.projectLoadMoreOriginalDisplay){card.dataset.projectLoadMoreOriginalDisplay=card.style.display&&card.style.display.length>0?card.style.display:\"__empty__\";}card.style.display=\"none\";card.dataset.projectLoadMoreHidden=\"1\";});if(matchingCards.length<=visibleLimit||matchingCards.length<=6){button.style.display=\"none\";}else{button.style.display=\"\";}},[clearControlledHiding,collectMatchingCards,getGridAndButton,setCardMediaLazy]);const scheduleReset=React.useCallback(()=>{if(typeof window===\"undefined\")return;if(debounceTimerRef.current!==null){window.clearTimeout(debounceTimerRef.current);}debounceTimerRef.current=window.setTimeout(()=>{debounceTimerRef.current=null;applyVisibleCount(6,{reset:true});},120);},[applyVisibleCount]);const hasDescendant=React.useCallback((nodes,element)=>{for(const node of Array.from(nodes)){if(!(node instanceof HTMLElement))continue;if(node===element||node.contains(element))return true;}return false;},[]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const attachButtonListener=(resetVisibleCount=false)=>{const refs=getGridAndButton();if(!refs)return;const{grid,button}=refs;if(buttonRef.current&&buttonRef.current!==button){buttonRef.current.removeEventListener(\"click\",onLoadMoreClick);}buttonRef.current=button;button.removeEventListener(\"click\",onLoadMoreClick);button.addEventListener(\"click\",onLoadMoreClick);if(resetVisibleCount){applyVisibleCount(6,{reset:true});}else{applyVisibleCount(visibleCountRef.current);}const matchingCards=collectMatchingCards(grid);setCardMediaLazy(matchingCards);};const onLoadMoreClick=event=>{event.preventDefault();const refs=getGridAndButton();if(!refs)return;const{grid}=refs;clearControlledHiding(grid);const matchingCards=collectMatchingCards(grid);const nextCount=Math.min(visibleCountRef.current+6,matchingCards.length);applyVisibleCount(nextCount);};attachButtonListener(true);observerRef.current=new MutationObserver(mutations=>{const refs=getGridAndButton();if(!refs)return;const{grid}=refs;let shouldReset=false;for(const mutation of mutations){if(mutation.type!==\"childList\")continue;if(mutation.target===grid){shouldReset=true;break;}const targetElement=mutation.target instanceof HTMLElement?mutation.target:null;if(targetElement&&targetElement.contains(grid)){if(hasDescendant(mutation.addedNodes,grid)||hasDescendant(mutation.removedNodes,grid)){shouldReset=true;break;}}}if(!shouldReset)return;scheduleReset();if(rafRef.current!==null){window.cancelAnimationFrame(rafRef.current);}rafRef.current=window.requestAnimationFrame(()=>{attachButtonListener(true);});});observerRef.current.observe(document.body,{childList:true,subtree:true});return()=>{observerRef.current?.disconnect();observerRef.current=null;if(buttonRef.current){buttonRef.current.removeEventListener(\"click\",onLoadMoreClick);}buttonRef.current=null;if(debounceTimerRef.current!==null){window.clearTimeout(debounceTimerRef.current);debounceTimerRef.current=null;}if(rafRef.current!==null){window.cancelAnimationFrame(rafRef.current);rafRef.current=null;}};},[applyVisibleCount,clearControlledHiding,collectMatchingCards,getGridAndButton,hasDescendant,scheduleReset,setCardMediaLazy]);return /*#__PURE__*/_jsx(Component,{ref:setMergedRef,...props});});return WrappedOverride;}export function VendorLinkAccessibility(Component){const WrappedOverride=/*#__PURE__*/React.forwardRef(function WrappedOverride(props,forwardedRef){const{style,...rest}=props;const hostRef=React.useRef(null);const setMergedRef=React.useCallback(node=>{hostRef.current=node;if(typeof forwardedRef===\"function\"){forwardedRef(node);}else if(forwardedRef&&\"current\"in forwardedRef){forwardedRef.current=node;}},[forwardedRef]);const parseColor=React.useCallback(value=>{if(!value)return null;const trimmed=value.trim().toLowerCase();const hex=trimmed.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);if(hex){const raw=hex[1];const full=raw.length===3?`${raw[0]}${raw[0]}${raw[1]}${raw[1]}${raw[2]}${raw[2]}`:raw;return{r:parseInt(full.slice(0,2),16),g:parseInt(full.slice(2,4),16),b:parseInt(full.slice(4,6),16),a:1};}const rgb=trimmed.match(/^rgba?\\(\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*,\\s*([0-9.]+)(?:\\s*,\\s*([0-9.]+))?\\s*\\)$/);if(rgb){return{r:Number(rgb[1]),g:Number(rgb[2]),b:Number(rgb[3]),a:rgb[4]!==undefined&&rgb[4]!==\"\"?Number(rgb[4]):1};}return null;},[]);const getEffectiveBackground=React.useCallback(startElement=>{if(typeof window===\"undefined\")return null;let current=startElement;while(current){const computed=window.getComputedStyle(current);const color=parseColor(computed.backgroundColor);if(color&&color.a>0)return color;current=current.parentElement;}return{r:255,g:255,b:255,a:1};},[parseColor]);const isDarkBackground=React.useCallback(startElement=>{const color=getEffectiveBackground(startElement);if(!color)return false;const luminance=(.2126*color.r+.7152*color.g+.0722*color.b)/255;return luminance<.45;},[getEffectiveBackground]);const vendorHrefBySlug=React.useMemo(()=>({milgard:\"/vendors/milgard\",\"ag-millworks\":\"/vendors/ag-millworks\",andersen:\"/vendors/andersen\",centor:\"/vendors/centor\",fleetwood:\"/vendors/fleetwood\",\"gravity-windows\":\"/vendors/gravity\",\"jeld-wen\":\"/vendors/jeld-wen\",\"lacantina-doors\":\"/vendors/lacantina-doors\",marvin:\"/vendors/marvin\",quantum:\"/vendors/quantum\",\"steel-traditions-windows-doors\":\"/vendors/steel-traditions\"}),[]);const vendorProductsHrefBySlug=React.useMemo(()=>({milgard:\"/vendors/milgard#milgard-products\",fleetwood:\"/vendors/fleetwood#fleetwood-products\",marvin:\"/vendors/marvin#marvin-products\",\"ag-millworks\":\"/vendors/ag-millworks#ag-millworks-products\",\"lacantina-doors\":\"/vendors/lacantina-doors#lacantina-products\",andersen:\"/vendors/andersen#andersen-products\"}),[]);const vendorLabelToSlug=React.useMemo(()=>({\"ag millworks\":\"ag-millworks\",andersen:\"andersen\",centor:\"centor\",fleetwood:\"fleetwood\",\"gravity windows\":\"gravity-windows\",\"jeld wen\":\"jeld-wen\",lacantina:\"lacantina-doors\",marvin:\"marvin\",milgard:\"milgard\",quantum:\"quantum\",\"steel traditions\":\"steel-traditions-windows-doors\",\"steel traditions windows doors\":\"steel-traditions-windows-doors\"}),[]);const normalizeLabel=React.useCallback(value=>{return value.trim().toLowerCase().replace(/^explore\\s+/,\"\").replace(/[^\\w\\s-]/g,\" \").replace(/[_-]+/g,\" \").replace(/\\s+/g,\" \").trim();},[]);const extractTextFromNode=React.useCallback(node=>{if(node===null||node===undefined||typeof node===\"boolean\"){return\"\";}if(typeof node===\"string\"||typeof node===\"number\"){return String(node);}if(Array.isArray(node)){return node.map(child=>extractTextFromNode(child)).join(\" \");}if(/*#__PURE__*/React.isValidElement(node)){return extractTextFromNode(node.props?.children);}return\"\";},[]);const resolveVendorHrefFromCandidates=React.useCallback(candidates=>{for(const raw of candidates){const normalized=normalizeLabel(raw);if(!normalized)continue;const directSlug=vendorLabelToSlug[normalized];if(directSlug&&vendorHrefBySlug[directSlug]){return vendorHrefBySlug[directSlug];}const inferredSlug=normalized.replace(/\\s+/g,\"-\");if(vendorHrefBySlug[inferredSlug]){return vendorHrefBySlug[inferredSlug];}}return null;},[normalizeLabel,vendorHrefBySlug,vendorLabelToSlug]);const hasProductsIntent=React.useCallback(candidates=>{return candidates.some(raw=>{const normalized=normalizeLabel(raw);return normalized.includes(\" products\")||normalized.endsWith(\"product\")||normalized.endsWith(\"products\");});},[normalizeLabel]);const resolveVendorHref=React.useCallback(anchor=>{const authoredHref=(anchor.getAttribute(\"href\")||\"\").trim();if(/^\\/vendors\\/[^#]+#.+/.test(authoredHref)){return authoredHref;}const fromDataFramerName=(anchor.getAttribute(\"data-framer-name\")||anchor.parentElement?.getAttribute(\"data-framer-name\")||props[\"data-framer-name\"]||\"\").toString().trim();const candidates=[fromDataFramerName,anchor.getAttribute(\"aria-label\")||\"\",anchor.textContent||\"\"];const baseHref=resolveVendorHrefFromCandidates(candidates);if(!baseHref)return null;if(!hasProductsIntent(candidates))return baseHref;const slug=baseHref.replace(/^\\/vendors\\//,\"\").split(\"#\")[0];return vendorProductsHrefBySlug[slug]||baseHref;},[hasProductsIntent,props,resolveVendorHrefFromCandidates,vendorProductsHrefBySlug]);const resolvedHrefFromProps=React.useMemo(()=>{const textFromChildren=extractTextFromNode(props.children);const authoredHref=String(props.href??\"\").trim();if(/^\\/vendors\\/[^#]+#.+/.test(authoredHref))return authoredHref;const candidates=[String(props[\"data-framer-name\"]??\"\"),String(props[\"aria-label\"]??\"\"),textFromChildren];const baseHref=resolveVendorHrefFromCandidates(candidates);if(!baseHref)return null;if(!hasProductsIntent(candidates))return baseHref;const slug=baseHref.replace(/^\\/vendors\\//,\"\").split(\"#\")[0];return vendorProductsHrefBySlug[slug]||baseHref;},[extractTextFromNode,hasProductsIntent,props[\"aria-label\"],props[\"data-framer-name\"],props.children,props.href,resolveVendorHrefFromCandidates,vendorProductsHrefBySlug]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const host=hostRef.current;if(!host)return;const anchors=host instanceof HTMLAnchorElement?[host]:Array.from(host.querySelectorAll(\"a\"));anchors.forEach(anchor=>{const nextHref=resolveVendorHref(anchor);if(!nextHref)return;anchor.setAttribute(\"href\",nextHref);anchor.dataset.vendorResolvedHref=nextHref;});const handleFocusIn=event=>{const target=event.target;if(!(target instanceof HTMLElement))return;const anchor=target instanceof HTMLAnchorElement?target:target.closest(\"a\");if(!anchor)return;const dark=isDarkBackground(anchor);anchor.style.outline=`2px solid ${dark?\"#f6f2ea\":\"#20201d\"}`;anchor.style.outlineOffset=\"4px\";};const handleFocusOut=event=>{const target=event.target;if(!(target instanceof HTMLElement))return;const anchor=target instanceof HTMLAnchorElement?target:target.closest(\"a\");if(!anchor)return;anchor.style.outline=\"\";anchor.style.outlineOffset=\"\";};const handleClickCapture=event=>{const target=event.target;if(!(target instanceof HTMLElement))return;const anchor=target.closest(\"a\");if(!(anchor instanceof HTMLAnchorElement))return;const nextHref=anchor.dataset.vendorResolvedHref;if(!nextHref)return;if(event.defaultPrevented||event.button!==0||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey){return;}if(anchor.target&&anchor.target.toLowerCase()===\"_blank\")return;event.preventDefault();event.stopPropagation();window.location.assign(nextHref);};host.addEventListener(\"focusin\",handleFocusIn);host.addEventListener(\"focusout\",handleFocusOut);host.addEventListener(\"click\",handleClickCapture,true);return()=>{host.removeEventListener(\"focusin\",handleFocusIn);host.removeEventListener(\"focusout\",handleFocusOut);host.removeEventListener(\"click\",handleClickCapture,true);};},[isDarkBackground,resolveVendorHref]);const mergedLinkProp=resolvedHrefFromProps&&typeof props.link===\"object\"&&props.link!==null?{...props.link,href:resolvedHrefFromProps}:props.link;return /*#__PURE__*/_jsx(Component,{ref:setMergedRef,...rest,style:{...style},href:resolvedHrefFromProps||props.href,link:mergedLinkProp});});return WrappedOverride;}\nexport const __FramerMetadata__ = {\"exports\":{\"ManufacturerCarouselInteraction\":{\"type\":\"reactHoc\",\"name\":\"ManufacturerCarouselInteraction\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EditorialFeatureRowHover\":{\"type\":\"reactHoc\",\"name\":\"EditorialFeatureRowHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ProjectCarouselInteraction\":{\"type\":\"reactHoc\",\"name\":\"ProjectCarouselInteraction\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"GlassWallSystems\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"ProjectLoadMoreController\":{\"type\":\"reactHoc\",\"name\":\"ProjectLoadMoreController\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"VendorLinkAccessibility\":{\"type\":\"reactHoc\",\"name\":\"VendorLinkAccessibility\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ProjectCarouselInteraction.map"],"mappings":"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"}