{"version":3,"file":"ClientStories-CeqM4p3s.js","names":["Typography","Link","DevelopmentContent","useState","ConsultationLink","ServiceHero","t0","$","_c","title","accent","t1","description","cards","animateHeroIntro","partnerBadge","undefined","active","setActive","t2","t3","t4","href","src","width","height","alt","t5","t6","Symbol","for","t7","t8","t9","t10","t11","t12","t13","t14","t15","map","card","position","name","length","event","pointerType","event_0","direction","ArrowRight","ArrowDown","ArrowLeft","ArrowUp","key","preventDefault","next","Math","max","min","item","currentTarget","parentElement","children","querySelector","focus","image","replace","external","t16","ReactNode","useEffect","useRef","QuoteRow","t0","$","_c","direction","children","row","t1","t2","el","current","track","firstElementChild","HTMLElement","reduced","window","matchMedia","offset","span","frame","last","pointer","previousX","hovered","paint","style","transform","resize","ResizeObserver","half","length","first","offsetLeft","observe","tick","time","matches","Math","min","requestAnimationFrame","observer","IntersectionObserver","t3","entry","cancelAnimationFrame","isIntersecting","events","AbortController","options","signal","addEventListener","e","pointerId","clientX","setPointerCapture","classList","add","e_0","remove","abort","disconnect","ScrollRevealHeading","Typography","QuoteRow","defaultRows","direction","people","name","role","quote","logo","defaultParagraph","ClientStories","t0","$","_c","t1","undefined","rows","t2","paragraph","t3","t4","Symbol","for","t5","t6","map","_temp","t7","t8","row","person","index","length"],"sources":["../../src/components/features/povio/services/ServiceHero.tsx","../../src/components/features/povio/services/QuoteRow.tsx","../../src/components/features/povio/services/ClientStories.tsx"],"sourcesContent":["import { Typography, Link } from \"@povio/ui\";\nimport type { DevelopmentContent } from \"./developmentContent\";\nimport { useState } from \"react\";\nimport { ConsultationLink } from \"../collaboration/ConsultationLink\";\nexport function ServiceHero({\n  title,\n  accent = \"Development\",\n  description,\n  cards,\n  animateHeroIntro,\n  partnerBadge,\n}: Pick<DevelopmentContent, \"title\" | \"description\" | \"cards\" | \"animateHeroIntro\"> & {\n  accent?: string;\n  partnerBadge?: { href: string; src: string; alt: string; width: number; height: number };\n}) {\n  const [active, setActive] = useState(0);\n  return (\n    <section\n      className=\"wf_hero_wrap\"\n      data-track-section=\"hero\"\n      data-hero-intro={animateHeroIntro || undefined}\n    >\n      <div className=\"horizon_hero_contain\">\n        <div className=\"horizon_hero_layout\">\n          <div className={partnerBadge ? \"horizon_hero_content is-bottom\" : \"horizon_hero_content\"}>\n            <div className=\"head_group\">\n              {partnerBadge && (\n                <Link\n                  className=\"webflow_badge_link\"\n                  href={partnerBadge.href}\n                  target=\"_blank\"\n                  rel=\"noopener noreferrer\"\n                >\n                  <img\n                    className=\"webflow_badge_img\"\n                    src={partnerBadge.src}\n                    width={partnerBadge.width}\n                    height={partnerBadge.height}\n                    alt={partnerBadge.alt}\n                  />\n                </Link>\n              )}\n              <div className=\"rich_accent_text\">\n                <Typography\n                  as=\"h1\"\n                  size=\"h1\"\n                >\n                  <span>{title}</span>\n                  <br />\n                  <strong>{accent}</strong>\n                </Typography>\n              </div>\n            </div>\n            <div className={partnerBadge ? \"features_text_content is-gap-sm\" : \"features_text_content\"}>\n              <Typography\n                as=\"p\"\n                size=\"body\"\n                className=\"main_paragraph\"\n              >\n                {description}\n              </Typography>\n              <ConsultationLink />\n            </div>\n          </div>\n        </div>\n      </div>\n      <div className=\"horizon_gallery_wrap\">\n        <div\n          className=\"hero-cards\"\n          data-hero-cards\n        >\n          <ul className=\"hero-cards_list\">\n            {[...cards, ...cards].map((card, position) => (\n              <li\n                key={`${card.name}-${position >= cards.length ? \"copy\" : \"project\"}`}\n                data-copy={position >= cards.length || undefined}\n                inert={position >= cards.length}\n                data-card-wide={(position % cards.length) % 3 === 0}\n                onPointerEnter={(event) => {\n                  if (event.pointerType === \"mouse\") {\n                    setActive(position);\n                  }\n                }}\n                onFocus={() => setActive(position)}\n                onKeyDown={(event) => {\n                  const direction = { ArrowRight: 1, ArrowDown: 1, ArrowLeft: -1, ArrowUp: -1 }[event.key];\n                  if (!direction) {\n                    return;\n                  }\n                  event.preventDefault();\n                  const next = Math.max(0, Math.min(cards.length - 1, position + direction));\n                  const item = event.currentTarget.parentElement?.children[next];\n                  item?.querySelector<HTMLAnchorElement>(\".hero-cards_item_link\")?.focus();\n                }}\n                onPointerDown={() => setActive(position % cards.length)}\n                className=\"hero-cards_item\"\n                data-card\n                data-state={position === active ? \"active\" : \"idle\"}\n              >\n                <div className=\"hero-cards_item_media\">\n                  <img\n                    className=\"hero-cards_item_cover\"\n                    data-card-cover\n                    data-state=\"visible\"\n                    src={card.image}\n                    fetchPriority={position % cards.length === 0 ? \"high\" : \"auto\"}\n                    loading={position % cards.length === 0 ? \"eager\" : \"lazy\"}\n                    srcSet={`${card.image.replace(\".webp\", \"-480.webp\")} 480w, ${card.image.replace(\".webp\", \"-800.webp\")} 800w, ${card.image} ${card.width}w`}\n                    sizes={`(max-width: 767px) ${(position % cards.length) % 3 === 0 ? \"79vw\" : \"30vw\"}, (max-width: 991px) 48vw, min(38vw, 640px)`}\n                    width={card.width}\n                    height={card.height}\n                    alt={card.alt}\n                  />\n                </div>\n                <Link\n                  className=\"hero-cards_item_link\"\n                  data-card-link\n                  data-state={position === active ? \"visible\" : \"hidden\"}\n                  href={card.href}\n                  target={card.external ? \"_blank\" : undefined}\n                >\n                  <Typography\n                    as=\"p\"\n                    size=\"body\"\n                  >\n                    {card.name}\n                  </Typography>\n                  <svg\n                    className=\"hero-cards_item_icon\"\n                    xmlns=\"http://www.w3.org/2000/svg\"\n                    width=\"100%\"\n                    viewBox=\"0 0 24 24\"\n                    fill=\"none\"\n                    aria-hidden=\"true\"\n                  >\n                    <path\n                      d=\"M9.45468 14.5463L14.5458 9.45508M14.5458 9.45508H10.0911M14.5458 9.45508V13.9099M12 21C16.9705 21 21 16.9705 21 12C21 7.02944 16.9705 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9705 7.02944 21 12 21Z\"\n                      stroke=\"currentColor\"\n                      strokeWidth=\"1.35\"\n                      strokeLinecap=\"round\"\n                      strokeLinejoin=\"round\"\n                    />\n                  </svg>\n                </Link>\n              </li>\n            ))}\n          </ul>\n        </div>\n      </div>\n    </section>\n  );\n}\n","import { type ReactNode, useEffect, useRef } from \"react\";\n\n// Each row has two identical sets of quotes. Wrap the scroll position at\n// their boundary so dragging and automatic movement share one continuous track.\nexport function QuoteRow({ direction, children }: { direction: string; children: ReactNode }) {\n  const row = useRef<HTMLDivElement>(null);\n  useEffect(() => {\n    const el = row.current;\n    if (!el) {\n      return;\n    }\n    const track = el.firstElementChild as HTMLElement;\n    const reduced = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n    let offset = 0,\n      span = 0,\n      frame = 0,\n      last = 0,\n      pointer: number | null = null,\n      previousX = 0,\n      hovered = false;\n    const paint = () => {\n      if (span <= 0) {\n        return;\n      }\n      offset = ((offset % span) + span) % span;\n      track.style.transform = `translate3d(${-offset}px,0,0)`;\n    };\n    const resize = new ResizeObserver(() => {\n      const half = track.children[track.children.length / 2] as HTMLElement;\n      const first = track.firstElementChild as HTMLElement;\n      span = half.offsetLeft - first.offsetLeft;\n      paint();\n    });\n    resize.observe(track);\n    const tick = (time: number) => {\n      if (last && pointer === null && !hovered && !reduced.matches) {\n        offset += (direction === \"right\" ? -1 : 1) * Math.min(50, time - last) * 0.075;\n        paint();\n      }\n      last = time;\n      frame = requestAnimationFrame(tick);\n    };\n    const observer = new IntersectionObserver(([entry]) => {\n      cancelAnimationFrame(frame);\n      last = 0;\n      if (entry.isIntersecting) {\n        frame = requestAnimationFrame(tick);\n      }\n    });\n    observer.observe(el);\n    const events = new AbortController();\n    const options = { signal: events.signal };\n    el.addEventListener(\n      \"pointerenter\",\n      () => {\n        hovered = true;\n      },\n      options,\n    );\n    el.addEventListener(\n      \"pointerleave\",\n      () => {\n        hovered = false;\n      },\n      options,\n    );\n    el.addEventListener(\n      \"pointerdown\",\n      (e) => {\n        pointer = e.pointerId;\n        previousX = e.clientX;\n        el.setPointerCapture(pointer);\n        el.classList.add(\"is-grabbing\");\n      },\n      options,\n    );\n    el.addEventListener(\n      \"pointermove\",\n      (e) => {\n        if (pointer === e.pointerId) {\n          offset += previousX - e.clientX;\n          previousX = e.clientX;\n          paint();\n        }\n      },\n      options,\n    );\n    el.addEventListener(\n      \"lostpointercapture\",\n      () => {\n        pointer = null;\n        el.classList.remove(\"is-grabbing\");\n      },\n      options,\n    );\n    return () => {\n      events.abort();\n      observer.disconnect();\n      resize.disconnect();\n      cancelAnimationFrame(frame);\n    };\n  }, [direction]);\n  return (\n    <div\n      ref={row}\n      className=\"marquee_clients-cms-wrap\"\n    >\n      {children}\n    </div>\n  );\n}\n","import { ScrollRevealHeading } from \"../ScrollRevealHeading\";\nimport { Typography } from \"@povio/ui\";\nimport { QuoteRow } from \"./QuoteRow\";\nconst defaultRows = [\n  {\n    direction: \"left\",\n    people: [\n      {\n        name: \"Allison Checchi\",\n        role: \"COO @ Invisible Universe\",\n        quote:\n          \"Povio delivered our MVP on time and within budget, then supported us with iterations and optimizations that exceeded expectations. Their strong project management and proactive recommendations gave us confidence in the platform’s long-term growth.\",\n        logo: \"/povio/services/frontend/quotes/invisible.svg\",\n      },\n      {\n        name: \"Ed Jean-Louis\",\n        role: \"CEO @ Stellaudio\",\n        quote:\n          \"Thanks to Povio’s efforts, we were able to launch our demo product on time. The team was communicative, thorough, and transparent throughout the process. Their ability to adapt quickly and provide intuitive solutions made development smooth and efficient.\",\n        logo: \"/povio/services/frontend/quotes/stellaudio.svg\",\n      },\n      {\n        name: \"Phoebe Gates\",\n        role: \"Co-Founder @ Phia\",\n        quote:\n          \"Their work met our expectations with strong project management and clear communication throughout. The team kept us aligned with regular check-ins and delivered reliable support for app fixes and new builds.\",\n        logo: \"/povio/services/frontend/quotes/phia.svg\",\n      },\n    ],\n  },\n  {\n    direction: \"right\",\n    people: [\n      {\n        name: \"Joel Estabrook\",\n        role: \"Owner @ Snow Removal Company\",\n        quote:\n          \"Although the project is still ongoing, Povio has done an excellent job meeting our needs. They fully understand the requirements, deliver reliable services on time, and stand out for their strong project management skills.\",\n        logo: \"/povio/services/frontend/quotes/snowsync.svg\",\n      },\n      {\n        name: \"Garret Rothstein\",\n        role: \"Co-Founder & CEO @ Queue\",\n        quote:\n          \"When the opportunity came to partner with one of the country’s largest movie ticketing companies, we had to move fast. In just two weeks, we went from idea to live in the App Store. Speed matters as a startup — and Povio has consistently helped us move quickly and deliver at scale.\",\n        logo: \"/povio/services/frontend/quotes/queue.svg\",\n      },\n      {\n        name: \"Jonathan Michel\",\n        role: \"Co-Founder & COO @ Foragr\",\n        quote:\n          \"Their team has been responsive, technically solid, and adaptable as our product evolved. With their support, we brought a reliable and effective AI voice experience to market, serving a growing number of customers. Povio has been a dependable development partner, and we truly value the relationship.\",\n        logo: \"/povio/services/frontend/quotes/foragr.svg\",\n      },\n      {\n        name: \"Jasper Kapper\",\n        role: \"Founder @ Roadsoft\",\n        quote:\n          \"Povio quickly gained a deep understanding of our business and executed the project efficiently. Their flexibility to adapt to changing needs and their ability to provide skilled technical resources with valuable industry expertise have made them a trusted, ongoing partner.\",\n        logo: \"/povio/services/frontend/quotes/roadsoft.svg\",\n      },\n    ],\n  },\n];\nconst defaultParagraph =\n  \"We value the trust our clients place in us, and we’re excited to share their experiences. From collaboration to lasting results, this is what working with us looks like through their eyes.\";\nexport function ClientStories({ rows = defaultRows, paragraph = defaultParagraph } = {}) {\n  return (\n    <section className=\"clients_wrap\">\n      <div className=\"clients_contain\">\n        <div className=\"clients_layout\">\n          <div className=\"clients_head\">\n            <ScrollRevealHeading\n              title=\"Hear From\"\n              accent=\"Our Clients\"\n            />\n            <div className=\"wf_p_group\">\n              <Typography\n                as=\"p\"\n                size=\"body\"\n                className=\"main_paragraph\"\n              >\n                {paragraph}\n              </Typography>\n            </div>\n          </div>\n          <div className=\"marquee_clients_wrap\">\n            {rows.map((row) => (\n              <QuoteRow\n                key={row.direction}\n                direction={row.direction}\n              >\n                <div className=\"marquee_clients-cms-list\">\n                  {[...row.people, ...row.people].map((person, index) => (\n                    <div\n                      key={`${person.name}-${index >= row.people.length ? \"copy\" : \"quote\"}`}\n                      aria-hidden={index >= row.people.length || undefined}\n                      className=\"marquee_clients-cms-item\"\n                    >\n                      <div className=\"marquee_clients_card\">\n                        <div className=\"marquee_clients_layout\">\n                          <div className=\"marquee_clients_person\">\n                            <img\n                              className=\"marquee_clients_img\"\n                              width={64}\n                              height={64}\n                              src={person.logo}\n                              alt=\"\"\n                              loading=\"lazy\"\n                            />\n                            <div className=\"marquee_clients_text_group\">\n                              <Typography\n                                as=\"p\"\n                                size=\"body\"\n                                className=\"marquee_clients_name\"\n                              >\n                                {person.name}\n                              </Typography>\n                              <Typography\n                                as=\"p\"\n                                size=\"body\"\n                                className=\"marquee_clients_position\"\n                              >\n                                {person.role}\n                              </Typography>\n                            </div>\n                          </div>\n                          <div className=\"marquee_clients_content\">\n                            <Typography\n                              as=\"p\"\n                              size=\"body\"\n                              className=\"marquee_clients_testimonial\"\n                            >\n                              {person.quote}\n                            </Typography>\n                          </div>\n                        </div>\n                      </div>\n                    </div>\n                  ))}\n                </div>\n              </QuoteRow>\n            ))}\n          </div>\n        </div>\n      </div>\n    </section>\n  );\n}\n"],"mappings":"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"}