1import{r as n,j as s,a as i}from"./components-tbqp4LHE.js";import{G as S,P as C}from"./page-grid-CoFoLrqL.js";import{E as I}from"./eyebrow-doDkPx78.js";import{B}from"./builder-image-D1_Xk8Nk.js";import{I as j}from"./IconChevronLeft-DxvnKbbw.js";import{I as L}from"./IconChevronRight-DIBgV9A0.js";import{m as W}from"./proxy-B2oUKae0.js";const R=[{segments:[{text:"âBuilder hits this nice middle ground⦠itâs structured enough for developers to stay in control, but flexible enough to let other teams move fast without creating chaos.â"}],name:"Tom Wolf",role:"Staff Engineer at LegalZoom",logoSrc:"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F6b9e442ae0be4fdf9fe0f9f44ae944c5",logoWidth:200,logoHeight:33,logoAlt:"LegalZoom",whiteFilter:!0},{segments:[{text:"âA page that took three engineers a month to build can now "},{text:"be created in a couple of days.",highlight:!0},{text:"â"}],name:"Gregory Quick",role:"Staff Engineer at Storyblocks",logoSrc:"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F4d8728cd49724a03b42d9d2aaf67cf13",logoWidth:130,logoHeight:28,logoAlt:"Storyblocks",whiteFilter:!1},{segments:[{text:"âBuilder makes everyoneâs lives easier, it makes it easier for us to maintain, and it makes it easier for the brand team
1s to maintain.â"}],name:"Tyler Hozie",role:"Director of Technology at Anheuser-Busch",logoSrc:"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2Fa5144b1da1f34b96960c14990f2ee289",logoWidth:160,logoHeight:40,logoAlt:"Anheuser-Busch",whiteFilter:!1},{segments:[{text:"âThanks to Builder, we diverted 20% of our development budget from content management maintenance to strategic growth initiatives like optimizing conversions and increasing member loyalty.â"}],name:"Tim Collins",role:"CTO at TechStyle Fashion Group",logoSrc:"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F2240cbeb59bb421ab8f54c77ac366613",logoWidth:120,logoHeight:16,logoAlt:"Fabletics",whiteFilter:!0},{segments:[{text:"âWith Builder, weâre able to see the same quality results that were only previously possible through reliance on our engineering team, who now have capacity to tackle higher-value projects.â"}],name:"Dave King",role:"CTO at Everlane",logoSrc:"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F20124a5cfd33420e8e9fca801387fc9f",logoWidth:120,logoHeight:14,logoAlt:"Everlane",whiteFilter:!0},{segments:[{text:"âOur developer team is ecstatic about working with Builder. Theyâre far and away the best vendor that we work with in terms of customer service, development processes, and documentation.â"}],name:"Colin Tracy",role:"Director of Engineering at Black Rifle Coffee Company",logoSrc:"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F041bac1891614ac6aed9fe3bc2e4ff47",logoWidth:120,logoHeight:30,logoAlt:"Black Rifle Coffee",whiteFilter:!0}],m=3,b=Math.ceil(R.length/m),H={duration:.35,ease:[.37,.01,0,.98]};function D({testimonial:e}){return s("div",{css:{display:"flex",flexDirection:"column",justifyContent:"space-between",gap:"var(--spacing-8)",padding:"32px 64px 32px 32px",minHeight:300,borderLeft:"1px solid var(--b-border-subtle)","&:last-child":{borderRight:"1px solid var(--b-border-subtle)"},"@media (max-width: 768px)":{padding:"var(--spacing-8)",borderLeft:"none","&:last-child":{borderRight:"none"},"&+&":{borderTop:"1px solid var(--b-border-subtle)"}}},children:[s("div",{css:{display:"flex",flexDirection:"column",gap:"var(--spacing-5)"},children:[i("p",{css:{margin:0,fontSize:18,lineHeight:1.5,color:"var(--b-text-secondary)"},children:e.segments.map((a,d)=>a.highlight?i("span",{css:{color:"var(--b-text-primary)"},children:a.text},d):a.text)}),s("div",{css:{display:"flex",flexDirection:"column",gap:"var(--spacing-1)"},children:[i("span",{css:{fontSize:12,lineHeight:1.4,color:"var(--b-text-primary)"},children:e.name}),i("span",{css:{fontSize:12,lineHeight:1.4,color:"var(--b-text-secondary)"},children:e.role})]})]}),i(B,{src:e.logoSrc,alt:e.logoAlt,width:e.logoWidth*2,height:e.logoHeight*2,sizes:`${e.logoWidth}px`,widths:[e.logoWidth,e.logoWidth*2],css:{display:"block",width:e.logoWidth,height:e.logoHeight,objectFit:"contain",objectPosition:"left center",...e.whiteFilter?{filter:"brightness(0) invert(1)"}:{}}})]})}const T={display:"inline-flex",alignItems:"center",justifyContent:"center",width:40,height:40,border:"1px solid var(--b-action-secondary-border)",borderRadius:"var(--b-radius)",background:"transparent",color:"var(--b-text-primary)",cursor:"pointer",transition:"background 0.15s","&:hover":{background:"var(--b-bg-raised)"}},k=Array.from({length:b},(e,a)=>R.slice(a*m,(a+1)*m));function _(){const[e,a]=n.useState(0),[d,E]=n.useState(1),[F,v]=n.useState(null),x=n.useRef(!1),l=n.useRef(null),h=n.useRef(Object.fromEntries(k.map((r,t)=>[t,t===0?1:0]))),y=n.useRef(null),c=n.useRef(null),u=n.useRef(null);n.useEffect(()=>{const r=y.current;if(!r)return;const t=o=>{if(c.current===null)return;const g=Math.abs(o.touches[0].clientX-c.current),f=Math.abs(o.touches[0].clientY-(u.current??o.touches[0].clientY));g>f&&o.preventDefault()};return r.addEventListener("touchmove",t,{passive:!1}),()=>r.removeEventListener("touchmove",t)},[]),n.useEffect(()=>()=>{l.current&&clearTimeout(l.current)},[]);const p=r=>{const t=(e+r+b)%b;l.current&&clearTimeout(l.current),x.current=!0,h.current[t]=(h.current[t]??0)+1,E(r),v(e),a(t),l.current=setTimeout(()=>v(null),400)};return s(C,{children:[i(S,{css:{borderTop:"1px solid var(--b-border-subtle)"},children:s("div",{css:{display:"flex",justifyContent:"space-between",alignItems:"flex-end",padding:"var(--spacing-16) var(--spacing-10) var(--spacing-10)","@media (max-width: 768px)":{padding:"var(--spacing-10) var(--spacing-10) var(--spacing-8)"}},children:[s("div",{css:{display:"flex",flexDirection:"column",gap:"var(--spacing-3)"},children:[i(I,{children:"Testimonials"}),i("h2",{css:{margin:0,fontSize:"var(--b-t-heading-2)",fontWeight:500,lineHeight:1.1,letterSpacing:"-0.02em",maxWidth:560},children:"What teams are saying"})]}),s("div",{css:{display:"flex",gap:"var(--spacing-2)",flexShrink:0},children:[i("button",{"aria-label":"Previous testimonials",onClick:()=>p(-1),css:T,children:i(j,{size:16,stroke:1.75})}),i("button",{"aria-label":"Next testimonials",onClick:()=>p(1),css:T,children:i(L,{size:16,stroke:1.75})})]})]})}),i(S,{css:{overflow:"hidden",borderTop:"1px solid var(--b-border-subtle)"},children:i("div",{css:{display:"grid"},ref:y,onTouchStart:r=>{c.current=r.touches[0].clientX,u.current=r.touches[0].clientY},onTouchEnd:r=>{if(c.current===null)return;const t=c.current-r.changedTouches[0].clientX,o=Math.abs((u.current??r.changedTouches[0].clientY)-r.changedTouches[0].clientY);Math.abs(t)>50&&Math.abs(t)>o&&p(t>0?1:-1),c.current=null},children:k.map((r,t)=>{const o=t===e,g=t===F,f=o||g,A=o?"0%":g?`${-d*100}%`:`${(t-e)*100}%`;return i(W.div,{initial:o&&x.current?{x:`${d*100}%`}:!1,animate:{x:A},transition:f?H:{duration:0},"aria-hidden":!o,inert:!o||void 0,css:{gridArea:"1 / 1",display:"grid",gridTemplateColumns:"repeat(3, 1fr)",pointerEvents:o?"auto":"none",background:"var(--b-bg-page)","@media (max-width: 768px)":{gridTemplateColumns:"1fr"}},children:r.map(w=>i(D,{testimonial:w},w.name))},`page-${t}-${h.current[t]}`)}
1)})})]})}export{_ as D};
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.