{"version":3,"file":"Motion.sPA9Bkxm.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/rfWcbWKTpWL72vnSrj2k/8zEJIoMOAg6CcbHHyvAz/Motion.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useRef,useState}from\"react\";import{RenderTarget}from\"framer\";import{useScroll,useTransform,useSpring,useMotionValueEvent,useReducedMotion}from\"framer-motion\";// BRAVIQ scroll motion. Each override returns the layer untouched on the canvas.\nconst isCanvas=()=>RenderTarget.current()===RenderTarget.canvas;const SPRING={stiffness:120,damping:26,mass:.6};function useProgress(ref,from=\"start 0.98\",to=\"start 0.45\"){const{scrollYProgress}=useScroll({target:ref,offset:[from,to]});return useSpring(scrollYProgress,SPRING);}function make(build,from,to){return Component=>/*#__PURE__*/forwardRef((props,_ref)=>{const ref=useRef(null);const reduce=useReducedMotion();const p=useProgress(ref,from,to);const{scrollYProgress}=useScroll({target:ref,offset:[\"start end\",\"end start\"]});const style=build(p,scrollYProgress);if(isCanvas()||reduce)return /*#__PURE__*/_jsx(Component,{...props,ref:ref});return /*#__PURE__*/_jsx(Component,{...props,ref:ref,style:{...props.style,...style,willChange:\"transform, opacity\"}});});}/** Text sharpens from a blur as it enters. */const _withClarity=make(p=>({opacity:useTransform(p,[0,1],[.12,1]),filter:useTransform(p,[0,1],[\"blur(12px)\",\"blur(0px)\"]),y:useTransform(p,[0,1],[32,0])}));export function withClarity(Component){return _withClarity(Component);}/** Image opens from a narrow capsule to its full frame. */const _withReveal=make(p=>({clipPath:useTransform(p,[0,1],[\"inset(12% 16% 12% 16%)\",\"inset(0% 0% 0% 0%)\"])}),\"start 1\",\"start 0.35\");export function withReveal(Component){return _withReveal(Component);}/** Slow zoom-out on an image inside a clipped frame. */const _withZoom=make((_p,raw)=>({scale:useTransform(raw,[0,1],[1.2,1]),y:useTransform(raw,[0,1],[\"-4%\",\"4%\"])}));export function withZoom(Component){return _withZoom(Component);}/** Panel arrives as an inset card and settles to full size. */const _withSheet=make(p=>({scale:useTransform(p,[0,1],[.93,1]),y:useTransform(p,[0,1],[80,0]),opacity:useTransform(p,[0,.4],[.5,1])}),\"start 1\",\"start 0.5\");export function withSheet(Component){return _withSheet(Component);}/** Cards rise one after another, like a staggered grid. */const rise=d=>make(p=>({y:useTransform(p,[0,1],[d,0]),opacity:useTransform(p,[0,.5],[0,1])}),\"start 1\",\"start 0.6\");const _withRiseA=rise(60);export function withRiseA(Component){return _withRiseA(Component);}const _withRiseB=rise(120);export function withRiseB(Component){return _withRiseB(Component);}const _withRiseC=rise(180);export function withRiseC(Component){return _withRiseC(Component);}/** Hairline drawn left to right. */const _withRuleDraw=make(p=>({scaleX:p,transformOrigin:\"0% 50%\"}),\"start 1\",\"start 0.6\");export function withRuleDraw(Component){return _withRuleDraw(Component);}/** Rows drift sideways with the scroll. */const _withDriftLeft=make((_p,raw)=>({x:useTransform(raw,[0,1],[120,-120])}));export function withDriftLeft(Component){return _withDriftLeft(Component);}const _withDriftRight=make((_p,raw)=>({x:useTransform(raw,[0,1],[-120,120])}));export function withDriftRight(Component){return _withDriftRight(Component);}/** Marks and rings turn with the scroll. */const _withSpin=make((_p,raw)=>({rotate:useTransform(raw,[0,1],[-90,120])}));export function withSpin(Component){return _withSpin(Component);}/** Parallax lift for floating elements. */const _withFloatUp=make((_p,raw)=>({y:useTransform(raw,[0,1],[80,-80])}));export function withFloatUp(Component){return _withFloatUp(Component);}const _withFloatDown=make((_p,raw)=>({y:useTransform(raw,[0,1],[-50,50])}));export function withFloatDown(Component){return _withFloatDown(Component);}/** Capsule stretches open as it enters. */const _withStretch=make(p=>({scaleX:useTransform(p,[0,1],[.72,1]),opacity:useTransform(p,[0,.4],[.3,1])}),\"start 1\",\"start 0.5\");export function withStretch(Component){return _withStretch(Component);}/** Stacked cards: the card shrinks and dims as the next one covers it. */const _withStack=make((_p,raw)=>({scale:useTransform(raw,[.45,.9],[1,.9]),opacity:useTransform(raw,[.55,.95],[1,.4])}));export function withStack(Component){return _withStack(Component);}/** Hero copy lifts and fades as the page scrolls away. */export function withHeroOut(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const{scrollY}=useScroll();const reduce=useReducedMotion();const y=useTransform(scrollY,[0,700],[0,-120]);const opacity=useTransform(scrollY,[60,600],[1,0]);if(isCanvas()||reduce)return /*#__PURE__*/_jsx(Component,{...props,ref:ref});return /*#__PURE__*/_jsx(Component,{...props,ref:ref,style:{...props.style,y,opacity}});});}/** Hero photo sinks slowly and scales. */export function withHeroPhoto(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const{scrollY}=useScroll();const reduce=useReducedMotion();const y=useTransform(scrollY,[0,900],[0,140]);const scale=useTransform(scrollY,[0,900],[1,1.12]);if(isCanvas()||reduce)return /*#__PURE__*/_jsx(Component,{...props,ref:ref});return /*#__PURE__*/_jsx(Component,{...props,ref:ref,style:{...props.style,y,scale}});});}/** Hero wordmark spreads as you scroll. */export function withWordmark(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const{scrollY}=useScroll();const reduce=useReducedMotion();const y=useTransform(scrollY,[0,800],[0,160]);const scale=useTransform(scrollY,[0,800],[1,.9]);const opacity=useTransform(scrollY,[200,800],[1,.2]);if(isCanvas()||reduce)return /*#__PURE__*/_jsx(Component,{...props,ref:ref});return /*#__PURE__*/_jsx(Component,{...props,ref:ref,style:{...props.style,y,scale,opacity}});});}/** Navigation: hides on scroll down, returns on scroll up. */export function withNavHide(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const{scrollY}=useScroll();const[hidden,setHidden]=useState(false);const last=useRef(0);useMotionValueEvent(scrollY,\"change\",v=>{const d=v-last.current;if(Math.abs(d)<6)return;setHidden(d>0&&v>260);last.current=v;});if(isCanvas())return /*#__PURE__*/_jsx(Component,{...props,ref:ref});return /*#__PURE__*/_jsx(Component,{...props,ref:ref,animate:{y:hidden?\"-130%\":\"0%\"},transition:{duration:.45,ease:[.22,1,.36,1]}});});}/** Image is unveiled from the bottom edge upward, like a curtain lifting. */const _withCurtain=make(p=>({clipPath:useTransform(p,[0,1],[\"inset(100% 0% 0% 0%)\",\"inset(0% 0% 0% 0%)\"])}),\"start 1\",\"start 0.45\");export function withCurtain(Component){return _withCurtain(Component);}/** Frame opens from a soft arch into its full rectangle. */const _withArch=make(p=>({clipPath:useTransform(p,[0,1],[\"inset(14% 22% 0% 22% round 50% 50% 0% 0%)\",\"inset(0% 0% 0% 0% round 0% 0% 0% 0%)\"])}),\"start 1\",\"start 0.35\");export function withArch(Component){return _withArch(Component);}/** Giant wordmark rises letter-block upward from below its baseline. */const _withWordRise=make(p=>({y:useTransform(p,[0,1],[\"60%\",\"0%\"]),opacity:useTransform(p,[0,.6],[0,1])}),\"start 1.1\",\"start 0.75\");export function withWordRise(Component){return _withWordRise(Component);}/** Panel widens from a centred slot to full bleed while the page scrolls. */const _withWiden=make(p=>({clipPath:useTransform(p,[0,1],[\"inset(0% 9% 0% 9%)\",\"inset(0% 0% 0% 0%)\"])}),\"start 1\",\"start 0.2\");export function withWiden(Component){return _withWiden(Component);}/** Card tilts back slightly and settles flat as it enters. */const _withSettle=make(p=>({y:useTransform(p,[0,1],[90,0]),rotateX:useTransform(p,[0,1],[14,0]),opacity:useTransform(p,[0,.45],[0,1]),transformPerspective:1200}),\"start 1\",\"start 0.62\");export function withSettle(Component){return _withSettle(Component);}\nexport const __FramerMetadata__ = {\"exports\":{\"withArch\":{\"type\":\"reactHoc\",\"name\":\"withArch\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSpin\":{\"type\":\"reactHoc\",\"name\":\"withSpin\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withZoom\":{\"type\":\"reactHoc\",\"name\":\"withZoom\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRiseC\":{\"type\":\"reactHoc\",\"name\":\"withRiseC\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDriftRight\":{\"type\":\"reactHoc\",\"name\":\"withDriftRight\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withNavHide\":{\"type\":\"reactHoc\",\"name\":\"withNavHide\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHeroPhoto\":{\"type\":\"reactHoc\",\"name\":\"withHeroPhoto\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withReveal\":{\"type\":\"reactHoc\",\"name\":\"withReveal\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withWiden\":{\"type\":\"reactHoc\",\"name\":\"withWiden\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRiseA\":{\"type\":\"reactHoc\",\"name\":\"withRiseA\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withStack\":{\"type\":\"reactHoc\",\"name\":\"withStack\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSheet\":{\"type\":\"reactHoc\",\"name\":\"withSheet\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHeroOut\":{\"type\":\"reactHoc\",\"name\":\"withHeroOut\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withStretch\":{\"type\":\"reactHoc\",\"name\":\"withStretch\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withClarity\":{\"type\":\"reactHoc\",\"name\":\"withClarity\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSettle\":{\"type\":\"reactHoc\",\"name\":\"withSettle\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDriftLeft\":{\"type\":\"reactHoc\",\"name\":\"withDriftLeft\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withWordRise\":{\"type\":\"reactHoc\",\"name\":\"withWordRise\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFloatDown\":{\"type\":\"reactHoc\",\"name\":\"withFloatDown\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRiseB\":{\"type\":\"reactHoc\",\"name\":\"withRiseB\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCurtain\":{\"type\":\"reactHoc\",\"name\":\"withCurtain\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRuleDraw\":{\"type\":\"reactHoc\",\"name\":\"withRuleDraw\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFloatUp\":{\"type\":\"reactHoc\",\"name\":\"withFloatUp\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withWordmark\":{\"type\":\"reactHoc\",\"name\":\"withWordmark\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Motion.map"],"mappings":"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"}