{
  "version": 3,
  "sources": ["/cdn/shop/t/23/assets/hd-hero-slideshow.js?x=27345"],
  "sourcesContent": ["const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n\nconst SETTLE_MS = 140;\n\nconst CLONES_PER_SIDE = 2;\n\nfunction initHeroSlideshow(root) {\n  if (root.dataset.hdsReady === '1') return;\n\n  const viewport = root.querySelector('[data-hds-viewport]');\n  const track = root.querySelector('[data-hds-track]');\n  if (!viewport || !track) return;\n\n  const slides = Array.from(track.querySelectorAll('[data-hds-slide]'));\n  if (slides.length === 0) return;\n\n  root.dataset.hdsReady = '1';\n\n  const dots = Array.from(root.querySelectorAll('[data-hds-dot]'));\n  const prevBtn = root.querySelector('[data-hds-prev]');\n  const nextBtn = root.querySelector('[data-hds-next]');\n\n  const focusableSelector = 'a[href], button:not([disabled])';\n\n  const total = slides.length;\n  const loop = total > 1;\n  const pad = loop ? Math.min(CLONES_PER_SIDE, total) : 0;\n\n  const makeClone = (source) => {\n    const clone = source.cloneNode(true);\n    clone.removeAttribute('data-hds-slide');\n    clone.removeAttribute('id');\n    clone.setAttribute('aria-hidden', 'true');\n    clone.dataset.hdsClone = '1';\n\n    clone.removeAttribute('data-shopify-editor-block');\n    clone.querySelectorAll('[data-shopify-editor-block]').forEach((el) => {\n      el.removeAttribute('data-shopify-editor-block');\n    });\n    clone.querySelectorAll(focusableSelector).forEach((el) => {\n      el.setAttribute('tabindex', '-1');\n    });\n    return clone;\n  };\n\n  if (loop) {\n\n    for (let i = total - pad; i < total; i += 1) {\n      track.insertBefore(makeClone(slides[((i % total) + total) % total]), slides[0]);\n    }\n\n    for (let i = 0; i < pad; i += 1) {\n      track.appendChild(makeClone(slides[i % total]));\n    }\n  }\n\n  const cells = Array.from(track.children);\n\n  const realOf = (cellIndex) => (loop ? (((cellIndex - pad) % total) + total) % total : cellIndex);\n\n  let cell = pad;\n  let timer = null;\n  let paused = false;\n  let settleTimer = null;\n  let programmaticUntil = 0;\n  let scrollRaf = null;\n\n  const applyState = () => {\n    const real = realOf(cell);\n\n    cells.forEach((el, i) => {\n      el.classList.toggle('hds-slide--active', i === cell);\n    });\n\n    slides.forEach((slide, i) => {\n      const active = i === real;\n      if (active) slide.removeAttribute('aria-hidden');\n      else slide.setAttribute('aria-hidden', 'true');\n      slide.querySelectorAll(focusableSelector).forEach((el) => {\n        if (active) el.removeAttribute('tabindex');\n        else el.setAttribute('tabindex', '-1');\n      });\n    });\n\n    dots.forEach((dot, i) => {\n      const active = i === real;\n      dot.classList.toggle('hds-dot--active', active);\n      dot.setAttribute('aria-selected', active ? 'true' : 'false');\n    });\n  };\n\n  const scrollToCell = (i, instant) => {\n    const el = cells[i];\n    if (!el) return;\n    const target = el.offsetLeft + el.offsetWidth / 2 - viewport.clientWidth / 2;\n    const jump = instant || reduceMotion.matches;\n    programmaticUntil = performance.now() + (jump ? 60 : 700);\n    viewport.scrollTo({ left: Math.max(0, target), behavior: jump ? 'auto' : 'smooth' });\n  };\n\n  const goToCell = (next, instant) => {\n    cell = Math.max(0, Math.min(cells.length - 1, next));\n    applyState();\n    scrollToCell(cell, instant);\n  };\n\n  const jumpToCell = (next) => {\n    cells.forEach((el) => {\n      el.style.transition = 'none';\n    });\n    goToCell(next, true);\n    void track.offsetWidth;\n    cells.forEach((el) => {\n      el.style.transition = '';\n    });\n  };\n\n  const nearestCell = () => {\n    const mid = viewport.scrollLeft + viewport.clientWidth / 2;\n    let closest = cell;\n    let best = Infinity;\n    cells.forEach((el, i) => {\n      const distance = Math.abs(el.offsetLeft + el.offsetWidth / 2 - mid);\n      if (distance < best) {\n        best = distance;\n        closest = i;\n      }\n    });\n    return closest;\n  };\n\n  const settle = () => {\n    if (performance.now() >= programmaticUntil) {\n      const near = nearestCell();\n      if (near !== cell) {\n        cell = near;\n        applyState();\n      }\n    }\n\n    if (!loop) return;\n    if (cell < pad) jumpToCell(cell + total);\n    else if (cell >= total + pad) jumpToCell(cell - total);\n  };\n\n  const advance = () => {\n    if (paused) return;\n    goToCell(cell + 1);\n  };\n\n  const start = () => {\n    if (timer) return;\n    const interval = parseInt(root.dataset.autoplay || '', 10);\n    if (!interval || reduceMotion.matches) return;\n\n    if (document.hidden) return;\n    timer = window.setInterval(advance, interval);\n  };\n\n  const stop = () => {\n    if (!timer) return;\n    window.clearInterval(timer);\n    timer = null;\n  };\n\n  const restart = () => {\n    stop();\n    start();\n  };\n\n  prevBtn?.addEventListener('click', () => {\n    goToCell(cell - 1);\n    restart();\n  });\n  nextBtn?.addEventListener('click', () => {\n    goToCell(cell + 1);\n    restart();\n  });\n  dots.forEach((dot, i) => {\n    dot.addEventListener('click', () => {\n      goToCell(loop ? i + pad : i);\n      restart();\n    });\n  });\n\n  viewport.addEventListener(\n    'scroll',\n    () => {\n      window.clearTimeout(settleTimer);\n      settleTimer = window.setTimeout(settle, SETTLE_MS);\n\n      if (scrollRaf) return;\n      scrollRaf = window.requestAnimationFrame(() => {\n        scrollRaf = null;\n        if (performance.now() < programmaticUntil) return;\n        const near = nearestCell();\n        if (near !== cell) {\n          cell = near;\n          applyState();\n        }\n      });\n    },\n    { passive: true }\n  );\n\n  const pause = () => { paused = true; };\n  const resume = () => { paused = false; };\n\n  root.addEventListener('mouseenter', pause);\n  root.addEventListener('mouseleave', resume);\n  root.addEventListener('focusin', pause);\n  root.addEventListener('focusout', (e) => {\n    if (e.relatedTarget instanceof Node && root.contains(e.relatedTarget)) return;\n    resume();\n  });\n  root.addEventListener('pointerdown', pause);\n  window.addEventListener('pointerup', resume);\n\n  document.addEventListener('visibilitychange', () => {\n    if (document.hidden) stop();\n    else start();\n  });\n\n  reduceMotion.addEventListener('change', (e) => {\n    if (e.matches) stop();\n    else start();\n  });\n\n  let resizeTimer = null;\n  window.addEventListener('resize', () => {\n    window.clearTimeout(resizeTimer);\n    resizeTimer = window.setTimeout(() => scrollToCell(cell, true), 100);\n  });\n\n  applyState();\n  scrollToCell(cell, true);\n  start();\n}\n\ndocument.querySelectorAll('[data-hds]').forEach((el) => {\n  if (el instanceof HTMLElement) initHeroSlideshow(el);\n});\n\n(function () {\n  function warm() {\n    setTimeout(function () {\n      document.querySelectorAll('[data-hds-slide] img[loading=\"lazy\"]').forEach(function (img) {\n        img.loading = 'eager';\n      });\n    }, 1500);\n  }\n  if (document.readyState === 'complete') warm();\n  else window.addEventListener('load', warm, { once: true });\n})();\n"],
  "mappings": "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",
  "names": []
}
