{"version":3,"file":"shared-lib.BxTK67-3.mjs","names":["useState","useCallback","useMemo"],"sources":["https:/framerusercontent.com/modules/iTceifGUsogp3593q7jy/0cLG6caofFAWf7I3k6CE/NavBar.js","https:/framerusercontent.com/modules/8c9Y24VSfQXmbe4hN0uS/Ob5rFdIdRlo8uidQfp3c/siteMetadata.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{startTransition,useCallback,useEffect,useMemo,useState}from\"react\";import{createPortal}from\"react-dom\";export default function NavBar(props){const{mode=\"wordmark\",backHref,wordmark=\"Neal\",homeHref,projectsHref,aboutHref,contactHref,contactAction=\"link\",textColor=\"#F4F1EA\",barColor=\"rgba(12,12,12,0.9)\",barHeight=64,maxWidth=1600,revealOnScroll=false,revealAfter=140}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[mounted,setMounted]=useState(false);const[isMobile,setIsMobile]=useState(false);const[menuOpen,setMenuOpen]=useState(false);const[revealed,setRevealed]=useState(!revealOnScroll);useEffect(()=>{setMounted(true);},[]);const updateIsMobile=useCallback(()=>{if(typeof window!==\"undefined\"){const nextIsMobile=window.innerWidth<640;startTransition(()=>{setIsMobile(nextIsMobile);if(!nextIsMobile)setMenuOpen(false);});}else{startTransition(()=>{setIsMobile(false);setMenuOpen(false);});}},[]);useEffect(()=>{updateIsMobile();if(typeof window!==\"undefined\"){window.addEventListener(\"resize\",updateIsMobile);return()=>window.removeEventListener(\"resize\",updateIsMobile);}},[updateIsMobile]);useEffect(()=>{if(typeof window===\"undefined\"||isCanvas)return;if(!revealOnScroll){setRevealed(true);return;}const onScroll=()=>{const past=window.scrollY>revealAfter;setRevealed(past);if(!past)setMenuOpen(false);};onScroll();window.addEventListener(\"scroll\",onScroll,{passive:true});return()=>window.removeEventListener(\"scroll\",onScroll);},[revealOnScroll,revealAfter,isCanvas]);const toggleMenu=useCallback(()=>{startTransition(()=>setMenuOpen(prev=>!prev));},[]);const closeMenu=useCallback(()=>{startTransition(()=>setMenuOpen(false));},[]);const scrollToContact=useCallback(e=>{if(contactAction!==\"scroll\"||isCanvas)return;e.preventDefault();setMenuOpen(false);if(typeof window===\"undefined\")return;const doc=document.documentElement;window.scrollTo({top:doc.scrollHeight-window.innerHeight,behavior:\"smooth\"});},[contactAction,isCanvas]);const linkStyle=useMemo(()=>({color:textColor,fontFamily:\"Inter, ui-sans-serif, system-ui, -apple-system, sans-serif\",fontSize:15,fontWeight:500,letterSpacing:\"0.3px\",textDecoration:\"none\",whiteSpace:\"nowrap\",cursor:\"pointer\"}),[textColor]);// viewport-scaled gutters: never less than 24, never more than 56\nconst gutter=isMobile?\"20px\":\"clamp(24px, 3.5vw, 56px)\";const showBar=isCanvas?true:revealed;const contactLink=onClickExtra=>/*#__PURE__*/_jsx(\"a\",{href:contactAction===\"scroll\"?\"#\":contactHref,style:linkStyle,onClick:e=>{scrollToContact(e);onClickExtra?.();},children:\"Contact\"});const bar=/*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",top:0,left:0,right:0,width:\"100%\",height:barHeight,background:barColor,zIndex:2147483e3,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",boxSizing:\"border-box\",opacity:showBar?1:0,transform:showBar?\"translateY(0)\":\"translateY(-100%)\",transition:\"opacity 0.35s ease-out, transform 0.35s ease-out\",pointerEvents:showBar?\"auto\":\"none\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",maxWidth,minWidth:0,display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:16,paddingLeft:gutter,paddingRight:gutter,boxSizing:\"border-box\"},children:[mode===\"back\"?/*#__PURE__*/_jsx(\"a\",{href:backHref,style:{...linkStyle,flexShrink:0},children:\"← Back\"}):/*#__PURE__*/_jsx(\"a\",{href:homeHref,style:{...linkStyle,fontWeight:700,fontSize:20,letterSpacing:\"-0.5px\",flexShrink:0},children:wordmark}),isMobile?/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":menuOpen?\"Close navigation menu\":\"Open navigation menu\",\"aria-expanded\":menuOpen,onClick:toggleMenu,style:{color:textColor,background:\"transparent\",border:\"none\",cursor:\"pointer\",fontSize:28,lineHeight:1,padding:0,margin:0,flexShrink:0},children:\"☰\"}):/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:\"clamp(20px, 2.6vw, 40px)\",flexShrink:0},children:[/*#__PURE__*/_jsx(\"a\",{href:projectsHref,style:linkStyle,children:\"Projects\"}),/*#__PURE__*/_jsx(\"a\",{href:aboutHref,style:linkStyle,children:\"About\"}),contactLink()]})]}),isMobile&&menuOpen?/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",top:barHeight,left:0,width:\"100%\",background:barColor,borderTop:`1px solid ${textColor}22`,display:\"flex\",flexDirection:\"column\",padding:\"14px 20px 18px 20px\",boxSizing:\"border-box\",gap:12},children:[/*#__PURE__*/_jsx(\"a\",{href:projectsHref,style:linkStyle,onClick:closeMenu,children:\"Projects\"}),/*#__PURE__*/_jsx(\"a\",{href:aboutHref,style:linkStyle,onClick:closeMenu,children:\"About\"}),contactLink(closeMenu)]}):null]});// Canvas: render inline so the layer stays visible and editable.\nif(isCanvas){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:barHeight,position:\"relative\"},children:bar});}// Runtime: portal to body so nothing upstream can offset or clip it.\nif(!mounted||typeof document===\"undefined\")return null;return /*#__PURE__*/createPortal(bar,document.body);}addPropertyControls(NavBar,{mode:{type:ControlType.Enum,title:\"Left slot\",options:[\"wordmark\",\"back\"],optionTitles:[\"Wordmark\",\"Back link\"],defaultValue:\"wordmark\",displaySegmentedControl:true},backHref:{type:ControlType.Link,title:\"Back to\",hidden:p=>p.mode!==\"back\"},wordmark:{type:ControlType.String,title:\"Wordmark\",defaultValue:\"Neal\",hidden:p=>p.mode===\"back\"},homeHref:{type:ControlType.Link,title:\"Home\"},projectsHref:{type:ControlType.Link,title:\"Projects\"},aboutHref:{type:ControlType.Link,title:\"About\"},contactAction:{type:ControlType.Enum,title:\"Contact goes to\",options:[\"link\",\"scroll\"],optionTitles:[\"Contact page\",\"Bottom of page\"],defaultValue:\"link\",displaySegmentedControl:true},contactHref:{type:ControlType.Link,title:\"Contact\",hidden:p=>p.contactAction===\"scroll\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#F4F1EA\"},barColor:{type:ControlType.Color,title:\"Bar\",defaultValue:\"rgba(12,12,12,0.9)\"},barHeight:{type:ControlType.Number,title:\"Bar height\",min:48,max:96,step:2,defaultValue:64},maxWidth:{type:ControlType.Number,title:\"Max width\",min:900,max:2e3,step:20,defaultValue:1600},revealOnScroll:{type:ControlType.Boolean,title:\"Reveal on scroll\",defaultValue:false},revealAfter:{type:ControlType.Number,title:\"Reveal after\",min:0,max:600,step:10,defaultValue:140,unit:\"px\",hidden:p=>!p.revealOnScroll}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NavBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NavBar.map","// Generated by Framer (f8e97a5)\nexport default function metadata(params,activeLocale){return{description:\"Neal Nakar's portfolio\",robots:\"max-image-preview:large\",title:\"Neal Nakar\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}