{
  "version": 3,
  "sources": ["/cdn/shop/t/967/assets/reviews-carousel.js?utm_bot_source=7516fd43adaa"],
  "sourcesContent": ["(function () {\r\n  function initCarousel(root) {\r\n    if (!root || root.dataset.reviewsCarouselInit === '1') return;\r\n    root.dataset.reviewsCarouselInit = '1';\r\n\r\n    var track = root.querySelector('[data-reviews-carousel-track]');\r\n    var slides = root.querySelectorAll('[data-reviews-carousel-slide]');\r\n    var prevBtn = root.querySelector('[data-reviews-carousel-prev]');\r\n    var nextBtn = root.querySelector('[data-reviews-carousel-next]');\r\n    var dotsContainer = root.querySelector('[data-reviews-carousel-dots]');\r\n\r\n    if (!track || slides.length === 0 || !dotsContainer) return;\r\n\r\n    var total = slides.length;\r\n    var active = 0;\r\n\r\n    dotsContainer.innerHTML = '';\r\n    var dots = [];\r\n    for (var i = 0; i < total; i++) {\r\n      var dot = document.createElement('button');\r\n      dot.type = 'button';\r\n      dot.className = 'reviews-carousel__dot';\r\n      dot.setAttribute('role', 'tab');\r\n      dot.setAttribute('aria-label', 'Go to slide ' + (i + 1));\r\n      dot.dataset.index = String(i);\r\n      (function (index) {\r\n        dot.addEventListener('click', function () { goTo(index); });\r\n      })(i);\r\n      dotsContainer.appendChild(dot);\r\n      dots.push(dot);\r\n    }\r\n\r\n    function update() {\r\n      track.style.transform = 'translateX(-' + (active * 100) + '%)';\r\n      for (var s = 0; s < slides.length; s++) {\r\n        var isActive = s === active;\r\n        slides[s].classList.toggle('is-active', isActive);\r\n        slides[s].setAttribute('aria-hidden', isActive ? 'false' : 'true');\r\n        // `inert` pulls off-screen slides (and their links) out of the tab order\r\n        // and the a11y tree, so keyboard users can't tab into hidden cards.\r\n        // Property assignment is a harmless no-op on browsers without support.\r\n        slides[s].inert = !isActive;\r\n      }\r\n      for (var d = 0; d < dots.length; d++) {\r\n        var isActiveDot = d === active;\r\n        dots[d].classList.toggle('is-active', isActiveDot);\r\n        dots[d].setAttribute('aria-selected', isActiveDot ? 'true' : 'false');\r\n      }\r\n    }\r\n\r\n    function goTo(i) {\r\n      if (total <= 0) return;\r\n      active = ((i % total) + total) % total;\r\n      update();\r\n    }\r\n\r\n    if (total <= 1) {\r\n      if (prevBtn) prevBtn.style.display = 'none';\r\n      if (nextBtn) nextBtn.style.display = 'none';\r\n      dotsContainer.style.display = 'none';\r\n    } else {\r\n      if (prevBtn) prevBtn.addEventListener('click', function () { goTo(active - 1); prevBtn.blur(); });\r\n      if (nextBtn) nextBtn.addEventListener('click', function () { goTo(active + 1); nextBtn.blur(); });\r\n\r\n      // Touch swipe \u2014 horizontal-dominant gesture advances/rewinds one slide.\r\n      // Threshold: 50px horizontal AND 2\u00D7 larger than vertical delta (so a\r\n      // diagonal page-scroll doesn't get hijacked as a swipe).\r\n      var touchStartX = 0;\r\n      var touchStartY = 0;\r\n      var touchActive = false;\r\n      var SWIPE_THRESHOLD = 50;\r\n\r\n      track.addEventListener('touchstart', function (e) {\r\n        if (!e.touches || e.touches.length !== 1) return;\r\n        touchStartX = e.touches[0].clientX;\r\n        touchStartY = e.touches[0].clientY;\r\n        touchActive = true;\r\n      }, { passive: true });\r\n\r\n      track.addEventListener('touchend', function (e) {\r\n        if (!touchActive) return;\r\n        touchActive = false;\r\n        var t = (e.changedTouches && e.changedTouches[0]);\r\n        if (!t) return;\r\n        var dx = t.clientX - touchStartX;\r\n        var dy = t.clientY - touchStartY;\r\n        if (Math.abs(dx) < SWIPE_THRESHOLD) return;\r\n        if (Math.abs(dx) < Math.abs(dy) * 2) return;\r\n        if (dx < 0) goTo(active + 1); else goTo(active - 1);\r\n      }, { passive: true });\r\n\r\n      track.addEventListener('touchcancel', function () { touchActive = false; }, { passive: true });\r\n    }\r\n\r\n    update();\r\n  }\r\n\r\n  function initAll(scope) {\r\n    var roots = (scope || document).querySelectorAll('[data-reviews-carousel]');\r\n    for (var i = 0; i < roots.length; i++) initCarousel(roots[i]);\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', function () { initAll(); });\r\n  } else {\r\n    initAll();\r\n  }\r\n\r\n  document.addEventListener('shopify:section:load', function (event) {\r\n    var node = event.target;\r\n    if (!node) return;\r\n    var root = (node.matches && node.matches('[data-reviews-carousel]'))\r\n      ? node\r\n      : (node.querySelector ? node.querySelector('[data-reviews-carousel]') : null);\r\n    if (root) {\r\n      delete root.dataset.reviewsCarouselInit;\r\n      initCarousel(root);\r\n    }\r\n  });\r\n})();\r\n"],
  "mappings": "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",
  "names": ["i"]
}
