{
  "version": 3,
  "sources": ["/cdn/shop/t/7/assets/lithic-wallet-viewer.js?lw=white-20261026-3"],
  "sourcesContent": ["/* Lithic wallet viewer. Each section owns its controls, timers and listeners. */\r\n(() => {\r\n  'use strict';\r\n  const tag = 'lithic-wallet-viewer';\r\n  if (customElements.get(tag)) return;\r\n  let modelViewerPromise;\r\n  const orbits = {\r\n    closed: '24deg 90deg 120%', open: '10deg 82deg 120%',\r\n    front: '0deg 90deg 120%', back: '180deg 90deg 120%', detail: '-38deg 76deg 76%'\r\n  };\r\n\r\n  function ensureModelViewer(url) {\r\n    if (customElements.get('model-viewer')) return Promise.resolve();\r\n    if (!modelViewerPromise) {\r\n      modelViewerPromise = import(url).catch(error => {\r\n        if (!customElements.get('model-viewer')) {\r\n          modelViewerPromise = undefined;\r\n          throw error;\r\n        }\r\n      });\r\n    }\r\n    return modelViewerPromise;\r\n  }\r\n\r\n  class LithicWalletViewer extends HTMLElement {\r\n    connectedCallback() {\r\n      queueMicrotask(() => { if (this.isConnected) this.mount(); });\r\n    }\r\n\r\n    disconnectedCallback() { this.destroy(); }\r\n\r\n    async mount() {\r\n      if (this.controller || !this.isConnected) return;\r\n      const configNode = this.querySelector('[data-lw=\"config\"]');\r\n      if (!configNode) return;\r\n      this.controller = new AbortController();\r\n      const signal = this.controller.signal;\r\n      const generation = (this.generation || 0) + 1;\r\n      this.generation = generation;\r\n      const get = name => this.querySelector(`[data-lw=\"${name}\"]`);\r\n      this.ui = {\r\n        viewer: get('viewer'), status: get('status'), loader: get('loader'),\r\n        title: get('load-title'), message: get('load-message'), retry: get('retry'),\r\n        spin: get('spin'), spinText: get('spin-text'), number: get('view-number'),\r\n        label: get('view-label'), count: get('state-count'),\r\n        angles: [...this.querySelectorAll('[data-view]')],\r\n        states: [...this.querySelectorAll('[data-state]')]\r\n      };\r\n      const on = (element, name, callback) => element.addEventListener(name, callback, { signal });\r\n      this.setupCommerce(on);\r\n      this.setupGallery(on);\r\n      try {\r\n        this.config = JSON.parse(configNode.textContent);\r\n        if (!this.config.closed || !this.config.open || !this.config.module) throw new Error('Missing model configuration');\r\n      } catch (error) {\r\n        this.fail('The model configuration needs attention. Please try again later.');\r\n        return;\r\n      }\r\n      this.ready = false;\r\n      this.rotating = false;\r\n      this.state = this.config.initialState === 'open' ? 'open' : 'closed';\r\n      this.requestedOrbit = orbits[this.state];\r\n      on(this.ui.viewer, 'load', () => { this.finishLoading(generation); });\r\n      on(this.ui.viewer, 'error', () => this.fail('The model could not load. Check your connection, then try again.'));\r\n      on(this.ui.viewer, 'camera-change', event => {\r\n        if (event.detail?.source === 'user-interaction') this.clearAngleSelection();\r\n      });\r\n      this.ui.states.forEach(button => on(button, 'click', () => this.selectState(button.dataset.state)));\r\n      this.ui.angles.forEach(button => on(button, 'click', () => this.selectAngle(button.dataset.view)));\r\n      on(this.ui.spin, 'click', () => {\r\n        this.setRotation(!this.rotating);\r\n        if (this.rotating) this.clearAngleSelection();\r\n        this.ui.status.textContent = this.rotating ? 'Rotating \u00B7 select Pause to stop' : 'Rotation paused \u00B7 drag to explore';\r\n      });\r\n      on(this.ui.retry, 'click', () => { this.retry(); });\r\n      on(this, 'keydown', event => { if (event.key === 'Escape') this.setRotation(false); });\r\n      on(document, 'visibilitychange', () => { if (document.hidden) this.setRotation(false); });\r\n      this.startLoading();\r\n      try {\r\n        await ensureModelViewer(this.config.module);\r\n        if (signal.aborted || this.generation !== generation || !this.isConnected) return;\r\n        this.ui.viewer.setAttribute('environment-image', this.config.environment);\r\n        this.ui.states.forEach(button => { button.disabled = false; });\r\n        this.selectState(this.state, true);\r\n      } catch (error) {\r\n        if (!signal.aborted) this.fail('The 3D viewer could not start. Check your connection, then try again.');\r\n      }\r\n    }\r\n\r\n    setupGallery(on) {\r\n      const element = this.querySelector('[data-lw=\"gallery\"]');\r\n      if (!element) { this.gallery = undefined; return; }\r\n      const get = name => element.querySelector(`[data-lw=\"${name}\"]`);\r\n      this.gallery = {\r\n        element, index: 0, features: [...element.querySelectorAll('[data-gallery-open]')],\r\n        thumbnails: [...element.querySelectorAll('[data-gallery-index]')],\r\n        count: get('photo-count'), dialog: get('lightbox'), image: get('lightbox-image'),\r\n        modalCount: get('lightbox-count'), close: get('lightbox-close'),\r\n        previous: get('photo-prev'), next: get('photo-next'), returnFocus: undefined\r\n      };\r\n      const gallery = this.gallery;\r\n      if (!gallery.features.length) return;\r\n      gallery.thumbnails.forEach(button => on(button, 'click', () => this.selectPhoto(Number(button.dataset.galleryIndex))));\r\n      gallery.features.forEach(button => on(button, 'click', () => this.openPhotos(Number(button.dataset.galleryOpen))));\r\n      on(gallery.close, 'click', () => this.closePhotos());\r\n      on(gallery.previous, 'click', () => this.selectPhoto(gallery.index - 1));\r\n      on(gallery.next, 'click', () => this.selectPhoto(gallery.index + 1));\r\n      on(gallery.dialog, 'cancel', event => { event.preventDefault(); this.closePhotos(); });\r\n      on(gallery.dialog, 'close', () => this.restorePhotoFocus());\r\n      on(gallery.dialog, 'click', event => {\r\n        if (event.target !== gallery.dialog) return;\r\n        const rect = gallery.dialog.getBoundingClientRect();\r\n        if (event.clientX < rect.left || event.clientX > rect.right || event.clientY < rect.top || event.clientY > rect.bottom) this.closePhotos();\r\n      });\r\n      on(gallery.dialog, 'keydown', event => {\r\n        if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\r\n          event.preventDefault(); this.selectPhoto(gallery.index + (event.key === 'ArrowRight' ? 1 : -1));\r\n        } else if (event.key === 'Escape') {\r\n          event.preventDefault(); this.closePhotos();\r\n        } else if (event.key === 'Tab') {\r\n          const controls = [gallery.close, gallery.previous, gallery.next].filter(control => !control.hidden);\r\n          const first = controls[0], last = controls[controls.length - 1];\r\n          if (event.shiftKey && document.activeElement === first) { event.preventDefault(); last.focus(); }\r\n          else if (!event.shiftKey && document.activeElement === last) { event.preventDefault(); first.focus(); }\r\n        }\r\n      });\r\n      gallery.previous.hidden = gallery.features.length < 2;\r\n      gallery.next.hidden = gallery.features.length < 2;\r\n      this.setupPhotoSwipe(on);\r\n      this.selectPhoto(0);\r\n    }\r\n\r\n    setupPhotoSwipe(on) {\r\n      const gallery = this.gallery;\r\n      const surface = gallery.element.querySelector('.lw-lightbox-image-wrap');\r\n      if (!surface || gallery.features.length < 2) return;\r\n      const pointers = new Set();\r\n      let gesture;\r\n      gallery.cancelSwipe = () => { pointers.clear(); gesture = undefined; };\r\n      gallery.image.draggable = false;\r\n      on(gallery.image, 'dragstart', event => event.preventDefault());\r\n      on(surface, 'pointerdown', event => {\r\n        if (!gallery.dialog.open || (event.pointerType === 'mouse' && event.button !== 0)) return;\r\n        pointers.add(event.pointerId);\r\n        if (pointers.size !== 1) { gesture = undefined; return; }\r\n        gesture = { id: event.pointerId, x: event.clientX, y: event.clientY, vertical: false };\r\n        if (event.pointerType !== 'touch') {\r\n          try { surface.setPointerCapture(event.pointerId); } catch (_) { /* The pointer may have ended. */ }\r\n        }\r\n      });\r\n      on(surface, 'pointermove', event => {\r\n        if (!gesture || gesture.id !== event.pointerId) return;\r\n        const x = Math.abs(event.clientX - gesture.x), y = Math.abs(event.clientY - gesture.y);\r\n        if (y > 10 && y > x) gesture.vertical = true;\r\n      });\r\n      on(surface, 'pointerup', event => {\r\n        const swipe = gesture;\r\n        pointers.delete(event.pointerId);\r\n        if (!swipe || swipe.id !== event.pointerId) return;\r\n        gesture = undefined;\r\n        if (!gallery.dialog.open || pointers.size || swipe.vertical) return;\r\n        const x = event.clientX - swipe.x, y = event.clientY - swipe.y;\r\n        if (Math.abs(x) >= 45 && Math.abs(x) > Math.abs(y) * 1.3) {\r\n          this.selectPhoto(gallery.index + (x < 0 ? 1 : -1));\r\n        }\r\n      });\r\n      const cancelPointer = event => {\r\n        pointers.delete(event.pointerId);\r\n        if (gesture?.id === event.pointerId) gesture = undefined;\r\n      };\r\n      on(surface, 'pointercancel', cancelPointer);\r\n      on(surface, 'lostpointercapture', cancelPointer);\r\n      on(gallery.dialog, 'close', gallery.cancelSwipe);\r\n      on(window, 'blur', gallery.cancelSwipe);\r\n    }\r\n\r\n    selectPhoto(index) {\r\n      const gallery = this.gallery;\r\n      if (!gallery?.features.length) return;\r\n      gallery.index = ((index % gallery.features.length) + gallery.features.length) % gallery.features.length;\r\n      gallery.thumbnails.forEach((thumbnail, current) => thumbnail.setAttribute('aria-pressed', String(current === gallery.index)));\r\n      const count = `${gallery.index + 1} / ${gallery.features.length}`;\r\n      if (gallery.count) gallery.count.textContent = count;\r\n      gallery.modalCount.textContent = count;\r\n      if (gallery.dialog.open) this.updatePhotoImage();\r\n    }\r\n\r\n    updatePhotoImage() {\r\n      const gallery = this.gallery;\r\n      const button = gallery?.features[gallery.index];\r\n      if (button?.dataset.photoSrc) {\r\n        gallery.image.src = button.dataset.photoSrc;\r\n        if (button.dataset.photoSrcset) gallery.image.srcset = button.dataset.photoSrcset;\r\n        else gallery.image.removeAttribute('srcset');\r\n        gallery.image.alt = button.dataset.photoAlt || 'iPod Wallet';\r\n        gallery.image.width = Number(button.dataset.photoWidth) || 1600;\r\n        gallery.image.height = Number(button.dataset.photoHeight) || 1200;\r\n        gallery.image.sizes = '94vw';\r\n        return;\r\n      }\r\n      const source = button?.querySelector('img');\r\n      if (!source) return;\r\n      ['src', 'srcset', 'width', 'height', 'alt'].forEach(attribute => {\r\n        if (source.hasAttribute(attribute)) gallery.image.setAttribute(attribute, source.getAttribute(attribute));\r\n        else gallery.image.removeAttribute(attribute);\r\n      });\r\n      gallery.image.sizes = '94vw';\r\n    }\r\n\r\n    openPhotos(index) {\r\n      const gallery = this.gallery;\r\n      if (!gallery) return;\r\n      gallery.cancelSwipe?.();\r\n      gallery.returnFocus = document.activeElement;\r\n      this.setRotation(false);\r\n      this.selectPhoto(index);\r\n      this.updatePhotoImage();\r\n      if (!gallery.dialog.open) {\r\n        if (typeof gallery.dialog.showModal === 'function') gallery.dialog.showModal();\r\n        else { gallery.dialog.setAttribute('open', ''); gallery.dialog.setAttribute('aria-modal', 'true'); }\r\n      }\r\n      gallery.close.focus({ preventScroll: true });\r\n    }\r\n\r\n    closePhotos(restore = true) {\r\n      const gallery = this.gallery;\r\n      if (!gallery) return;\r\n      gallery.cancelSwipe?.();\r\n      if (!restore) gallery.returnFocus = undefined;\r\n      if (typeof gallery.dialog.close === 'function') gallery.dialog.close();\r\n      else { gallery.dialog.removeAttribute('open'); this.restorePhotoFocus(); }\r\n    }\r\n\r\n    restorePhotoFocus() {\r\n      const gallery = this.gallery;\r\n      const original = gallery?.returnFocus;\r\n      const target = original?.isConnected && !original.closest('[hidden]') ? original : gallery?.features[gallery.index];\r\n      if (gallery) gallery.returnFocus = undefined;\r\n      if (this.isConnected && target?.isConnected) target.focus({ preventScroll: true });\r\n    }\r\n\r\n    setupCommerce(on) {\r\n      const form = this.querySelector('[data-lw=\"product-form\"]');\r\n      this.commerceBusy = false;\r\n      if (!form) { this.purchase = undefined; return; }\r\n      this.purchase = {\r\n        form, variant: form.querySelector('[data-lw=\"variant\"]'),\r\n        quantity: form.querySelector('[data-lw=\"quantity\"]'),\r\n        add: form.querySelector('[data-lw=\"add-to-cart\"]'),\r\n        buy: form.querySelector('[data-lw=\"buy-now\"]'),\r\n        message: form.querySelector('[data-lw=\"commerce-message\"]'),\r\n        price: this.querySelector('[data-lw=\"price\"]')\r\n      };\r\n      this.updatePurchase();\r\n      on(this.purchase.variant, 'change', () => {\r\n        this.purchase.message.textContent = '';\r\n        this.updatePurchase();\r\n      });\r\n      on(form, 'submit', event => {\r\n        if (this.commerceBusy || !this.purchaseAvailable()) {\r\n          event.preventDefault();\r\n          return;\r\n        }\r\n        if (event.submitter === this.purchase.buy && this.config?.cartAddUrl && this.config?.checkoutUrl) {\r\n          event.preventDefault();\r\n          this.buyNow();\r\n        }\r\n        // Add to cart keeps Shopify's native product-form submission.\r\n      });\r\n    }\r\n\r\n    selectedPurchaseOption() {\r\n      const variant = this.purchase?.variant;\r\n      return variant?.tagName === 'SELECT' ? variant.selectedOptions[0] : variant;\r\n    }\r\n\r\n    purchaseAvailable() {\r\n      return Boolean(this.purchase?.variant.value && this.selectedPurchaseOption()?.dataset.available === 'true');\r\n    }\r\n\r\n    updatePurchase() {\r\n      if (!this.purchase) return;\r\n      const option = this.selectedPurchaseOption();\r\n      const available = this.purchaseAvailable();\r\n      this.purchase.add.disabled = this.commerceBusy || !available;\r\n      this.purchase.buy.disabled = this.commerceBusy || !available;\r\n      this.purchase.add.textContent = available ? 'Add to cart' : 'Sold out';\r\n      this.purchase.buy.textContent = this.commerceBusy ? 'Opening checkout\u2026' : 'Buy now';\r\n      this.purchase.variant.disabled = this.commerceBusy;\r\n      this.purchase.quantity.disabled = this.commerceBusy;\r\n      if (option?.dataset.price && this.purchase.price) this.purchase.price.textContent = option.dataset.price;\r\n      if (option?.dataset.min) {\r\n        const quantity = this.purchase.quantity;\r\n        quantity.min = option.dataset.min;\r\n        quantity.step = option.dataset.step || '1';\r\n        if (option.dataset.max) quantity.max = option.dataset.max;\r\n        else quantity.removeAttribute('max');\r\n        if (!quantity.validity.valid) quantity.value = quantity.min;\r\n      }\r\n    }\r\n\r\n    async buyNow() {\r\n      const purchase = this.purchase;\r\n      if (!purchase || this.commerceBusy || !this.purchaseAvailable() || !purchase.form.reportValidity()) return;\r\n      const payload = new FormData(purchase.form);\r\n      const generation = this.generation;\r\n      const signal = this.controller.signal;\r\n      this.commerceBusy = true;\r\n      this.updatePurchase();\r\n      purchase.form.setAttribute('aria-busy', 'true');\r\n      purchase.message.textContent = 'Opening secure checkout\u2026';\r\n      try {\r\n        const response = await fetch(this.config.cartAddUrl, {\r\n          method: 'POST', headers: { Accept: 'application/json' },\r\n          credentials: 'same-origin', body: payload, signal\r\n        });\r\n        const result = await response.json().catch(() => ({}));\r\n        if (!response.ok) {\r\n          const message = typeof result.description === 'string' ? result.description :\r\n            typeof result.message === 'string' ? result.message : 'This item could not be added. Please try again.';\r\n          throw new Error(message);\r\n        }\r\n        if (!signal.aborted && this.isConnected && this.generation === generation) window.location.assign(this.config.checkoutUrl);\r\n      } catch (error) {\r\n        if (!signal.aborted && this.isConnected && this.generation === generation) {\r\n          purchase.message.textContent = error.message || 'Checkout could not open. Please try again or use Add to cart.';\r\n        }\r\n      } finally {\r\n        if (!signal.aborted && this.isConnected && this.generation === generation) {\r\n          this.commerceBusy = false;\r\n          purchase.form.removeAttribute('aria-busy');\r\n          this.updatePurchase();\r\n        }\r\n      }\r\n    }\r\n\r\n    clearAngleSelection() {\r\n      this.ui.angles.forEach(button => button.setAttribute('aria-pressed', 'false'));\r\n    }\r\n\r\n    setRotation(value) {\r\n      if (!this.ui) return;\r\n      this.rotating = Boolean(value && this.ready && !document.hidden);\r\n      this.ui.viewer.setAttribute('auto-rotate-delay', '0');\r\n      this.ui.viewer.setAttribute('rotation-per-second', '125%');\r\n      this.ui.viewer.toggleAttribute('auto-rotate', this.rotating);\r\n      this.ui.spin.setAttribute('aria-pressed', String(this.rotating));\r\n      this.ui.spin.setAttribute('aria-label', this.rotating ? 'Stop automatic rotation' : 'Start automatic rotation');\r\n      this.ui.spinText.textContent = this.rotating ? 'Pause' : 'Rotate';\r\n    }\r\n\r\n    resetCamera(orbit) {\r\n      const viewer = this.ui.viewer;\r\n      if (typeof viewer.resetTurntableRotation === 'function') viewer.resetTurntableRotation();\r\n      viewer.cameraOrbit = orbit;\r\n      viewer.setAttribute('camera-target', 'auto auto auto');\r\n    }\r\n\r\n    selectAngle(name) {\r\n      if (!this.ready || !['front', 'back', 'detail'].includes(name)) return;\r\n      this.setRotation(false);\r\n      this.requestedOrbit = orbits[name];\r\n      this.resetCamera(this.requestedOrbit);\r\n      this.ui.angles.forEach(button => button.setAttribute('aria-pressed', String(button.dataset.view === name)));\r\n      this.ui.status.textContent = `${name[0].toUpperCase()}${name.slice(1)} view \u00B7 drag to explore`;\r\n    }\r\n\r\n    selectState(next, force = false) {\r\n      if (!['closed', 'open'].includes(next) || (!force && next === this.state && this.ready)) return;\r\n      this.state = next;\r\n      this.setRotation(false);\r\n      this.ui.states.forEach(button => button.setAttribute('aria-pressed', String(button.dataset.state === next)));\r\n      this.clearAngleSelection();\r\n      this.ui.number.textContent = next === 'closed' ? '01' : '02';\r\n      this.ui.label.textContent = next === 'closed' ? 'CLOSED WALLET' : 'OPEN WALLET';\r\n      this.ui.count.textContent = next === 'closed' ? '01 / 02' : '02 / 02';\r\n      this.requestedOrbit = orbits[next];\r\n      this.resetCamera(this.requestedOrbit);\r\n      this.startLoading();\r\n      const unchanged = this.ui.viewer.getAttribute('src') === this.config[next] && this.ui.viewer.loaded;\r\n      this.ui.viewer.setAttribute('src', this.config[next]);\r\n      if (unchanged) queueMicrotask(() => { this.finishLoading(this.generation); });\r\n    }\r\n\r\n    startLoading() {\r\n      clearTimeout(this.loadTimer);\r\n      this.ready = false;\r\n      this.ui.loader.hidden = false;\r\n      this.ui.loader.classList.remove('lw-failed');\r\n      this.ui.title.textContent = 'Loading your view';\r\n      this.ui.message.textContent = 'A little space to explore the details.';\r\n      this.ui.retry.hidden = true;\r\n      this.ui.status.textContent = `Loading the ${this.state} wallet\u2026`;\r\n      this.ui.angles.concat(this.ui.spin).forEach(button => { button.disabled = true; });\r\n      this.loadTimer = setTimeout(() => this.fail('Loading is taking longer than expected. Check your connection, then try again.'), 40000);\r\n    }\r\n\r\n    async finishLoading(generation) {\r\n      const viewer = this.ui?.viewer;\r\n      const expectedSource = this.config?.[this.state];\r\n      if (!viewer || !viewer.loaded || viewer.getAttribute('src') !== expectedSource) return;\r\n      clearTimeout(this.loadTimer);\r\n      this.resetCamera(this.requestedOrbit);\r\n      await viewer.updateComplete;\r\n      if (!this.isConnected || this.generation !== generation || this.ui?.viewer !== viewer || viewer.getAttribute('src') !== expectedSource) return;\r\n      if (typeof viewer.jumpCameraToGoal === 'function') viewer.jumpCameraToGoal();\r\n      // The wallet GLBs share the brushed-steel front-face material at index 2.\r\n      const materials = viewer.model?.materials;\r\n      if (materials?.length === 10 && materials[2]?.pbrMetallicRoughness.baseColorTexture?.texture) {\r\n        const face = materials[2].pbrMetallicRoughness;\r\n        face.setRoughnessFactor(0.42);\r\n        face.setMetallicFactor(1);\r\n      }\r\n      this.ready = true;\r\n      this.setRotation(!window.matchMedia('(prefers-reduced-motion: reduce)').matches);\r\n      this.ui.loader.hidden = true;\r\n      this.ui.loader.classList.remove('lw-failed');\r\n      this.ui.angles.concat(this.ui.spin).forEach(button => { button.disabled = false; });\r\n      this.ui.status.textContent = this.rotating ? 'Rotating \u00B7 select Pause to stop' : `Ready to explore \u00B7 ${this.state === 'closed' ? 'closed wallet' : 'open wallet'}`;\r\n    }\r\n\r\n    fail(message) {\r\n      if (!this.ui || !this.isConnected) return;\r\n      clearTimeout(this.loadTimer);\r\n      this.setRotation(false);\r\n      this.ready = false;\r\n      this.ui.loader.hidden = false;\r\n      this.ui.loader.classList.add('lw-failed');\r\n      this.ui.title.textContent = 'The 3D viewer couldn\u2019t start';\r\n      this.ui.message.textContent = message;\r\n      this.ui.retry.hidden = false;\r\n      this.ui.status.textContent = '3D preview unavailable';\r\n      this.ui.angles.concat(this.ui.spin).forEach(button => { button.disabled = true; });\r\n    }\r\n\r\n    async retry() {\r\n      if (!this.config) return;\r\n      this.startLoading();\r\n      const generation = this.generation;\r\n      try {\r\n        await ensureModelViewer(this.config.module);\r\n        if (!this.isConnected || this.generation !== generation) return;\r\n        this.ui.states.forEach(button => { button.disabled = false; });\r\n        this.ui.viewer.setAttribute('environment-image', this.config.environment);\r\n        this.ui.viewer.removeAttribute('src');\r\n        this.selectState(this.state, true);\r\n      } catch (error) {\r\n        if (this.isConnected && this.generation === generation) this.fail('The 3D viewer could not start. Please try again later.');\r\n      }\r\n    }\r\n\r\n    destroy() {\r\n      this.generation = (this.generation || 0) + 1;\r\n      clearTimeout(this.loadTimer);\r\n      this.closePhotos(false);\r\n      this.gallery = undefined;\r\n      this.controller?.abort();\r\n      this.controller = undefined;\r\n      if (this.purchase) {\r\n        this.commerceBusy = false;\r\n        this.purchase.form.removeAttribute('aria-busy');\r\n        this.updatePurchase();\r\n        this.purchase = undefined;\r\n      }\r\n      if (this.ui) {\r\n        this.setRotation(false);\r\n        this.ui.viewer.removeAttribute('src');\r\n        this.ui.viewer.removeAttribute('environment-image');\r\n        this.ui = undefined;\r\n      }\r\n      this.ready = false;\r\n    }\r\n  }\r\n\r\n  customElements.define(tag, LithicWalletViewer);\r\n  const inSection = target => {\r\n    if (!(target instanceof Element)) return [];\r\n    const instances = [...target.querySelectorAll(tag)];\r\n    if (target.matches(tag)) instances.unshift(target);\r\n    return instances;\r\n  };\r\n  document.addEventListener('shopify:section:load', event => inSection(event.target).forEach(instance => instance.mount()));\r\n  document.addEventListener('shopify:section:unload', event => inSection(event.target).forEach(instance => instance.destroy()));\r\n})();\r\n"],
  "mappings": "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",
  "names": []
}
