1import{d as U,r as o,P as C,Z as x,X as V,D as g,m as v,q as a,F as P,v as T,z as D,s as O,t as p,E as z,G as H,H as q,J as $}from"./CjBIF-Iw.js";import{b as X,a as Z}from"./BWNZpYWE.js";const G=u=>(H("data-v-72d6ec92"),u=u(),q(),u),J=G(()=>a("div",{class:"container"},[a("header",{class:"bjb-regions__header"},[a("span",{class:"bjb-regions__eyebrow"},"Contracts"),a("h2",{class:"bjb-regions__title"},"Every site is a different build")])],-1)),Q={class:"bjb-regions__media"},Y=["src"],K=["src","autoplay","loop"],ee={class:"bjb-regions__caption"},te={class:"bjb-regions__number"},se={class:"bjb-regions__name"},ae={class:"bjb-regions__text"},re={class:"container"},ne={class:"bjb-regions__rail","aria-hidden":"true"},oe={class:"bjb-regions__rail-track"},ie={class:"bjb-regions__rail-count"},le={class:"bjb-regions__rail-total"},F="(prefers-reduced-motion: no-preference) and (min-width: 900px)",ce=U({__name:"BuilderRegions",setup(u){const i=[{clip:"region1",name:"El Burro Heights",description:"Formwork, rebar, a pumped pour, then columns, walls and roof. The full ten-step build."},{clip:"region2",name:"Panel walls",description:"Precast panels come off the flatbed and are set one slot at a time."},{clip:"region3",name:"Frame and cladding",description:"A steel skeleton closed in bay by bay, boards carried up by hand."},{clip:"region4",name:"Water facility",description:"Two phases: the pump lays the base, then the crane stands the wall around it."},{clip:"region5",name:"Façade scaffold",description:"Decks and frame raised around the shell before the façade goes on."},{clip:"region6",name:"Riverside frame",description:"A long open frame beside the water, worked into the night."},{clip:"region7",name:"Pipe trenches",description:"Pipes lifted off the pile and lowered into open trenches. No fixed order â every trench is open from the start."},{clip:"region8",name:"Wall and roof assembly",description:"Ninety-eight slots: the walls carried by hand, the beams and roof set by crane."},{clip:"region10",name:"Sidewalk repair",description:"The loader digs the pit, tip trucks haul it away, then the paving goes back down."},{clip:"region11",name:"Retaining wall",description:"Precast sections hauled in and dropped into the cut, one after another."}],y=o(null),L=o(null),l=o(null),c=o(null),w=o(null),d=o(0),W=s=>X(s),I=s=>Z(s),A=s=>Math.abs(s-d.value)<=1,S=[],B=(s,r)=>{S[r]=s},_=o(!0);let h=0,k=0,f=0,j=0;const E=()=>{const s=c.value,r=l.value;if(!s||!r)return;const e=s.firstElementChild,t=e==null?void 0:e.nextElementSibling;k=(e==null?void 0:e.offsetWidth)??0,h=t&&e?t.offsetLeft-e.offsetLeft:k,f=r.clientWidth,j=Math.max(0,s.scrollWidth-f)},N=s=>Math.min(1,Math.max(0,s)),M=s=>{const r=c.value;if(!r)return;if(r.style.transform=`translate3d(${-s}px, 0, 0)`,h>0){const t=Math.round(s/h);d.value=Math.min(i.length-1,Math.max(0,t))}const e=f+k;S.forEach((t,n)=>{if(!t||!Number.isFinite(t.duration)||t.seeking)return;const R=n*h-f;t.currentTime=t.duration*N((s-R)/e)})};let m=null,b=null;return C(async()=>{_.value=window.matchMedia(F).matches;const s=(await x(()=>import("./XlrKqp1i.js"),[],import.meta.url)).default,{ScrollTrigger:r}=await x(()=>import("./B1GGtPrJ.js"),[],import.meta.url);if(s.registerPlugin(r),m=s.context(()=>{s.matchMedia().add(F,()=>(r.create({trigger:y.value,start:"top top",end:"bottom bottom",scrub:.5,invalidateOnRefresh:!0,onRefresh:t=>{E(),M(t.progress*j)},onUpdate:t=>{M(t.progress*j),w.value&&(w.value.style.transform=`scaleX(${t.progress})`)}}),E(),()=>{c.value&&(c.value.style.transform="")}))},y.value??void 0),!_.value){const e=l.value;if(!e)return;let t=!1;b=()=>{t||(t=!0,requestAnimationFrame(()=>{const n=e.querySelector(".bjb-regions__panel"),R=(n==null?void 0:n.offsetWidth)??e.clientWidth;d.value=Math.min(i.length-1,Math.max(0,Math.round(e.scrollLeft/Math.max(1,R)))),t=!1}))},e.addEventListener("scroll",b,{passive:!0})}}),V(()=>{m==null||m.revert(),b&&l.value&&l.value.removeEventListener("scroll",b)}),(s,r)=>(g(),v("section",{ref_key:"sectionRef",ref:y,class:"bjb-regions"},[a("div",{ref_key:"stageRef",ref:L,class:"bjb-regions__stage"},[J,a("div",{ref_key:"viewportRef",ref:l,class:"bjb-regions__viewport"},[a("div",{ref_key:"trackRef",ref:c,class:"bjb-regions__track"},[(g(),v(P,null,T(i,(e,t)=>a("article",{key:e.clip,class:D(["bjb-regions__panel",{"bjb-regions__panel--active":t===d.value}])},[a("div",Q,[a("img",{class:"bjb-regions__still",src:I(e.clip),loading:"lazy",alt:""},null,8,Y),A(t)?(g(),v("video",{key:0,ref_for:!0,ref:n=>B(n,t),class:"bjb-regions__video",src:W(e.clip),autoplay:!_.value,loop:!_.value,muted:"",playsinline:"",disablepictureinpicture:"",preload:"auto","aria-hidden":"true"}
1,null,8,K)):O("",!0)]),a("div",ee,[a("span",te,p(String(t+1).padStart(2,"0")),1),a("h3",se,p(e.name),1),a("p",ae,p(e.description),1)])],2)),64))],512)],512),a("div",re,[a("div",ne,[a("span",oe,[a("span",{ref_key:"railFillRef",ref:w,class:"bjb-regions__rail-fill"},null,512)]),a("span",ie,[z(p(String(d.value+1).padStart(2,"0"))+" ",1),a("span",le," / "+p(String(i.length).padStart(2,"0")),1)])])])],512),(g(),v(P,null,T(i,e=>a("div",{key:`spacer-${e.clip}`,class:"bjb-regions__spacer","aria-hidden":"true"})),64))],512))}}),ue=$(ce,[["__scopeId","data-v-72d6ec92"]]);export{ue 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.