{
  "version": 3,
  "sources": ["/cdn/shop/t/117/assets/wunderkind.js?utm_bot_source=7516fd43adaa"],
  "sourcesContent": ["(function () {\n  'use strict';\n\n  // \u2500\u2500\u2500 FIX #2: Block non-English languages \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  var lang = (document.documentElement.getAttribute('lang') || '').toLowerCase().split('-')[0];\n  if (lang && lang !== 'en') {\n    return;\n  }\n\n  // \u2500\u2500\u2500 FIX #2: Block international English regional paths \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  // Tracking should only run for the US English experience.\n  var pathname = window.location.pathname;\n  var blockedPathPrefixes = ['/en-ca', '/en-au', '/en-gb', '/en-eu', '/en-nz'];\n  for (var bi = 0; bi < blockedPathPrefixes.length; bi++) {\n    if (pathname.indexOf(blockedPathPrefixes[bi]) === 0) {\n      return;\n    }\n  }\n\n  // \u2500\u2500\u2500 FIX #5: Block staging and preview environments \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  // We detect preview mode by checking for the Shopify preview bar script tag\n  // (id=\"OnlineStorePreviewBarNextData\") which is injected on ALL pages when\n  // browsing via a theme preview link \u2014 including collection/product pages where\n  // the preview token is no longer visible in the URL after navigation.\n  // This is more reliable than hostname checks alone.\n  if (document.getElementById('OnlineStorePreviewBarNextData')) {\n    return;\n  }\n\n  var ctx = window.__wunderkind;\n  if (!ctx || typeof window.wunderkindSDK !== 'function') {\n    return;\n  }\n\n  function send(eventName, payload) {\n    try {\n      window.wunderkindSDK(eventName, payload);\n    } catch (e) {}\n  }\n\n  function onReady(fn) {\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', fn, { once: true });\n    } else {\n      fn();\n    }\n  }\n\n  function str(id) {\n    return id == null ? null : String(id);\n  }\n\n  ctx.variantsByHandle = ctx.variantsByHandle || {};\n  ctx.productIdByHandle = ctx.productIdByHandle || {};\n\n  // \u2500\u2500\u2500 FIX #5 (hidden swatches): Module-level hidden values map \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  // Stored at module scope so every function \u2014 including fetchAndCacheProduct \u2014\n  // always checks the same exclusion list. This prevents fetchAndCacheProduct\n  // from re-adding hidden variants after the initial purge has run.\n  var hiddenSwatchValues = {};\n  var hiddenSwatchesReady = false;\n\n  // Reads data-hide-tab=\"true\" swatch elements from the DOM and populates\n  // hiddenSwatchValues. Safe to call multiple times \u2014 idempotent.\n  function buildHiddenSwatchValues() {\n    var swatches = document.querySelectorAll('[data-hide-tab=\"true\"]');\n    for (var i = 0; i < swatches.length; i++) {\n      var val = swatches[i].getAttribute('data-value');\n      if (val) hiddenSwatchValues[val] = true;\n    }\n    hiddenSwatchesReady = true;\n  }\n\n  // Returns true if a variant's options contain any hidden swatch value.\n  function isHiddenVariant(opts) {\n    for (var i = 0; i < opts.length; i++) {\n      if (hiddenSwatchValues[opts[i]]) return true;\n    }\n    return false;\n  }\n\n  // Purge hidden variants from variantsByHandle, then call callback.\n  // Waits for swatch elements to appear in the DOM first (theme renders them\n  // after DOMContentLoaded). Uses MutationObserver + 1000ms hard-cap fallback.\n  function purgeHiddenSwatchVariants(callback) {\n    function doClean() {\n      buildHiddenSwatchValues();\n      // Remove hidden variants from the Liquid-seeded variantsByHandle\n      for (var handle in ctx.variantsByHandle) {\n        var byId = ctx.variantsByHandle[handle];\n        for (var vid in byId) {\n          if (isHiddenVariant(byId[vid].options || [])) {\n            delete byId[vid];\n          }\n        }\n      }\n      if (typeof callback === 'function') callback();\n    }\n\n    // Use setTimeout(0) to yield to the browser so all inline <script> tags\n    // (including the Liquid __wunderkind data block) finish executing first,\n    // and so the theme has a chance to render swatch elements into the DOM.\n    setTimeout(function () {\n      if (document.querySelector('[data-hide-tab]')) {\n        doClean();\n        return;\n      }\n      // Swatches not in DOM yet \u2014 observe until they appear\n      var done = false;\n      var timer = setTimeout(function () {\n        if (!done) { done = true; obs.disconnect(); doClean(); }\n      }, 1000);\n      var obs = new MutationObserver(function () {\n        if (!document.querySelector('[data-hide-tab]') || done) return;\n        done = true;\n        clearTimeout(timer);\n        obs.disconnect();\n        doClean();\n      });\n      obs.observe(document.body, { childList: true, subtree: true });\n    }, 0);\n  }\n\n  function productIdFor(handle) {\n    if (!handle) return null;\n    return str(ctx.productIdByHandle[handle]);\n  }\n\n  function findVariantByOptions(handle, values) {\n    var byId = ctx.variantsByHandle[handle];\n    if (!byId || !values.length) return null;\n    for (var id in byId) {\n      var v = byId[id];\n      if (!v || !Array.isArray(v.options)) continue;\n      if (v.options.length !== values.length) continue;\n      var match = true;\n      for (var i = 0; i < values.length; i++) {\n        if (v.options[i] !== values[i]) { match = false; break; }\n      }\n      if (match) return id;\n    }\n    return null;\n  }\n\n  // \u2500\u2500\u2500 FIX #5 (DOM): Detect swatch elements hidden from the storefront \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  // The theme sets data-hide-tab=\"true\" on .swatch-element wrappers for variants\n  // that exist in Shopify but are hidden on the live site (e.g. legacy size names\n  // like \"Travel Size (15mL)\" alongside the active \"Travel-Size (15mL)\").\n  // Any input inside such a wrapper must be excluded from all tracking.\n  // Also checks the shared hiddenSwatchValues map as a belt-and-suspenders guard.\n  function isHiddenSwatch(el) {\n    var swatch = el.closest && el.closest('[data-hide-tab]');\n    if (swatch && swatch.getAttribute('data-hide-tab') === 'true') return true;\n    // Belt-and-suspenders: also check value directly against hiddenSwatchValues\n    if (el.value && hiddenSwatchValues[el.value]) return true;\n    return false;\n  }\n\n  function checkedOptionValues(form) {\n    var nodes = form.querySelectorAll('input[name^=\"option-\"]:checked, input[name^=\"option\"][type=\"hidden\"]');\n    var list = [];\n    for (var i = 0; i < nodes.length; i++) {\n      // Skip inputs that belong to a hidden/inactive swatch (data-hide-tab=\"true\")\n      if (isHiddenSwatch(nodes[i])) continue;\n      var name = nodes[i].name;\n      var m = name && name.match(/option-?(\\d+)/);\n      var idx = m ? parseInt(m[1], 10) : (i + 1);\n      list.push({ idx: idx, value: nodes[i].value });\n    }\n    list.sort(function (a, b) { return a.idx - b.idx; });\n    return list.map(function (o) { return o.value; });\n  }\n\n  function dispatchProductView() {\n    if (!ctx.product || !ctx.product.id) return;\n    var p = ctx.product;\n    if (p.is_gift_card) return;\n    var productId = str(p.id);\n    var variantId = ctx.variant && ctx.variant.id ? str(ctx.variant.id) : productId;\n\n    send('item', {\n      id: variantId,\n      copy: p.title,\n      category: p.type,\n      url: p.url,\n      imageurl: p.featured_image,\n      instock: p.available ? 'true' : 'false'\n    });\n\n    send('viewItem', {\n      'item:id': variantId,\n      'item:itemgroupid': productId\n    });\n\n    if (!p.has_variants && variantId) {\n      send('selectItem', {\n        'item:id': variantId,\n        'item:itemgroupid': productId,\n        'item:feedid': variantId\n      });\n    }\n  }\n\n  function debounce(fn, wait) {\n    var t;\n    return function () {\n      var args = arguments, self = this;\n      clearTimeout(t);\n      t = setTimeout(function () { fn.apply(self, args); }, wait);\n    };\n  }\n\n  var lastSelectItem = { key: null, at: 0 };\n  // Seed with the page's initially-selected variant so the theme's swatch-init\n  // MutationObserver burst on data-variant-id doesn't fire a spurious\n  // selectItem on multi-variant PDP load (Wunderkind finding #3).\n  var currentSelectedVariantId = ctx.variant && ctx.variant.id ? str(ctx.variant.id) : null;\n\n  // \u2500\u2500\u2500 FIX #1: Re-fire viewItem on variant change \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  // item:id must match the value used in viewItem and other item-level events.\n  // item:feedid reflects the specific variant tied to the product feed.\n  var dispatchSelectItem = debounce(function (variantId, productId) {\n    var v = str(variantId);\n    var p = str(productId);\n    if (!v || !p) return;\n    if (v === currentSelectedVariantId) return;\n    currentSelectedVariantId = v;\n    var key = p + '|' + v;\n    var now = Date.now();\n    if (lastSelectItem.key === key && (now - lastSelectItem.at) < 750) return;\n    lastSelectItem.key = key;\n    lastSelectItem.at = now;\n\n    // Re-fire viewItem so item:id stays consistent across all item-level events\n    send('viewItem', {\n      'item:id': v,\n      'item:itemgroupid': p\n    });\n\n    send('selectItem', {\n      'item:id': v,\n      'item:itemgroupid': p,\n      'item:feedid': v\n    });\n  }, 150);\n\n  var fetchedProducts = {};\n\n  function fetchAndCacheProduct(handle) {\n    if (!handle) return Promise.resolve();\n    if (fetchedProducts[handle]) return fetchedProducts[handle];\n    fetchedProducts[handle] = fetch('/products/' + encodeURIComponent(handle) + '.js', { credentials: 'same-origin' })\n      .then(function (r) { return r.ok ? r.json() : null; })\n      .then(function (data) {\n        if (!data) return;\n        if (data.id) ctx.productIdByHandle[handle] = data.id;\n        if (Array.isArray(data.variants)) {\n          var byId = ctx.variantsByHandle[handle] || {};\n          // Ensure hidden swatch values are built before filtering\n          // (fetchAndCacheProduct can be called at any time, including before\n          // purgeHiddenSwatchVariants has run \u2014 buildHiddenSwatchValues is\n          // idempotent so calling it here is always safe).\n          if (!hiddenSwatchesReady) buildHiddenSwatchValues();\n          data.variants.forEach(function (v) {\n            // FIX #5: Skip unavailable variants\n            if (!v.available) return;\n            // FIX #5 (DOM): Skip variants matching a hidden swatch value\n            var opts = v.options || [];\n            if (isHiddenVariant(opts)) return;\n            byId[String(v.id)] = { options: opts };\n          });\n          ctx.variantsByHandle[handle] = byId;\n        }\n      })\n      .catch(function () {});\n    return fetchedProducts[handle];\n  }\n\n  function resolveVariantChange(variantId) {\n    if (!variantId) return;\n    var handle = lastClickedHandle || (ctx.product && ctx.product.handle);\n    var productId = productIdFor(handle);\n    if (productId) {\n      dispatchSelectItem(variantId, productId);\n      return;\n    }\n    if (!handle) return;\n    fetchAndCacheProduct(handle).then(function () {\n      var pid = productIdFor(handle);\n      if (pid) dispatchSelectItem(variantId, pid);\n    });\n  }\n\n  function currentVariantIdFromScope(scope) {\n    scope = scope || document;\n    var priced = scope.querySelector('[data-variant-id]');\n    if (priced) {\n      var pid = priced.getAttribute('data-variant-id');\n      if (pid) return pid;\n    }\n    var idField = scope.querySelector('[name=\"id\"]');\n    if (idField && idField.value) return idField.value;\n    return null;\n  }\n\n  function resolveFromForm(form) {\n    if (!form) return;\n    var handle = readHandle(form) || lastClickedHandle || (ctx.product && ctx.product.handle);\n    if (!handle) return;\n    var attempt = function () {\n      var values = checkedOptionValues(form);\n      if (values.length) {\n        var vid = findVariantByOptions(handle, values);\n        if (vid) {\n          var pid = productIdFor(handle);\n          if (pid) { dispatchSelectItem(vid, pid); return true; }\n        }\n      }\n      var vid2 = currentVariantIdFromScope(form);\n      if (vid2) {\n        var pid2 = productIdFor(handle);\n        if (pid2) { dispatchSelectItem(vid2, pid2); return true; }\n      }\n      return false;\n    };\n    if (attempt()) return;\n    fetchAndCacheProduct(handle).then(function () {\n      if (!attempt()) {\n        setTimeout(attempt, 50);\n      }\n    });\n  }\n\n  function wireVariantListener() {\n    document.addEventListener('variantChange', function (e) {\n      var v = (e.detail && (e.detail.variant || e.detail)) || null;\n      var id = v && (v.id || v);\n      if (id) resolveVariantChange(String(id));\n    });\n\n    document.addEventListener('change', function (e) {\n      var el = e.target;\n      if (!el || !el.name) return;\n      var form = el.closest && el.closest('form[action*=\"/cart/add\"]');\n      if (!form) return;\n      if (el.name === 'id') {\n        resolveVariantChange(el.value);\n        return;\n      }\n      if (!/^option/.test(el.name) && el.name !== 'purchaseOption') return;\n      resolveFromForm(form);\n    }, true);\n\n    document.addEventListener('click', function (e) {\n      var target = e.target;\n      if (!target || !target.closest) return;\n      var swatch = target.closest('.swatch-element, .swatch-variants-wrapper label, [data-option-index] label, label[for^=\"template--\"]');\n      if (!swatch) return;\n      var form = target.closest('form[action*=\"/cart/add\"]');\n      if (!form) return;\n      setTimeout(function () { resolveFromForm(form); }, 100);\n    }, true);\n\n    if (typeof MutationObserver !== 'undefined') {\n      new MutationObserver(function (muts) {\n        for (var i = 0; i < muts.length; i++) {\n          var m = muts[i];\n          if (m.type !== 'attributes' || m.attributeName !== 'data-variant-id') continue;\n          var vid = m.target.getAttribute && m.target.getAttribute('data-variant-id');\n          if (vid) resolveVariantChange(vid);\n        }\n        observeNewForms();\n      }).observe(document.body, {\n        attributes: true,\n        attributeFilter: ['data-variant-id'],\n        subtree: true,\n        childList: true\n      });\n      observeNewForms();\n    }\n  }\n\n  var observedForms = typeof WeakSet !== 'undefined' ? new WeakSet() : null;\n\n  function observeNewForms() {\n    if (!observedForms || typeof MutationObserver === 'undefined') return;\n    var forms = document.querySelectorAll('form[action*=\"/cart/add\"]');\n    for (var i = 0; i < forms.length; i++) {\n      var form = forms[i];\n      if (observedForms.has(form)) continue;\n      observedForms.add(form);\n      (function (f) {\n        new MutationObserver(function () { resolveFromForm(f); }).observe(f, {\n          attributes: true,\n          attributeFilter: ['checked', 'value'],\n          subtree: true\n        });\n      })(form);\n    }\n  }\n\n  var ATC_SELECTOR = 'button#AddToCart, button[name=\"add\"], button.custom-add-to-bag, button.quick-add-button';\n\n  function readHandle(el) {\n    if (!el || !el.getAttribute) return null;\n    return el.getAttribute('data-product-handle')\n      || el.getAttribute('data-handle')\n      || el.getAttribute('data-upsell-product');\n  }\n\n  function readProductId(el) {\n    if (!el || !el.getAttribute) return null;\n    return el.getAttribute('data-product-id')\n      || el.getAttribute('data-upsell-product-id')\n      || el.getAttribute('data-productid');\n  }\n\n  function readVariantId(el) {\n    if (!el || !el.getAttribute) return null;\n    return el.getAttribute('data-variant-id');\n  }\n\n  var lastClickedHandle = null;\n  var lastAtc = { key: null, at: 0 };\n\n  function sendAtc(productId, variantId) {\n    var pid = str(productId);\n    var vid = str(variantId);\n    if (!vid && !pid) return;\n    if (vid && isGiftCardVariant(vid)) return;\n    if (ctx.product && ctx.product.is_gift_card) return;\n    var key = (pid || '') + '|' + (vid || '');\n    var now = Date.now();\n    if (lastAtc.key === key && (now - lastAtc.at) < 750) return;\n    lastAtc.key = key;\n    lastAtc.at = now;\n    var payload = {};\n    if (vid) payload['item:id'] = vid;\n    if (pid) payload['item:itemgroupid'] = pid;\n    send('addToCart', payload);\n  }\n\n  function findUpsellAncestor(el) {\n    return el.closest && el.closest('[data-upsell-product-id], [data-upsell-product]');\n  }\n\n  // \u2500\u2500\u2500 FIX #4: Read variant from form, falling back to option selection \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  // On category pages a shopper must select a variant before ATC fires.\n  // If input[name=\"id\"] is empty, resolve from checked option inputs instead.\n  function readVariantIdFromForm(scope) {\n    if (!scope || !scope.querySelector) return null;\n\n    // Primary: hidden/visible id field set by theme JS after variant selection\n    var idField = scope.querySelector('input[name=\"id\"]');\n    if (idField && idField.value) return idField.value;\n\n    // Fallback: derive variant from checked option inputs\n    var handle = readHandle(scope) || lastClickedHandle;\n    if (handle) {\n      var values = checkedOptionValues(scope);\n      if (values.length) {\n        var vid = findVariantByOptions(handle, values);\n        if (vid) return vid;\n      }\n    }\n\n    // Last resort: data-variant-id attribute on any child element\n    var variantEl = scope.querySelector('[data-variant-id]');\n    if (variantEl) {\n      var dvid = variantEl.getAttribute('data-variant-id');\n      if (dvid) return dvid;\n    }\n\n    return null;\n  }\n\n  function resolveAtcFromEl(el) {\n    var upsell = findUpsellAncestor(el);\n    if (upsell) {\n      var uVid = readVariantId(upsell) || readVariantIdFromForm(upsell);\n      var uPid = readProductId(upsell);\n      var uHandle = readHandle(upsell);\n      if (!uPid && uHandle) uPid = productIdFor(uHandle);\n      if (uPid || uVid) return { productId: uPid, variantId: uVid, handle: uHandle };\n    }\n\n    var form = el.closest && el.closest('form[action*=\"/cart/add\"]');\n    var pid = null, vid = null, handle = null;\n\n    var ancestor = el.closest && el.closest('[data-product-id], [data-productid], [data-product-handle], [data-handle]');\n    if (ancestor) {\n      pid = readProductId(ancestor);\n      handle = readHandle(ancestor);\n      vid = readVariantId(ancestor);\n    }\n\n    if (form) {\n      pid = pid || readProductId(form);\n      handle = handle || readHandle(form);\n      vid = vid || readVariantIdFromForm(form);\n    }\n\n    vid = vid || (el.getAttribute && readVariantId(el));\n\n    if (!pid && handle) pid = productIdFor(handle);\n\n    if (!pid && !vid && !handle) {\n      if (lastClickedHandle) {\n        handle = lastClickedHandle;\n        pid = productIdFor(handle);\n      } else if (ctx.product && ctx.product.id) {\n        pid = str(ctx.product.id);\n        vid = vid || (ctx.variant && ctx.variant.id ? str(ctx.variant.id) : null);\n      }\n    }\n\n    return { productId: pid, variantId: vid, handle: handle };\n  }\n\n  function wireAtcListener() {\n    document.addEventListener('click', function (e) {\n      var target = e.target;\n      if (!target || !target.closest) return;\n\n      var card = target.closest('[data-product-handle], [data-handle]');\n      if (card && !findUpsellAncestor(target)) {\n        var ch = readHandle(card);\n        if (ch) lastClickedHandle = ch;\n      }\n\n      var btn = target.closest(ATC_SELECTOR);\n      if (!btn) return;\n\n      // \u2500\u2500\u2500 FIX #4: Guard \u2014 do not fire addToCart if no variant is resolved \u2500\u2500\u2500\u2500\n      // This prevents a premature event when a shopper hasn't selected a variant\n      // yet on a category/collection listing page.\n      var resolved = resolveAtcFromEl(btn);\n\n      if (!resolved.variantId && !resolved.productId) return;\n\n      if (resolved.handle && !resolved.productId) {\n        fetchAndCacheProduct(resolved.handle).then(function () {\n          var vid = resolved.variantId || readVariantIdFromForm(btn.closest('form[action*=\"/cart/add\"]'));\n          // Re-check after fetch \u2014 still no variant means shopper hasn't chosen yet\n          if (!vid && !productIdFor(resolved.handle)) return;\n          sendAtc(productIdFor(resolved.handle), vid);\n        });\n        return;\n      }\n      sendAtc(resolved.productId, resolved.variantId);\n    }, true);\n\n    document.addEventListener('submit', function (e) {\n      var form = e.target;\n      if (!form || !form.matches) return;\n      if (!form.matches('form[action*=\"/cart/add\"]')) return;\n      var resolved = resolveAtcFromEl(form);\n\n      // \u2500\u2500\u2500 FIX #4: Same guard on form submit \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n      if (!resolved.variantId && !resolved.productId) return;\n\n      if (resolved.handle && !resolved.productId) {\n        fetchAndCacheProduct(resolved.handle).then(function () {\n          sendAtc(productIdFor(resolved.handle), resolved.variantId);\n        });\n        return;\n      }\n      sendAtc(resolved.productId, resolved.variantId);\n    }, true);\n  }\n\n  var CART_COUNT_KEY = 'wknd_cart_count';\n\n  function storedCartCount() {\n    try {\n      var v = sessionStorage.getItem(CART_COUNT_KEY);\n      return v == null ? null : parseInt(v, 10);\n    } catch (e) { return null; }\n  }\n\n  function setStoredCartCount(n) {\n    try { sessionStorage.setItem(CART_COUNT_KEY, String(n)); } catch (e) {}\n  }\n\n  function wireEmptyCartListener() {\n    function readItemCount(detail) {\n      if (detail && typeof detail.item_count === 'number') return detail.item_count;\n      if (detail && detail.cart && typeof detail.cart.item_count === 'number') {\n        return detail.cart.item_count;\n      }\n      return null;\n    }\n\n    document.documentElement.addEventListener('wetheme-cart-update', function (e) {\n      var count = readItemCount(e && e.detail);\n      if (count === null) return;\n      var prev = storedCartCount();\n      if (prev !== null && prev > 0 && count === 0) {\n        send('emptyCart', {});\n      }\n      setStoredCartCount(count);\n    });\n  }\n\n  function checkEmptyCartOnLoad() {\n    var current = ctx.cart && typeof ctx.cart.item_count === 'number' ? ctx.cart.item_count : null;\n    if (current === null) return;\n    var prev = storedCartCount();\n    if (prev !== null && prev > 0 && current === 0) {\n      send('emptyCart', {});\n    }\n    setStoredCartCount(current);\n  }\n\n  function isGiftCardVariant(vid) {\n    if (!vid) return false;\n    var giftCardSet = (ctx.collection && ctx.collection.gift_card_variant_ids)\n      || (ctx.search && ctx.search.gift_card_variant_ids)\n      || [];\n    var s = String(vid);\n    var n = parseInt(vid, 10);\n    for (var i = 0; i < giftCardSet.length; i++) {\n      var g = giftCardSet[i];\n      if (g === vid || g === s || g === n) return true;\n      if (String(g) === s) return true;\n    }\n    return false;\n  }\n\n  // \u2500\u2500\u2500 FIX #3: Helper to detect UTM parameters in the current URL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  // Category/collection pages accessed via campaign URLs should not send\n  // viewCategory events so UTM landing pages don't pollute category data.\n  function hasUtmParams() {\n    var search = window.location.search;\n    if (!search) return false;\n    var params;\n    try {\n      params = new URLSearchParams(search);\n    } catch (e) {\n      // Fallback for older browsers\n      return /[?&]utm_/.test(search);\n    }\n    return params.has('utm_source') || params.has('utm_medium') || params.has('utm_campaign');\n  }\n\n  function dispatchViewCategory() {\n    if (!ctx.collection || !Array.isArray(ctx.collection.items_ids)) return;\n    var ids = ctx.collection.items_ids.map(str).filter(function (id) {\n      return id && !isGiftCardVariant(id);\n    });\n    if (ids.length === 0) return;\n    send('viewCategory', {\n      'items:ids': ids,\n      'page:url': window.location.origin + window.location.pathname\n    });\n  }\n\n  function scrapeVariantIdsFromDom() {\n    var nodes = document.querySelectorAll('[data-variant-id], form[action*=\"/cart/add\"] [name=\"id\"]');\n    var seen = {};\n    var ids = [];\n    for (var i = 0; i < nodes.length; i++) {\n      var el = nodes[i];\n      // \u2500\u2500\u2500 FIX #5 (DOM): Skip variant IDs belonging to hidden swatches \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n      if (isHiddenSwatch(el)) continue;\n      var vid = el.getAttribute('data-variant-id');\n      if (!vid && el.name === 'id') vid = el.value;\n      if (vid && /^\\d+$/.test(vid) && !seen[vid] && !isGiftCardVariant(vid)) {\n        seen[vid] = true;\n        ids.push(vid);\n      }\n    }\n    return ids;\n  }\n\n  function dispatchViewCategoryFromDom() {\n    var ids = scrapeVariantIdsFromDom();\n    if (ids.length === 0) return;\n    send('viewCategory', {\n      'items:ids': ids,\n      'page:url': window.location.origin + window.location.pathname\n    });\n  }\n\n  function dispatchViewSearch() {\n    if (!ctx.search || !Array.isArray(ctx.search.items_ids)) return;\n    var ids = ctx.search.items_ids.map(str).filter(function (id) {\n      return id && !isGiftCardVariant(id);\n    });\n    if (ids.length === 0) return;\n    send('viewSearch', {\n      'items:ids': ids,\n      // \u2500\u2500\u2500 FIX #3: Strip query string from search URL too \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n      'page:url': window.location.origin + window.location.pathname\n    });\n  }\n\n  function sha256Hex(input) {\n    if (!window.crypto || !window.crypto.subtle || !window.TextEncoder) {\n      return Promise.resolve(null);\n    }\n    var bytes = new TextEncoder().encode(String(input));\n    return window.crypto.subtle.digest('SHA-256', bytes).then(function (buf) {\n      var arr = Array.from(new Uint8Array(buf));\n      return arr.map(function (b) { return b.toString(16).padStart(2, '0'); }).join('');\n    }).catch(function () { return null; });\n  }\n\n  function dispatchLogIn() {\n    if (!ctx.customer || !ctx.customer.email) return;\n\n    var flagKey = 'wknd_login_sent';\n    try {\n      if (sessionStorage.getItem(flagKey)) return;\n    } catch (e) {}\n\n    var email = ctx.customer.email.trim().toLowerCase();\n    sha256Hex(email).then(function (hash) {\n      var payload = { email: email };\n      if (hash) payload.emailHash = hash;\n      send('logIn', payload);\n      try { sessionStorage.setItem(flagKey, '1'); } catch (e) {}\n    });\n  }\n\n  onReady(function () {\n    // Always wire listeners immediately so user interactions are never missed\n    wireAtcListener();\n    wireEmptyCartListener();\n    checkEmptyCartOnLoad();\n    dispatchLogIn();\n    wireVariantListener();\n\n    // \u2500\u2500\u2500 FIX #5: Strip hidden-swatch variants BEFORE dispatching page events \u2500\u2500\n    // purgeHiddenSwatchVariants waits for swatches to render (theme renders them\n    // after DOMContentLoaded), then fires the callback with clean data.\n    purgeHiddenSwatchVariants(function () {\n      if (ctx.template && ctx.template.indexOf('product') !== -1) {\n        dispatchProductView();\n      }\n\n      if (ctx.template && ctx.template.indexOf('collection') !== -1) {\n        // \u2500\u2500\u2500 FIX #3: Skip viewCategory on UTM/campaign landing pages \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        if (!hasUtmParams()) {\n          dispatchViewCategory();\n        }\n      } else if (ctx.template && ctx.template.indexOf('page') !== -1) {\n        // \u2500\u2500\u2500 FIX #3: Skip DOM-scraped category on UTM pages too \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        if (!hasUtmParams()) {\n          dispatchViewCategoryFromDom();\n        }\n      }\n\n      if (ctx.template === 'search') {\n        dispatchViewSearch();\n      }\n    });\n  });\n})();"],
  "mappings": "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",
  "names": []
}
