{"version":3,"file":"FloatingCaseStudyNav.D6HRX4jo.mjs","names":["useMemo","React","useState","useRef","useCallback","p","startTransition"],"sources":["https:/framerusercontent.com/modules/Yvqs3pdUmjE2blUibSDf/EYo9j9VPBPq6t2TfqDbX/FloatingCaseStudyNav.js"],"sourcesContent":["// Instructions: Create a Framer component for a product design portfolio case study with a floating left nav that highlights the active scroll section (bold text + blue dot) and allows clicking nav items to scroll to sections.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import React,{useCallback,useEffect,useMemo,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion}from\"framer-motion\";function clamp(n,min,max){return Math.max(min,Math.min(max,n));}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function FloatingCaseStudyNav(props){const{sections=[{label:\"Overview\",targetId:\"overview\"},{label:\"Problem\",targetId:\"problem\"},{label:\"Solution\",targetId:\"solution\"},{label:\"Results\",targetId:\"results\"}],content,variant=\"Desktop\",showHoverDot=true,showProgress=true,progressHeight=6,progressRadius=\"999px\",progressTrackColor=\"#EEEEEE\",progressFillColor=\"#0099FF\",progressSpacing=12,navWidth=220,stickyTop=96,stickyOffset=0,scrollOffset=80,clickLockMs=900,gap=10,padding=\"14px\",itemMinHeight=32,background=\"#FFFFFF\",borderColor=\"#EEEEEE\",borderWidth=1,radius=\"16px\",shadow=\"0 8px 30px rgba(0,0,0,0.08)\",textColor=\"#000000\",textColorActive=\"#000000\",dotSize=8,dotColor=\"#CCCCCC\",dotColorActive=\"#0099FF\",itemFont,itemFontActive,showBorder=true,showBackground=true,style}=props;const isStatic=useIsStaticRenderer();const hasContent=useMemo(()=>React.Children.count(content)>0,[content]);const isMobileVariant=variant===\"Mobile\";const[activeId,setActiveId]=useState(()=>sections?.[0]?.targetId||\"\");const[hoverId,setHoverId]=useState(\"\");const[mobileOpen,setMobileOpen]=useState(false);const[scrollProgress,setScrollProgress]=useState(0);const reactInstanceId=React.useId();const instanceId=useMemo(()=>{const cleaned=String(reactInstanceId).replace(/[^a-zA-Z0-9_-]/g,\"\");return`FloatingCaseStudyNav_${cleaned||\"instance\"}`;},[reactInstanceId]);const dotLayoutId=`${instanceId}_ActiveDot`;const clickLockRef=useRef(null);const itemRefs=useRef({});const itemTextRefs=useRef({});const navRef=useRef(null);const[isStuck,setIsStuck]=useState(false);const[fixedLeft,setFixedLeft]=useState(0);const[fixedWidth,setFixedWidth]=useState(undefined);const[navHeight,setNavHeight]=useState(undefined);const navStartYRef=useRef(null);const activeIdRef=useRef(activeId);const ratiosRef=useRef({});useEffect(()=>{activeIdRef.current=activeId;if(isMobileVariant){startTransition(()=>setMobileOpen(false));}},[activeId,isMobileVariant]);const normalizedSections=useMemo(()=>{const seen=new Set;const safe=[];for(const s of sections||[]){const label=String(s?.label??\"\").trim();const targetId=String(s?.targetId??\"\").trim();if(!label||!targetId)continue;if(seen.has(targetId))continue;seen.add(targetId);safe.push({label,targetId});}return safe.length?safe:[{label:\"Section\",targetId:\"section\"}];},[sections]);const scrollToId=useCallback(id=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;const el=document.getElementById(id);if(!el)return;const rect=el.getBoundingClientRect();const y=rect.top+window.scrollY-clamp(scrollOffset,0,2e3);window.scrollTo({top:Math.max(0,y),behavior:\"smooth\"});},[scrollOffset]);useEffect(()=>{if(isStatic)return;if(typeof window===\"undefined\"||typeof document===\"undefined\")return;if(!(\"IntersectionObserver\"in window))return;const ids=normalizedSections.map(s=>s.targetId);const elements=ids.map(id=>document.getElementById(id)).filter(Boolean);if(!elements.length)return;ratiosRef.current={};const observer=new IntersectionObserver(entries=>{const now=typeof window!==\"undefined\"?window.performance?.now?.()??Date.now():Date.now();const lock=clickLockRef.current;const lockActive=!!lock&&now<lock.until;const activationLineY=typeof window!==\"undefined\"?window.innerHeight*.4:0;// Prefer switching only when a section crosses a stable \"activation line\" in the viewport.\n// This prevents tiny sections from stealing focus as soon as they intersect.\nlet bestId=activeIdRef.current||elements[0]?.id||\"\";let bestRatio=-1;const lineCandidates=new Set;for(const entry of entries){const id=entry.target?.id;if(!id)continue;// Track latest intersection ratios so selection can actually update\nratiosRef.current[id]=entry.intersectionRatio;const rect=entry.boundingClientRect;if(entry.isIntersecting&&rect.top<=activationLineY&&rect.bottom>=activationLineY){lineCandidates.add(id);}}const pickFrom=lineCandidates.size?Array.from(lineCandidates):normalizedSections.map(s=>s.targetId);for(const id of pickFrom){const ratio=ratiosRef.current[id]??0;if(ratio>bestRatio+.001){bestRatio=ratio;bestId=id;}}const currentId=activeIdRef.current;const currentRatio=currentId?ratiosRef.current[currentId]??0:0;// Tighter switching requirements\nconst minBestRatioToSwitch=.5;const hysteresis=.18;const shouldSwitch=!!bestId&&bestId!==currentId&&bestRatio>=minBestRatioToSwitch&&bestRatio>currentRatio+hysteresis;// If user clicked a nav item, keep the dot locked to that target during smooth scroll.\nif(lockActive){if(lock?.id&&bestId!==lock.id)return;}else if(lock){clickLockRef.current=null;}if(shouldSwitch){startTransition(()=>setActiveId(bestId));}},{root:null,rootMargin:`-${clamp(scrollOffset,0,2e3)}px 0px -40% 0px`,threshold:[0,.1,.25,.4,.6,.8,1]});for(const el of elements)observer.observe(el);return()=>observer.disconnect();},[isStatic,normalizedSections,scrollOffset]);useEffect(()=>{const first=normalizedSections?.[0]?.targetId||\"\";if(!first)return;if(activeId)return;startTransition(()=>setActiveId(first));},[activeId,normalizedSections]);const outerStyle=useMemo(()=>({position:\"relative\",width:hasContent?\"100%\":\"max-content\",height:hasContent?\"100%\":\"auto\",display:\"flex\",flexDirection:isMobileVariant?\"column\":\"row\",alignItems:\"flex-start\",gap:hasContent?isMobileVariant?12:24:0,...style}),[hasContent,style]);const navCardStyle=useMemo(()=>({position:isMobileVariant?\"relative\":isStuck?\"fixed\":\"sticky\",top:isMobileVariant?undefined:stickyTop+stickyOffset,left:isMobileVariant?undefined:isStuck?fixedLeft:undefined,alignSelf:\"flex-start\",width:isMobileVariant?\"100%\":isStuck?fixedWidth??navWidth:navWidth,maxWidth:isMobileVariant?undefined:isStuck?undefined:\"45vw\",padding,boxSizing:\"border-box\",background:showBackground?background:\"transparent\",border:showBorder?`${borderWidth}px solid ${borderColor}`:\"none\",borderRadius:radius,boxShadow:showBackground?shadow:\"none\",overflow:\"hidden\",zIndex:isStuck?10:undefined}),[isStuck,fixedLeft,fixedWidth,stickyTop,stickyOffset,navWidth,padding,showBackground,background,showBorder,borderWidth,borderColor,radius,shadow]);const listStyle=useMemo(()=>({position:\"relative\",display:\"flex\",flexDirection:\"column\",gap}),[gap]);const contentStyle=useMemo(()=>({position:\"relative\",flex:1,minWidth:0,width:\"100%\"}),[]);useEffect(()=>{if(isStatic)return;if(isMobileVariant)return;if(typeof window===\"undefined\"||typeof document===\"undefined\")return;function measureAndUpdate(){const navEl=navRef.current;if(!navEl)return;const rect=navEl.getBoundingClientRect();const scrollY=window.scrollY||window.pageYOffset||0;if(navStartYRef.current==null){navStartYRef.current=rect.top+scrollY;}const stickyY=clamp(stickyTop+stickyOffset,-2e3,2e3);const shouldStick=scrollY+stickyY>=(navStartYRef.current??0);if(shouldStick){startTransition(()=>{setIsStuck(true);setFixedLeft(rect.left);setFixedWidth(rect.width);setNavHeight(rect.height);});}else{startTransition(()=>{setIsStuck(false);setNavHeight(undefined);});}}// Reset cached start position if layout changes significantly\nfunction resetAndMeasure(){navStartYRef.current=null;measureAndUpdate();}// Initial\nresetAndMeasure();window.addEventListener(\"scroll\",measureAndUpdate,{passive:true});window.addEventListener(\"resize\",resetAndMeasure);return()=>{window.removeEventListener(\"scroll\",measureAndUpdate);window.removeEventListener(\"resize\",resetAndMeasure);};},[isStatic,stickyTop,stickyOffset]);useEffect(()=>{if(isStatic)return;if(typeof window===\"undefined\"||typeof document===\"undefined\")return;let raf=0;function computeProgress(){const scrollingEl=document.scrollingElement||document.documentElement;const scrollY=scrollingEl?.scrollTop??window.scrollY??window.pageYOffset??0;const scrollable=Math.max(1,(scrollingEl?.scrollHeight??1)-window.innerHeight);const p=clamp(scrollY/scrollable,0,1);startTransition(()=>setScrollProgress(p));}function onScrollOrResize(){if(raf)cancelAnimationFrame(raf);raf=requestAnimationFrame(computeProgress);}// Initial\nonScrollOrResize();window.addEventListener(\"scroll\",onScrollOrResize,{passive:true});window.addEventListener(\"resize\",onScrollOrResize);return()=>{if(raf)cancelAnimationFrame(raf);window.removeEventListener(\"scroll\",onScrollOrResize);window.removeEventListener(\"resize\",onScrollOrResize);};},[isStatic]);useEffect(()=>{if(isStatic)return;if(isMobileVariant)return;if(typeof window===\"undefined\"||typeof document===\"undefined\")return;function measureAndUpdate(){const navEl=navRef.current;if(!navEl)return;const rect=navEl.getBoundingClientRect();const scrollY=window.scrollY||window.pageYOffset||0;if(navStartYRef.current==null){navStartYRef.current=rect.top+scrollY;}const stickyY=clamp(stickyTop+stickyOffset,-2e3,2e3);const shouldStick=scrollY+stickyY>=(navStartYRef.current??0);if(shouldStick){startTransition(()=>{setIsStuck(true);setFixedLeft(rect.left);setFixedWidth(rect.width);setNavHeight(rect.height);});}else{startTransition(()=>{setIsStuck(false);setNavHeight(undefined);});}}// Reset cached start position if layout changes significantly\nfunction resetAndMeasure(){navStartYRef.current=null;measureAndUpdate();}// Initial\nresetAndMeasure();window.addEventListener(\"scroll\",measureAndUpdate,{passive:true});window.addEventListener(\"resize\",resetAndMeasure);return()=>{window.removeEventListener(\"scroll\",measureAndUpdate);window.removeEventListener(\"resize\",resetAndMeasure);};},[isStatic,stickyTop,stickyOffset]);return /*#__PURE__*/_jsxs(\"section\",{style:outerStyle,\"aria-label\":\"Case study layout\",children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:isMobileVariant?\"100%\":navWidth,flex:\"0 0 auto\",height:isMobileVariant?undefined:isStuck?navHeight:undefined},\"aria-hidden\":false,children:/*#__PURE__*/_jsxs(\"nav\",{ref:navRef,style:navCardStyle,\"aria-label\":\"Case study sections\",children:[showProgress&&/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{width:\"100%\",height:progressHeight,borderRadius:progressRadius,background:progressTrackColor,overflow:\"hidden\",marginBottom:progressSpacing},children:/*#__PURE__*/_jsx(\"div\",{style:{height:\"100%\",width:`${Math.round(scrollProgress*1e3)/10}%`,background:progressFillColor,borderRadius:progressRadius,transition:\"width 120ms linear\"}})}),isMobileVariant&&/*#__PURE__*/_jsxs(\"button\",{type:\"button\",onClick:()=>startTransition(()=>setMobileOpen(v=>!v)),style:{appearance:\"none\",WebkitAppearance:\"none\",border:showBorder?`${borderWidth}px solid ${borderColor}`:\"none\",background:showBackground?background:\"transparent\",borderRadius:\"10px\",padding:\"10px 12px\",margin:0,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:10,color:textColorActive,width:\"100%\",boxShadow:\"none\"},\"aria-expanded\":mobileOpen,\"aria-label\":\"Toggle section navigation\",children:[/*#__PURE__*/_jsx(\"span\",{style:{...itemFontActive,minWidth:0,overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:mobileOpen?\"Jump to section\":normalizedSections.find(s=>s.targetId===activeId)?.label??normalizedSections[0]?.label}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{opacity:.7,fontSize:12,lineHeight:\"12px\"},children:mobileOpen?\"▲\":\"▼\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{...listStyle,display:isMobileVariant&&!mobileOpen?\"none\":listStyle.display},children:normalizedSections.map(s=>{const isActive=s.targetId===activeId;const font=isActive?itemFontActive:itemFont;const color=isActive?textColorActive:textColor;return /*#__PURE__*/_jsx(\"button\",{type:\"button\",onMouseEnter:()=>{if(!showHoverDot)return;startTransition(()=>setHoverId(s.targetId));},onMouseLeave:()=>{if(!showHoverDot)return;startTransition(()=>setHoverId(\"\"));},onFocus:()=>{if(!showHoverDot)return;startTransition(()=>setHoverId(s.targetId));},onBlur:()=>{if(!showHoverDot)return;startTransition(()=>setHoverId(\"\"));},onClick:()=>{scrollToId(s.targetId);if(typeof window!==\"undefined\"){const now=window.performance?.now?.()??Date.now();clickLockRef.current={id:s.targetId,until:now+clamp(clickLockMs,0,5e3)};}activeIdRef.current=s.targetId;startTransition(()=>{setActiveId(s.targetId);setMobileOpen(false);});},style:{appearance:\"none\",WebkitAppearance:\"none\",border:\"none\",background:\"transparent\",padding:0,margin:0,cursor:\"pointer\",textAlign:\"left\",color},\"aria-current\":isActive?\"location\":undefined,\"aria-label\":`Scroll to ${s.label}`,children:/*#__PURE__*/_jsxs(\"div\",{ref:node=>{itemRefs.current[s.targetId]=node;},style:{display:\"flex\",alignItems:\"center\",gap:10,minHeight:itemMinHeight},children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{width:dotSize,height:dotSize,flex:\"0 0 auto\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:isActive?/*#__PURE__*/_jsx(motion.span,{layoutId:dotLayoutId,style:{width:dotSize,height:dotSize,borderRadius:999,background:dotColorActive,display:\"block\"},transition:{type:\"spring\",stiffness:520,damping:38,mass:.7}}):showHoverDot&&hoverId===s.targetId?/*#__PURE__*/_jsx(\"span\",{style:{width:dotSize,height:dotSize,borderRadius:999,background:dotColor,display:\"block\",opacity:.45,transition:\"opacity 120ms ease\"}}):null}),/*#__PURE__*/_jsx(\"span\",{ref:node=>{itemTextRefs.current[s.targetId]=node;},style:{...font,minWidth:\"max-content\",whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",lineHeight:font?.lineHeight??\"1.2em\"},children:s.label})]})},s.targetId);})})]})}),hasContent&&/*#__PURE__*/_jsx(\"div\",{style:contentStyle,children:content})]});}addPropertyControls(FloatingCaseStudyNav,{variant:{type:ControlType.Enum,title:\"Variant\",options:[\"Desktop\",\"Mobile\"],optionTitles:[\"Desktop\",\"Mobile\"],defaultValue:\"Desktop\",displaySegmentedControl:true},showHoverDot:{type:ControlType.Boolean,title:\"Hover Dot\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},content:{type:ControlType.Slot,title:\"Content\",maxCount:1},sections:{type:ControlType.Array,title:\"Sections\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Overview\"},targetId:{type:ControlType.String,title:\"Target ID\",defaultValue:\"overview\"}}},defaultValue:[{label:\"Overview\",targetId:\"overview\"},{label:\"Problem\",targetId:\"problem\"},{label:\"Solution\",targetId:\"solution\"},{label:\"Results\",targetId:\"results\"}]},showProgress:{type:ControlType.Boolean,title:\"Progress\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},progressHeight:{type:ControlType.Number,title:\"Prog Height\",defaultValue:6,min:2,max:20,step:1,unit:\"px\",hidden:p=>!p.showProgress},progressRadius:{type:ControlType.BorderRadius,title:\"Prog Radius\",defaultValue:\"999px\",hidden:p=>!p.showProgress},progressTrackColor:{type:ControlType.Color,title:\"Prog Track\",defaultValue:\"#EEEEEE\",hidden:p=>!p.showProgress},progressFillColor:{type:ControlType.Color,title:\"Prog Fill\",defaultValue:\"#0099FF\",hidden:p=>!p.showProgress},progressSpacing:{type:ControlType.Number,title:\"Prog Gap\",defaultValue:12,min:0,max:40,step:1,unit:\"px\",hidden:p=>!p.showProgress},navWidth:{type:ControlType.Number,title:\"Nav Width\",defaultValue:220,min:140,max:420,step:1,unit:\"px\"},stickyTop:{type:ControlType.Number,title:\"Sticky Top\",defaultValue:96,min:0,max:240,step:1,unit:\"px\"},stickyOffset:{type:ControlType.Number,title:\"Sticky Offset\",defaultValue:0,min:-240,max:240,step:1,unit:\"px\"},scrollOffset:{type:ControlType.Number,title:\"Scroll Offset\",defaultValue:80,min:0,max:240,step:1,unit:\"px\"},clickLockMs:{type:ControlType.Number,title:\"Click Lock\",defaultValue:900,min:0,max:5e3,step:50,unit:\"ms\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:10,min:0,max:24,step:1,unit:\"px\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"14px\"},itemMinHeight:{type:ControlType.Number,title:\"Item Height\",defaultValue:32,min:24,max:60,step:1,unit:\"px\"},showBackground:{type:ControlType.Boolean,title:\"Background\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},background:{type:ControlType.Color,title:\"Card\",defaultValue:\"#FFFFFF\",hidden:p=>!p.showBackground},shadow:{type:ControlType.BoxShadow,title:\"Shadow\",defaultValue:\"0 8px 30px rgba(0,0,0,0.08)\",hidden:p=>!p.showBackground},showBorder:{type:ControlType.Boolean,title:\"Border\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#EEEEEE\",hidden:p=>!p.showBorder},borderWidth:{type:ControlType.Number,title:\"Border W\",defaultValue:1,min:0,max:6,step:1,unit:\"px\",hidden:p=>!p.showBorder},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"16px\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#000000\"},textColorActive:{type:ControlType.Color,title:\"Text Active\",defaultValue:\"#000000\"},dotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:8,min:4,max:16,step:1,unit:\"px\"},dotColor:{type:ControlType.Color,title:\"Dot\",defaultValue:\"#CCCCCC\"},dotColorActive:{type:ControlType.Color,title:\"Dot Active\",defaultValue:\"#0099FF\"},itemFont:{type:ControlType.Font,title:\"Item Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},itemFontActive:{type:ControlType.Font,title:\"Active Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Bold\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FloatingCaseStudyNav\",\"slots\":[\"content\"],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FloatingCaseStudyNav.map"],"mappings":"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"}