{
  "version": 3,
  "sources": ["/cdn/shop/t/28/assets/theia-popups.js?theia=20260921-close-touch-target-1"],
  "sourcesContent": ["(() => {\n  class TheiaPopups extends HTMLElement {\n    static shouldAutoOpen({ enabled, submitted, dismissed, designMode }) {\n      if (submitted) return true;\n      return Boolean(enabled && !dismissed && !designMode);\n    }\n\n    static delayMilliseconds(value) {\n      const seconds = Number.parseFloat(value);\n      return Math.max(0, Number.isFinite(seconds) ? seconds : 0) * 1000;\n    }\n\n    connectedCallback() {\n      if (this.initialized) return;\n      this.initialized = true;\n      this.activePopup = null;\n      this.previousFocus = null;\n      this.closeTimer = null;\n      this.onClick = this.handleClick.bind(this);\n      this.onKeydown = this.handleKeydown.bind(this);\n      document.addEventListener('click', this.onClick);\n      document.addEventListener('keydown', this.onKeydown);\n\n      const promotion = this.querySelector('[data-theia-popup=\"promotion\"]');\n      const submitted = promotion?.dataset.promotionSubmitted === 'true';\n      const dismissed = this.promotionDismissed();\n      const designMode = this.dataset.designMode === 'true';\n      if (promotion && TheiaPopups.shouldAutoOpen({\n        enabled: this.dataset.promotionEnabled === 'true',\n        submitted,\n        dismissed,\n        designMode,\n      })) {\n        const delay = submitted ? 0 : TheiaPopups.delayMilliseconds(this.dataset.promotionDelay);\n        this.promotionTimer = window.setTimeout(() => {\n          if (!this.activePopup) this.open(promotion);\n        }, delay);\n      }\n    }\n\n    disconnectedCallback() {\n      document.removeEventListener('click', this.onClick);\n      document.removeEventListener('keydown', this.onKeydown);\n      window.clearTimeout(this.promotionTimer);\n      window.clearTimeout(this.closeTimer);\n    }\n\n    promotionDismissed() {\n      try {\n        const dismissedAt = Number.parseInt(window.localStorage.getItem(this.dataset.promotionStorageKey), 10);\n        const duration = Number.parseInt(this.dataset.promotionDismissDays, 10) * 86400000;\n        return Number.isFinite(dismissedAt) && Date.now() - dismissedAt < duration;\n      } catch (error) {\n        return false;\n      }\n    }\n\n    rememberPromotion() {\n      if (this.dataset.designMode === 'true') return;\n      try {\n        window.localStorage.setItem(this.dataset.promotionStorageKey, String(Date.now()));\n      } catch (error) {\n        return;\n      }\n    }\n\n    focusableElements(popup) {\n      return [...popup.querySelectorAll('button:not([disabled]), input:not([disabled]), select:not([disabled]), a[href]')]\n        .filter((element) => !element.hidden && element.getAttribute('aria-hidden') !== 'true');\n    }\n\n    open(popup) {\n      if (!popup) return;\n      if (this.activePopup && this.activePopup !== popup) this.finishClose(this.activePopup);\n      this.previousFocus = document.activeElement;\n      this.activePopup = popup;\n      popup.hidden = false;\n      window.requestAnimationFrame(() => {\n        popup.classList.add('is-open');\n        this.focusableElements(popup)[0]?.focus();\n      });\n      document.documentElement.classList.add('theia-popup-open');\n      document.dispatchEvent(new CustomEvent('theia:page-scroll-lock', { detail: { locked: true, source: 'popups' } }));\n    }\n\n    close(popup, remember = false) {\n      if (!popup || popup.hidden) return;\n      if (remember && popup.dataset.theiaPopup === 'promotion') this.rememberPromotion();\n      popup.classList.remove('is-open');\n      window.clearTimeout(this.closeTimer);\n      const duration = window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 1 : 480;\n      this.closeTimer = window.setTimeout(() => this.finishClose(popup), duration);\n    }\n\n    finishClose(popup) {\n      popup.hidden = true;\n      if (this.activePopup === popup) this.activePopup = null;\n      document.documentElement.classList.remove('theia-popup-open');\n      document.dispatchEvent(new CustomEvent('theia:page-scroll-lock', { detail: { locked: false, source: 'popups' } }));\n      if (this.previousFocus?.isConnected) this.previousFocus.focus();\n      this.previousFocus = null;\n    }\n\n    async copyCode(button) {\n      const code = button.dataset.code || '';\n      if (!code) return;\n      try {\n        await navigator.clipboard.writeText(code);\n        const label = button.querySelector('.theia-section-button__label') || button;\n        label.textContent = button.dataset.copiedLabel;\n      } catch (error) {\n        return;\n      }\n    }\n\n    handleClick(event) {\n      const previewTrigger = event.target.closest('[data-theia-popup-preview]');\n      if (previewTrigger) {\n        const popupName = previewTrigger.dataset.theiaPopupPreview;\n        if (popupName === 'promotion' || popupName === 'localization') {\n          event.preventDefault();\n          this.open(this.querySelector(`[data-theia-popup=\"${popupName}\"]`));\n        }\n        return;\n      }\n\n      const localizationTrigger = event.target.closest('[data-theia-localization-open]');\n      if (localizationTrigger) {\n        event.preventDefault();\n        this.open(this.querySelector('[data-theia-popup=\"localization\"]'));\n        return;\n      }\n\n      const copyButton = event.target.closest('[data-theia-copy-code]');\n      if (copyButton) {\n        this.copyCode(copyButton);\n        return;\n      }\n\n      const closeControl = event.target.closest('[data-theia-popup-close]');\n      if (closeControl) this.close(closeControl.closest('[data-theia-popup]'), true);\n    }\n\n    handleKeydown(event) {\n      if (!this.activePopup) return;\n      if (event.key === 'Escape') {\n        event.preventDefault();\n        this.close(this.activePopup, true);\n        return;\n      }\n      if (event.key !== 'Tab') return;\n      const elements = this.focusableElements(this.activePopup);\n      if (!elements.length) return;\n      const first = elements[0];\n      const last = elements[elements.length - 1];\n      if (event.shiftKey && document.activeElement === first) {\n        event.preventDefault();\n        last.focus();\n      } else if (!event.shiftKey && document.activeElement === last) {\n        event.preventDefault();\n        first.focus();\n      }\n    }\n  }\n\n  window.TheiaPopups = TheiaPopups;\n  if (!customElements.get('theia-popups')) customElements.define('theia-popups', TheiaPopups);\n})();\n\nvar TheiaPopups = window.TheiaPopups;\n"],
  "mappings": "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",
  "names": ["TheiaPopups"]
}
