{
  "version": 3,
  "sources": ["/cdn/shop/t/14/assets/theme.js?oc=20260602-perf1"],
  "sourcesContent": ["(function () {\n  var hlsCallbacks = [];\n  var hlsLoading = false;\n\n  function each(selector, callback, root) {\n    var scope = root || document;\n    var nodes = scope.querySelectorAll(selector);\n    for (var index = 0; index < nodes.length; index += 1) {\n      callback(nodes[index], index);\n    }\n  }\n\n  function dispatchChange(input) {\n    var event;\n\n    if (typeof Event === 'function') {\n      event = new Event('change', { bubbles: true });\n    } else {\n      event = document.createEvent('Event');\n      event.initEvent('change', true, true);\n    }\n\n    input.dispatchEvent(event);\n  }\n\n  function withHls(callback) {\n    var script;\n\n    if (window.Hls && window.Hls.isSupported()) {\n      callback();\n      return;\n    }\n\n    hlsCallbacks.push(callback);\n    if (hlsLoading) return;\n\n    hlsLoading = true;\n    script = document.createElement('script');\n    script.src = 'https://cdn.jsdelivr.net/npm/hls.js@latest';\n    script.defer = true;\n    script.onload = function () {\n      var callbacks = hlsCallbacks.slice();\n      var index;\n\n      hlsCallbacks = [];\n      for (index = 0; index < callbacks.length; index += 1) {\n        if (window.Hls && window.Hls.isSupported()) callbacks[index]();\n      }\n    };\n    document.head.appendChild(script);\n  }\n\n  function loadVideos() {\n    each('video.camelot-video[data-hls]', function (video) {\n      var src = video.getAttribute('data-hls');\n      var hls;\n      var activated = false;\n\n      if (!src) return;\n      if (video.getAttribute('data-video-bound') === 'true') return;\n\n      video.setAttribute('data-video-bound', 'true');\n      video.preload = 'none';\n\n      function activateVideo() {\n        if (activated) return;\n        activated = true;\n\n        if (video.canPlayType('application/vnd.apple.mpegurl')) {\n          video.src = src;\n          video.load();\n          return;\n        }\n\n        withHls(function () {\n          hls = new window.Hls();\n          hls.loadSource(src);\n          hls.attachMedia(video);\n        });\n      }\n\n      video.addEventListener('pointerdown', activateVideo);\n      video.addEventListener('touchstart', activateVideo);\n      video.addEventListener('mousedown', activateVideo);\n      video.addEventListener('play', activateVideo);\n    });\n  }\n\n  function bindQuantityButtons() {\n    each('[data-qty-change]', function (button) {\n      button.addEventListener('click', function () {\n        var wrapper = button.closest ? button.closest('[data-quantity-wrapper]') : null;\n        var input = wrapper ? wrapper.querySelector('input[name=\"quantity\"]') : null;\n        var next;\n\n        if (!input) return;\n\n        next = Math.max(1, Number(input.value || 1) + Number(button.getAttribute('data-qty-change')));\n        input.value = next;\n        dispatchChange(input);\n      });\n    });\n  }\n\n  function formatMoney(cents, moneyFormat) {\n    var amount;\n\n    if (window.Shopify && typeof window.Shopify.formatMoney === 'function') {\n      return window.Shopify.formatMoney(cents, moneyFormat);\n    }\n\n    amount = (Number(cents || 0) / 100).toFixed(2);\n    return '$' + amount;\n  }\n\n  function bindVariantSelectors() {\n    each('[data-product-section]', function (section) {\n      var select = section.querySelector('[data-variant-select]');\n      var json = section.querySelector('[data-product-json]');\n      var defaultDescriptionJson = section.querySelector('[data-product-description-json]');\n      var variantCopyJson = section.querySelector('[data-variant-copy-json]');\n      var price = section.querySelector('[data-product-price]');\n      var button = section.querySelector('[data-add-to-cart]');\n      var description = section.querySelector('[data-product-description]');\n      var variantButtons = section.querySelectorAll('[data-variant-button]');\n      var product;\n      var defaultDescription = '';\n      var variantCopy = {};\n\n      if (!select || !json || !price || !button) return;\n\n      try {\n        product = JSON.parse(json.textContent || '{}');\n      } catch (_error) {\n        return;\n      }\n\n      if (defaultDescriptionJson) {\n        try {\n          defaultDescription = JSON.parse(defaultDescriptionJson.textContent || '\"\"') || '';\n        } catch (_error) {\n          defaultDescription = '';\n        }\n      }\n\n      if (variantCopyJson) {\n        try {\n          variantCopy = JSON.parse(variantCopyJson.textContent || '{}') || {};\n        } catch (_error) {\n          variantCopy = {};\n        }\n      }\n\n      function updateVariantState() {\n        var variants = product.variants || [];\n        var selectedId = String(select.value);\n        var variant = null;\n        var variantContent = variantCopy[selectedId] || {};\n        var index;\n\n        for (index = 0; index < variants.length; index += 1) {\n          if (String(variants[index].id) === selectedId) {\n            variant = variants[index];\n            break;\n          }\n        }\n\n        if (!variant) return;\n\n        price.textContent = formatMoney(variant.price, window.themeMoneyFormat);\n        button.disabled = !variant.available;\n        button.textContent = variant.available ? 'Add to cart' : 'Sold out';\n\n        if (description) {\n          description.innerHTML = variantContent.description || defaultDescription;\n        }\n\n        for (index = 0; index < variantButtons.length; index += 1) {\n          variantButtons[index].setAttribute(\n            'aria-pressed',\n            String(variantButtons[index].getAttribute('data-variant-id')) === selectedId ? 'true' : 'false'\n          );\n        }\n\n        if (window.history && window.history.replaceState) {\n          var url = new URL(window.location.href);\n          url.searchParams.set('variant', selectedId);\n          window.history.replaceState({}, '', url.toString());\n        }\n      }\n\n      for (var buttonIndex = 0; buttonIndex < variantButtons.length; buttonIndex += 1) {\n        variantButtons[buttonIndex].addEventListener('click', function () {\n          var selectedId = this.getAttribute('data-variant-id');\n\n          if (!selectedId || this.disabled) return;\n\n          select.value = selectedId;\n          dispatchChange(select);\n        });\n      }\n\n      select.addEventListener('change', updateVariantState);\n      updateVariantState();\n    });\n  }\n\n  function bindMobileMenu() {\n    each('.nav-menu-toggle', function (button) {\n      var controls = button.getAttribute('aria-controls');\n      var menu = controls ? document.getElementById(controls) : null;\n      var touchStarted = false;\n\n      if (!menu || button.getAttribute('data-menu-bound') === 'true') return;\n\n      button.setAttribute('data-menu-bound', 'true');\n\n      function setMenuState(isOpen) {\n        button.setAttribute('aria-expanded', isOpen ? 'true' : 'false');\n        menu.classList[isOpen ? 'add' : 'remove']('is-open');\n        menu.setAttribute('data-menu-open', isOpen ? 'true' : 'false');\n        document.body.classList[isOpen ? 'add' : 'remove']('nav-open');\n      }\n\n      function toggleMenu(event) {\n        var isOpen;\n\n        if (event) {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n\n        isOpen = button.getAttribute('aria-expanded') === 'true';\n        setMenuState(!isOpen);\n      }\n\n      function closeMenu() {\n        setMenuState(false);\n      }\n\n      button.addEventListener('touchend', function (event) {\n        touchStarted = true;\n        toggleMenu(event);\n        window.setTimeout(function () {\n          touchStarted = false;\n        }, 400);\n      }, false);\n\n      button.addEventListener('click', function (event) {\n        if (touchStarted) {\n          event.preventDefault();\n          event.stopPropagation();\n          return;\n        }\n        toggleMenu(event);\n      }, false);\n\n      each('a', function (link) {\n        link.addEventListener('click', closeMenu);\n      }, menu);\n\n      document.addEventListener('keydown', function (event) {\n        if (event.key === 'Escape' || event.keyCode === 27) closeMenu();\n      });\n\n      document.addEventListener('click', function (event) {\n        if (!menu.contains(event.target) && !button.contains(event.target)) closeMenu();\n      });\n    });\n  }\n\n  function bindAccountLinks() {\n    each('[data-editor-account-link]', function (link) {\n      link.addEventListener('click', function (event) {\n        if (!link.href) return;\n\n        event.preventDefault();\n        window.open(link.href, '_blank', 'noopener');\n      });\n    });\n  }\n\n  function textOf(node) {\n    return (node && (node.textContent || '') || '').replace(/\\s+/g, ' ').trim();\n  }\n\n  function patchAllProductLinks() {\n    each('a[href=\"/collections/camelots-products\"]', function (link) {\n      var label = textOf(link).toLowerCase();\n      var card = link.closest ? link.closest('.collection') : null;\n      var cardTitle = card ? textOf(card.querySelector('h3')).toLowerCase() : '';\n      var eyebrow;\n\n      if (label.indexOf('shop all products') === -1 && cardTitle !== 'all provisions') return;\n\n      link.setAttribute('href', '/collections/all');\n      if (card) {\n        eyebrow = card.querySelector('.eyebrow');\n        if (eyebrow) eyebrow.textContent = '175 provisions';\n      }\n    });\n  }\n\n  function patchSupportLinks() {\n    each('a[href=\"/pages/about-us\"], a[href$=\"/pages/about-us\"]', function (link) {\n      if (textOf(link).toLowerCase().indexOf('about') === -1) return;\n      link.setAttribute('href', '/#brand-story');\n    });\n  }\n\n  function initTheme() {\n    loadVideos();\n    bindQuantityButtons();\n    bindVariantSelectors();\n    bindMobileMenu();\n    bindAccountLinks();\n    patchAllProductLinks();\n    patchSupportLinks();\n    window.setTimeout(patchAllProductLinks, 250);\n    window.setTimeout(patchSupportLinks, 250);\n    window.setTimeout(patchAllProductLinks, 1200);\n    window.setTimeout(patchSupportLinks, 1200);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initTheme);\n  } else {\n    initTheme();\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
