{
  "version": 3,
  "sources": ["/cdn/shop/t/12/assets/lb-search.js?lbrev=2"],
  "sourcesContent": ["(function () {\n  var MIN_QUERY = 2;\n  var DEBOUNCE_MS = 220;\n  var LIMIT = 8;\n\n  function shopRoot() {\n    if (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) {\n      return window.Shopify.routes.root;\n    }\n    return '/';\n  }\n\n  function cleanPath(url) {\n    if (!url) return '#';\n    try {\n      return url.split('?')[0];\n    } catch (e) {\n      return url;\n    }\n  }\n\n  function escapeHtml(value) {\n    return String(value || '')\n      .replace(/&/g, '&amp;')\n      .replace(/</g, '&lt;')\n      .replace(/>/g, '&gt;')\n      .replace(/\"/g, '&quot;');\n  }\n\n  function formatPrice(item) {\n    if (!item) return '';\n    if (item.price_min && item.price_max && item.price_min !== item.price_max) {\n      return 'From $' + item.price_min;\n    }\n    if (item.price) return '$' + item.price;\n    return '';\n  }\n\n  function buildSuggestUrl(query) {\n    var params = new URLSearchParams();\n    params.set('q', query);\n    params.set('resources[type]', 'product,page,collection,article');\n    params.set('resources[limit]', String(LIMIT));\n    params.set('resources[options][unavailable_products]', 'hide');\n    return shopRoot() + 'search/suggest.json?' + params.toString();\n  }\n\n  function PredictiveSearch(context) {\n    this.context = context;\n    this.input = context.querySelector('.js-lb-predictive-input');\n    this.panel = context.querySelector('[data-lb-predictive-panel]');\n    this.groups = context.querySelector('.js-lb-predictive-groups');\n    this.status = context.querySelector('.js-lb-predictive-status');\n    this.viewAll = context.querySelector('.js-lb-predictive-view-all');\n    this.defaultContent = context.querySelector('.js-lb-search-default');\n    this.timer = null;\n    this.abortController = null;\n    this.lastQuery = '';\n\n    if (!this.input || !this.panel || !this.groups) return;\n\n    this.bind();\n  }\n\n  PredictiveSearch.prototype.bind = function () {\n    var self = this;\n\n    this.input.addEventListener('input', function () {\n      self.queueSearch(self.input.value.trim());\n    });\n\n    this.input.addEventListener('keydown', function (event) {\n      if (event.key === 'Escape') {\n        self.reset();\n      }\n    });\n  };\n\n  PredictiveSearch.prototype.queueSearch = function (query) {\n    var self = this;\n    window.clearTimeout(this.timer);\n\n    if (query.length < MIN_QUERY) {\n      this.reset();\n      return;\n    }\n\n    this.showLoading(query);\n    this.timer = window.setTimeout(function () {\n      self.fetchResults(query);\n    }, DEBOUNCE_MS);\n  };\n\n  PredictiveSearch.prototype.showLoading = function (query) {\n    this.lastQuery = query;\n    this.toggleDefault(false);\n    this.panel.hidden = false;\n    this.input.setAttribute('aria-expanded', 'true');\n    this.status.hidden = false;\n    this.status.textContent = 'Searching\u2026';\n    this.groups.innerHTML = '';\n    if (this.viewAll) this.viewAll.hidden = true;\n  };\n\n  PredictiveSearch.prototype.reset = function () {\n    window.clearTimeout(this.timer);\n    if (this.abortController) this.abortController.abort();\n\n    this.lastQuery = '';\n    this.panel.hidden = true;\n    this.input.setAttribute('aria-expanded', 'false');\n    this.status.hidden = true;\n    this.status.textContent = '';\n    this.groups.innerHTML = '';\n    if (this.viewAll) this.viewAll.hidden = true;\n    this.toggleDefault(true);\n  };\n\n  PredictiveSearch.prototype.toggleDefault = function (show) {\n    if (!this.defaultContent) return;\n    this.defaultContent.hidden = !show;\n  };\n\n  PredictiveSearch.prototype.fetchResults = function (query) {\n    var self = this;\n\n    if (this.abortController) this.abortController.abort();\n    this.abortController = new AbortController();\n\n    fetch(buildSuggestUrl(query), {\n      signal: this.abortController.signal,\n      credentials: 'same-origin',\n      headers: { Accept: 'application/json' },\n    })\n      .then(function (response) {\n        if (!response.ok) throw new Error('Search request failed');\n        return response.json();\n      })\n      .then(function (payload) {\n        if (self.input.value.trim() !== query) return;\n        self.renderResults(query, payload);\n      })\n      .catch(function (error) {\n        if (error && error.name === 'AbortError') return;\n        if (self.input.value.trim() !== query) return;\n        self.renderEmpty(query);\n      });\n  };\n\n  PredictiveSearch.prototype.renderResults = function (query, payload) {\n    var results = (payload && payload.resources && payload.resources.results) || {};\n    var html = '';\n    var total = 0;\n\n    html += this.renderGroup('Products', results.products, 'product');\n    html += this.renderGroup('Collections', results.collections, 'collection');\n    html += this.renderGroup('Pages', results.pages, 'page');\n    html += this.renderGroup('Stories', results.articles, 'article');\n\n    total =\n      (results.products ? results.products.length : 0) +\n      (results.collections ? results.collections.length : 0) +\n      (results.pages ? results.pages.length : 0) +\n      (results.articles ? results.articles.length : 0);\n\n    this.groups.innerHTML = html;\n    this.panel.hidden = false;\n    this.toggleDefault(false);\n    this.input.setAttribute('aria-expanded', total > 0 ? 'true' : 'false');\n\n    if (total === 0) {\n      this.renderEmpty(query);\n      return;\n    }\n\n    this.status.hidden = false;\n    this.status.textContent = total + ' suggestion' + (total === 1 ? '' : 's');\n\n    if (this.viewAll) {\n      this.viewAll.hidden = false;\n      this.viewAll.href = shopRoot() + 'search?q=' + encodeURIComponent(query);\n      this.viewAll.textContent = 'View all results for \u201C' + query + '\u201D';\n    }\n  };\n\n  PredictiveSearch.prototype.renderEmpty = function (query) {\n    this.groups.innerHTML =\n      '<p class=\"lb-predictive__empty\">No matches for \u201C' +\n      escapeHtml(query) +\n      '\u201D. Try a flavor, \u201Cgift box\u201D, or browse categories below.</p>';\n    this.status.hidden = false;\n    this.status.textContent = 'No results';\n    this.toggleDefault(true);\n    if (this.viewAll) {\n      this.viewAll.hidden = false;\n      this.viewAll.href = shopRoot() + 'search?q=' + encodeURIComponent(query);\n      this.viewAll.textContent = 'Search the full store';\n    }\n  };\n\n  PredictiveSearch.prototype.renderGroup = function (label, items, type) {\n    if (!items || !items.length) return '';\n\n    var rows = items\n      .map(\n        function (item) {\n          return this.renderItem(item, type);\n        }.bind(this)\n      )\n      .join('');\n\n    return (\n      '<section class=\"lb-predictive__group\">' +\n      '<h3 class=\"lb-predictive__group-title\">' +\n      escapeHtml(label) +\n      '</h3>' +\n      '<div class=\"lb-predictive__list\" role=\"list\">' +\n      rows +\n      '</div>' +\n      '</section>'\n    );\n  };\n\n  PredictiveSearch.prototype.renderItem = function (item, type) {\n    var title = escapeHtml(item.title);\n    var url = cleanPath(item.url);\n    var meta = '';\n    var image = '';\n\n    if (type === 'product') {\n      meta = [formatPrice(item), item.type || item.vendor].filter(Boolean).join(' \u00B7 ');\n      if (item.featured_image && item.featured_image.url) {\n        image = item.featured_image.url;\n      } else if (item.image) {\n        image = item.image;\n      }\n    } else if (type === 'collection') {\n      meta = 'Collection';\n    } else if (type === 'page') {\n      meta = 'Page';\n    } else if (type === 'article') {\n      meta = 'Story';\n      if (item.image) image = item.image;\n    }\n\n    return (\n      '<a class=\"lb-predictive__item\" role=\"listitem\" href=\"' +\n      escapeHtml(url) +\n      '\">' +\n      (image\n        ? '<span class=\"lb-predictive__thumb\"><img src=\"' +\n          escapeHtml(image) +\n          '\" alt=\"\" width=\"56\" height=\"56\" loading=\"lazy\"></span>'\n        : '<span class=\"lb-predictive__thumb lb-predictive__thumb--empty\" aria-hidden=\"true\"></span>') +\n      '<span class=\"lb-predictive__copy\">' +\n      '<span class=\"lb-predictive__title\">' +\n      title +\n      '</span>' +\n      (meta ? '<span class=\"lb-predictive__meta\">' + escapeHtml(meta) + '</span>' : '') +\n      '</span>' +\n      '</a>'\n    );\n  };\n\n  function focusSearchInput() {\n    var input = document.querySelector('.js-lb-search-drawer-input');\n    if (!input) return;\n    input.focus();\n    if (input.value) {\n      input.setSelectionRange(input.value.length, input.value.length);\n    }\n  }\n\n  function initSearchDrawer() {\n    if (typeof WAU !== 'undefined' && WAU.Slideout) {\n      WAU.Slideout.init('search');\n    }\n\n    if (typeof Events !== 'undefined') {\n      Events.on('slideout:active:search', function () {\n        window.setTimeout(focusSearchInput, 220);\n      });\n    }\n\n    document.querySelectorAll('.js-lb-search-open').forEach(function (trigger) {\n      trigger.addEventListener('click', function () {\n        window.setTimeout(focusSearchInput, 220);\n      });\n    });\n\n    var drawer = document.querySelector('[data-lb-search-drawer]');\n    if (drawer) {\n      new PredictiveSearch(drawer);\n\n      drawer.querySelectorAll('.js-slideout-close').forEach(function (closeBtn) {\n        closeBtn.addEventListener('click', function () {\n          var instance = drawer.querySelector('.js-lb-predictive-input');\n          if (instance) instance.value = '';\n          var panel = drawer.querySelector('[data-lb-predictive-panel]');\n          if (panel) {\n            panel.hidden = true;\n            var defaults = drawer.querySelector('.js-lb-search-default');\n            if (defaults) defaults.hidden = false;\n          }\n        });\n      });\n    }\n\n    var searchPage = document.querySelector('.lb-search-page');\n    if (searchPage) {\n      new PredictiveSearch(searchPage);\n    }\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initSearchDrawer);\n  } else {\n    initSearchDrawer();\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
