{"version":3,"file":"Mini_Map.CuWd1lbm.mjs","names":["React.useState","React.useRef","React.useMemo"],"sources":["https:/framerusercontent.com/modules/b40lt3chURcSrRQ1Vu4f/R3AW8E8wirysskDyiq4E/Mini_Map.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{forwardRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const defaultSections=[{label:\"Hero\",id:\"hero\"},{label:\"Selected Work\",id:\"work\"},{label:\"AI Workflows\",id:\"ai\"},{label:\"About\",id:\"about\"},{label:\"Experience\",id:\"experience\"},{label:\"Testimonials\",id:\"testimonials\"},{label:\"Contact\",id:\"contact\"}];const defaults={side:\"right\",textColor:\"rgba(17,17,17,0.92)\",activeColor:\"#111111\",inactiveColor:\"rgba(17,17,17,0.22)\",fontSize:12.5,fontWeight:400,lineWidth:16,activeLineWidth:26,lineThickness:1,rowGap:4,hoverRowGap:8,labelGap:8,activeOffset:.4,revealActiveLabel:true,showFromSection:1,mobileLabelDuration:1600,idleHideDelay:1500,lineRevealDuration:220,mobileScrubThreshold:8,shadowColor:\"rgba(255,255,255,0.9)\",shadowBlur:14,shadowOpacity:.72,mobileLabelOffset:28,mobileScrubFontSize:15,scrollRevealDistance:160,edgeRevealDelay:1e3,edgeHotspotWidth:44,desktopLabelGap:14};function toFiniteNumber(value,fallback){const parsed=typeof value===\"number\"?value:Number.parseFloat(String(value));return Number.isFinite(parsed)?parsed:fallback;}const sectionRegistry=new Map;function normalizeSectionId(id){const trimmed=id.trim();return trimmed.startsWith(\"#\")?trimmed.slice(1):trimmed;}function isElementVisibleForNav(element){if(!element.isConnected)return false;if(element.getClientRects().length===0)return false;const rect=element.getBoundingClientRect();if(rect.width<=0||rect.height<=0)return false;let current=element;while(current){if(current.hidden)return false;if(current.getAttribute(\"aria-hidden\")===\"true\")return false;const style=window.getComputedStyle(current);if(style.display===\"none\"||style.visibility===\"hidden\"||style.visibility===\"collapse\"){return false;}current=current.parentElement;}return true;}function distanceToAnchorY(rect,anchorY){if(anchorY<rect.top)return rect.top-anchorY;if(anchorY>rect.bottom)return anchorY-rect.bottom;return 0;}function collectSectionCandidates(id){if(typeof document===\"undefined\")return[];const exactId=normalizeSectionId(id);const results=[];const seen=new Set;const push=node=>{if(!node||seen.has(node))return;seen.add(node);results.push(node);};const registered=sectionRegistry.get(exactId);if(registered){for(const node of registered)push(node);}const idNodes=document.querySelectorAll(`[id=\"${exactId}\"]`);idNodes.forEach(push);const dataNodes=document.querySelectorAll(`[data-floating-nav-section=\"${exactId}\"]`);dataNodes.forEach(push);return results;}function resolveSectionTarget(id,anchorY){if(typeof document===\"undefined\")return null;const candidates=collectSectionCandidates(id).filter(isElementVisibleForNav);if(!candidates.length)return null;const viewportTop=0;const viewportBottom=window.innerHeight;const compareDomOrder=(a,b)=>{if(a===b)return 0;const relation=a.compareDocumentPosition(b);if(relation&Node.DOCUMENT_POSITION_FOLLOWING)return-1;if(relation&Node.DOCUMENT_POSITION_PRECEDING)return 1;return 0;};const ranked=[...candidates].sort((a,b)=>{const aRect=a.getBoundingClientRect();const bRect=b.getBoundingClientRect();const aIntersects=aRect.bottom>viewportTop&&aRect.top<viewportBottom?1:0;const bIntersects=bRect.bottom>viewportTop&&bRect.top<viewportBottom?1:0;if(aIntersects!==bIntersects)return bIntersects-aIntersects;const aDistance=distanceToAnchorY(aRect,anchorY);const bDistance=distanceToAnchorY(bRect,anchorY);if(aDistance!==bDistance)return aDistance-bDistance;return compareDomOrder(a,b);});return ranked[0]??null;}function assignForwardedRef(ref,value){if(typeof ref===\"function\"){ref(value);return;}if(ref&&typeof ref===\"object\"){ref.current=value;}}/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function FloatingSectionNav(props){const sections=props.sections??defaultSections;// Grouped controls power the new panel. Flat props remain as fallbacks so\n// existing Framer instances keep their stored values after this migration.\nconst side=props.layout?.side??props.side??defaults.side;const lineWidth=toFiniteNumber(props.layout?.lineWidth??props.lineWidth,defaults.lineWidth);const activeLineWidth=toFiniteNumber(props.layout?.activeLineWidth??props.activeLineWidth,defaults.activeLineWidth);const lineThickness=toFiniteNumber(props.layout?.lineThickness??props.lineThickness,defaults.lineThickness);const rowGap=toFiniteNumber(props.layout?.rowGap??props.rowGap,defaults.rowGap);const hoverRowGap=toFiniteNumber(props.layout?.hoverRowGap??props.hoverRowGap,defaults.hoverRowGap);const showFromSection=toFiniteNumber(props.visibility?.showFromSection??props.showFromSection,defaults.showFromSection);const activeOffset=toFiniteNumber(props.visibility?.activeOffset??props.activeOffset,defaults.activeOffset);const scrollRevealDistance=toFiniteNumber(props.visibility?.scrollRevealDistance??props.scrollRevealDistance,defaults.scrollRevealDistance);const idleHideDelay=toFiniteNumber(props.visibility?.idleHideDelay??props.idleHideDelay,defaults.idleHideDelay);const edgeRevealDelay=toFiniteNumber(props.visibility?.edgeRevealDelay??props.edgeRevealDelay,defaults.edgeRevealDelay);const edgeHotspotWidth=toFiniteNumber(props.visibility?.edgeHotspotWidth??props.edgeHotspotWidth,defaults.edgeHotspotWidth);const lineRevealDuration=toFiniteNumber(props.visibility?.lineRevealDuration??props.lineRevealDuration,defaults.lineRevealDuration);const revealActiveLabel=props.labels?.revealActiveLabel??props.revealActiveLabel??defaults.revealActiveLabel;const fontSize=toFiniteNumber(props.labels?.fontSize??props.fontSize,defaults.fontSize);const fontWeight=toFiniteNumber(props.labels?.fontWeight??props.fontWeight,defaults.fontWeight);const desktopLabelGap=toFiniteNumber(props.labels?.desktopLabelGap??props.desktopLabelGap,defaults.desktopLabelGap);const labelGap=toFiniteNumber(props.labels?.labelGap??props.labelGap,defaults.labelGap);const mobileLabelDuration=toFiniteNumber(props.labels?.mobileLabelDuration??props.mobileLabelDuration,defaults.mobileLabelDuration);const mobileScrubThreshold=toFiniteNumber(props.labels?.mobileScrubThreshold??props.mobileScrubThreshold,defaults.mobileScrubThreshold);const mobileLabelOffset=toFiniteNumber(props.labels?.mobileLabelOffset??props.mobileLabelOffset,defaults.mobileLabelOffset);const mobileScrubFontSize=toFiniteNumber(props.labels?.mobileScrubFontSize??props.mobileScrubFontSize,defaults.mobileScrubFontSize);const textColor=props.appearance?.textColor??props.textColor??defaults.textColor;const activeColor=props.appearance?.activeColor??props.activeColor??defaults.activeColor;const inactiveColor=props.appearance?.inactiveColor??props.inactiveColor??defaults.inactiveColor;const shadowColor=props.appearance?.shadowColor??props.shadowColor??defaults.shadowColor;const shadowBlur=toFiniteNumber(props.appearance?.shadowBlur??props.shadowBlur,defaults.shadowBlur);const shadowOpacity=toFiniteNumber(props.appearance?.shadowOpacity??props.shadowOpacity,defaults.shadowOpacity);const[isOpen,setIsOpen]=React.useState(false);const[activeId,setActiveId]=React.useState(normalizeSectionId(sections?.[0]?.id??\"\"));const[reduceMotion,setReduceMotion]=React.useState(false);const[hoveredId,setHoveredId]=React.useState(null);const[isTouchLike,setIsTouchLike]=React.useState(false);const[isScrollVisible,setIsScrollVisible]=React.useState(false);const[isInteracting,setIsInteracting]=React.useState(false);const[isScrubbing,setIsScrubbing]=React.useState(false);const[scrubbedId,setScrubbedId]=React.useState(null);const[isEdgeRevealed,setIsEdgeRevealed]=React.useState(false);const navRef=React.useRef(null);const pointerStartY=React.useRef(null);const scrubDidDrag=React.useRef(false);const suppressNextClick=React.useRef(false);const closeTimer=React.useRef(null);const mobileCloseTimer=React.useRef(null);const idleHideTimer=React.useRef(null);const edgeRevealTimer=React.useRef(null);const scrollSessionStartY=React.useRef(null);const normalizedSectionIds=React.useMemo(()=>sections.map(section=>normalizeSectionId(section.id)),[sections]);const activeIndex=normalizedSectionIds.indexOf(activeId);const coercedShowFromSection=Number(showFromSection);const clampedShowFromSection=Number.isFinite(coercedShowFromSection)?Math.min(Math.max(Math.round(coercedShowFromSection),1),Math.max(sections.length,1)):1;const isSectionEligible=activeIndex>=clampedShowFromSection-1;const isNavVisible=isSectionEligible&&(isScrollVisible||isInteracting||isEdgeRevealed);const openNav=()=>{if(closeTimer.current!==null){window.clearTimeout(closeTimer.current);closeTimer.current=null;}setIsOpen(true);};const scheduleCloseNav=()=>{if(typeof window===\"undefined\"){setIsOpen(false);return;}if(closeTimer.current!==null){window.clearTimeout(closeTimer.current);}// Small grace period makes the rail feel less twitchy when moving\n// between the labels and the compact marker area.\ncloseTimer.current=window.setTimeout(()=>{setIsOpen(false);setHoveredId(null);closeTimer.current=null;},120);};const scheduleMobileClose=()=>{if(typeof window===\"undefined\")return;if(mobileCloseTimer.current!==null){window.clearTimeout(mobileCloseTimer.current);}const duration=Math.max(Number(mobileLabelDuration)||0,0);mobileCloseTimer.current=window.setTimeout(()=>{setIsOpen(false);setHoveredId(null);const activeElement=document.activeElement;if(activeElement instanceof HTMLElement){activeElement.blur();}mobileCloseTimer.current=null;},duration);};const clearIdleHideTimer=()=>{if(typeof window===\"undefined\")return;if(idleHideTimer.current!==null){window.clearTimeout(idleHideTimer.current);idleHideTimer.current=null;}};const scheduleIdleHide=()=>{if(typeof window===\"undefined\")return;clearIdleHideTimer();const delay=Math.max(Number(idleHideDelay)||0,0);idleHideTimer.current=window.setTimeout(()=>{setIsScrollVisible(false);scrollSessionStartY.current=null;idleHideTimer.current=null;},delay);};const showForScrollActivity=()=>{if(typeof window===\"undefined\")return;const currentY=window.scrollY;const revealDistance=Math.max(Number(scrollRevealDistance)||0,0);if(scrollSessionStartY.current===null){scrollSessionStartY.current=currentY;}const travelled=Math.abs(currentY-scrollSessionStartY.current);if(revealDistance===0||travelled>=revealDistance){setIsScrollVisible(true);}// This timer also defines when a new scroll session begins.\n// Short reading scrolls separated by a pause therefore do not\n// accumulate indefinitely until the minimap appears.\nscheduleIdleHide();};const clearEdgeRevealTimer=()=>{if(typeof window===\"undefined\")return;if(edgeRevealTimer.current!==null){window.clearTimeout(edgeRevealTimer.current);edgeRevealTimer.current=null;}};const scheduleEdgeReveal=()=>{if(typeof window===\"undefined\"||isTouchLike)return;clearEdgeRevealTimer();const delay=Math.max(Number(edgeRevealDelay)||0,0);edgeRevealTimer.current=window.setTimeout(()=>{setIsEdgeRevealed(true);setIsInteracting(true);openNav();edgeRevealTimer.current=null;},delay);};const handleNavMouseEnter=()=>{// If the minimap is already visible, keep the current immediate\n// desktop hover behavior.\nif(isNavVisible){setIsInteracting(true);clearIdleHideTimer();clearEdgeRevealTimer();openNav();return;}// When hidden on desktop, treat the narrow right-side area as a\n// discoverable \"call zone\". The minimap only appears after the\n// pointer rests there for the configured delay.\nif(!isTouchLike&&isSectionEligible){scheduleEdgeReveal();}};const handleNavMouseLeave=()=>{clearEdgeRevealTimer();if(!isNavVisible&&!isEdgeRevealed)return;setIsInteracting(false);setIsEdgeRevealed(false);scheduleCloseNav();scheduleIdleHide();};React.useEffect(()=>{return()=>{if(typeof window===\"undefined\")return;if(closeTimer.current!==null){window.clearTimeout(closeTimer.current);}if(mobileCloseTimer.current!==null){window.clearTimeout(mobileCloseTimer.current);}if(idleHideTimer.current!==null){window.clearTimeout(idleHideTimer.current);}if(edgeRevealTimer.current!==null){window.clearTimeout(edgeRevealTimer.current);}};},[]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const media=window.matchMedia(\"(hover: none), (pointer: coarse)\");const sync=()=>setIsTouchLike(media.matches);sync();if(media.addEventListener){media.addEventListener(\"change\",sync);return()=>media.removeEventListener(\"change\",sync);}media.addListener(sync);return()=>media.removeListener(sync);},[]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const media=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const sync=()=>setReduceMotion(media.matches);sync();if(media.addEventListener){media.addEventListener(\"change\",sync);return()=>media.removeEventListener(\"change\",sync);}// Older Safari fallback\nmedia.addListener(sync);return()=>media.removeListener(sync);},[]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const handleScrollActivity=()=>{showForScrollActivity();};window.addEventListener(\"scroll\",handleScrollActivity,{passive:true});return()=>{window.removeEventListener(\"scroll\",handleScrollActivity);clearIdleHideTimer();};},[idleHideDelay,scrollRevealDistance]);React.useEffect(()=>{if(typeof window===\"undefined\"||!sections?.length)return;let frame=0;const updateActiveSection=()=>{cancelAnimationFrame(frame);frame=requestAnimationFrame(()=>{const anchor=window.innerHeight*activeOffset;let nextActive=normalizeSectionId(sections[0]?.id??\"\");for(const section of sections){const normalizedId=normalizeSectionId(section.id);const element=resolveSectionTarget(normalizedId,anchor);if(!element)continue;const rect=element.getBoundingClientRect();if(rect.top<=anchor){nextActive=normalizedId;}}const pageBottom=window.scrollY+window.innerHeight>=document.documentElement.scrollHeight-4;if(pageBottom){const lastExisting=[...sections].reverse().find(section=>resolveSectionTarget(normalizeSectionId(section.id),anchor));if(lastExisting){nextActive=normalizeSectionId(lastExisting.id);}}setActiveId(nextActive);});};updateActiveSection();window.addEventListener(\"scroll\",updateActiveSection,{passive:true});window.addEventListener(\"resize\",updateActiveSection);return()=>{cancelAnimationFrame(frame);window.removeEventListener(\"scroll\",updateActiveSection);window.removeEventListener(\"resize\",updateActiveSection);};},[sections,activeOffset]);const goToSection=(id,target)=>{if(typeof document===\"undefined\")return;target.scrollIntoView({behavior:reduceMotion?\"auto\":\"smooth\",block:\"start\"});if(typeof window!==\"undefined\"&&window.history?.replaceState){window.history.replaceState(null,\"\",`#${id}`);}};const findNearestSectionFromPointer=clientY=>{const nav=navRef.current;if(!nav)return null;const rows=Array.from(nav.querySelectorAll(\"[data-nav-section-id]\"));let best=null;for(const row of rows){const id=row.getAttribute(\"data-nav-section-id\");if(!id)continue;const rect=row.getBoundingClientRect();const centerY=rect.top+rect.height/2;const distance=Math.abs(clientY-centerY);if(!best||distance<best.distance){best={id,distance};}}if(!best)return null;return sections.find(section=>normalizeSectionId(section.id)===best.id)??null;};const beginMobileScrub=event=>{if(!isTouchLike)return;pointerStartY.current=event.clientY;scrubDidDrag.current=false;suppressNextClick.current=false;setIsInteracting(true);clearIdleHideTimer();setIsScrollVisible(true);setIsOpen(true);try{event.currentTarget.setPointerCapture(event.pointerId);}catch{// Pointer capture is best-effort in Framer/browser previews.\n}};const updateMobileScrub=event=>{if(!isTouchLike||pointerStartY.current===null)return;const threshold=Math.max(Number(mobileScrubThreshold)||0,0);if(!scrubDidDrag.current&&Math.abs(event.clientY-pointerStartY.current)>=threshold){scrubDidDrag.current=true;setIsScrubbing(true);}if(!scrubDidDrag.current)return;event.preventDefault();const section=findNearestSectionFromPointer(event.clientY);if(!section)return;const normalizedId=normalizeSectionId(section.id);if(scrubbedId!==normalizedId){setScrubbedId(normalizedId);setHoveredId(section.id);}};const finishMobileScrub=event=>{if(!isTouchLike||pointerStartY.current===null)return;const didDrag=scrubDidDrag.current;const selectedId=scrubbedId;pointerStartY.current=null;scrubDidDrag.current=false;setIsScrubbing(false);try{event.currentTarget.releasePointerCapture(event.pointerId);}catch{// Pointer capture may already have been released.\n}if(didDrag&&selectedId){suppressNextClick.current=true;event.preventDefault();const anchorY=window.innerHeight*activeOffset;const target=resolveSectionTarget(selectedId,anchorY);if(target){goToSection(selectedId,target);}setIsOpen(true);setIsScrollVisible(true);scheduleMobileClose();window.setTimeout(()=>{setScrubbedId(null);setIsInteracting(false);scheduleIdleHide();},Math.max(Number(mobileLabelDuration)||0,0));}else{setScrubbedId(null);setIsInteracting(false);scheduleIdleHide();}};const cancelMobileScrub=()=>{pointerStartY.current=null;scrubDidDrag.current=false;setIsScrubbing(false);setScrubbedId(null);setIsInteracting(false);scheduleIdleHide();};const closeAfterBlur=event=>{const next=event.relatedTarget;if(!next||!event.currentTarget.contains(next)){setIsOpen(false);setHoveredId(null);}};return /*#__PURE__*/_jsxs(\"nav\",{ref:navRef,\"aria-label\":\"Page sections\",\"aria-hidden\":!isNavVisible,inert:!isNavVisible,onMouseEnter:handleNavMouseEnter,onMouseLeave:handleNavMouseLeave,onFocus:()=>{clearEdgeRevealTimer();setIsEdgeRevealed(true);setIsInteracting(true);clearIdleHideTimer();openNav();},onPointerDown:beginMobileScrub,onPointerMove:updateMobileScrub,onPointerUp:finishMobileScrub,onPointerCancel:cancelMobileScrub,onBlur:event=>{closeAfterBlur(event);const next=event.relatedTarget;if(!next||!event.currentTarget.contains(next)){setIsInteracting(false);setIsEdgeRevealed(false);scheduleIdleHide();}},style:{display:\"flex\",flexDirection:\"column\",alignItems:side===\"right\"?\"flex-end\":\"flex-start\",gap:isOpen?hoverRowGap:rowGap,width:\"max-content\",padding:\"4px 2px\",opacity:1,transform:\"translateY(0)\",pointerEvents:isNavVisible||!isTouchLike?\"auto\":\"none\",minWidth:!isTouchLike?Math.max(Number(edgeHotspotWidth)||0,activeLineWidth):undefined,touchAction:isTouchLike?\"none\":\"auto\",userSelect:isScrubbing?\"none\":\"auto\",WebkitUserSelect:isScrubbing?\"none\":\"auto\",position:\"relative\",isolation:\"isolate\",transition:reduceMotion?\"none\":\"gap 180ms cubic-bezier(0.2, 0, 0, 1)\",fontFamily:'Inter, \"Inter Display\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif'},children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:isTouchLike?\"-10px -14px\":\"-8px -12px\",borderRadius:999,background:shadowColor,opacity:isNavVisible&&shadowBlur>0?Math.min(Math.max(shadowOpacity,0),1):0,filter:shadowBlur>0?`blur(${shadowBlur}px)`:\"none\",pointerEvents:\"none\",zIndex:0,transition:reduceMotion?\"none\":\"opacity 180ms ease-out, filter 180ms ease-out\"}}),sections.map(section=>{const normalizedId=normalizeSectionId(section.id);const isActive=activeId===normalizedId;const isHovered=hoveredId===section.id||scrubbedId===normalizedId;// Idle: compact minimap.\n// Rail hover: spacing opens up.\n// Current section reveals its label.\n// Hovering another marker transfers the label to that row.\nconst shouldRevealLabel=isOpen&&(isHovered||hoveredId===null&&revealActiveLabel&&isActive);const label=/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",maxWidth:shouldRevealLabel?180:0,opacity:shouldRevealLabel?1:0,overflow:\"hidden\",whiteSpace:\"nowrap\",color:textColor,fontSize:isTouchLike&&isScrubbing?mobileScrubFontSize:fontSize,fontWeight:isActive||isHovered?Math.min(fontWeight+100,700):fontWeight,lineHeight:1.25,transform:shouldRevealLabel?\"translateX(0)\":`translateX(${side===\"right\"?5:-5}px)`,transition:reduceMotion?\"none\":\"max-width 180ms cubic-bezier(0.2, 0, 0, 1), opacity 110ms ease-out, transform 180ms cubic-bezier(0.2, 0, 0, 1)\",pointerEvents:\"none\",textShadow:shadowBlur>0?`0 0 ${Math.max(4,shadowBlur*.7)}px ${shadowColor}`:\"none\"},children:section.label});const baseLineWidth=isActive?activeLineWidth:lineWidth;const line=/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{display:\"block\",width:shouldRevealLabel?0:baseLineWidth,height:lineThickness,borderRadius:999,flexShrink:0,opacity:shouldRevealLabel?0:1,background:isActive?activeColor:inactiveColor,boxShadow:shadowBlur>0?`0 0 ${Math.max(3,shadowBlur*.55)}px ${shadowColor}`:\"none\",transition:reduceMotion?\"none\":`width 160ms cubic-bezier(0.2, 0, 0, 1), opacity 90ms ease-out, background-color 140ms ease-out, transform ${Math.max(Number(lineRevealDuration)||0,0)}ms cubic-bezier(0.2, 0, 0, 1)`,transformOrigin:side===\"right\"?\"100% 50%\":\"0% 50%\",transform:`scaleX(${isNavVisible?1:0}) scaleY(${isActive&&!shouldRevealLabel?1.45:1})`}});return /*#__PURE__*/_jsxs(\"a\",{\"data-nav-section-id\":normalizedId,href:`#${normalizedId}`,\"aria-label\":`Jump to ${section.label}`,\"aria-current\":isActive?\"location\":undefined,onMouseEnter:()=>setHoveredId(section.id),onFocus:()=>{openNav();setHoveredId(section.id);},tabIndex:isNavVisible?0:-1,onClick:event=>{if(suppressNextClick.current){event.preventDefault();suppressNextClick.current=false;return;}if(typeof document===\"undefined\")return;const anchorY=window.innerHeight*activeOffset;const target=resolveSectionTarget(normalizedId,anchorY);if(target){event.preventDefault();goToSection(normalizedId,target);}if(isTouchLike){setIsInteracting(true);clearIdleHideTimer();setIsOpen(true);setHoveredId(section.id);scheduleMobileClose();window.setTimeout(()=>{setIsInteracting(false);scheduleIdleHide();},Math.max(Number(mobileLabelDuration)||0,0));}},style:{margin:0,padding:\"2px 0\",background:\"transparent\",position:\"relative\",zIndex:1,cursor:\"pointer\",display:\"flex\",flexDirection:side===\"right\"?\"row\":\"row-reverse\",alignItems:\"center\",justifyContent:side===\"right\"?\"flex-end\":\"flex-start\",gap:shouldRevealLabel?isTouchLike?isScrubbing?mobileLabelOffset:labelGap:desktopLabelGap:0,width:\"max-content\",minWidth:isTouchLike?44:undefined,minHeight:16,font:\"inherit\",outlineOffset:4,textDecoration:\"none\",pointerEvents:isNavVisible?\"auto\":\"none\",transition:reduceMotion?\"none\":\"gap 180ms cubic-bezier(0.2, 0, 0, 1)\"},children:[label,line]},`${section.id}-${section.label}`);})]});}FloatingSectionNav.defaultProps={sections:defaultSections,side:defaults.side,textColor:defaults.textColor,activeColor:defaults.activeColor,inactiveColor:defaults.inactiveColor,fontSize:defaults.fontSize,fontWeight:defaults.fontWeight,lineWidth:defaults.lineWidth,activeLineWidth:defaults.activeLineWidth,lineThickness:defaults.lineThickness,rowGap:defaults.rowGap,hoverRowGap:defaults.hoverRowGap,labelGap:defaults.labelGap,activeOffset:defaults.activeOffset,revealActiveLabel:defaults.revealActiveLabel,showFromSection:defaults.showFromSection,mobileLabelDuration:defaults.mobileLabelDuration,idleHideDelay:defaults.idleHideDelay,lineRevealDuration:defaults.lineRevealDuration,mobileScrubThreshold:defaults.mobileScrubThreshold,shadowColor:defaults.shadowColor,shadowBlur:defaults.shadowBlur,shadowOpacity:defaults.shadowOpacity,mobileLabelOffset:defaults.mobileLabelOffset,mobileScrubFontSize:defaults.mobileScrubFontSize,scrollRevealDistance:defaults.scrollRevealDistance,edgeRevealDelay:defaults.edgeRevealDelay,edgeHotspotWidth:defaults.edgeHotspotWidth,desktopLabelGap:defaults.desktopLabelGap};addPropertyControls(FloatingSectionNav,{sections:{type:ControlType.Array,title:\"Sections\",description:\"Defines which page sections appear in the navigator and their order.\",maxCount:12,control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",description:\"Text shown when this section's label is revealed.\",defaultValue:\"Section\"},id:{type:ControlType.String,title:\"ID\",defaultValue:\"section\",description:\"Must match the corresponding section override ID. Use the ID without #.\"}}},defaultValue:defaultSections},visibility:{type:ControlType.Object,title:\"Visibility\",description:\"Controls when the navigator can appear and how it reveals.\",controls:{showFromSection:{type:ControlType.Number,title:\"Show From\",description:\"Keeps the navigator hidden until this numbered section becomes active. It still needs scroll or edge interaction to appear.\",defaultValue:defaults.showFromSection,min:1,max:12,step:1},activeOffset:{type:ControlType.Number,title:\"Active Point\",description:\"Sets the viewport point used to decide which section is active. 0.4 means 40% down from the top.\",defaultValue:defaults.activeOffset,min:.1,max:.8,step:.05},scrollRevealDistance:{type:ControlType.Number,title:\"Scroll Distance\",description:\"Minimum distance scrolled during one continuous session before the navigator appears. Set 0 to reveal on any scroll.\",defaultValue:defaults.scrollRevealDistance,min:0,max:1e3,step:10,unit:\"px\"},idleHideDelay:{type:ControlType.Number,title:\"Hide Delay\",description:\"Time after scrolling stops before the navigator hides and starts a new scroll session.\",defaultValue:defaults.idleHideDelay,min:300,max:5e3,step:100,unit:\"ms\"},edgeRevealDelay:{type:ControlType.Number,title:\"Edge Delay\",description:\"On desktop, how long the pointer must stay in the edge area before the navigator opens.\",defaultValue:defaults.edgeRevealDelay,min:100,max:3e3,step:100,unit:\"ms\"},edgeHotspotWidth:{type:ControlType.Number,title:\"Edge Width\",description:\"Width of the invisible desktop hover area that can reveal the hidden navigator.\",defaultValue:defaults.edgeHotspotWidth,min:24,max:120,step:2,unit:\"px\"},lineRevealDuration:{type:ControlType.Number,title:\"Reveal Speed\",description:\"Duration of the line expansion and collapse animation when the navigator appears or hides.\",defaultValue:defaults.lineRevealDuration,min:80,max:1e3,step:20,unit:\"ms\"}}},layout:{type:ControlType.Object,title:\"Layout\",description:\"Controls the side, line dimensions, and vertical spacing.\",controls:{side:{type:ControlType.Enum,title:\"Side\",description:\"Aligns the lines to the selected side and opens labels toward the page.\",options:[\"left\",\"right\"],optionTitles:[\"Left\",\"Right\"],defaultValue:defaults.side,displaySegmentedControl:true},lineWidth:{type:ControlType.Number,title:\"Line Width\",description:\"Changes the length of lines for sections that are not currently active.\",defaultValue:defaults.lineWidth,min:8,max:80,step:1,unit:\"px\"},activeLineWidth:{type:ControlType.Number,title:\"Active Width\",description:\"Changes the length of the line representing the current active section.\",defaultValue:defaults.activeLineWidth,min:8,max:100,step:1,unit:\"px\"},lineThickness:{type:ControlType.Number,title:\"Thickness\",description:\"Changes how thick every navigation line appears.\",defaultValue:defaults.lineThickness,min:1,max:6,step:.5,unit:\"px\"},rowGap:{type:ControlType.Number,title:\"Row Gap\",description:\"Changes the vertical space between section rows while the navigator is closed.\",defaultValue:defaults.rowGap,min:0,max:24,step:1,unit:\"px\"},hoverRowGap:{type:ControlType.Number,title:\"Open Gap\",description:\"Changes the vertical space between rows while labels are open through hover, focus, tap, or scrub.\",defaultValue:defaults.hoverRowGap,min:0,max:32,step:1,unit:\"px\"}}},labels:{type:ControlType.Object,title:\"Labels\",description:\"Controls when labels appear and how their text is spaced.\",controls:{revealActiveLabel:{type:ControlType.Boolean,title:\"Active Label\",description:\"When the navigator opens without a hovered item, shows the label of the current section.\",defaultValue:defaults.revealActiveLabel,enabledTitle:\"Show\",disabledTitle:\"Hide\"},fontSize:{type:ControlType.Number,title:\"Size\",description:\"Base label text size. Scrub Size overrides it while dragging through sections on mobile.\",defaultValue:defaults.fontSize,min:9,max:24,step:1,unit:\"px\"},fontWeight:{type:ControlType.Number,title:\"Weight\",description:\"Base label weight. Active or hovered labels automatically appear one step heavier.\",defaultValue:defaults.fontWeight,min:300,max:800,step:100},desktopLabelGap:{type:ControlType.Number,title:\"Desktop Gap\",description:\"Horizontal space between a revealed label and its line on desktop.\",defaultValue:defaults.desktopLabelGap,min:0,max:80,step:1,unit:\"px\"},labelGap:{type:ControlType.Number,title:\"Mobile Gap\",description:\"Horizontal space between a revealed label and its line after a mobile tap.\",defaultValue:defaults.labelGap,min:0,max:30,step:1,unit:\"px\"},mobileLabelDuration:{type:ControlType.Number,title:\"Mobile Time\",description:\"How long labels stay open on mobile after a tap or completed scrub.\",defaultValue:defaults.mobileLabelDuration,min:300,max:5e3,step:100,unit:\"ms\"},mobileScrubThreshold:{type:ControlType.Number,title:\"Scrub Start\",description:\"Minimum vertical finger movement required before a mobile drag becomes section scrubbing.\",defaultValue:defaults.mobileScrubThreshold,min:2,max:30,step:1,unit:\"px\"},mobileLabelOffset:{type:ControlType.Number,title:\"Scrub Gap\",description:\"Horizontal space between the active label and line while mobile scrubbing is in progress.\",defaultValue:defaults.mobileLabelOffset,min:8,max:80,step:1,unit:\"px\"},mobileScrubFontSize:{type:ControlType.Number,title:\"Scrub Size\",description:\"Label text size used only while dragging through sections on mobile.\",defaultValue:defaults.mobileScrubFontSize,min:11,max:24,step:.5,unit:\"px\"}}},appearance:{type:ControlType.Object,title:\"Appearance\",description:\"Controls label colors, line colors, and the contrast glow.\",controls:{textColor:{type:ControlType.Color,title:\"Text\",description:\"Color of all section labels when they are revealed.\",defaultValue:defaults.textColor},activeColor:{type:ControlType.Color,title:\"Active Line\",description:\"Color of the line representing the current active section.\",defaultValue:defaults.activeColor},inactiveColor:{type:ControlType.Color,title:\"Inactive Line\",description:\"Color of lines for every section that is not currently active.\",defaultValue:defaults.inactiveColor},shadowColor:{type:ControlType.Color,title:\"Shadow\",description:\"Color of the soft glow behind labels and lines. Choose it for contrast against the page background.\",defaultValue:defaults.shadowColor},shadowBlur:{type:ControlType.Number,title:\"Shadow Blur\",description:\"Controls how soft and wide the glow appears. Set 0 to disable it.\",defaultValue:defaults.shadowBlur,min:0,max:60,step:1,unit:\"px\"},shadowOpacity:{type:ControlType.Number,title:\"Shadow Opacity\",description:\"Controls the opacity of the blurred background glow. It does not change line or label opacity.\",defaultValue:defaults.shadowOpacity,min:0,max:1,step:.05}}}});/* -------------------------------------------------------------------------- *//* Section ID Overrides                                                       *//* Apply each override to the top-level Frame of the matching homepage section *//* -------------------------------------------------------------------------- */function withSectionId(Component,id){return /*#__PURE__*/forwardRef((props,forwardedRef)=>{const previousNodeRef=React.useRef(null);const captureRef=React.useCallback(node=>{assignForwardedRef(forwardedRef,node);const previousNode=previousNodeRef.current;if(previousNode&&previousNode!==node){const existingSet=sectionRegistry.get(id);if(existingSet){existingSet.delete(previousNode);if(existingSet.size===0)sectionRegistry.delete(id);}}if(node instanceof HTMLElement){const existingSet=sectionRegistry.get(id)??new Set;existingSet.add(node);sectionRegistry.set(id,existingSet);previousNodeRef.current=node;}else if(node===null){if(previousNode){const existingSet=sectionRegistry.get(id);if(existingSet){existingSet.delete(previousNode);if(existingSet.size===0){sectionRegistry.delete(id);}}}previousNodeRef.current=null;}},[forwardedRef,id]);return /*#__PURE__*/_jsx(Component,{ref:captureRef,...props,id:id,\"data-floating-nav-section\":id});});}export function withHeroSection(Component){return withSectionId(Component,\"hero\");}export function withWorkSection(Component){return withSectionId(Component,\"work\");}export function withAISection(Component){return withSectionId(Component,\"ai\");}export function withAboutSection(Component){return withSectionId(Component,\"about\");}export function withExperienceSection(Component){return withSectionId(Component,\"experience\");}export function withTestimonialsSection(Component){return withSectionId(Component,\"testimonials\");}export function withContactSection(Component){return withSectionId(Component,\"contact\");}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FloatingSectionNav\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"withWorkSection\":{\"type\":\"reactHoc\",\"name\":\"withWorkSection\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAISection\":{\"type\":\"reactHoc\",\"name\":\"withAISection\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHeroSection\":{\"type\":\"reactHoc\",\"name\":\"withHeroSection\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAboutSection\":{\"type\":\"reactHoc\",\"name\":\"withAboutSection\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withExperienceSection\":{\"type\":\"reactHoc\",\"name\":\"withExperienceSection\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withTestimonialsSection\":{\"type\":\"reactHoc\",\"name\":\"withTestimonialsSection\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withContactSection\":{\"type\":\"reactHoc\",\"name\":\"withContactSection\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Mini_Map.map"],"mappings":"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"}