{
  "version": 3,
  "sources": ["/cdn/shop/t/156/assets/bioactive-experience.js?nocache=1"],
  "sourcesContent": ["(function(){\n  if (window.__experienceBound) return;\n  window.__experienceBound = true;\n\n  function $all(sel, parent) {\n    return Array.prototype.slice.call((parent || document).querySelectorAll(sel));\n  }\n\n  function getLocalRoot(el) {\n    return el.closest('.bioactive-experience') || document;\n  }\n\n  // --- Accordions (science + faq) ---\n  function handleAcc(qBtn) {\n    console.log('AGY_EXP: handleAcc called for button:', qBtn);\n    var item = qBtn.closest('[data-acc]');\n    if (!item) {\n      console.warn('AGY_EXP: no parent [data-acc] found for button:', qBtn);\n      return;\n    }\n    var group = item.closest('[data-acc-group]');\n    if (!group) {\n      console.warn('AGY_EXP: no parent [data-acc-group] found for item:', item);\n      return;\n    }\n    var single = group.hasAttribute('data-single');\n    var willOpen = !item.classList.contains('open');\n    console.log('AGY_EXP: single =', single, 'willOpen =', willOpen);\n\n    if (single && willOpen) {\n      $all('[data-acc]', group).forEach(function(other){\n        if (other !== item && other.classList.contains('open')){\n          console.log('AGY_EXP: closing other open accordion item:', other);\n          other.classList.remove('open');\n          var otherA = other.querySelector('[data-acc-a]');\n          if (otherA) otherA.style.maxHeight = '0px';\n        }\n      });\n    }\n\n    item.classList.toggle('open', willOpen);\n    var a = item.querySelector('[data-acc-a]');\n    if (a) {\n      var heightVal = willOpen ? (a.scrollHeight + 'px') : '0px';\n      console.log('AGY_EXP: setting maxHeight of [data-acc-a] to:', heightVal, 'scrollHeight =', a.scrollHeight);\n      a.style.maxHeight = heightVal;\n    } else {\n      console.warn('AGY_EXP: [data-acc-a] element not found inside item:', item);\n    }\n  }\n\n  // --- Why cards ---\n  function handleWhyCard(cardBtn) {\n    console.log('AGY_EXP: handleWhyCard called:', cardBtn);\n    var root = getLocalRoot(cardBtn);\n    var idx = cardBtn.getAttribute('data-why-card');\n    var whyCards = $all('[data-why-card]', root);\n    var whyVizes = $all('[data-why-viz]', root);\n\n    whyCards.forEach(function(c){ c.classList.toggle('on', c === cardBtn); });\n    whyVizes.forEach(function(v){ v.hidden = v.getAttribute('data-why-viz') !== idx; });\n  }\n\n  // --- Powers tabs ---\n  function pwAnimate(panel){\n    panel.classList.remove('pw-anim');\n    void panel.offsetWidth;          /* force reflow so the entrance replays */\n    panel.classList.add('pw-anim');\n    clearTimeout(panel._pwT);\n    panel._pwT = setTimeout(function(){ panel.classList.remove('pw-anim'); }, 1600);\n  }\n\n  function handlePwTab(tabBtn) {\n    console.log('AGY_EXP: handlePwTab called:', tabBtn);\n    var root = getLocalRoot(tabBtn);\n    var idx = tabBtn.getAttribute('data-pw-tab');\n    var pwTabs = $all('[data-pw-tab]', root);\n    var pwPanels = $all('[data-pw-panel]', root);\n    var pwDetails = $all('[data-pw-detail]', root);\n\n    pwTabs.forEach(function(t){ t.classList.toggle('on', t === tabBtn); });\n    pwPanels.forEach(function(p){\n      var on = p.getAttribute('data-pw-panel') === idx;\n      p.hidden = !on;\n      if (on) pwAnimate(p);\n    });\n    pwDetails.forEach(function(d){ d.hidden = d.getAttribute('data-pw-detail') !== idx; });\n  }\n\n  // --- Timeline ---\n  function handleTlStep(stepBtn) {\n    console.log('AGY_EXP: handleTlStep called:', stepBtn);\n    var root = getLocalRoot(stepBtn);\n    var idx = parseInt(stepBtn.getAttribute('data-tl-step'), 10);\n    var tlSteps = $all('[data-tl-step]', root);\n    var tlDetails = $all('[data-tl-detail]', root);\n    var tlMetrics = $all('[data-tl-metrics]', root);\n    var tlLine = root.querySelector('[data-tl-line]');\n    var tlCount = tlSteps.length;\n\n    tlSteps.forEach(function(s, i_idx){\n      s.classList.toggle('on', i_idx === idx);\n      s.classList.toggle('done', i_idx <= idx);\n    });\n    tlDetails.forEach(function(d){ d.hidden = parseInt(d.getAttribute('data-tl-detail'),10) !== idx; });\n    tlMetrics.forEach(function(m){ m.hidden = parseInt(m.getAttribute('data-tl-metrics'),10) !== idx; });\n    if (tlLine) tlLine.style.width = (tlCount > 1 ? (idx/(tlCount-1))*100 : 0) + '%';\n  }\n\n  // --- UGC popup video player ---\n  var modal = null, video = null, muted = false;\n  function closeModal(){\n    if (!modal) return;\n    if (video){ try { video.pause(); } catch(e){} }\n    modal.remove(); modal = null; video = null;\n    document.body.style.overflow = '';\n    document.removeEventListener('keydown', onKey);\n  }\n  function onKey(e){ if (e.key === 'Escape') closeModal(); }\n\n  function handleUgcPlay(cardBtn) {\n    console.log('AGY_EXP: handleUgcPlay called:', cardBtn);\n    var url = cardBtn.getAttribute('data-video');\n    var grad = cardBtn.getAttribute('data-grad');\n    var av = cardBtn.getAttribute('data-av');\n    var handle = cardBtn.getAttribute('data-handle');\n    var cap = cardBtn.getAttribute('data-cap');\n    muted = false;\n    modal = document.createElement('div');\n    modal.className = 'ugc-modal';\n    var media = url\n      ? '<video class=\"ugc-vid\" src=\"'+url+'\" autoplay playsinline loop></video>'\n      : '<div class=\"ugc-vid ugc-vid-ph\" style=\"background:'+grad+';\"><span class=\"ugc-ph-note\">Add a video in the theme editor</span></div>';\n    modal.innerHTML =\n      '<div class=\"ugc-modal-frame\">' + media +\n        '<span class=\"ugc-modal-cap\"><span class=\"ugc-av\" style=\"background:'+grad+';\">'+av+'</span>' +\n        '<span class=\"ugc-cc\"><span class=\"ugc-handle\">'+handle+'</span><span class=\"ugc-cap\">'+cap+'</span></span></span>' +\n        '<button class=\"ugc-modal-mute\" type=\"button\">Mute</button>' +\n        '<button class=\"ugc-modal-close\" type=\"button\" aria-label=\"Close\">\u2715</button>' +\n      '</div>';\n    document.body.appendChild(modal);\n    document.body.style.overflow = 'hidden';\n    document.addEventListener('keydown', onKey);\n    var frame = modal.querySelector('.ugc-modal-frame');\n    video = modal.querySelector('video');\n    var muteBtn = modal.querySelector('.ugc-modal-mute');\n    if (video){\n      video.muted = false;\n      var p = video.play();\n      if (p && p.catch) p.catch(function(){ video.muted = true; muted = true; if(muteBtn) muteBtn.textContent = 'Unmute'; video.play().catch(function(){}); });\n      muteBtn.addEventListener('click', function(){ muted = !muted; video.muted = muted; muteBtn.textContent = muted ? 'Unmute' : 'Mute'; });\n    } else {\n      if (muteBtn) muteBtn.style.display = 'none';\n    }\n    modal.addEventListener('click', function(e){ if (e.target === modal) closeModal(); });\n    frame.addEventListener('click', function(e){ e.stopPropagation(); });\n    modal.querySelector('.ugc-modal-close').addEventListener('click', closeModal);\n  }\n\n  // --- Protocol add (visual feedback) ---\n  function handleProtoAdd(protoAddBtn) {\n    console.log('AGY_EXP: handleProtoAdd called:', protoAddBtn);\n    protoAddBtn.classList.add('added');\n    var orig = protoAddBtn.innerHTML;\n    protoAddBtn.textContent = 'Added \u2713';\n    setTimeout(function(){ protoAddBtn.innerHTML = orig; protoAddBtn.classList.remove('added'); }, 1600);\n  }\n\n  // Global click delegator\n  function onClick(e) {\n    var targetEl = e.target;\n    if (targetEl.nodeType === 3) targetEl = targetEl.parentNode;\n    if (!targetEl || typeof targetEl.closest !== 'function') return;\n\n    var t;\n    if ((t = targetEl.closest('[data-acc-q]'))) {\n      console.log('AGY_EXP: Click matched [data-acc-q]', t);\n      handleAcc(t);\n    } else if ((t = targetEl.closest('[data-why-card]'))) {\n      console.log('AGY_EXP: Click matched [data-why-card]', t);\n      handleWhyCard(t);\n    } else if ((t = targetEl.closest('[data-pw-tab]'))) {\n      console.log('AGY_EXP: Click matched [data-pw-tab]', t);\n      handlePwTab(t);\n    } else if ((t = targetEl.closest('[data-tl-step]'))) {\n      console.log('AGY_EXP: Click matched [data-tl-step]', t);\n      handleTlStep(t);\n    } else if ((t = targetEl.closest('[data-ugc-play]'))) {\n      console.log('AGY_EXP: Click matched [data-ugc-play]', t);\n      handleUgcPlay(t);\n    } else if ((t = targetEl.closest('[data-proto-add]'))) {\n      console.log('AGY_EXP: Click matched [data-proto-add]', t);\n      handleProtoAdd(t);\n    }\n  }\n\n  function boot() {\n    var sections = $all('.bioactive-experience');\n    console.log('AGY_EXP: boot called. Found sections:', sections.length);\n    sections.forEach(function(root){\n      if (root.__experienceInit) return;\n      root.__experienceInit = true;\n      console.log('AGY_EXP: initializing section container:', root.id);\n\n      // Initialize accordion max-heights for items that start open\n      $all('[data-acc].open', root).forEach(function(item){\n        var a = item.querySelector('[data-acc-a]');\n        if (a) {\n          console.log('AGY_EXP: opening default open accordion item:', item);\n          a.style.maxHeight = a.scrollHeight + 'px';\n        }\n      });\n\n      // Initialize default power tab panel animation\n      $all('[data-pw-panel]', root).forEach(function(p){\n        if (!p.hidden) pwAnimate(p);\n      });\n    });\n  }\n\n  document.addEventListener('click', onClick);\n  console.log('AGY_EXP: click listener bound to document');\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', boot);\n  } else {\n    boot();\n  }\n\n  // Support Shopify Theme Editor dynamic section updates\n  document.addEventListener('shopify:section:load', boot);\n})();\n"],
  "mappings": "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",
  "names": []
}
