PageSourceSearch

https://projectcamellia.com/assets/ScrollReveal-BMJDK9HA.js

js projectcamellia.com collected 2026-10-04 22:40:48 UTC 1,542 bytes, 1 lines download raw bytes

1import{r as e}from"./rolldown-runtime-S-ySWqyJ.js";import{i as t}from"./framework-CXnKph_e.js";var n=e(t(),1),r=[`.sectionIntro`,`.sectionBridge`,`.overviewCard`,`.stat`,`.impactCard`,`.resourceCard`,`.commitmentCard`,`.supplierPanel`,`.supplierList`,`.contactForm`,`.faqList details`,`.contactIntro`].join(`,`);function i(){return(0,n.useEffect)(()=>{let e=0,t=()=>{let t=document.documentElement.scrollHeight-window.innerHeight,n=document.documentElement.scrollTop||document.body.scrollTop||window.scrollY,r=t>0?n/t:0;document.documentElement.style.setProperty(`--scroll-progress`,Math.min(1,Math.max(0,r)).toString()),e=0},n=()=>{e||=window.requestAnimationFrame(t)};if(t(),window.addEventListener(`scroll`,n,{passive:!0}),document.addEventListener(`scroll`,n,{passive:!0}),window.addEventListener(`resize`,n),window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return()=>{window.removeEventListener(`scroll`,n),document.removeEventListener(`scroll`,n),window.removeEventListener(`resize`,n),e&&window.cancelAnimationFrame(e)};let i=Array.from(document.querySelectorAll(r));i.forEach(e=>e.classList.add(`reveal`));let a=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add(`isVisible`),a.unobserve(e.target))})},{rootMargin:`0px 0px -4% 0px`,threshold:.08});return i.forEach(e=>a.observe(e)),()=>{a.disconnect(),window.removeEventListener(`scroll`,n),document.removeEventListener(`scroll`,n),window.removeEventListener(`resize`,n),e&&window.cancelAnimationFrame(e)}},[]),null}export{i 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.