1import{r as e}from"./rolldown-runtime-S-ySWqyJ.js";import{i as t,r as n}from"./framework-CXnKph_e.js";var r=e(t(),1),i=n();function a(){let[e,t]=(0,r.useState)(0);return(0,r.useEffect)(()=>{let e=window.matchMedia(`(max-width:650px)`).matches,n=performance.getEntriesByType(`navigation`)[0];e&&!window.location.hash&&(!n||n.type===`reload`)&&(history.scrollRestoration=`manual`,window.scrollTo({top:0,left:0,behavior:`auto`}),requestAnimationFrame(()=>window.scrollTo({top:0,left:0,behavior:`auto`})));let r=()=>{let e=document.documentElement.scrollHeight-window.innerHeight;t(e>0?Math.min(100,window.scrollY/e*100):0),document.body.classList.toggle(`has-scrolled`,window.scrollY>40);let n=document.querySelector(`.hero`);document.body.classList.toggle(`tbx-dock-active`,!!(n&&n.getBoundingClientRect().bottom<=24))};r(),window.addEventListener(`scroll`,r,{passive:!0}),window.addEventListener(`resize`,r,{passive:!0});let i=document.querySelectorAll(`section, .action-card, .principles > div`);i.forEach(e=>e.classList.add(`reveal-ready`));let a=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add(`in-view`),a.unobserve(e.target))})},{threshold:.08,rootMargin:`0px 0px -50px`});i.forEach(e=>a.observe(e));let o=window.matchMedia(`(pointer:fine)`).matches,s=e=>{document.documentElement.style.setProperty(`--pointer-x`,`${e.clientX}px`),document.documentElement.style.setProperty(`--pointer-y`,`${e.clientY}px`)};o&&window.addEventListener(`pointermove`,s,{passive:!0});let c=document.querySelectorAll(`[data-tip-trigger]`),l=()=>window.dispatchEvent(new Event(`open-tbx-tip-form`));c.forEach(e=>e.addEventListener(`click`,l));let u=document.querySelectorAll(`[data-guest-trigger]`),d=()=>window.dispatchEvent(new Event(`open-tbx-guest-form`));return u.forEach(e=>e.addEventListener(`click`,d)),()=>{window.removeEventListener(`scroll`,r),window.removeEventListener(`resize`,r),window.removeEventListener(`pointermove`,s),a.disconnect(),c.forEach(e=>e.removeEventListener(`click`,l)),u.forEach(e=>e.removeEventListener(`click`,d))}},[]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:`page-progress`,style:{width:`${e}%`}}),(0,i.jsx)(`div`,{className:`pointer-glow`,"aria-hidden":`true`})]})}export{a as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.