{
  "version": 3,
  "sources": ["/cdn/shop/t/120/assets/z-slideshow.js?zv=20260806-3"],
  "sourcesContent": ["/*\n * Author: zoesvision.com\n * Purpose: Isolated Embla lifecycle, controls, media, and editor integration for z-slideshow.\n */\n\nif (!customElements.get('z-slideshow')) {\n  customElements.define('z-slideshow', class ZSlideshow extends HTMLElement {\n    connectedCallback() {\n      if (this.isInitialized) return;\n\n      this.viewport = this.querySelector('[data-z-viewport]');\n      this.slides = Array.from(this.querySelectorAll('[data-z-slide]'));\n      if (!this.viewport || !this.slides.length) return;\n\n      this.isInitialized = true;\n      this.dataset.zReady = 'false';\n      this.abortController = new AbortController();\n      this.reducedMotion = matchMedia('(prefers-reduced-motion: reduce)');\n      // zoesvision.com | 2026-08-15 | Purpose: Keep slideshow mobile behavior active through tablet widths.\n      this.mobileMedia = matchMedia('(max-width: 989px)');\n      this.userPaused = false;\n      this.editorPaused = false;\n      this.announceNextSelection = false;\n\n      this.pagination = this.querySelector('[data-z-pagination]');\n      this.liveRegion = this.querySelector('[data-z-live-region]');\n\n      this.handleVisibilityChange = this.handleVisibilityChange.bind(this);\n      this.handleMotionChange = this.handleMotionChange.bind(this);\n      this.handleMediaChange = this.handleMediaChange.bind(this);\n      this.handleFocusIn = this.handleFocusIn.bind(this);\n      this.handleFocusOut = this.handleFocusOut.bind(this);\n      this.handlePointerDown = this.handlePointerDown.bind(this);\n      this.handlePointerUp = this.handlePointerUp.bind(this);\n      this.handleKeydown = this.handleKeydown.bind(this);\n      this.handleBlockSelect = this.handleBlockSelect.bind(this);\n\n      this.bindNativeEvents();\n      this.initializeEmbla();\n    }\n\n    disconnectedCallback() {\n      this.destroy();\n    }\n\n    initializeEmbla() {\n      if (typeof globalThis.EmblaCarousel !== 'function') {\n        this.dependencyAttempts = (this.dependencyAttempts || 0) + 1;\n        if (this.dependencyAttempts <= 120 && this.isConnected) {\n          this.dependencyFrame = requestAnimationFrame(() => this.initializeEmbla());\n        } else {\n          this.dataset.zReady = 'true';\n        }\n        return;\n      }\n      this.dependencyAttempts = 0;\n\n      const plugins = [];\n      const autoplayConfigured = this.dataset.zAutoplay === 'true' && this.slides.length > 1;\n\n      if (autoplayConfigured && typeof globalThis.EmblaCarouselAutoplay === 'function') {\n        plugins.push(globalThis.EmblaCarouselAutoplay({\n          delay: Number(this.dataset.zAutoplayDelay) || 6000,\n          playOnInit: !this.reducedMotion.matches,\n          stopOnInteraction: false,\n          stopOnMouseEnter: false,\n          stopOnFocusIn: false\n        }));\n      }\n\n      this.embla = globalThis.EmblaCarousel(this.viewport, {\n        loop: this.dataset.zLoop === 'true',\n        align: 'start',\n        containScroll: 'trimSnaps',\n        inViewThreshold: 0.35,\n        watchDrag: this.slides.length > 1\n      }, plugins);\n\n      this.handleSelect = this.handleSelect.bind(this);\n      this.handleSlidesInView = this.handleSlidesInView.bind(this);\n      this.handleReInit = this.handleReInit.bind(this);\n      this.handleAutoplayTimerSet = this.handleAutoplayTimerSet.bind(this);\n      this.handleAutoplayTimerStopped = this.handleAutoplayTimerStopped.bind(this);\n      this.embla.on('select', this.handleSelect);\n      this.embla.on('slidesInView', this.handleSlidesInView);\n      this.embla.on('reInit', this.handleReInit);\n      this.embla.on('autoplay:timerset', this.handleAutoplayTimerSet);\n      this.embla.on('autoplay:timerstopped', this.handleAutoplayTimerStopped);\n\n      this.buildPagination();\n      this.syncSelectedSlide();\n      this.initialRevealFrame = requestAnimationFrame(() => {\n        this.initialRevealFrame = requestAnimationFrame(() => {\n          this.playRevealAnimations(this.slides[this.embla.selectedScrollSnap()]);\n          this.dataset.zReady = 'true';\n        });\n      });\n    }\n\n    bindNativeEvents() {\n      const signal = this.abortController.signal;\n\n      this.addEventListener('keydown', this.handleKeydown, { signal });\n      document.addEventListener('visibilitychange', this.handleVisibilityChange, { signal });\n      document.addEventListener('shopify:block:select', this.handleBlockSelect, { signal });\n      this.reducedMotion.addEventListener('change', this.handleMotionChange, { signal });\n      this.mobileMedia.addEventListener('change', this.handleMediaChange, { signal });\n      this.addEventListener('focusin', this.handleFocusIn, { signal });\n      this.addEventListener('focusout', this.handleFocusOut, { signal });\n      this.addEventListener('pointerdown', this.handlePointerDown, { capture: true, signal });\n      this.addEventListener('pointerup', this.handlePointerUp, { capture: true, signal });\n      this.addEventListener('pointercancel', this.handlePointerUp, { capture: true, signal });\n    }\n\n    buildPagination() {\n      if (!this.pagination || !this.embla) return;\n\n      this.pagination.replaceChildren();\n      const timeline = this.dataset.zPaginationStyle === 'timeline';\n      this.pagination.style.setProperty('--z-pagination-count', this.embla.scrollSnapList().length);\n      this.dots = this.embla.scrollSnapList().map((unusedSnap, index) => {\n        const button = document.createElement('button');\n        button.type = 'button';\n        button.className = timeline ? 'z-slideshow__timeline-item' : 'z-slideshow__dot';\n        button.setAttribute('aria-label', this.formatLabel(this.dataset.zLabelGoTo, index + 1, this.slides.length));\n        if (timeline) {\n          // zoesvision.com | 2026-08-14 | Purpose: Hide empty indicator labels while preserving timeline controls.\n          const indicatorLabel = this.slides[index]?.dataset.zIndicatorLabel?.trim();\n          if (indicatorLabel) {\n            const label = document.createElement('span');\n            label.className = 'z-slideshow__timeline-label';\n            label.textContent = indicatorLabel;\n            button.append(label);\n          }\n\n          const track = document.createElement('span');\n          track.className = 'z-slideshow__timeline-track';\n          track.setAttribute('aria-hidden', 'true');\n\n          const progress = document.createElement('span');\n          progress.className = 'z-slideshow__timeline-progress';\n          track.append(progress);\n          button.append(track);\n        }\n        button.addEventListener('click', () => {\n          const autoplay = this.embla?.plugins()?.autoplay;\n          if (index === this.embla?.selectedScrollSnap() && autoplay) {\n            this.toggleAutoplay();\n            return;\n          }\n          this.announceNextSelection = true;\n          this.embla?.scrollTo(index);\n          autoplay?.reset();\n        }, { signal: this.abortController.signal });\n        this.pagination.append(button);\n        return button;\n      });\n    }\n\n    handleSelect() {\n      this.cancelImageAdvance();\n      this.imageAutoplayRemaining = undefined;\n      this.pointerAutoplayRemaining = undefined;\n      this.syncSelectedSlide(this.announceNextSelection);\n      this.announceNextSelection = false;\n    }\n\n    handleSlidesInView() {\n      const selectedIndex = this.embla?.selectedScrollSnap();\n      const selectedSlide = this.slides[selectedIndex];\n      if (\n        selectedSlide?.dataset.zRevealPending === 'true'\n        && this.embla.slidesInView().includes(selectedIndex)\n      ) {\n        this.playRevealAnimations(selectedSlide);\n      }\n    }\n\n    handleReInit() {\n      this.slides = Array.from(this.querySelectorAll('[data-z-slide]'));\n      this.buildPagination();\n      this.syncSelectedSlide();\n    }\n\n    syncSelectedSlide(announce = false) {\n      if (!this.embla) return;\n\n      const selectedIndex = this.embla.selectedScrollSnap();\n      this.slides.forEach((slide, index) => {\n        const isActive = index === selectedIndex;\n        slide.querySelectorAll('[data-z-reveal-playing]').forEach((reveal) => {\n          reveal.removeAttribute('data-z-reveal-playing');\n        });\n        slide.dataset.zActive = String(isActive);\n        if (isActive && this.dataset.zReady === 'true') {\n          slide.dataset.zRevealPending = 'true';\n        } else {\n          delete slide.dataset.zRevealPending;\n        }\n        slide.setAttribute('aria-hidden', String(!isActive));\n        this.setSlideFocusable(slide, isActive);\n      });\n\n      this.dots?.forEach((dot, index) => {\n        if (index === selectedIndex) {\n          dot.setAttribute('aria-current', 'true');\n        } else {\n          dot.removeAttribute('aria-current');\n        }\n      });\n\n      this.updatePaginationLabels();\n      this.syncIndicatorColor(this.slides[selectedIndex]);\n\n      this.syncMediaActivation(selectedIndex);\n      this.syncVideos();\n      this.syncProgress();\n      if (announce && this.liveRegion) {\n        this.liveRegion.textContent = this.formatLabel(this.dataset.zLabelStatus, selectedIndex + 1, this.slides.length);\n      }\n    }\n\n    playRevealAnimations(slide) {\n      if (!slide) return;\n      if (this.reducedMotion.matches) {\n        delete slide.dataset.zRevealPending;\n        return;\n      }\n\n      const reveals = slide.querySelectorAll('.z-reveal:not([data-z-animation=\"none\"])');\n      if (!reveals.length) {\n        delete slide.dataset.zRevealPending;\n        return;\n      }\n\n      reveals.forEach((reveal) => {\n        reveal.removeAttribute('data-z-reveal-playing');\n      });\n      void slide.offsetWidth;\n      reveals.forEach((reveal) => {\n        reveal.setAttribute('data-z-reveal-playing', 'true');\n      });\n      delete slide.dataset.zRevealPending;\n    }\n\n    syncIndicatorColor(slide) {\n      const color = slide?.dataset.zIndicatorColor;\n      if (color) this.style.setProperty('--z-indicator-color', color);\n    }\n\n    handleAutoplayTimerSet() {\n      if (this.activeVideo || this.pointerAutoplayRemaining !== undefined || this.imageAdvanceTimer) return;\n      this.startProgress();\n    }\n\n    handleAutoplayTimerStopped() {\n      this.pauseProgress();\n    }\n\n    syncProgress() {\n      const autoplay = this.embla?.plugins()?.autoplay;\n      if (!autoplay || this.reducedMotion.matches) {\n        this.clearProgress();\n        return;\n      }\n      if (this.activeVideo) {\n        this.updateVideoProgress(this.activeVideo);\n        return;\n      }\n      if (this.imageAdvanceTimer) {\n        this.resumeProgress();\n        return;\n      }\n      if (autoplay.isPlaying()) {\n        this.startProgress();\n      } else {\n        this.pauseProgress();\n      }\n    }\n\n    startProgress() {\n      const selectedProgress = this.dots?.[this.embla?.selectedScrollSnap()]\n        ?.querySelector('.z-slideshow__timeline-progress');\n      if (!selectedProgress) return;\n\n      this.clearProgress();\n      const autoplay = this.embla?.plugins()?.autoplay;\n      const duration = autoplay?.timeUntilNext() || Number(this.dataset.zAutoplayDelay) || 6000;\n      selectedProgress.style.setProperty('--z-timeline-duration', `${duration}ms`);\n      void selectedProgress.offsetWidth;\n      selectedProgress.classList.add('z-slideshow__timeline-progress--playing');\n    }\n\n    pauseProgress() {\n      this.pagination\n        ?.querySelector('.z-slideshow__timeline-progress--playing')\n        ?.classList.add('z-slideshow__timeline-progress--paused');\n    }\n\n    resumeProgress() {\n      this.pagination\n        ?.querySelector('.z-slideshow__timeline-progress--playing')\n        ?.classList.remove('z-slideshow__timeline-progress--paused');\n    }\n\n    clearProgress() {\n      this.pagination?.querySelectorAll('.z-slideshow__timeline-progress').forEach((progress) => {\n        progress.classList.remove(\n          'z-slideshow__timeline-progress--playing',\n          'z-slideshow__timeline-progress--paused'\n        );\n        progress.style.removeProperty('--z-timeline-duration');\n        progress.style.removeProperty('transform');\n      });\n    }\n\n    updateVideoProgress(video) {\n      const selectedProgress = this.dots?.[this.embla?.selectedScrollSnap()]\n        ?.querySelector('.z-slideshow__timeline-progress');\n      if (!selectedProgress || !Number.isFinite(video.duration) || video.duration <= 0) return;\n\n      const progress = Math.min(Math.max(video.currentTime / video.duration, 0), 1);\n      selectedProgress.style.transform = `scaleX(${progress})`;\n    }\n\n    startVideoProgress(video) {\n      const update = () => {\n        if (video !== this.activeVideo) return;\n        this.updateVideoProgress(video);\n        this.videoProgressFrame = requestAnimationFrame(update);\n      };\n      update();\n    }\n\n    setSlideFocusable(slide, isActive) {\n      slide.querySelectorAll('a, button, input, select, textarea, [tabindex]').forEach((element) => {\n        if (!isActive) {\n          if (!element.hasAttribute('data-z-saved-tabindex')) {\n            element.dataset.zSavedTabindex = element.getAttribute('tabindex') || '';\n          }\n          element.setAttribute('tabindex', '-1');\n          return;\n        }\n\n        if (!element.hasAttribute('data-z-saved-tabindex')) return;\n        if (element.dataset.zSavedTabindex === '') {\n          element.removeAttribute('tabindex');\n        } else {\n          element.setAttribute('tabindex', element.dataset.zSavedTabindex);\n        }\n        delete element.dataset.zSavedTabindex;\n      });\n    }\n\n    // zoesvision.com | 2026-08-06 | Purpose: Coordinate active video completion with isolated slideshow autoplay.\n    clearVideoAdvance() {\n      clearTimeout(this.videoAdvanceTimer);\n      cancelAnimationFrame(this.videoProgressFrame);\n      this.videoAdvanceTimer = undefined;\n      this.videoProgressFrame = undefined;\n      this.videoAdvanceAbortController?.abort();\n      this.videoAdvanceAbortController = undefined;\n    }\n\n    canAutoAdvance() {\n      return Boolean(this.embla?.plugins()?.autoplay)\n        && !this.userPaused\n        && !this.editorPaused\n        && !this.reducedMotion.matches\n        && !document.hidden;\n    }\n\n    advanceFromVideo(video, immediate = false) {\n      if (video !== this.activeVideo || !this.canAutoAdvance()) return;\n      if (!immediate && this.focusPaused) {\n        this.videoAdvancePending = true;\n        return;\n      }\n\n      this.clearVideoAdvance();\n      this.videoAdvancePending = false;\n      this.embla.scrollNext();\n    }\n\n    setVideoAdvanceTimer(video, delay = Number(this.dataset.zAutoplayDelay) || 6000) {\n      clearTimeout(this.videoAdvanceTimer);\n      this.videoAdvanceTimer = setTimeout(() => this.advanceFromVideo(video), delay);\n    }\n\n    cancelImageAdvance() {\n      clearTimeout(this.imageAdvanceTimer);\n      this.imageAdvanceTimer = undefined;\n      this.imageAdvanceDeadline = undefined;\n    }\n\n    scheduleImageAdvance(delay) {\n      this.cancelImageAdvance();\n      this.imageAutoplayRemaining = undefined;\n      this.imageAdvanceDeadline = Date.now() + delay;\n      this.imageAdvanceTimer = setTimeout(() => {\n        this.cancelImageAdvance();\n        this.embla?.scrollNext();\n      }, delay);\n      this.resumeProgress();\n    }\n\n    scheduleVideoAdvance(slide, video) {\n      if (!this.canAutoAdvance()) return;\n\n      this.embla.plugins().autoplay.stop();\n      this.videoAdvanceAbortController = new AbortController();\n      const signal = this.videoAdvanceAbortController.signal;\n      const mode = slide.dataset.zVideoPlaybackMode || 'loop';\n      video.addEventListener('error', () => this.setVideoAdvanceTimer(video), { once: true, signal });\n      this.clearProgress();\n      this.startVideoProgress(video);\n      queueMicrotask(() => {\n        if (video === this.activeVideo) this.embla?.plugins()?.autoplay?.stop();\n      });\n\n      if (mode === 'once') {\n        video.addEventListener('ended', () => this.advanceFromVideo(video, true), { once: true, signal });\n        return;\n      }\n\n      let highestTime = video.currentTime;\n      video.addEventListener('timeupdate', () => {\n        if (video.currentTime + 0.5 < highestTime) {\n          this.advanceFromVideo(video, true);\n          return;\n        }\n        highestTime = Math.max(highestTime, video.currentTime);\n      }, { signal });\n    }\n\n    syncVideos() {\n      const previousActiveVideo = this.activeVideo;\n      this.clearVideoAdvance();\n      this.activeVideo = undefined;\n      this.videoAdvancePending = false;\n      const selectedIndex = this.embla?.selectedScrollSnap() || 0;\n      // zoesvision.com | 2026-08-19 | Purpose: Warm only the selected and next slideshow videos without changing playback ownership.\n      const nextIndex = selectedIndex + 1 < this.slides.length\n        ? selectedIndex + 1\n        : this.dataset.zLoop === 'true' ? 0 : selectedIndex;\n      const preloadIndexes = new Set([selectedIndex, nextIndex]);\n      this.slides.forEach((slide, index) => {\n        /* zoesvision.com | 2026-08-16 | Purpose: Keep slide-native video timing separate from nested z-media autoplay ownership. */\n        const videos = Array.from(slide.querySelectorAll('.z-slide__video'));\n        videos.forEach((video) => {\n          const isMobileVideo = video.classList.contains('z-slide__video--mobile');\n          const hasMobileVideo = Boolean(slide.querySelector('.z-slide__video--mobile'));\n          const correctBreakpointVideo = this.mobileMedia.matches ? (isMobileVideo || !hasMobileVideo) : !isMobileVideo;\n          const isActiveVideo = index === selectedIndex && correctBreakpointVideo;\n          video.preload = preloadIndexes.has(index) && correctBreakpointVideo ? 'metadata' : 'none';\n          const shouldPlay = isActiveVideo\n            && !document.hidden\n            && !this.reducedMotion.matches\n            && !this.userPaused;\n\n          if (isActiveVideo) this.activeVideo = video;\n\n          if (!shouldPlay) {\n            video.pause();\n            return;\n          }\n\n          if (video !== previousActiveVideo || video.ended) {\n            try {\n              video.currentTime = 0;\n            } catch (error) {\n              // Media metadata may not be ready yet; playback can still proceed.\n            }\n          }\n          video.muted = true;\n          video.playsInline = true;\n          const playPromise = video.play();\n          if (playPromise?.catch) {\n            playPromise.catch(() => {\n              if (!this.canAutoAdvance()) return;\n              this.setVideoAdvanceTimer(video);\n            });\n          }\n          this.scheduleVideoAdvance(slide, video);\n        });\n      });\n\n      if (!this.activeVideo && !this.imageAdvanceTimer && this.canAutoAdvance()) {\n        this.embla.plugins().autoplay.play();\n      }\n    }\n\n    syncMediaActivation(selectedIndex = this.embla?.selectedScrollSnap() || 0) {\n      /* zoesvision.com | 2026-08-16 | Purpose: Activate nested z-media only in the selected slideshow slide. */\n      // zoesvision.com | 2026-08-19 | Purpose: Prewarm nested media in the next logical slide without activating playback.\n      const nextIndex = selectedIndex + 1 < this.slides.length\n        ? selectedIndex + 1\n        : this.dataset.zLoop === 'true' ? 0 : selectedIndex;\n      this.slides.forEach((slide, index) => {\n        slide.querySelectorAll('z-media').forEach((media) => {\n          if (media.closest('z-slideshow') !== this) return;\n          media.dispatchEvent(new CustomEvent('z:media-carousel-active', {\n            detail: { active: index === selectedIndex, preload: index === selectedIndex || index === nextIndex }\n          }));\n        });\n      });\n    }\n\n    releaseMediaActivation() {\n      this.querySelectorAll('z-media').forEach((media) => {\n        if (media.closest('z-slideshow') !== this) return;\n        media.dispatchEvent(new CustomEvent('z:media-carousel-release'));\n      });\n    }\n\n    toggleAutoplay() {\n      const autoplay = this.embla?.plugins()?.autoplay;\n      if (!autoplay) return;\n\n      this.userPaused = !this.userPaused;\n      if (this.userPaused) {\n        if (!this.activeVideo) {\n          this.imageAutoplayRemaining = this.imageAdvanceDeadline\n            ? Math.max(this.imageAdvanceDeadline - Date.now(), 0)\n            : autoplay.timeUntilNext() ?? (Number(this.dataset.zAutoplayDelay) || 6000);\n          this.cancelImageAdvance();\n          this.pauseProgress();\n        }\n        autoplay.stop();\n      } else if (!this.reducedMotion.matches && !document.hidden) {\n        if (this.activeVideo) {\n          autoplay.play();\n        } else {\n          this.scheduleImageAdvance(\n            this.imageAutoplayRemaining ?? (Number(this.dataset.zAutoplayDelay) || 6000)\n          );\n        }\n      }\n      this.updatePaginationLabels();\n      this.syncVideos();\n    }\n\n    updatePaginationLabels() {\n      if (!this.embla) return;\n      const isPaused = this.userPaused || this.editorPaused || this.reducedMotion.matches || document.hidden;\n      const autoplay = this.embla?.plugins()?.autoplay;\n      const selectedIndex = this.embla.selectedScrollSnap();\n      this.dots?.forEach((dot, index) => {\n        const label = index === selectedIndex && autoplay && !this.reducedMotion.matches\n          ? (isPaused ? this.dataset.zLabelPlay : this.dataset.zLabelPause)\n          : this.formatLabel(this.dataset.zLabelGoTo, index + 1, this.slides.length);\n        dot.setAttribute('aria-label', label);\n      });\n    }\n\n    handleVisibilityChange() {\n      const autoplay = this.embla?.plugins()?.autoplay;\n      if (document.hidden) {\n        autoplay?.stop();\n      } else if (!this.userPaused && !this.editorPaused && !this.reducedMotion.matches) {\n        autoplay?.play();\n      }\n      this.updatePaginationLabels();\n      this.syncVideos();\n    }\n\n    handleMotionChange() {\n      const autoplay = this.embla?.plugins()?.autoplay;\n      if (this.reducedMotion.matches) {\n        autoplay?.stop();\n        this.slides.forEach((slide) => delete slide.dataset.zRevealPending);\n      } else if (!this.userPaused && !this.editorPaused && !document.hidden) {\n        autoplay?.play();\n      }\n      if (!this.reducedMotion.matches) {\n        this.playRevealAnimations(this.slides[this.embla?.selectedScrollSnap()]);\n      }\n      this.updatePaginationLabels();\n      this.syncVideos();\n    }\n\n    handleMediaChange() {\n      this.syncVideos();\n    }\n\n    handleFocusIn() {\n      this.focusPaused = true;\n      this.embla?.plugins()?.autoplay?.stop();\n    }\n\n    handleFocusOut(event) {\n      if (event.relatedTarget instanceof Node && this.contains(event.relatedTarget)) return;\n      this.focusPaused = false;\n      this.resumeAfterInteractionPause();\n    }\n\n    handlePointerDown(event) {\n      if (this.activeVideo || this.userPaused) return;\n      if (event.target instanceof Element && event.target.closest('[data-z-pagination]')) return;\n\n      const autoplay = this.embla?.plugins()?.autoplay;\n      if (!autoplay) return;\n      this.pointerAutoplayRemaining = this.imageAdvanceDeadline\n        ? Math.max(this.imageAdvanceDeadline - Date.now(), 0)\n        : autoplay.timeUntilNext() ?? (Number(this.dataset.zAutoplayDelay) || 6000);\n      this.cancelImageAdvance();\n      this.pauseProgress();\n    }\n\n    handlePointerUp() {\n      if (this.pointerAutoplayRemaining === undefined) return;\n\n      const remaining = this.pointerAutoplayRemaining;\n      queueMicrotask(() => {\n        if (this.pointerAutoplayRemaining === undefined) return;\n        this.pointerAutoplayRemaining = undefined;\n        if (!this.userPaused && !this.activeVideo && !document.hidden) {\n          this.embla?.plugins()?.autoplay?.stop();\n          this.scheduleImageAdvance(remaining);\n        }\n      });\n    }\n\n    resumeAfterInteractionPause() {\n      if (this.focusPaused) return;\n      if (this.videoAdvancePending) {\n        this.advanceFromVideo(this.activeVideo);\n      } else if (!this.activeVideo && this.canAutoAdvance()) {\n        this.embla?.plugins()?.autoplay?.play();\n      }\n    }\n\n    handleKeydown(event) {\n      if (event.defaultPrevented || event.altKey || event.ctrlKey || event.metaKey) return;\n      const tagName = event.target?.tagName;\n      if (['INPUT', 'SELECT', 'TEXTAREA'].includes(tagName)) return;\n\n      if (event.key === 'ArrowLeft') {\n        event.preventDefault();\n        this.announceNextSelection = true;\n        this.embla?.scrollPrev();\n        this.embla?.plugins()?.autoplay?.reset();\n      } else if (event.key === 'ArrowRight') {\n        event.preventDefault();\n        this.announceNextSelection = true;\n        this.embla?.scrollNext();\n        this.embla?.plugins()?.autoplay?.reset();\n      }\n    }\n\n    handleBlockSelect(event) {\n      const selectedElement = event.target instanceof Element ? event.target : null;\n      const slide = selectedElement?.closest('[data-z-slide]');\n      if (!slide || !this.contains(slide) || !this.embla) return;\n\n      const slideIndex = this.slides.indexOf(slide);\n      if (slideIndex < 0) return;\n\n      this.editorPaused = true;\n      this.embla.plugins()?.autoplay?.stop();\n      this.embla.scrollTo(slideIndex, true);\n      this.syncSelectedSlide();\n      this.playRevealAnimations(slide);\n      this.updatePaginationLabels();\n    }\n\n    formatLabel(template = '', index, total) {\n      return template\n        .replace('[index]', String(index))\n        .replace('[total]', String(total));\n    }\n\n    destroy() {\n      if (!this.isInitialized) return;\n\n      this.clearVideoAdvance();\n      this.cancelImageAdvance();\n      this.activeVideo = undefined;\n      this.releaseMediaActivation();\n      this.slides?.forEach((slide) => {\n        slide.querySelectorAll('.z-slide__video').forEach((video) => video.pause());\n      });\n      this.embla?.destroy();\n      cancelAnimationFrame(this.dependencyFrame);\n      cancelAnimationFrame(this.initialRevealFrame);\n      this.abortController?.abort();\n      this.pagination?.replaceChildren();\n      this.style.removeProperty('--z-indicator-color');\n      delete this.dataset.zReady;\n      this.embla = null;\n      this.isInitialized = false;\n    }\n  });\n}\n"],
  "mappings": "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",
  "names": []
}
