{"version":3,"file":"ColumnGridTransition_2.BvcImpaU.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/fRgQxjzYaTzI0g0sjbYL/RT7qAqDiZJeTisjf9PdW/ColumnGridTransition_2.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useLayoutEffect,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{motion,useAnimation}from\"framer-motion\";const SESSION_KEY=\"pt_column_wipe_active\";let allowNextClick=false;let navigating=false;function computeStaggerDelay(i,total,stagger,from){switch(from){case\"end\":return(total-1-i)*stagger;case\"center\":const c=(total-1)/2;return Math.abs(i-c)*stagger;case\"edges\":const ce=(total-1)/2;return(ce-Math.abs(i-ce))*stagger;case\"random\":return Math.random()*(total-1)*stagger;default:return i*stagger;}}/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function ColumnGridTransition({columnCount=5,columnColor=\"#676a6a\",showLines=true,linesMode=\"transition\",lineColor=\"rgba(255,255,255,0.1)\",leaveDuration=.6,enterDuration=.6,stagger=.06,leaveFrom=\"end\",enterFrom=\"start\"}){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const controls=useAnimation();const portalRef=useRef(null);const[ready,setReady]=useState(false);const[startCovered]=useState(()=>{if(typeof window===\"undefined\"||isCanvas)return false;return sessionStorage.getItem(SESSION_KEY)===\"true\";});const posIn={y:\"-100%\"};const posCenter={y:\"0%\"};const posOut={y:\"100%\"};useLayoutEffect(()=>{if(isCanvas)return;if(startCovered)sessionStorage.removeItem(SESSION_KEY);const el=document.createElement(\"div\");document.body.appendChild(el);portalRef.current=el;setReady(true);return()=>{if(portalRef.current)document.body.removeChild(portalRef.current);};},[]);useEffect(()=>{if(isCanvas||!ready||!startCovered)return;async function runEnter(){await new Promise(r=>setTimeout(r,100));await controls.start(i=>({...posOut,transition:{duration:enterDuration,ease:[.76,0,.24,1],delay:computeStaggerDelay(i,columnCount,stagger,enterFrom)}}));}runEnter();},[ready]);async function runLeave(anchor){controls.set(posIn);await controls.start(i=>({...posCenter,transition:{duration:leaveDuration,ease:[.76,0,.24,1],delay:computeStaggerDelay(i,columnCount,stagger,leaveFrom)}}));sessionStorage.setItem(SESSION_KEY,\"true\");allowNextClick=true;navigating=false;anchor.click();}useEffect(()=>{if(isCanvas)return;const handleClick=e=>{const anchor=e.target.closest(\"a[href]\");if(!anchor)return;if(allowNextClick){allowNextClick=false;return;}if(navigating){e.preventDefault();return;}const href=anchor.getAttribute(\"href\");if(!href)return;if(href.includes(\"#\")||href.startsWith(\"mailto:\")||href.startsWith(\"tel:\")||href.startsWith(\"javascript:\"))return;const target=new URL(anchor.href);const current=new URL(window.location.href);// skip same page\nif(target.pathname===current.pathname)return;// skip external\nif(target.hostname!==current.hostname)return;e.preventDefault();e.stopPropagation();navigating=true;runLeave(anchor);};document.addEventListener(\"click\",handleClick,true);return()=>document.removeEventListener(\"click\",handleClick,true);},[]);if(isCanvas)return null;if(!ready||!portalRef.current)return null;const initialPos=startCovered?posCenter:posIn;const linesWithColumns=showLines&&linesMode===\"transition\";const linesFixed=showLines&&linesMode===\"always\";return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",inset:0,zIndex:9999,pointerEvents:\"none\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flex:1,height:\"100%\"},children:Array.from({length:columnCount}).map((_,i)=>/*#__PURE__*/_jsx(motion.div,{custom:i,animate:controls,initial:initialPos,style:{flex:1,height:\"100%\",backgroundColor:columnColor,borderRight:i<columnCount-1?`1px solid ${lineColor}`:\"none\"}},i))}),linesWithColumns&&Array.from({length:columnCount-1}).map((_,i)=>/*#__PURE__*/_jsx(motion.div,{custom:i,animate:controls,initial:initialPos,style:{position:\"absolute\",left:`${(i+1)/columnCount*100}%`,width:\"1px\",height:\"100%\",backgroundColor:lineColor}},`line-${i}`)),linesFixed&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flex:1,position:\"absolute\",inset:0},children:Array.from({length:columnCount}).map((_,i)=>/*#__PURE__*/_jsx(\"div\",{style:{flex:1,borderRight:i<columnCount-1?`1px solid ${lineColor}`:\"none\"}},`fixed-${i}`))})]}),portalRef.current);}addPropertyControls(ColumnGridTransition,{columnCount:{type:ControlType.Number,title:\"Columns\",defaultValue:5,min:1,max:12,step:1},columnColor:{type:ControlType.Color,title:\"Column Color\",defaultValue:\"#676a6a\"},showLines:{type:ControlType.Boolean,title:\"Show Lines\",defaultValue:true},linesMode:{type:ControlType.Enum,title:\"Lines Mode\",defaultValue:\"transition\",options:[\"transition\",\"always\"],optionTitles:[\"On Transition\",\"Always\"],hidden(props){return!props.showLines;}},lineColor:{type:ControlType.Color,title:\"Line Color\",defaultValue:\"rgba(255,255,255,0.1)\",hidden(props){return!props.showLines;}},leaveDuration:{type:ControlType.Number,title:\"Leave Duration\",defaultValue:.6,min:.1,max:3,step:.05},enterDuration:{type:ControlType.Number,title:\"Enter Duration\",defaultValue:.6,min:.1,max:3,step:.05},stagger:{type:ControlType.Number,title:\"Stagger\",defaultValue:.06,min:0,max:.5,step:.01},leaveFrom:{type:ControlType.Enum,title:\"Leave From\",defaultValue:\"end\",options:[\"start\",\"end\",\"center\",\"edges\",\"random\"],optionTitles:[\"Start\",\"End\",\"Center\",\"Edges\",\"Random\"]},enterFrom:{type:ControlType.Enum,title:\"Enter From\",defaultValue:\"start\",options:[\"start\",\"end\",\"center\",\"edges\",\"random\"],optionTitles:[\"Start\",\"End\",\"Center\",\"Edges\",\"Random\"],description:\"\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ColumnGridTransition\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ColumnGridTransition_2.map"],"mappings":"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"}