{"version":3,"file":"TableOfContents.Ce8f3_JZ.mjs","names":["useState","useRef","useCallback","startTransition"],"sources":["https:/framerusercontent.com/modules/5wsK7Zfh3OEN0zWBPoNQ/X8EVkn89gvADmtm6isRi/TableOfContents.js"],"sourcesContent":["// Table of Contents component that automatically detects H2 and H3 headings and provides smooth scrolling navigation with active section highlighting\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,useCallback,startTransition,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Table of Contents\n *\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 400\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function TableOfContents(props){const{title,backgroundColor,textColor,activeColor,hoverColor,titleFont,h2Font,h3Font,borderRadius,padding,paddingTop,showActiveIndicator,smoothScrollDuration,showProgressBar,progressBarColor,progressBarHeight,useGradient,gradientStartColor,gradientEndColor,gradientMiddleColor}=props;const[headings,setHeadings]=useState([]);const[activeId,setActiveId]=useState(\"\");const[hoveredId,setHoveredId]=useState(\"\");const[scrollProgress,setScrollProgress]=useState(0);const[expandedSections,setExpandedSections]=useState(new Set);const containerRef=useRef(null);// Detect and collect all H2 and H3 headings\nuseEffect(()=>{if(typeof window===\"undefined\")return;const detectHeadings=()=>{const allHeadings=Array.from(document.querySelectorAll(\"h2, h3\"));const headingItems=allHeadings.filter(element=>{// Exclude headings that are inside this component\nif(containerRef.current&&containerRef.current.contains(element)){return false;}return true;}).map(element=>{// Generate ID if not present\nif(!element.id){const id=element.textContent?.toLowerCase().replace(/[^a-z0-9]+/g,\"-\").replace(/(^-|-$)/g,\"\");if(id)element.id=id;}return{id:element.id,text:element.textContent||\"\",level:element.tagName===\"H2\"?2:3,element:element};}).filter(item=>item.id&&item.text);startTransition(()=>setHeadings(headingItems));};// Initial detection\ndetectHeadings();// Watch for DOM changes\nconst observer=new MutationObserver(detectHeadings);observer.observe(document.body,{childList:true,subtree:true});return()=>observer.disconnect();},[]);// Track active section on scroll\nuseEffect(()=>{if(typeof window===\"undefined\"||!showActiveIndicator||headings.length===0)return;const handleScroll=()=>{const scrollPosition=window.scrollY+80// 80px offset from top\n;// Find the current active heading (the one at or just past the top of viewport)\nlet currentActiveId=\"\";let currentActiveH2Id=\"\";// Iterate through headings to find which one is at the top\nfor(let i=0;i<headings.length;i++){const heading=headings[i];const nextHeading=headings[i+1];const headingTop=heading.element.getBoundingClientRect().top+window.scrollY;// Check if this heading is at or above the top of viewport (with 80px offset)\nif(headingTop<=scrollPosition){// Check if the next heading hasn't reached the top yet\nif(!nextHeading||nextHeading.element.getBoundingClientRect().top+window.scrollY>scrollPosition){currentActiveId=heading.id;// Find the parent H2 for this heading\nif(heading.level===2){currentActiveH2Id=heading.id;}else{// Find the H2 that comes before this H3\nfor(let j=i-1;j>=0;j--){if(headings[j].level===2){currentActiveH2Id=headings[j].id;break;}}}break;}}}if(currentActiveId!==activeId){startTransition(()=>{setActiveId(currentActiveId);// Auto-expand the section containing the active heading\nif(currentActiveH2Id){setExpandedSections(new Set([currentActiveH2Id]));}});}};window.addEventListener(\"scroll\",handleScroll,{passive:true});handleScroll()// Initial check\n;return()=>window.removeEventListener(\"scroll\",handleScroll);},[headings,activeId,showActiveIndicator]);// Track scroll progress\nuseEffect(()=>{if(typeof window===\"undefined\"||!showProgressBar)return;const handleScroll=()=>{const windowHeight=window.innerHeight;const documentHeight=document.documentElement.scrollHeight;const scrollTop=window.scrollY;const totalScrollable=documentHeight-windowHeight;const progress=totalScrollable>0?scrollTop/totalScrollable*100:0;startTransition(()=>setScrollProgress(Math.min(100,Math.max(0,progress))));};window.addEventListener(\"scroll\",handleScroll,{passive:true});handleScroll()// Initial check\n;return()=>window.removeEventListener(\"scroll\",handleScroll);},[showProgressBar]);// Smooth scroll to heading\nconst scrollToHeading=useCallback((id,isH2,h2Id)=>{if(typeof window===\"undefined\")return;const element=document.getElementById(id);if(!element)return;const elementTop=element.getBoundingClientRect().top+window.scrollY-80// 80px padding from top\n;window.scrollTo({top:elementTop,behavior:\"smooth\"});startTransition(()=>{setActiveId(id);// Expand the section when clicking\nconst sectionToExpand=isH2?id:h2Id;if(sectionToExpand){setExpandedSections(new Set([sectionToExpand]));}});},[]);// Toggle section expansion\nconst toggleSection=useCallback(h2Id=>{startTransition(()=>{setExpandedSections(prev=>{const newSet=new Set;if(!prev.has(h2Id)){newSet.add(h2Id);}return newSet;});});},[]);// Group H3s under their parent H2\nconst groupedHeadings=headings.reduce((acc,heading)=>{if(heading.level===2){acc.push({h2:heading,h3s:[]});}else if(heading.level===3&&acc.length>0){acc[acc.length-1].h3s.push(heading);}return acc;},[]);const isFixedWidth=props?.style&&props.style.width===\"100%\";const isFixedHeight=props?.style&&props.style.height===\"100%\";return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{...props.style,position:\"relative\",backgroundColor,borderRadius,padding,paddingTop,...isFixedWidth?{}:{minWidth:\"max-content\"},...isFixedHeight?{}:{minHeight:\"max-content\"}},children:[showProgressBar&&/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:progressBarHeight,backgroundColor:`${progressBarColor}20`,borderRadius:progressBarHeight/2,overflow:\"hidden\",marginBottom:16},children:/*#__PURE__*/_jsx(\"div\",{style:{width:`${scrollProgress}%`,height:\"100%\",background:useGradient?`linear-gradient(to right, ${gradientStartColor} 0%, ${gradientMiddleColor} 50%, ${gradientEndColor} 100%)`:progressBarColor,transition:\"width 0.3s ease-out\",borderRadius:progressBarHeight/2}})}),/*#__PURE__*/_jsx(\"h3\",{style:{margin:0,marginBottom:16,color:textColor,...titleFont},children:title}),headings.length===0?/*#__PURE__*/_jsx(\"p\",{style:{margin:0,color:textColor,opacity:.5,...h3Font},children:\"No headings found\"}):/*#__PURE__*/_jsx(\"nav\",{role:\"navigation\",\"aria-label\":\"Table of contents\",children:/*#__PURE__*/_jsx(\"ul\",{style:{listStyle:\"none\",margin:0,padding:0},children:groupedHeadings.map(group=>{const isExpanded=expandedSections.has(group.h2.id);const hasH3s=group.h3s.length>0;return /*#__PURE__*/_jsxs(\"li\",{style:{marginBottom:8},children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>{scrollToHeading(group.h2.id,true);if(hasH3s){toggleSection(group.h2.id);}},onMouseEnter:()=>startTransition(()=>setHoveredId(group.h2.id)),onMouseLeave:()=>startTransition(()=>setHoveredId(\"\")),style:{width:\"100%\",textAlign:\"left\",background:\"none\",border:\"none\",padding:\"8px 12px\",cursor:\"pointer\",borderRadius:6,transition:`all ${smoothScrollDuration}ms ease`,color:showActiveIndicator&&activeId===group.h2.id?activeColor:hoveredId===group.h2.id?hoverColor:textColor,backgroundColor:showActiveIndicator&&activeId===group.h2.id?`${activeColor}15`:hoveredId===group.h2.id?`${hoverColor}10`:\"transparent\",overflow:\"visible\",whiteSpace:\"normal\",wordWrap:\"break-word\",display:\"block\",lineHeight:\"1.5\",...h2Font},type:\"button\",children:group.h2.text}),hasH3s&&/*#__PURE__*/_jsx(\"ul\",{style:{listStyle:\"none\",margin:0,padding:0,paddingLeft:28,overflow:\"hidden\",maxHeight:isExpanded?`${group.h3s.length*100}px`:\"0px\",opacity:isExpanded?1:0,transition:`max-height ${smoothScrollDuration}ms ease, opacity ${smoothScrollDuration}ms ease`},children:group.h3s.map(h3=>/*#__PURE__*/_jsx(\"li\",{style:{marginTop:4},children:/*#__PURE__*/_jsx(\"button\",{onClick:()=>scrollToHeading(h3.id,false,group.h2.id),onMouseEnter:()=>startTransition(()=>setHoveredId(h3.id)),onMouseLeave:()=>startTransition(()=>setHoveredId(\"\")),style:{width:\"100%\",textAlign:\"left\",background:\"none\",border:\"none\",padding:\"6px 12px\",cursor:\"pointer\",borderRadius:6,transition:`all ${smoothScrollDuration}ms ease`,color:showActiveIndicator&&activeId===h3.id?activeColor:hoveredId===h3.id?hoverColor:textColor,backgroundColor:showActiveIndicator&&activeId===h3.id?`${activeColor}15`:hoveredId===h3.id?`${hoverColor}10`:\"transparent\",overflow:\"visible\",whiteSpace:\"normal\",wordWrap:\"break-word\",display:\"block\",lineHeight:\"1.5\",...h3Font},type:\"button\",children:h3.text})},h3.id))})]},group.h2.id);})})})]});}addPropertyControls(TableOfContents,{title:{type:ControlType.String,title:\"Title\",defaultValue:\"Table of Contents\"},showProgressBar:{type:ControlType.Boolean,title:\"Progress Bar\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},progressBarColor:{type:ControlType.Color,title:\"Progress Color\",defaultValue:\"#0099FF\",hidden:({showProgressBar,useGradient})=>!showProgressBar||useGradient},useGradient:{type:ControlType.Boolean,title:\"Use Gradient\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:({showProgressBar})=>!showProgressBar},gradientStartColor:{type:ControlType.Color,title:\"Gradient Start\",defaultValue:\"#0099FF\",hidden:({showProgressBar,useGradient})=>!showProgressBar||!useGradient},gradientEndColor:{type:ControlType.Color,title:\"Gradient End\",defaultValue:\"#8855FF\",hidden:({showProgressBar,useGradient})=>!showProgressBar||!useGradient},gradientMiddleColor:{type:ControlType.Color,title:\"Gradient Middle\",defaultValue:\"#FF5588\",hidden:({showProgressBar,useGradient})=>!showProgressBar||!useGradient},progressBarHeight:{type:ControlType.Number,title:\"Progress Height\",defaultValue:4,min:2,max:12,step:1,unit:\"px\",hidden:({showProgressBar})=>!showProgressBar},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#F5F5F5\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},activeColor:{type:ControlType.Color,title:\"Active Color\",defaultValue:\"#0099FF\"},hoverColor:{type:ControlType.Color,title:\"Hover Color\",defaultValue:\"#0066FF\"},titleFont:{type:ControlType.Font,title:\"Title Font\",defaultValue:{fontSize:\"22px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},h2Font:{type:ControlType.Font,title:\"H2 Font\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},h3Font:{type:ControlType.Font,title:\"H3 Font\",defaultValue:{fontSize:\"14px\",variant:\"Regular\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:8,min:0,max:32,step:1,unit:\"px\"},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:20,min:0,max:60,step:4,unit:\"px\"},paddingTop:{type:ControlType.Number,title:\"Padding Top\",defaultValue:20,min:0,max:60,step:4,unit:\"px\"},showActiveIndicator:{type:ControlType.Boolean,title:\"Active Indicator\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},smoothScrollDuration:{type:ControlType.Number,title:\"Scroll Duration\",defaultValue:300,min:100,max:1e3,step:50,unit:\"ms\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TableOfContents\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"400\",\"framerIntrinsicWidth\":\"300\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TableOfContents.map"],"mappings":"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"}