{
  "version": 3,
  "sources": ["/cdn/shop/t/46/assets/matchy-product.js?matchy_v=20260521"],
  "sourcesContent": ["if (!customElements.get('matchy-sticky-atc')) {\n  customElements.define(\n    'matchy-sticky-atc',\n    class MatchyStickyAtc extends HTMLElement {\n      connectedCallback() {\n        this.onScroll = this.updatePosition.bind(this);\n        this.onResize = this.updatePosition.bind(this);\n        this.onVariantChange = this.handleVariantChange.bind(this);\n\n        window.addEventListener('scroll', this.onScroll, { passive: true });\n        window.addEventListener('resize', this.onResize);\n        this.unsubscribe =\n          typeof subscribe === 'function' && typeof PUB_SUB_EVENTS !== 'undefined'\n            ? subscribe(PUB_SUB_EVENTS.variantChange, this.onVariantChange)\n            : null;\n\n        this.syncMainButtonText();\n        this.syncSubmitState();\n        window.requestAnimationFrame(() => this.updatePosition());\n      }\n\n      disconnectedCallback() {\n        window.removeEventListener('scroll', this.onScroll);\n        window.removeEventListener('resize', this.onResize);\n        this.unsubscribe?.();\n      }\n\n      get mainButton() {\n        return document.getElementById(this.dataset.submitButtonId);\n      }\n\n      get stickyButton() {\n        return this.querySelector('.matchy-sticky-atc__button');\n      }\n\n      handleVariantChange(payload) {\n        if (payload?.data?.sectionId !== this.dataset.sectionId) return;\n\n        const updatedStickyBar = payload.data.html.getElementById(this.id);\n        if (updatedStickyBar) {\n          this.innerHTML = updatedStickyBar.innerHTML;\n        }\n\n        this.syncMainButtonText();\n        this.syncSubmitState();\n        this.updatePosition();\n      }\n\n      syncMainButtonText() {\n        const mainButtonText = this.mainButton?.querySelector('.matchy-atc-text');\n        if (!mainButtonText || this.mainButton?.hasAttribute('disabled')) return;\n\n        mainButtonText.textContent = this.dataset.buttonLabel || 'ADD TO CART';\n      }\n\n      syncSubmitState() {\n        if (!this.stickyButton || !this.mainButton) return;\n\n        const isDisabled = this.mainButton.hasAttribute('disabled') || this.mainButton.getAttribute('aria-disabled') === 'true';\n        this.stickyButton.toggleAttribute('disabled', isDisabled);\n\n        const mainText = this.mainButton.querySelector('.matchy-atc-text')?.textContent?.trim();\n        const stickyText = this.stickyButton.querySelector('span:last-child');\n        if (mainText && stickyText) stickyText.textContent = mainText;\n      }\n\n      updatePosition() {\n        if (!window.matchMedia('(max-width: 749px)').matches) {\n          this.classList.remove('is-top', 'is-hidden');\n          return;\n        }\n\n        const mainButton = this.mainButton;\n        if (!mainButton) return;\n\n        const buttonBounds = mainButton.getBoundingClientRect();\n        const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n        const isMainButtonVisible = buttonBounds.top < viewportHeight && buttonBounds.bottom > 0;\n        const hasScrolledPastMainButton = buttonBounds.bottom <= 0;\n\n        this.classList.toggle('is-hidden', isMainButtonVisible);\n        this.classList.toggle('is-top', hasScrolledPastMainButton);\n        document.documentElement.style.setProperty('--matchy-sticky-atc-height', `${this.offsetHeight}px`);\n      }\n    }\n  );\n}\n\n(() => {\n  const productForm = document.querySelector('form[action*=\"/cart/add\"]');\n  const variantInput = productForm?.querySelector('input.product-variant-id[name=\"id\"]');\n  const submitButton = productForm?.querySelector('[name=\"add\"]');\n  const submitText = submitButton?.querySelector('.matchy-atc-text');\n\n  if (!productForm || !variantInput || !submitButton) return;\n  if (!submitButton.hasAttribute('disabled')) return;\n\n  fetch(`${window.location.pathname}.js`, { headers: { Accept: 'application/json' } })\n    .then((response) => (response.ok ? response.json() : null))\n    .then((product) => {\n      const variant = product?.variants?.find((item) => String(item.id) === String(variantInput.value));\n      if (!variant?.available) return;\n\n      variantInput.disabled = false;\n      submitButton.disabled = false;\n      submitButton.removeAttribute('aria-disabled');\n      submitText && (submitText.textContent = submitButton.closest('product-info')?.querySelector('matchy-sticky-atc')?.dataset.buttonLabel || 'ADD TO CART');\n\n      document.querySelectorAll('matchy-sticky-atc').forEach((stickyAtc) => {\n        const stickyButton = stickyAtc.querySelector('.matchy-sticky-atc__button');\n        const stickyText = stickyButton?.querySelector('span:last-child');\n        stickyButton && (stickyButton.disabled = false);\n        stickyText && (stickyText.textContent = stickyAtc.dataset.buttonLabel || 'ADD TO CART');\n      });\n    })\n    .catch(() => {});\n})();\n\n(() => {\n  if (window.__matchyRelatedNavigationReady) return;\n  window.__matchyRelatedNavigationReady = true;\n  const relatedHashPattern = /^#MatchyRelatedProducts-/;\n\n  const clearRelatedHash = () => {\n    if (!relatedHashPattern.test(window.location.hash)) return false;\n\n    window.history.replaceState(null, '', `${window.location.pathname}${window.location.search}`);\n    return true;\n  };\n\n  const resetLegacyRelatedHash = () => {\n    if (!clearRelatedHash()) return;\n\n    window.requestAnimationFrame(() => {\n      window.scrollTo({ top: 0, left: 0, behavior: 'auto' });\n    });\n  };\n\n  if (document.readyState === 'complete') {\n    resetLegacyRelatedHash();\n  } else {\n    window.addEventListener('load', resetLegacyRelatedHash, { once: true });\n  }\n  window.addEventListener('pageshow', resetLegacyRelatedHash);\n\n  document.addEventListener('click', (event) => {\n    const link = event.target.closest('.matchy-related-jump');\n    if (!link) return;\n\n    const target = document.querySelector(link.hash);\n    if (!target) return;\n\n    event.preventDefault();\n    clearRelatedHash();\n    target.scrollIntoView({\n      behavior: window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 'auto' : 'smooth',\n      block: 'start',\n    });\n  });\n})();\n\n(() => {\n  const storageKey = 'matchy_recently_viewed_products';\n  const recentDisplayLimit = 8;\n  const recentStorageLimit = recentDisplayLimit + 1;\n\n  const readRecent = () => {\n    try {\n      return JSON.parse(window.localStorage.getItem(storageKey)) || [];\n    } catch (error) {\n      return [];\n    }\n  };\n\n  const escapeHtml = (value) =>\n    String(value || '').replace(/[&<>\"']/g, (char) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#039;' }[char]));\n\n  const getCurrentProduct = (section) => ({\n    handle: section.dataset.currentHandle,\n    title: section.dataset.currentTitle,\n    url: section.dataset.currentUrl,\n    image: section.dataset.currentImage,\n    price: section.dataset.currentPrice,\n  });\n\n  const writeRecent = (section) => {\n    const currentProduct = getCurrentProduct(section);\n    if (!currentProduct.handle) return;\n\n    const nextItems = [currentProduct, ...readRecent().filter((item) => item.handle !== currentProduct.handle)]\n      .filter((item) => item && item.handle)\n      .slice(0, recentStorageLimit);\n    window.localStorage.setItem(storageKey, JSON.stringify(nextItems));\n  };\n\n  const renderRecent = (section) => {\n    const currentProduct = getCurrentProduct(section);\n    const list = section.querySelector('[data-matchy-recently-viewed]');\n    const empty = section.querySelector('[data-matchy-recently-empty]');\n    if (!list) return;\n\n    const items = readRecent()\n      .filter((item) => item.handle && item.handle !== currentProduct.handle)\n      .slice(0, recentDisplayLimit);\n    const signature = items.map((item) => item.handle).join('|');\n    if (list.dataset.renderedHandles === signature) return;\n    list.dataset.renderedHandles = signature;\n    list.innerHTML = items\n      .map(\n        (item) => `\n          <li class=\"matchy-recently-viewed__item\">\n            <a href=\"${escapeHtml(item.url)}\" class=\"matchy-recently-viewed__card\">\n              ${item.image ? `<img src=\"${escapeHtml(item.image)}\" alt=\"${escapeHtml(item.title)} press-on nails\" loading=\"lazy\">` : ''}\n              <span>${escapeHtml(item.title)}</span>\n              <small>${escapeHtml(item.price)}</small>\n            </a>\n          </li>\n        `\n      )\n      .join('');\n    if (empty) empty.hidden = items.length > 0;\n  };\n\n  const showRelatedPanel = (section, target) => {\n    section.querySelectorAll('[data-matchy-related-tab]').forEach((button) => {\n      const isActive = button.dataset.matchyRelatedTab === target;\n      button.classList.toggle('is-active', isActive);\n      button.setAttribute('aria-selected', String(isActive));\n    });\n    section.querySelectorAll('[data-matchy-related-panel]').forEach((panel) => {\n      const isActive = panel.dataset.matchyRelatedPanel === target;\n      panel.classList.toggle('is-active', isActive);\n      panel.hidden = !isActive;\n    });\n    if (target === 'recent') renderRecent(section);\n  };\n\n  const initRelatedProducts = (section) => {\n    if (!section || section.dataset.matchyRelatedReady === 'true') return;\n    section.dataset.matchyRelatedReady = 'true';\n\n    section.addEventListener('click', (event) => {\n      const button = event.target.closest('[data-matchy-related-tab]');\n      if (!button || !section.contains(button)) return;\n      showRelatedPanel(section, button.dataset.matchyRelatedTab);\n    });\n\n    new MutationObserver(() => {\n      if (section.querySelector('[data-matchy-recently-viewed]')) renderRecent(section);\n    }).observe(section, { childList: true, subtree: true });\n\n    writeRecent(section);\n    renderRecent(section);\n  };\n\n  const initAllRelatedProducts = () => {\n    document.querySelectorAll('product-recommendations.related-products').forEach(initRelatedProducts);\n  };\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initAllRelatedProducts);\n  } else {\n    initAllRelatedProducts();\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
