{"version":3,"file":"WithScrollSnap.Cdm63AUc.mjs","names":["useRef","useState","useCallback","useMemo"],"sources":["https:/framerusercontent.com/modules/tcjBaMsfF2w2nNlLUMt7/Z6eAihaZUEOb7bq2r3PL/WithScrollSnap.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,startTransition,useCallback,useEffect,useMemo,useRef,useState}from\"react\";import{useReducedMotion,useScroll,useTransform}from\"framer-motion\";import{useIsStaticRenderer}from\"framer\";/**\n * User request:\n * Create a Framer code override export (HOC) named `withScrollSnap` for a top-level page container.\n * On mount, enable window vertical scroll snap with `scrollSnapType = \"y proximity\"` and `scrollPaddingTop = \"0px\"`.\n * Apply `scrollSnapAlign = \"start\"` and `scrollSnapStop = \"normal\"` to each direct child section element of the wrapped container.\n * Clean up on unmount by restoring previous documentElement styles and child inline snap styles.\n * Keep SSR-safe by guarding document/window usage inside useEffect.\n * Do not change visual styling/layout/structure and add no property controls.\n */export function withScrollSnap(Component){return /*#__PURE__*/forwardRef(function WithScrollSnap(props,ref){const localRef=useRef(null);const topOffset=typeof props?.topOffset===\"number\"&&Number.isFinite(props.topOffset)?props.topOffset:4;const smooth=typeof props?.smooth===\"boolean\"?props.smooth:true;useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\"){return;}const root=document.documentElement;const previousScrollSnapType=root.style.scrollSnapType;const previousScrollPaddingTop=root.style.scrollPaddingTop;const previousScrollBehavior=root.style.scrollBehavior;root.style.scrollSnapType=\"y proximity\";root.style.scrollPaddingTop=`${topOffset}px`;root.style.scrollBehavior=smooth?\"smooth\":\"auto\";const container=localRef.current;const children=container?Array.from(container.children).filter(child=>child instanceof HTMLElement&&child.tagName===\"SECTION\"):[];const previousChildStyles=children.map(child=>{const htmlChild=child;return{element:htmlChild,scrollSnapAlign:htmlChild.style.scrollSnapAlign,scrollSnapStop:htmlChild.style.scrollSnapStop,scrollMarginTop:htmlChild.style.scrollMarginTop};});previousChildStyles.forEach(({element})=>{element.style.scrollSnapAlign=\"start\";element.style.scrollSnapStop=\"normal\";element.style.scrollMarginTop=`${topOffset}px`;});return()=>{root.style.scrollSnapType=previousScrollSnapType;root.style.scrollPaddingTop=previousScrollPaddingTop;root.style.scrollBehavior=previousScrollBehavior;previousChildStyles.forEach(({element,scrollSnapAlign,scrollSnapStop,scrollMarginTop})=>{element.style.scrollSnapAlign=scrollSnapAlign;element.style.scrollSnapStop=scrollSnapStop;element.style.scrollMarginTop=scrollMarginTop;});};},[topOffset,smooth]);return /*#__PURE__*/_jsx(Component,{...props,ref:node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&\"current\"in ref){ref.current=node;}}});});}export function withScrollToTop(Component){return /*#__PURE__*/forwardRef(function WithScrollToTop(props,ref){const handleClick=event=>{if(typeof props?.onClick===\"function\"){props.onClick(event);}if(typeof window!==\"undefined\"){window.scrollTo({top:0,behavior:\"smooth\"});}};return /*#__PURE__*/_jsx(Component,{...props,ref:ref,onClick:handleClick,style:{...props.style,cursor:\"pointer\"}});});}export function ContactRowHover(Component){return createContactRowHoverOverride(Component,\"#FF4A1F\");}function createContactRowHoverOverride(Component,outlineColor){return /*#__PURE__*/forwardRef(function ContactRowHoverOverride(props,ref){const localRef=useRef(null);const[isHovered,setIsHovered]=useState(false);const styleMemoryRef=useRef(new Map);const rememberStyle=useCallback(element=>{if(styleMemoryRef.current.has(element))return;styleMemoryRef.current.set(element,{color:{value:element.style.getPropertyValue(\"color\"),priority:element.style.getPropertyPriority(\"color\")},backgroundColor:{value:element.style.getPropertyValue(\"background-color\"),priority:element.style.getPropertyPriority(\"background-color\")},outline:{value:element.style.getPropertyValue(\"outline\"),priority:element.style.getPropertyPriority(\"outline\")},outlineOffset:{value:element.style.getPropertyValue(\"outline-offset\"),priority:element.style.getPropertyPriority(\"outline-offset\")},fill:{value:element.style.getPropertyValue(\"fill\"),priority:element.style.getPropertyPriority(\"fill\")},stroke:{value:element.style.getPropertyValue(\"stroke\"),priority:element.style.getPropertyPriority(\"stroke\")}});},[]);const applyHoverStyles=useCallback(()=>{const root=localRef.current;if(!root||typeof window===\"undefined\")return;styleMemoryRef.current.clear();rememberStyle(root);root.style.setProperty(\"background-color\",\"#000000\",\"important\");root.style.setProperty(\"outline\",`3px solid ${outlineColor}`,\"important\");root.style.setProperty(\"outline-offset\",\"-1px\",\"important\");const descendants=Array.from(root.querySelectorAll(\"*\"));descendants.forEach(element=>{rememberStyle(element);element.style.setProperty(\"color\",\"#FFFFFF\",\"important\");element.style.setProperty(\"fill\",\"#FFFFFF\",\"important\");element.style.setProperty(\"stroke\",\"#FFFFFF\",\"important\");});},[outlineColor,rememberStyle]);const restoreHoverStyles=useCallback(()=>{styleMemoryRef.current.forEach((savedStyle,element)=>{if(savedStyle.color.value){element.style.setProperty(\"color\",savedStyle.color.value,savedStyle.color.priority);}else{element.style.removeProperty(\"color\");}if(savedStyle.backgroundColor.value){element.style.setProperty(\"background-color\",savedStyle.backgroundColor.value,savedStyle.backgroundColor.priority);}else{element.style.removeProperty(\"background-color\");}if(savedStyle.outline.value){element.style.setProperty(\"outline\",savedStyle.outline.value,savedStyle.outline.priority);}else{element.style.removeProperty(\"outline\");}if(savedStyle.outlineOffset.value){element.style.setProperty(\"outline-offset\",savedStyle.outlineOffset.value,savedStyle.outlineOffset.priority);}else{element.style.removeProperty(\"outline-offset\");}if(savedStyle.fill.value){element.style.setProperty(\"fill\",savedStyle.fill.value,savedStyle.fill.priority);}else{element.style.removeProperty(\"fill\");}if(savedStyle.stroke.value){element.style.setProperty(\"stroke\",savedStyle.stroke.value,savedStyle.stroke.priority);}else{element.style.removeProperty(\"stroke\");}});styleMemoryRef.current.clear();},[]);const setRefs=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&\"current\"in ref){ref.current=node;}},[ref]);const mergedStyle=useMemo(()=>({...props.style,transition:props.style?.transition??\"background-color 160ms ease, color 160ms ease, transform 160ms ease, outline-color 160ms ease\",transform:isHovered?`${props.style?.transform?`${props.style.transform} `:\"\"}translate3d(0, -1px, 0)`:props.style?.transform,willChange:\"background-color, transform, color\"}),[isHovered,props.style]);return /*#__PURE__*/_jsx(Component,{...props,ref:setRefs,style:mergedStyle,onMouseEnter:event=>{props.onMouseEnter?.(event);startTransition(()=>setIsHovered(true));applyHoverStyles();},onMouseLeave:event=>{props.onMouseLeave?.(event);startTransition(()=>setIsHovered(false));restoreHoverStyles();},onFocus:event=>{props.onFocus?.(event);startTransition(()=>setIsHovered(true));applyHoverStyles();},onBlur:event=>{props.onBlur?.(event);startTransition(()=>setIsHovered(false));restoreHoverStyles();}});});}export function ContactRowHoverOrange(Component){return createContactRowHoverOverride(Component,\"#FF4A1F\");}export function ContactRowHoverTeal(Component){return createContactRowHoverOverride(Component,\"#00E7DA\");}export function ContactRowHoverWhite(Component){return createContactRowHoverOverride(Component,\"#FFFFFF\");}export function withHeroVideoTakeover(Component){return /*#__PURE__*/forwardRef(function WithHeroVideoTakeover(props,ref){const localRef=useRef(null);const prefersReducedMotion=useReducedMotion();const{scrollYProgress}=useScroll({target:localRef,offset:[\"start end\",\"end start\"]});const takeoverY=useTransform(scrollYProgress,[0,.35,.65,1],[\"0vh\",\"-95vh\",\"-95vh\",\"0vh\"]);return /*#__PURE__*/_jsx(Component,{...props,ref:node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&\"current\"in ref){ref.current=node;}},style:{...props.style,backgroundColor:\"transparent\",y:prefersReducedMotion?0:takeoverY,willChange:prefersReducedMotion?props.style?.willChange:\"transform\"}});});}export function withAboutVideoPreview(Component){return /*#__PURE__*/forwardRef(function WithAboutVideoPreview(props,ref){const prefersReducedMotion=useReducedMotion();const[viewportHeight,setViewportHeight]=useState(1e3);const{scrollY}=useScroll();useEffect(()=>{if(typeof window===\"undefined\")return;const updateViewportHeight=()=>{setViewportHeight(window.innerHeight||1e3);};updateViewportHeight();window.addEventListener(\"resize\",updateViewportHeight);return()=>window.removeEventListener(\"resize\",updateViewportHeight);},[]);const start=viewportHeight*.3;const end=viewportHeight*.75;const previewOpacity=useTransform(scrollY,[start,end],[0,1]);const previewY=useTransform(scrollY,[start,end],[24,0]);return /*#__PURE__*/_jsx(Component,{...props,ref:ref,style:{...props.style,opacity:prefersReducedMotion?0:previewOpacity,y:prefersReducedMotion?24:previewY,willChange:prefersReducedMotion?props.style?.willChange:\"opacity, transform\"}});});}export function withHeroForegroundExit(Component){return /*#__PURE__*/forwardRef(function WithHeroForegroundExit(props,ref){const prefersReducedMotion=useReducedMotion();const[viewportHeight,setViewportHeight]=useState(1e3);const{scrollY}=useScroll();useEffect(()=>{if(typeof window===\"undefined\")return;const updateViewportHeight=()=>{setViewportHeight(window.innerHeight||1e3);};updateViewportHeight();window.addEventListener(\"resize\",updateViewportHeight);return()=>window.removeEventListener(\"resize\",updateViewportHeight);},[]);const start=viewportHeight*.3;const end=viewportHeight*.75;const foregroundOpacity=useTransform(scrollY,[start,end],[1,0]);const foregroundY=useTransform(scrollY,[start,end],[0,-24]);return /*#__PURE__*/_jsx(Component,{...props,ref:ref,style:{...props.style,opacity:prefersReducedMotion?1:foregroundOpacity,y:prefersReducedMotion?0:foregroundY,willChange:prefersReducedMotion?props.style?.willChange:\"opacity, transform\"}});});}export function StickyServiceCTAsAfterScroll(Component){return /*#__PURE__*/forwardRef(function StickyServiceCTAsAfterScrollOverride(props,ref){const localRef=useRef(null);const isStaticRenderer=useIsStaticRenderer();const[isFixed,setIsFixed]=useState(false);const[fixedMetrics,setFixedMetrics]=useState({left:0,width:0});const threshold=typeof props?.scrollThreshold===\"number\"&&Number.isFinite(props.scrollThreshold)?props.scrollThreshold:12;const setRefs=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&\"current\"in ref){ref.current=node;}},[ref]);const measureElement=useCallback(()=>{const element=localRef.current;if(!element||typeof window===\"undefined\")return;const rect=element.getBoundingClientRect();startTransition(()=>{setFixedMetrics({left:rect.left,width:rect.width});});},[]);useEffect(()=>{if(isStaticRenderer||typeof window===\"undefined\"||typeof document===\"undefined\"){return;}let rafId=0;const updateFixedState=()=>{const shouldFix=window.scrollY>threshold;startTransition(()=>{setIsFixed(previous=>previous===shouldFix?previous:shouldFix);});if(shouldFix){measureElement();}};const handleScroll=()=>{if(rafId)return;rafId=window.requestAnimationFrame(()=>{rafId=0;updateFixedState();});};const handleResize=()=>{if(!isFixed)return;measureElement();};updateFixedState();window.addEventListener(\"scroll\",handleScroll,{passive:true});window.addEventListener(\"resize\",handleResize);return()=>{if(rafId)window.cancelAnimationFrame(rafId);window.removeEventListener(\"scroll\",handleScroll);window.removeEventListener(\"resize\",handleResize);};},[isFixed,isStaticRenderer,measureElement,threshold]);const mergedStyle=useMemo(()=>{if(isStaticRenderer||!isFixed){return{...props.style};}const supportsFixedWidth=typeof fixedMetrics.width===\"number\"&&fixedMetrics.width>0;return{...props.style,position:\"fixed\",bottom:0,left:supportsFixedWidth?fixedMetrics.left:0,width:supportsFixedWidth?fixedMetrics.width:\"100%\"};},[fixedMetrics.left,fixedMetrics.width,isFixed,isStaticRenderer,props.style]);return /*#__PURE__*/_jsx(Component,{...props,ref:setRefs,style:mergedStyle});});}\nexport const __FramerMetadata__ = {\"exports\":{\"StickyServiceCTAsAfterScroll\":{\"type\":\"reactHoc\",\"name\":\"StickyServiceCTAsAfterScroll\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHeroForegroundExit\":{\"type\":\"reactHoc\",\"name\":\"withHeroForegroundExit\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withScrollSnap\":{\"type\":\"reactHoc\",\"name\":\"withScrollSnap\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContactRowHoverTeal\":{\"type\":\"reactHoc\",\"name\":\"ContactRowHoverTeal\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withScrollToTop\":{\"type\":\"reactHoc\",\"name\":\"withScrollToTop\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHeroVideoTakeover\":{\"type\":\"reactHoc\",\"name\":\"withHeroVideoTakeover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContactRowHoverWhite\":{\"type\":\"reactHoc\",\"name\":\"ContactRowHoverWhite\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContactRowHoverOrange\":{\"type\":\"reactHoc\",\"name\":\"ContactRowHoverOrange\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContactRowHover\":{\"type\":\"reactHoc\",\"name\":\"ContactRowHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAboutVideoPreview\":{\"type\":\"reactHoc\",\"name\":\"withAboutVideoPreview\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WithScrollSnap.map"],"mappings":"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"}