1import{r as e,j as p}from"./icons-BXt-fXAl.js";import{s as C}from"./react-CadqgmwR.js";import{u as x}from"./useResizeObserver-0xylAUyQ.js";const b=e.createContext({});function k(){return C(b,"FooterShiftContext")}function j({source:s,disabled:a=!1}){const[o,c]=e.useState(null),[h,l]=e.useState(0),{reportFooterShift:f,clearFooterShift:u}=k(),r=e.useCallback(n=>{l(n),f({source:s,shift:n})},[s,f]);x(o,e.useCallback(n=>{r(n.getBoundingClientRect().height)},[r]),{disabled:a,dependencies:[o]}),e.useEffect(()=>{(!o||a)&&r(0)},[o,a,r]);const S=e.useRef(u);return e.useEffect(()=>{S.current=u},[u]),e.useEffect(()=>()=>S.current({source:s}),[s]),{ref:c,height:h}}function M({children:s}){const[a,o]=e.useState({}),[c,h]=e.useState(!0),[l,f]=e.useState(!0),u=e.useCallback(({source:t,shift:F})=>{o(i=>i[t]===F?i:{...i,[t]:F})},[]),r=e.useCallback(({source:t})=>{o(F=>{const i={...F};return delete i[t],i})},[]),S=e.useCallback(t=>{h(t)},[]),n=e.useCallback(t=>{f(t)},[]),m=Math.max(0,...Object.values(a)),g=e.useMemo(()=>({footerShift:m,reportFooterShift:u,clearFooterShift:r,toggleSignupFooter:S,toggleMobileFooter:n,signupFooterVisible:c,mobileFooterVisible:l}),[m,c,l]);return p.jsx(b.Provider,{value:g,children:s})}export{M as F,j as a,k as u};
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.