{
  "version": 3,
  "sources": ["/cdn/shop/t/22/assets/resource-gallery-carousel.js?rgc_version=20260709_12"],
  "sourcesContent": ["(() => {\n  const instances = new WeakMap();\n\n  class ResourceGalleryCarousel {\n    constructor(root) {\n      this.root = root;\n      this.deck = root.querySelector('[data-rg-deck]');\n      this.items = Array.from(root.querySelectorAll('[data-rg-item]'));\n      this.dots = Array.from(root.querySelectorAll('[data-rg-dot]'));\n      this.prev = root.querySelector('[data-rg-prev]');\n      this.next = root.querySelector('[data-rg-next]');\n      this.abort = new AbortController();\n      this.index = 0;\n      this.timer = 0;\n      this.visible = true;\n      this.pointer = null;\n      this.previousIndex = 0;\n      this.autoplay = root.dataset.autoplay === 'true';\n      this.interval = Math.max(Number(root.dataset.autoplayInterval) || 4000, 2000);\n      this.respectMotion = root.dataset.respectReducedMotion === 'true';\n      this.forceAutoplayMotion = root.dataset.forceAutoplayMotion === 'true';\n      this.reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n      this.mobileMedia = window.matchMedia('(max-width: 767.98px)');\n\n      this.root.classList.add('is-enhanced');\n      this.updateMode();\n      this.setState(0, false);\n      this.bind();\n      this.observe();\n      this.updateHeight();\n      this.schedule();\n    }\n\n    bind() {\n      const signal = this.abort.signal;\n      this.prev?.addEventListener('click', () => {\n        this.stop();\n        this.move(-1);\n        this.schedule();\n      }, { signal });\n      this.next?.addEventListener('click', () => {\n        this.stop();\n        this.move(1);\n        this.schedule();\n      }, { signal });\n      this.dots.forEach(dot => {\n        dot.addEventListener('click', () => {\n          this.stop();\n          this.setState(Number(dot.dataset.index) || 0);\n          this.schedule();\n        }, { signal });\n      });\n      this.deck?.addEventListener('keydown', event => {\n        if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n        event.preventDefault();\n        this.stop();\n        this.move(event.key === 'ArrowLeft' ? -1 : 1);\n        this.schedule();\n      }, { signal });\n      this.deck?.setAttribute('tabindex', '0');\n      this.deck?.addEventListener('pointerdown', event => this.onPointerDown(event), { signal });\n      this.deck?.addEventListener('pointermove', event => this.onPointerMove(event), { passive: true, signal });\n      this.deck?.addEventListener('pointerup', event => this.onPointerUp(event), { signal });\n      this.deck?.addEventListener('pointercancel', event => this.onPointerUp(event), { signal });\n      this.deck?.addEventListener('pointerleave', event => {\n        if (event.pointerType === 'mouse') this.onPointerUp(event);\n      }, { signal });\n      document.addEventListener('visibilitychange', () => {\n        if (document.hidden) this.stop();\n        else this.schedule();\n      }, { signal });\n      window.addEventListener('resize', () => {\n        this.updateMode();\n        this.updateHeight();\n      }, { signal });\n      this.mobileMedia.addEventListener?.('change', () => {\n        this.updateMode();\n        this.updateHeight();\n      }, { signal });\n      this.reducedMotion.addEventListener?.('change', () => this.schedule(), { signal });\n    }\n\n    updateMode() {\n      this.root.classList.toggle('is-mobile', this.mobileMedia.matches);\n    }\n\n    observe() {\n      if (!('IntersectionObserver' in window)) {\n        this.visible = true;\n        return;\n      }\n      this.observer = new IntersectionObserver(entries => {\n        entries.forEach(entry => {\n          if (entry.target !== this.root) return;\n          this.visible = entry.isIntersecting || this.isInViewport();\n          if (this.visible) this.schedule();\n        });\n      }, { threshold: 0.2 });\n      this.observer.observe(this.root);\n    }\n\n    isInViewport() {\n      const rect = this.root.getBoundingClientRect();\n      const viewHeight = window.innerHeight || document.documentElement.clientHeight;\n      const viewWidth = window.innerWidth || document.documentElement.clientWidth;\n      return rect.bottom > 0 && rect.right > 0 && rect.top < viewHeight && rect.left < viewWidth;\n    }\n\n    onPointerDown(event) {\n      if (!this.deck || event.button > 0) return;\n      this.pointer = {\n        id: event.pointerId,\n        x: event.clientX,\n        y: event.clientY,\n        moved: false\n      };\n      this.stop();\n    }\n\n    onPointerMove(event) {\n      if (!this.pointer || event.pointerId !== this.pointer.id) return;\n      const dx = event.clientX - this.pointer.x;\n      const dy = event.clientY - this.pointer.y;\n      if (Math.abs(dx) > 8 && Math.abs(dx) > Math.abs(dy)) {\n        this.pointer.moved = true;\n      }\n    }\n\n    onPointerUp(event) {\n      if (!this.pointer || event.pointerId !== this.pointer.id) return;\n      const dx = event.clientX - this.pointer.x;\n      const dy = event.clientY - this.pointer.y;\n      if (this.pointer.moved && Math.abs(dx) > 36 && Math.abs(dx) > Math.abs(dy)) {\n        this.move(dx < 0 ? 1 : -1);\n      }\n      this.pointer = null;\n      this.schedule();\n    }\n\n    move(direction) {\n      if (!this.items.length) return;\n      const nextIndex = (this.index + direction + this.items.length) % this.items.length;\n      this.setState(nextIndex);\n    }\n\n    setState(index, animate = true) {\n      if (!this.items.length) return;\n      const previous = this.index;\n      this.index = Math.max(0, Math.min(index, this.items.length - 1));\n      const direction = this.index === previous ? 0 : this.getDirection(previous, this.index);\n      this.previousIndex = previous;\n      this.root.dataset.stackPattern = String(this.index % 8);\n      this.root.dataset.stackDirection = direction > 0 ? 'next' : direction < 0 ? 'prev' : 'idle';\n      const last = this.items.length - 1;\n\n      this.items.forEach((item, itemIndex) => {\n        const forward = (itemIndex - this.index + this.items.length) % this.items.length;\n        const backward = (this.index - itemIndex + this.items.length) % this.items.length;\n        let state = '';\n\n        if (itemIndex === this.index) state = 'active';\n        else if (backward === 1 || (this.index === 0 && itemIndex === last)) state = 'prev';\n        else if (forward === 1 || (this.index === last && itemIndex === 0)) state = 'next';\n        else if (backward === 2) state = 'far-prev';\n        else if (forward === 2) state = 'far-next';\n\n        if (state) item.dataset.state = state;\n        else item.removeAttribute('data-state');\n        item.setAttribute('aria-hidden', itemIndex === this.index ? 'false' : 'true');\n      });\n\n      this.dots.forEach((dot, dotIndex) => {\n        const active = dotIndex === this.index;\n        dot.classList.toggle('is-active', active);\n        if (active) dot.setAttribute('aria-current', 'true');\n        else dot.removeAttribute('aria-current');\n      });\n\n      if (!animate) this.root.dataset.ready = 'true';\n      this.updateHeight();\n    }\n\n    getDirection(from, to) {\n      if (!this.items.length || from === to) return 0;\n      const forward = (to - from + this.items.length) % this.items.length;\n      const backward = (from - to + this.items.length) % this.items.length;\n      return forward <= backward ? 1 : -1;\n    }\n\n    updateHeight() {\n      if (!this.deck) return;\n      const active = this.items[this.index];\n      if (!active) return;\n      if (window.matchMedia('(max-width: 767.98px)').matches) {\n        const height = active.offsetHeight;\n        if (height) this.deck.style.height = `${height + 42}px`;\n      } else {\n        this.deck.style.height = '';\n      }\n    }\n\n    schedule() {\n      this.stop();\n      if (!this.autoplay || this.items.length < 2 || document.hidden) {\n        this.root.dataset.autoplayRunning = 'false';\n        this.root.dataset.autoplayPaused = document.hidden ? 'hidden' : 'disabled';\n        return;\n      }\n      if (this.respectMotion && this.reducedMotion.matches && !this.forceAutoplayMotion) {\n        this.root.dataset.autoplayRunning = 'false';\n        this.root.dataset.autoplayPaused = 'reduced-motion';\n        return;\n      }\n      this.root.dataset.autoplayPaused = '';\n      this.root.dataset.autoplayRunning = 'true';\n      this.timer = window.setInterval(() => {\n        if (document.hidden) {\n          this.stop();\n          return;\n        }\n        this.move(1);\n      }, this.interval);\n    }\n\n    stop() {\n      if (!this.timer) return;\n      window.clearInterval(this.timer);\n      this.timer = 0;\n      this.root.dataset.autoplayRunning = 'false';\n    }\n\n    destroy() {\n      this.stop();\n      this.abort.abort();\n      this.observer?.disconnect();\n      this.root.classList.remove('is-enhanced', 'is-mobile');\n      if (this.deck) this.deck.style.height = '';\n    }\n  }\n\n  function init(scope = document) {\n    scope.querySelectorAll('[data-resource-gallery]').forEach(root => {\n      instances.get(root)?.destroy();\n      instances.set(root, new ResourceGalleryCarousel(root));\n    });\n  }\n\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', () => init());\n  else init();\n\n  document.addEventListener('shopify:section:load', event => init(event.target));\n  document.addEventListener('shopify:section:unload', event => {\n    const root = event.target.querySelector('[data-resource-gallery]');\n    if (!root) return;\n    instances.get(root)?.destroy();\n    instances.delete(root);\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
