{"version":3,"file":"COM_TableOfContents.B5EADzSC.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/dLJhWCuaA0x60x7nZV87/YjBvdJ76lKBjnSpzrJ3C/COM_TableOfContents.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";const TEXT_LINK_CSS={fontFamily:\"Geist, sans-serif\",fontWeight:500,textDecoration:\"none\",color:\"rgba(255, 255, 255, 0.4)\",transition:\"color 0.2s ease\",display:\"inline-block\"};export default function TOC(){const[headings,setHeadings]=useState([]);const[activeId,setActiveId]=useState(null);useEffect(()=>{const contentStack=document.querySelector('[data-framer-name=\"content\"]');if(!contentStack)return;const elems=Array.from(contentStack.querySelectorAll(\"h2, h3\"));// Ensure unique IDs\nconst usedIds=new Set;const items=elems.map((el,index)=>{let baseId=el.id||(el.textContent?.toLowerCase().replace(/\\s+/g,\"-\").replace(/[^\\w-]/g,\"\")??\"heading\");// Avoid duplicates\nlet uniqueId=baseId;let suffix=1;while(usedIds.has(uniqueId)){uniqueId=`${baseId}-${suffix++}`;}usedIds.add(uniqueId);// Apply ID to DOM element\nel.id=uniqueId;return{id:uniqueId,text:el.textContent||`Heading ${index+1}`,level:el.tagName===\"H3\"?3:2};});setHeadings(items);// Observe headings for active link highlighting\nconst observer=new IntersectionObserver(entries=>{const visible=entries.find(e=>e.isIntersecting);if(visible)setActiveId(visible.target.id);},{rootMargin:\"0px 0px -70% 0px\",threshold:0});elems.forEach(el=>observer.observe(el));// Initialize active section\nconst firstVisible=elems.find(el=>{const rect=el.getBoundingClientRect();return rect.top>=0&&rect.bottom<=window.innerHeight;});if(firstVisible)setActiveId(firstVisible.id);return()=>observer.disconnect();},[]);return /*#__PURE__*/_jsx(\"nav\",{style:{padding:\"1rem 0\",maxHeight:\"80vh\",overflowY:\"auto\"},children:/*#__PURE__*/_jsx(\"ul\",{style:{listStyle:\"none\",padding:0,margin:0},children:headings.map(h=>/*#__PURE__*/_jsx(\"li\",{style:{marginBottom:\"0.8rem\",marginLeft:h.level===3?\"1rem\":\"0\"},children:/*#__PURE__*/_jsx(\"a\",{href:`#${h.id}`,style:TEXT_LINK_CSS,className:`toc-link ${activeId===h.id?\"active\":\"\"}`,children:h.text})},h.id))})});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TOC\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./COM_TableOfContents.map"],"mappings":"2MAAgQ,SAAwB,GAAK,CAAC,GAAK,CAAC,EAAS,GAAaA,EAAS,EAAE,CAAC,CAAM,CAAC,EAAS,GAAaA,EAAS,KAAK,CAK9J,OAL+J,MAAc,CAAC,IAAM,EAAa,SAAS,cAAc,+BAA+B,CAAC,GAAG,CAAC,EAAa,OAAO,IAAM,EAAM,MAAM,KAAK,EAAa,iBAAiB,SAAS,CAAC,CAC5hB,EAAQ,IAAI,IAAU,EAAM,EAAM,KAAK,EAAG,IAAQ,CAAC,IAAI,EAAO,EAAG,KAAK,EAAG,aAAa,aAAa,CAAC,QAAQ,OAAO,IAAI,CAAC,QAAQ,UAAU,GAAG,EAAE,WACjJ,EAAS,EAAW,EAAO,EAAE,KAAM,EAAQ,IAAI,EAAS,EAAE,EAAS,GAAG,EAAO,GAAG,MACrE,OADiF,EAAQ,IAAI,EAAS,CACrH,EAAG,GAAG,EAAe,CAAC,GAAG,EAAS,KAAK,EAAG,aAAa,WAAW,EAAM,IAAI,MAAM,EAAG,UAAU,KAAK,EAAE,EAAE,EAAG,CAAC,EAAY,EAAM,CAC9H,IAAM,EAAS,IAAI,qBAAqB,GAAS,CAAC,IAAM,EAAQ,EAAQ,KAAK,GAAG,EAAE,eAAe,CAAI,GAAQ,EAAY,EAAQ,OAAO,GAAG,EAAG,CAAC,WAAW,mBAAmB,UAAU,EAAE,CAAC,CAAC,EAAM,QAAQ,GAAI,EAAS,QAAQ,EAAG,CAAC,CAClO,IAAM,EAAa,EAAM,KAAK,GAAI,CAAC,IAAM,EAAK,EAAG,uBAAuB,CAAC,OAAO,EAAK,KAAK,GAAG,EAAK,QAAQ,EAAO,aAAc,CAA8C,OAA1C,GAAa,EAAY,EAAa,GAAG,KAAW,EAAS,YAAY,EAAG,EAAE,CAAC,CAAqB,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,SAAS,UAAU,OAAO,UAAU,OAAO,CAAC,SAAsB,EAAK,KAAK,CAAC,MAAM,CAAC,UAAU,OAAO,QAAQ,EAAE,OAAO,EAAE,CAAC,SAAS,EAAS,IAAI,GAAgB,EAAK,KAAK,CAAC,MAAM,CAAC,aAAa,SAAS,WAAW,EAAE,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAsB,EAAK,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,MAAM,EAAc,UAAU,YAAY,IAAW,EAAE,GAAG,SAAS,KAAK,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,wBALtlB,IAAsC,CAAM,EAAc,CAAC,WAAW,oBAAoB,WAAW,IAAI,eAAe,OAAO,MAAM,2BAA2B,WAAW,kBAAkB,QAAQ,eAAe"}