{"version":3,"file":"TableOfContents.r8o7bM2O.mjs","names":["useRef","useState","useCallback"],"sources":["https:/framerusercontent.com/modules/BQbNksai1EKSCfuoOeep/XeHPVNssZGcllDO7Lg0r/TableOfContents.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef,useCallback}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Table of Contents with scroll-based animation\n * Line width and text position animate based on scroll progress\n * Automatically detects H1-H6 headings in the scrollable content\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 300\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function TableOfContents(props){const{activeColor=\"#000000\",inactiveColor=\"#666666\",lineColor=\"#000000\",fineLineColor=\"#CCCCCC\",backgroundColor=\"#F5F5F5\",fontSize=18,lineHeight=48,lineWidth=.5,activeLineWidth=40,inactiveLineWidth=12,textOffset=16,showH1=true,showH2=true,showH3=true,showH4=false,showH5=false,showH6=false,h1Font,h2Font,h3Font,h4Font,h5Font,h6Font,scrollContainer,containerPadding=0,disableIndent=false}=props;const containerRef=useRef(null);const[activeIndex,setActiveIndex]=useState(0);const[sectionProgress,setSectionProgress]=useState(0);const[items,setItems]=useState([]);const headingElementsRef=useRef([]);// Get scroll container\nconst getScrollContainer=useCallback(()=>{if(typeof window===\"undefined\")return null;if(scrollContainer){return document.querySelector(scrollContainer);}return document.documentElement;},[scrollContainer]);// Scan for headings and build TOC items\nuseEffect(()=>{if(typeof window===\"undefined\")return;const levels=[];if(showH1)levels.push(1);if(showH2)levels.push(2);if(showH3)levels.push(3);if(showH4)levels.push(4);if(showH5)levels.push(5);if(showH6)levels.push(6);const selectors=levels.map(l=>`h${l}`).join(\", \");if(!selectors){setItems([]);return;}const headings=Array.from(document.querySelectorAll(selectors));headingElementsRef.current=headings;const tocItems=headings.map((heading,index)=>({id:`toc-heading-${index}`,label:heading.textContent||`Heading ${index+1}`,level:parseInt(heading.tagName.charAt(1))}));setItems(tocItems);},[showH1,showH2,showH3,showH4,showH5,showH6]);// Track scroll position and update active heading\nuseEffect(()=>{if(typeof window===\"undefined\"||items.length===0)return;const handleScroll=()=>{const scrollContainerEl=getScrollContainer();if(!scrollContainerEl)return;const scrollTop=scrollContainerEl===document.documentElement?window.scrollY:scrollContainerEl.scrollTop;const containerRect=scrollContainerEl===document.documentElement?{top:0}:scrollContainerEl.getBoundingClientRect();let currentIndex=0;const offset=100;for(let i=0;i<headingElementsRef.current.length;i++){const heading=headingElementsRef.current[i];const rect=heading.getBoundingClientRect();const headingTop=rect.top-containerRect.top+scrollTop;if(headingTop<=scrollTop+offset){currentIndex=i;}}setActiveIndex(currentIndex);// Calculate progress within current section\nconst currentHeading=headingElementsRef.current[currentIndex];const nextHeading=headingElementsRef.current[currentIndex+1];if(currentHeading){const currentRect=currentHeading.getBoundingClientRect();const currentTop=currentRect.top-containerRect.top+scrollTop;let sectionHeight;if(nextHeading){const nextRect=nextHeading.getBoundingClientRect();const nextTop=nextRect.top-containerRect.top+scrollTop;sectionHeight=nextTop-currentTop;}else{// Last section - use viewport height or document height\nsectionHeight=window.innerHeight;}const progressInSection=Math.max(0,Math.min(1,(scrollTop+offset-currentTop)/sectionHeight));setSectionProgress(progressInSection);}};const scrollEl=getScrollContainer();if(scrollEl){scrollEl.addEventListener(\"scroll\",handleScroll,{passive:true});handleScroll();}window.addEventListener(\"scroll\",handleScroll,{passive:true});return()=>{if(scrollEl){scrollEl.removeEventListener(\"scroll\",handleScroll);}window.removeEventListener(\"scroll\",handleScroll);};},[items.length,getScrollContainer]);// Get font for heading level\nconst getFontForLevel=level=>{switch(level){case 1:return h1Font;case 2:return h2Font;case 3:return h3Font;case 4:return h4Font;case 5:return h5Font;case 6:return h6Font;default:return undefined;}};// Calculate indent based on heading level\nconst getIndent=level=>{if(disableIndent)return 0;return(level-1)*12;};const handleClick=index=>{const heading=headingElementsRef.current[index];if(heading){heading.scrollIntoView({behavior:\"smooth\",block:\"start\"});}};return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{position:\"sticky\",top:24,width:\"100%\",height:\"fit-content\",maxHeight:\"100%\",backgroundColor,display:\"flex\",flexDirection:\"column\",justifyContent:\"flex-start\",padding:containerPadding,margin:0,boxSizing:\"border-box\",overflow:\"auto\"},children:items.map((item,index)=>{const isActive=index===activeIndex;const font=getFontForLevel(item.level);const indent=getIndent(item.level);// Calculate line widths based on scroll progress within section\nconst getLineWidth=linePosition=>{// linePosition: 0 = main line, 1-4 = fine lines\nconst totalLines=5// main + 4 fine lines\n;// Determine which segment is currently active based on progress\n// 0-20%: segment 0 (main line)\n// 20-40%: segment 1 (first fine line)\n// 40-60%: segment 2 (second fine line)\n// 60-80%: segment 3 (third fine line)\n// 80-100%: segment 4 (fourth fine line)\nconst activeSegment=Math.min(4,Math.floor(sectionProgress*5));// Calculate distance from active segment\nconst distance=Math.abs(linePosition-activeSegment);// Width decreases by 20% for each position away from active\nconst widthPercentage=Math.max(.2,1-distance*.2);// Use same base width for all lines (main and fine)\nconst baseWidth=isActive?activeLineWidth:inactiveLineWidth;return baseWidth*widthPercentage;};return /*#__PURE__*/_jsxs(motion.div,{style:{display:\"flex\",flexDirection:\"column\",justifyContent:\"center\"},initial:false,children:[/*#__PURE__*/_jsxs(motion.div,{style:{display:\"flex\",alignItems:\"center\",height:lineHeight,cursor:\"pointer\",paddingLeft:indent},onClick:()=>handleClick(index),initial:false,children:[/*#__PURE__*/_jsx(motion.div,{style:{height:lineWidth,backgroundColor:lineColor,borderRadius:lineWidth/2,originX:0,flexShrink:0},animate:{width:isActive?getLineWidth(0):inactiveLineWidth},transition:{type:\"spring\",stiffness:300,damping:30}}),/*#__PURE__*/_jsx(motion.span,{style:{fontSize:font?.fontSize||fontSize,fontFamily:font?.fontFamily||\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",fontWeight:font?.fontWeight||(isActive?500:400),fontStyle:font?.fontStyle||\"normal\",letterSpacing:font?.letterSpacing||\"0\",lineHeight:font?.lineHeight||\"1.2em\",marginLeft:textOffset,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\"},animate:{x:isActive?0:-8,color:isActive?activeColor:inactiveColor},transition:{type:\"spring\",stiffness:300,damping:30},children:item.label})]}),index<items.length-1&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:6,paddingLeft:indent,justifyContent:\"center\"},children:[1,2,3,4].map(lineIndex=>{const fineWidth=getLineWidth(lineIndex);return /*#__PURE__*/_jsx(motion.div,{style:{height:lineWidth,backgroundColor:fineLineColor,borderRadius:lineWidth/2,originX:0},animate:{width:fineWidth,opacity:isActive?.3+fineWidth/activeLineWidth*.7:.3},transition:{type:\"spring\",stiffness:400,damping:35}},lineIndex);})})]},item.id);})});}addPropertyControls(TableOfContents,{scrollContainer:{type:ControlType.String,title:\"Scroll Container\",placeholder:\"CSS selector (e.g., #main-content)\",description:\"Leave empty to use document scroll\"},showH1:{type:ControlType.Boolean,title:\"Show H1\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},showH2:{type:ControlType.Boolean,title:\"Show H2\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},showH3:{type:ControlType.Boolean,title:\"Show H3\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},showH4:{type:ControlType.Boolean,title:\"Show H4\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},showH5:{type:ControlType.Boolean,title:\"Show H5\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},showH6:{type:ControlType.Boolean,title:\"Show H6\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},h1Font:{type:ControlType.Font,title:\"H1 Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"20px\",variant:\"Bold\",letterSpacing:\"-0.02em\",lineHeight:\"1.2em\"}},h2Font:{type:ControlType.Font,title:\"H2 Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"18px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},h3Font:{type:ControlType.Font,title:\"H3 Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"16px\",variant:\"Medium\",letterSpacing:\"0\",lineHeight:\"1.2em\"}},h4Font:{type:ControlType.Font,title:\"H4 Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"0\",lineHeight:\"1.2em\"}},h5Font:{type:ControlType.Font,title:\"H5 Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Regular\",letterSpacing:\"0\",lineHeight:\"1.2em\"}},h6Font:{type:ControlType.Font,title:\"H6 Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"13px\",variant:\"Regular\",letterSpacing:\"0\",lineHeight:\"1.2em\"}},activeColor:{type:ControlType.Color,title:\"Active Text\",defaultValue:\"#000000\"},inactiveColor:{type:ControlType.Color,title:\"Inactive Text\",defaultValue:\"#666666\"},lineColor:{type:ControlType.Color,title:\"Line Color\",defaultValue:\"#000000\"},fineLineColor:{type:ControlType.Color,title:\"Fine Line Color\",defaultValue:\"#CCCCCC\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#F5F5F5\"},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:18,min:12,max:32,step:1,unit:\"px\"},lineHeight:{type:ControlType.Number,title:\"Line Height\",defaultValue:48,min:8,max:80,step:4,unit:\"px\"},activeLineWidth:{type:ControlType.Number,title:\"Active Line Width\",defaultValue:40,min:20,max:80,step:4,unit:\"px\"},inactiveLineWidth:{type:ControlType.Number,title:\"Inactive Line Width\",defaultValue:12,min:4,max:30,step:2,unit:\"px\"},textOffset:{type:ControlType.Number,title:\"Text Offset\",defaultValue:16,min:8,max:32,step:2,unit:\"px\"},lineWidth:{type:ControlType.Number,title:\"Line Width\",defaultValue:.5,min:.5,max:4,step:.5,unit:\"px\"},containerPadding:{type:ControlType.Number,title:\"Container Padding\",defaultValue:0,min:0,max:32,step:4,unit:\"px\"},disableIndent:{type:ControlType.Boolean,title:\"Disable Indent\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TableOfContents\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"300\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TableOfContents.map"],"mappings":"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"}