{"version":3,"file":"PageFold.B6RbrAzk.mjs","names":["React.useState","React.useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/Q34xfHrOQrmRhIilH5Ig/iSTx5ps4kBzp1vUtTBhJ/PageFold.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import*as ReactDOM from\"react-dom\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/**\n * PageFold — top-left paper corner fold.\n * Hover: opens slightly (size -> openSize), label clipped inside.\n * Click: THE FLAP ITSELF peels open from its own corner until it\n * covers the screen, then navigates. No separate page roll needed.\n */export default function PageFold(props){const{size,hoverSize,underColor,paperColor,link,label,labelColor}=props;const[hover,setHover]=React.useState(false);const[leaving,setLeaving]=React.useState(null);const ref=React.useRef(null);const s=hover?hoverSize:size;const ease=[.65,0,.25,1];const onClick=e=>{if(!link||leaving)return;if(e.metaKey||e.ctrlKey||e.shiftKey)return;e.preventDefault();const r=ref.current?.getBoundingClientRect();setLeaving({x:r?.left??0,y:r?.top??0,from:s});};const yellowStyle={position:\"absolute\",top:0,left:0,background:underColor,clipPath:\"polygon(0% 0%, 100% 0%, 0% 100%)\",overflow:\"hidden\"};const flapStyle={position:\"absolute\",top:0,left:0,clipPath:\"polygon(100% 0%, 100% 100%, 0% 100%)\",background:`linear-gradient(to bottom right, rgba(0,0,0,0.10) 0%, ${paperColor} 14%, ${paperColor} 58%, rgba(0,0,0,0.07) 100%), ${paperColor}`,filter:\"drop-shadow(2px 3px 3px rgba(0,0,0,0.12))\"};const labelEl=label?/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",top:12,left:12,fontFamily:\"'Work Sans'\",fontSize:12,letterSpacing:\"0.1em\",color:labelColor,userSelect:\"none\",whiteSpace:\"nowrap\"},children:label}):null;// full-screen peel rendered above everything, anchored at the\n// fold's exact on-screen corner so it grows from the flap's edge\nconst cover=leaving?window.innerWidth+window.innerHeight+200:0;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"a\",{ref:ref,href:link||undefined,onClick:onClick,style:{display:\"block\",position:\"relative\",width:\"100%\",height:\"100%\",cursor:\"pointer\",textDecoration:\"none\",overflow:\"visible\",opacity:leaving?0:1},onMouseEnter:()=>setHover(true),onMouseLeave:()=>setHover(false),children:[/*#__PURE__*/_jsx(motion.div,{animate:{width:s,height:s},transition:{duration:.35,ease:[.25,.1,.25,1]},style:yellowStyle,children:labelEl}),/*#__PURE__*/_jsx(motion.div,{animate:{width:s,height:s},transition:{duration:.35,ease:[.25,.1,.25,1]},style:flapStyle})]}),leaving&&/*#__PURE__*/ReactDOM.createPortal(/*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",left:leaving.x,top:leaving.y,width:0,height:0,zIndex:99999,pointerEvents:\"none\",overflow:\"visible\"},children:[/*#__PURE__*/_jsx(motion.div,{initial:{width:leaving.from,height:leaving.from},animate:{width:cover,height:cover},transition:{duration:.75,ease},style:yellowStyle,children:labelEl}),/*#__PURE__*/_jsx(motion.div,{initial:{width:leaving.from,height:leaving.from},animate:{width:cover,height:cover},transition:{duration:.75,ease},onAnimationComplete:()=>{if(link)window.location.assign(link);},style:flapStyle})]}),document.body)]});}PageFold.defaultProps={size:44,hoverSize:68,underColor:\"#FFDB07\",paperColor:\"#FAFAFA\",link:\"/about\",label:\"ABOUT\",labelColor:\"#131014\"};addPropertyControls(PageFold,{size:{type:ControlType.Number,title:\"Size\",defaultValue:44,min:16,max:300},hoverSize:{type:ControlType.Number,title:\"Open size\",defaultValue:68,min:40,max:400},underColor:{type:ControlType.Color,title:\"Under\",defaultValue:\"#FFDB07\"},paperColor:{type:ControlType.Color,title:\"Flap\",defaultValue:\"#FAFAFA\"},link:{type:ControlType.Link,title:\"Link\"},label:{type:ControlType.String,title:\"Label\",defaultValue:\"ABOUT\"},labelColor:{type:ControlType.Color,title:\"Label color\",defaultValue:\"#131014\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PageFold\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PageFold.map"],"mappings":"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"}