PageSourceSearch

https://www.flip-tech.com/portfolio/assets/SiteWaypoints-B-LS-_le.js

js flip-tech.com collected 2026-10-06 13:35:51 UTC 1,507 bytes, 1 lines download raw bytes

1import{r as b,j as r,P as j}from"./index-BgCcym4R.js";import{V as g}from"./three.core-0OeyYG2X.js";function O(){const f=b.useRef(null);return b.useEffect(()=>{const n=f.current;if(!n)return;const c=Array.from(n.children),e=new g;let h=0;const m=()=>{h=requestAnimationFrame(m);const l=window.__cam;if(!l)return;const v=window.innerWidth,E=window.innerHeight,u=[];j.forEach((p,_)=>{const t=c[_];if(!t)return;e.set(p.position[0],2.6,p.position[2]);const y=l.position.distanceTo(e);if(e.project(l),e.z>1||y<p.radius*.9){t.style.opacity="0",t.style.visibility="hidden";return}t.style.visibility="visible";const w=Math.min(1,Math.max(0,(110-y)/95)),d=.72+.38*w,o=(e.x+1)/2*v;let i=(1-e.y)/2*E;const a=t.offsetWidth*d,x=t.offsetHeight*d;for(const s of u)o+a/2>s.left&&o-a/2<s.right&&i>s.top-8&&i-x<s.bottom+8&&(i=s.top-8);u.push({left:o-a/2,right:o+a/2,top:i-x,bottom:i}),t.style.opacity=(.35+.65*w).toFixed(2),t.style.transform=`translate(${o}px, ${i}px) translate(-50%, -100%) scale(${d.toFixed(3)})`})};return m(),()=>cancelAnimationFrame(h)},[]),r.jsx("div",{ref:f,className:"site-waypoints",children:j.map((n,c)=>r.jsxs("button",{type:"button",className:"site-waypoint","aria-label":`Open ${n.name}`,onClick:()=>{window.dispatchEvent(new CustomEvent("field:site-enter",{detail:{id:n.id,source:"waypoint"}}))},children:[r.jsx("span",{className:"site-waypoint__index",children:String(c+1).padStart(2,"0")}),r.jsx("span",{className:"site-waypoint__name",children:n.name})]},n.id))})}export{O as SiteWaypoints};

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.