{
  "version": 3,
  "sources": ["/cdn/shop/t/123/assets/bundle-builder-2.js"],
  "sourcesContent": ["document.addEventListener('DOMContentLoaded', () => {\n\n  const bundleState = {\n    step1: null,\n    step2: null,\n    step3: null\n  };\n\n  const heroSliderState = {\n    step1: { images: [], currentIndex: 0 },\n    step2: { images: [], currentIndex: 0 },\n    step3: { images: [], currentIndex: 0 }\n  };\n\n  const preloadImage = (url) => {\n    if (!url) return;\n    const img = new Image();\n    img.src = url;\n  };\n\n  const navBtns = document.querySelectorAll('.maap-nav-btn');\n  const stepViews = document.querySelectorAll('.maap-step-view');\n  \n  // Tab Switching\n  navBtns.forEach(btn => {\n    btn.addEventListener('click', (e) => {\n      const stepTarget = btn.getAttribute('data-step-nav');\n      if (btn.disabled) return;\n      \n      navBtns.forEach(b => b.classList.remove('is-active'));\n      btn.classList.add('is-active');\n      \n      stepViews.forEach(v => {\n        if (v.getAttribute('data-step-index') === stepTarget) {\n          v.classList.add('is-active');\n        } else {\n          v.classList.remove('is-active');\n        }\n      });\n    });\n  });\n\n  // Full-kit slide: on the bib step, when the chosen jersey and the bib on show are both\n  // kit-builder garments, the first slide is the two worn together, drawn by the kit\n  // builder's renderer (vkit-frame.js in render-only mode). Other pairs keep their photos.\n  const kitConfigEl = document.getElementById('bb-kit-config');\n  const kitConfig = kitConfigEl ? JSON.parse(kitConfigEl.textContent) : null;\n  const kitKeyByHandle = {};\n  if (kitConfig) Object.entries(kitConfig.handles).forEach(([key, handle]) => { kitKeyByHandle[handle] = key; });\n  let kitRendererPromise = null;\n  let kitRequest = 0;\n\n  function loadKitRenderer() {\n    if (!kitRendererPromise) {\n      kitRendererPromise = new Promise((resolve, reject) => {\n        window.KIT_RENDER_ONLY = Object.fromEntries(Object.entries(kitConfig.images).map(([key, img]) => [key, img.photo]));\n        const script = document.createElement('script');\n        script.src = kitConfig.renderer;\n        script.onload = () => window.KIT_RENDERER ? resolve(window.KIT_RENDERER) : reject(new Error('Kit renderer missing'));\n        script.onerror = () => { kitRendererPromise = null; reject(new Error('Kit renderer failed to load')); };\n        document.head.append(script);\n      });\n    }\n    return kitRendererPromise;\n  }\n\n  function updateHeroCounter(step) {\n    const slider = document.getElementById(`maap-hero-slider-${step}`);\n    const counter = document.getElementById(`maap-counter-${step}`);\n    if (!slider || !counter) return;\n    const slides = slider.querySelectorAll('.maap-hero-slide');\n    const index = Math.round(slider.scrollLeft / (slider.clientWidth || 1));\n    counter.textContent = `${Math.min(index, slides.length - 1) + 1} / ${slides.length}`;\n    updateHeroMinis(step);\n  }\n\n  // Miniatures of the gallery's slides in the hero's bottom-left corner; the one on\n  // show is marked and a tap jumps to it. Rebuilt whenever the slides change.\n  function buildHeroMinis(step) {\n    const slider = document.getElementById(`maap-hero-slider-${step}`);\n    const hero = document.getElementById(`maap-hero-container-${step}`);\n    if (!slider || !hero) return;\n    let minis = hero.querySelector('.maap-hero-minis');\n    if (!minis) {\n      minis = document.createElement('div');\n      minis.className = 'maap-hero-minis';\n      hero.append(minis);\n    }\n    const slides = [...slider.querySelectorAll('.maap-hero-slide')];\n    minis.hidden = slides.length < 2;\n    minis.replaceChildren(...slides.map((slide, index) => {\n      const button = document.createElement('button');\n      button.type = 'button';\n      button.className = 'maap-hero-mini';\n      button.setAttribute('aria-label', `${index + 1} / ${slides.length}`);\n      const source = slide.querySelector('canvas');\n      if (source) {\n        const mini = document.createElement('canvas');\n        mini.width = mini.height = 120;\n        mini.getContext('2d').drawImage(source, 0, 0, 120, 120);\n        button.append(mini);\n      } else {\n        const img = document.createElement('img');\n        const src = slide.querySelector('img')?.getAttribute('src') || '';\n        img.src = src.replace(/([?&])width=\\d+/, '$1width=120');\n        img.alt = '';\n        img.loading = 'lazy';\n        button.append(img);\n      }\n      button.addEventListener('click', () => {\n        slider.scrollTo({ left: index * slider.clientWidth, behavior: 'smooth' });\n      });\n      return button;\n    }));\n    updateHeroMinis(step);\n  }\n\n  function updateHeroMinis(step) {\n    const slider = document.getElementById(`maap-hero-slider-${step}`);\n    const minis = document.querySelectorAll(`#maap-hero-container-${step} .maap-hero-mini`);\n    if (!slider || !minis.length) return;\n    const index = Math.round(slider.scrollLeft / (slider.clientWidth || 1));\n    minis.forEach((mini, i) => mini.classList.toggle('is-active', i === index));\n  }\n\n  document.querySelectorAll('.maap-hero-slider').forEach(slider => {\n    const step = slider.id.split('-').pop();\n    new MutationObserver(() => buildHeroMinis(step)).observe(slider, { childList: true, subtree: true });\n    buildHeroMinis(step);\n  });\n\n  // Scroll snapping keeps the snapped slide in view when slides are added or removed,\n  // so positions are always set explicitly.\n  const slideIndex = slider => Math.round(slider.scrollLeft / (slider.clientWidth || 1));\n  const goToSlide = (slider, index) => slider.scrollTo({ left: index * slider.clientWidth, behavior: 'instant' });\n\n  // The kit pair for the bib on show, or null when either garment isn't a kit-builder garment.\n  function kitPair(bibThumb) {\n    if (!kitConfig || !bibThumb || !bundleState.step1) return null;\n    const jersey = kitKeyByHandle[bundleState.step1.handle];\n    const bib = kitKeyByHandle[bibThumb.dataset.handle];\n    return jersey && bib && jersey[0] === 'j' && bib[0] === 'b' ? { jersey, bib, bibThumb } : null;\n  }\n\n  function renderKit(pair) {\n    return loadKitRenderer().then(renderer => {\n      const model = renderer.render(pair.jersey, pair.bib);\n      return model.ready.then(() => {\n        const canvas = model.querySelector('canvas');\n        canvas.setAttribute('role', 'img');\n        canvas.setAttribute('aria-label', `${bundleState.step1.productTitle} + ${pair.bibThumb.querySelector('img')?.alt || ''}`);\n        return canvas;\n      });\n    });\n  }\n\n  function kitSlide(canvas) {\n    const slide = document.createElement('div');\n    slide.className = 'maap-hero-slide maap-hero-slide--kit';\n    slide.append(canvas);\n    return slide;\n  }\n\n  // Replace a step's gallery in one go (kit slide first when given) and open it on\n  // slide 1. Without a kit, the current photos stay up until the new first photo has\n  // loaded (max 800ms), so switching products doesn't flash an empty frame.\n  const heroRequests = {};\n  function firstImageReady(url) {\n    const img = new Image();\n    img.src = url;\n    return Promise.race([img.decode().catch(() => {}), new Promise(resolve => setTimeout(resolve, 800))]);\n  }\n  function setHeroSlides(step, images, kitCanvas) {\n    const slider = document.getElementById(`maap-hero-slider-${step}`);\n    if (!slider || images.length === 0) return;\n    const request = heroRequests[step] = (heroRequests[step] || 0) + 1;\n    (kitCanvas ? Promise.resolve() : firstImageReady(images[0])).then(() => {\n      if (request !== heroRequests[step]) return;\n      slider.innerHTML = images.map((url, i) => `\n          <div class=\"maap-hero-slide\">\n            <img src=\"${url}\" alt=\"\" loading=\"${i === 0 && !kitCanvas ? 'eager' : 'lazy'}\">\n          </div>\n        `).join('');\n      if (kitCanvas) slider.prepend(kitSlide(kitCanvas));\n      goToSlide(slider, 0);\n      updateHeroCounter(step);\n    });\n  }\n\n  // Bib step gallery. With a kit pair, the kit is drawn first and the gallery swapped\n  // once it is ready, so the shopper never sees the bib photo flash before the kit.\n  // A slow first render (renderer + photos still downloading) falls back to the photos\n  // and slips the kit in front when it arrives.\n  function showBibGallery(bibThumb, images) {\n    const request = ++kitRequest;\n    const pair = kitPair(bibThumb);\n    if (!pair) { setHeroSlides('2', images); return; }\n    let shown = false;\n    const fallback = setTimeout(() => {\n      if (request !== kitRequest) return;\n      shown = true;\n      setHeroSlides('2', images);\n    }, 1500);\n    renderKit(pair).then(canvas => {\n      if (request !== kitRequest) return;\n      clearTimeout(fallback);\n      const slider = document.getElementById('maap-hero-slider-2');\n      const index = slideIndex(slider);\n      // Still on the first photo (or the photos are still swapping in): rebuild with the kit first.\n      if (!shown || index === 0) { setHeroSlides('2', images, canvas); return; }\n      slider.prepend(kitSlide(canvas));\n      goToSlide(slider, index + 1);\n      updateHeroCounter('2');\n    }).catch(() => {\n      if (request !== kitRequest) return;\n      clearTimeout(fallback);\n      if (!shown) setHeroSlides('2', images);\n    });\n  }\n\n  // The chosen jersey changed: redraw the kit slide in place (no remove/re-add flash).\n  function updateKitSlide() {\n    const request = ++kitRequest;\n    const slider = document.getElementById('maap-hero-slider-2');\n    if (!slider || !kitConfig) return;\n    const old = slider.querySelector('.maap-hero-slide--kit');\n    const pair = kitPair(document.querySelector('.maap-thumb[data-step=\"2\"].is-active'));\n    if (!pair) {\n      if (old) {\n        const index = slideIndex(slider);\n        old.remove();\n        goToSlide(slider, Math.max(index - 1, 0));\n        updateHeroCounter('2');\n      }\n      return;\n    }\n    renderKit(pair).then(canvas => {\n      if (request !== kitRequest) return;\n      if (old && old.isConnected) { old.replaceChildren(canvas); return; }\n      const index = slideIndex(slider);\n      slider.prepend(kitSlide(canvas));\n      goToSlide(slider, index === 0 ? 0 : index + 1);\n      updateHeroCounter('2');\n    }).catch(() => {});\n  }\n\n  // Thumbnail clicks (Change Hero Image & Product Panel)\n  const thumbs = document.querySelectorAll('.maap-thumb');\n  // The info column shows the chosen product's \"selected\" block only while the\n  // gallery is on that product; browsing another one shows its panel so the\n  // photos and the info never describe different products.\n  function syncSelectedBlock(step, productId) {\n    const selection = bundleState[`step${step}`];\n    if (!selection) return;\n    const showSelected = String(selection.productId) === String(productId);\n    const selectedBlock = document.getElementById(`maap-selected-${step}`);\n    if (selectedBlock) selectedBlock.style.display = showSelected ? 'block' : 'none';\n    document.querySelectorAll(`.maap-product-panel[id^=\"maap-panel-${step}-\"]`)\n      .forEach(p => p.style.display = showSelected ? 'none' : '');\n  }\n\n  // Picking another colour once a product is chosen swaps the choice when the same\n  // size is in stock in that colour; otherwise the choice is cleared (and the later\n  // steps locked) so the shopper picks a size before moving on.\n  function switchSelection(step, productId) {\n    const selection = bundleState[`step${step}`];\n    if (!selection || String(selection.productId) === String(productId)) return;\n    const panel = document.getElementById(`maap-panel-${step}-${productId}`);\n    const sameSize = panel && [...panel.querySelectorAll('.maap-size-input')]\n      .find(input => !input.disabled && input.getAttribute('data-variant-title') === selection.variantTitle);\n    if (sameSize) {\n      sameSize.checked = true;\n      sameSize.dispatchEvent(new Event('change', { bubbles: true }));\n      selectProduct(step, productId, { advance: false });\n    } else {\n      clearSelection(step);\n    }\n  }\n\n  thumbs.forEach(thumb => {\n    thumb.addEventListener('click', (e) => {\n      const productId = thumb.getAttribute('data-product-id');\n      const step = thumb.getAttribute('data-step');\n      const imagesString = thumb.getAttribute('data-images') || thumb.getAttribute('data-hero-img') || '';\n      \n      const imagesArray = imagesString.split(',').map(url => url.trim()).filter(url => url.length > 0);\n      \n      heroSliderState[`step${step}`].images = imagesArray;\n      heroSliderState[`step${step}`].currentIndex = 0;\n      \n      // Update Hero Slider & Counter\n      if (step === '2') showBibGallery(thumb, imagesArray);\n      else setHeroSlides(step, imagesArray);\n\n      // Preload the rest of the images in the background so sliding is instant\n      imagesArray.forEach(url => preloadImage(url));\n\n      // Update Thumbnails Active State\n      const stepThumbs = document.querySelectorAll(`.maap-thumb[data-step=\"${step}\"]`);\n      stepThumbs.forEach(t => t.classList.remove('is-active'));\n      thumb.classList.add('is-active');\n\n      // Update Info Panels (Show selected product)\n      const stepPanels = document.querySelectorAll(`.maap-product-panel[id^=\"maap-panel-${step}-\"]`);\n      stepPanels.forEach(p => p.classList.remove('is-active'));\n      const targetPanel = document.getElementById(`maap-panel-${step}-${productId}`);\n      if (targetPanel) {\n        targetPanel.classList.add('is-active');\n      }\n\n      switchSelection(step, productId);\n      syncSelectedBlock(step, productId);\n    });\n  });\n\n  // Pre-load the large hero images intelligently as the user scrolls\n  if ('IntersectionObserver' in window) {\n    const thumbObserver = new IntersectionObserver((entries, observer) => {\n      entries.forEach(entry => {\n        if (entry.isIntersecting) {\n          const thumb = entry.target;\n          const imagesString = thumb.getAttribute('data-images') || thumb.getAttribute('data-hero-img') || '';\n          const imagesArray = imagesString.split(',').map(url => url.trim()).filter(url => url.length > 0);\n          if (imagesArray.length > 0) {\n            preloadImage(imagesArray[0]); // Load the main hover image in the background\n          }\n          observer.unobserve(thumb);\n        }\n      });\n    }, { rootMargin: '300px' });\n\n    thumbs.forEach(thumb => {\n      thumbObserver.observe(thumb);\n    });\n  }\n\n  // Slider Track Navigation & Scroll Tracking\n  const heroSliders = document.querySelectorAll('.maap-hero-slider');\n  \n  heroSliders.forEach(slider => {\n    let scrollTimeout;\n    slider.addEventListener('scroll', () => {\n      if (scrollTimeout) clearTimeout(scrollTimeout);\n      scrollTimeout = setTimeout(() => {\n        const step = slider.id.split('-').pop();\n        const slides = slider.querySelectorAll('.maap-hero-slide');\n        const index = Math.round(slider.scrollLeft / slider.clientWidth);\n        const heroCounter = document.getElementById(`maap-counter-${step}`);\n        if (heroCounter && slides.length > 0) {\n          heroCounter.textContent = `${index + 1} / ${slides.length}`;\n        }\n        updateHeroMinis(step);\n      }, 50);\n    }, { passive: true });\n  });\n\n  const heroNavBtns = document.querySelectorAll('.maap-hero-nav');\n  heroNavBtns.forEach(btn => {\n    btn.addEventListener('click', (e) => {\n      const step = btn.getAttribute('data-step');\n      const slider = document.getElementById(`maap-hero-slider-${step}`);\n      \n      if (!slider) return;\n      \n      const slideWidth = slider.clientWidth;\n      \n      if (btn.classList.contains('maap-hero-next')) {\n        slider.scrollBy({ left: slideWidth, behavior: 'smooth' });\n      } else if (btn.classList.contains('maap-hero-prev')) {\n        slider.scrollBy({ left: -slideWidth, behavior: 'smooth' });\n      }\n    });\n  });\n\n  // Initialize first view for each step so state is correct at page load\n  setTimeout(() => {\n    const stepViewsLocal = document.querySelectorAll('.maap-step-view');\n    stepViewsLocal.forEach(view => {\n      const firstActiveThumb = view.querySelector('.maap-thumb.is-active');\n      if (firstActiveThumb) {\n        firstActiveThumb.click();\n      }\n    });\n\n    if (typeof checkBundleCompletion === 'function') {\n      checkBundleCompletion();\n    }\n\n    // Auto-select items already in cart\n    fetch(window.Shopify.routes.root + 'cart.js')\n      .then(r => r.json())\n      .then(cart => {\n        if (!cart || !cart.items || cart.items.length === 0) return;\n\n        let selectedStep1 = false;\n        let selectedStep2 = false;\n        let selectedStep3 = false;\n\n        cart.items.forEach(cartItem => {\n          // Items already in a bundle can't be converted; preselecting them only\n          // re-adds the same sizes, which fails once stock is used up.\n          if (cartItem.properties?._bundle_id) return;\n          // Look for this variant in the page's radio buttons\n          const radioInput = document.querySelector(`.maap-size-input[value=\"${cartItem.variant_id}\"]`);\n          if (radioInput && !radioInput.disabled) {\n            radioInput.checked = true;\n            \n            // Trigger the change event to enable the button\n            const changeEvent = new Event('change', { bubbles: true });\n            radioInput.dispatchEvent(changeEvent);\n            \n            // Find the select button and click it\n            const parentPanel = radioInput.closest('.maap-product-panel');\n            if (parentPanel) {\n              const selectBtn = parentPanel.querySelector('.maap-select-btn');\n              if (selectBtn) {\n                 selectBtn.click();\n                 \n                 // Track which steps got auto-filled\n                 const step = selectBtn.getAttribute('data-step');\n                 if (step === '1') selectedStep1 = true;\n                 if (step === '2') selectedStep2 = true;\n                 if (step === '3') selectedStep3 = true;\n              }\n            }\n          }\n        });\n        \n        // Auto-navigate to first unselected step\n        const hasStep3InDOM = !!document.querySelector('.maap-nav-btn[data-step-nav=\"3\"]');\n        if (selectedStep1 && !selectedStep2) {\n            const step2Nav = document.querySelector('.maap-nav-btn[data-step-nav=\"2\"]');\n            if (step2Nav && !step2Nav.disabled) {\n                step2Nav.click();\n            }\n        } else if (hasStep3InDOM && selectedStep1 && selectedStep2 && !selectedStep3) {\n            const step3Nav = document.querySelector('.maap-nav-btn[data-step-nav=\"3\"]');\n            if (step3Nav && !step3Nav.disabled) {\n                step3Nav.click();\n            }\n        }\n      })\n      .catch(e => console.error('Error pre-selecting cart items', e));\n\n  }, 100);\n\n  // Size Selection Handling\n  const sizeInputs = document.querySelectorAll('.maap-size-input');\n  sizeInputs.forEach(input => {\n    input.addEventListener('change', (e) => {\n      const parentPanel = e.target.closest('.maap-product-panel');\n      const selectBtn = parentPanel.querySelector('.maap-select-btn');\n      selectBtn.disabled = false;\n      selectBtn.textContent = window.BUNDLE_BUILDER_TRANSLATIONS ? window.BUNDLE_BUILDER_TRANSLATIONS.select_size : \"SELECT SIZE\";\n    });\n  });\n\n  // Choose a product + size for a step. `advance` moves on to the next step (the\n  // Select button and cart preselect); a colour swap keeps the shopper where they are.\n  function selectProduct(step, productId, { advance = true } = {}) {\n    const panel = document.getElementById(`maap-panel-${step}-${productId}`);\n    const selectedInput = panel && panel.querySelector('.maap-size-input:checked');\n    if (!selectedInput || selectedInput.disabled) return;\n\n    const variantId = selectedInput.value;\n    const variantTitle = selectedInput.getAttribute('data-variant-title');\n    const productTitle = selectedInput.getAttribute('data-product-title');\n\n    // Save to state\n    bundleState[`step${step}`] = {\n      id: variantId,\n      productId: productId,\n      handle: document.querySelector(`.maap-thumb[data-step=\"${step}\"][data-product-id=\"${productId}\"]`)?.dataset.handle,\n      productTitle: productTitle,\n      variantTitle: variantTitle,\n      price: parseInt(selectedInput.getAttribute('data-price') || '0', 10),\n      vendor: selectedInput.getAttribute('data-vendor'),\n      imgUrl: selectedInput.getAttribute('data-img')\n    };\n\n    // Hide all panels, show selected panel UI\n    const allPanels = document.querySelectorAll(`.maap-product-panel[id^=\"maap-panel-${step}-\"]`);\n    allPanels.forEach(p => p.style.display = 'none');\n\n    const selectedBlock = document.getElementById(`maap-selected-${step}`);\n    selectedBlock.querySelector('.maap-selected-title').textContent = productTitle;\n    const sizeLabel = window.BUNDLE_BUILDER_TRANSLATIONS ? window.BUNDLE_BUILDER_TRANSLATIONS.size : \"Size:\";\n    selectedBlock.querySelector('.maap-selected-variant').textContent = `${sizeLabel} ${variantTitle}`;\n    selectedBlock.style.display = 'block';\n\n    // Keep the gallery on the chosen product (cart preselect selects without a thumb click)\n    const chosenThumb = document.querySelector(`.maap-thumb[data-step=\"${step}\"][data-product-id=\"${productId}\"]`);\n    if (chosenThumb && !chosenThumb.classList.contains('is-active')) chosenThumb.click();\n\n    // Unlock the next step (and move to it when advancing)\n    const nextNav = document.querySelector(`.maap-nav-btn[data-step-nav=\"${Number(step) + 1}\"]`);\n    if (nextNav) {\n      nextNav.disabled = false;\n      if (advance) nextNav.click();\n    }\n\n    const infoContainer = document.getElementById(`maap-info-container-${step}`);\n    if (infoContainer && advance) {\n      infoContainer.classList.remove('is-open');\n    }\n\n    if (step === '1') updateKitSlide();\n    checkBundleCompletion();\n  }\n\n  // Clear a step's choice: panels back, sizes unchecked, and the later steps locked.\n  function clearSelection(step) {\n    bundleState[`step${step}`] = null;\n\n    document.getElementById(`maap-selected-${step}`).style.display = 'none';\n    const allPanels = document.querySelectorAll(`.maap-product-panel[id^=\"maap-panel-${step}-\"]`);\n    allPanels.forEach(p => p.style.display = '');\n\n    document.querySelectorAll(`.maap-product-panel[id^=\"maap-panel-${step}-\"] .maap-size-input`)\n      .forEach(i => i.checked = false);\n\n    const selectBtnsForStep = document.querySelectorAll(`.maap-select-btn[data-step=\"${step}\"]`);\n    selectBtnsForStep.forEach(b => {\n      b.disabled = true;\n      b.textContent = window.BUNDLE_BUILDER_TRANSLATIONS ? window.BUNDLE_BUILDER_TRANSLATIONS.select_size : 'SELECT SIZE';\n    });\n\n    lockStepsAfter(step);\n    if (step === '1') updateKitSlide();\n    checkBundleCompletion();\n  }\n\n  function lockStepsAfter(step) {\n    document.querySelectorAll('.maap-nav-btn[data-step-nav]').forEach(nav => {\n      if (Number(nav.getAttribute('data-step-nav')) > Number(step)) nav.disabled = true;\n    });\n  }\n\n  // \"SELECT\" Button Click\n  const selectBtns = document.querySelectorAll('.maap-select-btn');\n  selectBtns.forEach(btn => {\n    btn.addEventListener('click', () => {\n      selectProduct(btn.getAttribute('data-step'), btn.getAttribute('data-product-id'));\n    });\n  });\n\n  // \"Edit Selection\" Click\n  const editBtns = document.querySelectorAll('.maap-edit-btn');\n  editBtns.forEach(btn => {\n    btn.addEventListener('click', (e) => {\n      const step = btn.getAttribute('data-step');\n      bundleState[`step${step}`] = null;\n      \n      document.getElementById(`maap-selected-${step}`).style.display = 'none';\n      \n      const allPanels = document.querySelectorAll(`.maap-product-panel[id^=\"maap-panel-${step}-\"]`);\n      allPanels.forEach(p => p.style.display = '');\n\n      lockStepsAfter(step);\n      if (step === '1') updateKitSlide();\n      checkBundleCompletion();\n    });\n  });\n\n  // Mobile Drawer Toggle Logic\n  const mobileFloatBtns = document.querySelectorAll('.maap-mobile-float-btn');\n  mobileFloatBtns.forEach(btn => {\n    btn.addEventListener('click', () => {\n      const step = btn.getAttribute('data-step');\n      const infoContainer = document.getElementById(`maap-info-container-${step}`);\n      if (infoContainer) {\n        infoContainer.classList.add('is-open');\n      }\n    });\n  });\n\n  const mobileCloseBtns = document.querySelectorAll('.maap-mobile-close-btn');\n  mobileCloseBtns.forEach(btn => {\n    btn.addEventListener('click', () => {\n      const step = btn.getAttribute('data-step');\n      const infoContainer = document.getElementById(`maap-info-container-${step}`);\n      if (infoContainer) {\n        infoContainer.classList.remove('is-open');\n      }\n    });\n  });\n\n  // Allow bottom bar steps to be clicked to switch views\n  const wrap1 = document.getElementById('maap-summary-wrap-1');\n  const wrap2 = document.getElementById('maap-summary-wrap-2');\n  const wrap3 = document.getElementById('maap-summary-wrap-3');\n  if (wrap1) {\n    wrap1.style.cursor = 'pointer';\n    wrap1.addEventListener('click', () => {\n      const navBtn = document.querySelector('.maap-nav-btn[data-step-nav=\"1\"]');\n      if (navBtn && !navBtn.disabled) navBtn.click();\n    });\n  }\n  if (wrap2) {\n    wrap2.style.cursor = 'pointer';\n    wrap2.addEventListener('click', () => {\n      const navBtn = document.querySelector('.maap-nav-btn[data-step-nav=\"2\"]');\n      if (navBtn && !navBtn.disabled) navBtn.click();\n    });\n  }\n  if (wrap3) {\n    wrap3.style.cursor = 'pointer';\n    wrap3.addEventListener('click', () => {\n      const navBtn = document.querySelector('.maap-nav-btn[data-step-nav=\"3\"]');\n      if (navBtn && !navBtn.disabled) navBtn.click();\n    });\n  }\n\n  // Summary Remove Button Click\n  const removeBtns = document.querySelectorAll('.maap-summary-item-remove');\n  removeBtns.forEach(btn => {\n    btn.addEventListener('click', (e) => {\n      e.stopPropagation(); // prevent clicking the wrapper\n      const step = btn.getAttribute('data-step');\n      \n      clearSelection(step);\n    });\n  });\n\n  function checkBundleCompletion() {\n    const atcBtn = document.getElementById('maap-add-to-cart-btn');\n    const emptyMsg = document.getElementById('maap-summary-empty-msg');\n    const hasStep3InDOM = !!document.getElementById('maap-summary-item-3');\n\n    // Check if anything is selected\n    if (bundleState.step1 || bundleState.step2 || (hasStep3InDOM && bundleState.step3)) {\n      emptyMsg.style.display = 'none';\n    } else {\n      emptyMsg.style.display = 'block';\n    }\n\n    const stepsToCheck = hasStep3InDOM ? ['1', '2', '3'] : ['1', '2'];\n\n    stepsToCheck.forEach(step => {\n      const thumb = document.getElementById(`maap-summary-item-${step}`);\n      const title = document.getElementById(`maap-summary-title-${step}`);\n      const removeBtn = document.querySelector(`.maap-summary-item-remove[data-step=\"${step}\"]`);\n      const state = bundleState[`step${step}`];\n      \n      const stepName = window.BUNDLE_BUILDER_TRANSLATIONS ? window.BUNDLE_BUILDER_TRANSLATIONS[`step_item${step}`] : `${step}. Item`;\n\n      if (!thumb) return;\n\n      if (state) {\n        if(removeBtn) removeBtn.style.display = 'flex';\n        thumb.innerHTML = `<img src=\"${state.imgUrl}\" alt=\"\">`;\n        thumb.className = 'maap-summary-item is-filled';\n        thumb.style.width = '50px'; thumb.style.height = '50px'; thumb.style.minWidth = '50px';\n        thumb.style.border = '1px solid #000';\n        title.textContent = state.productTitle;\n        title.style.color = '#000';\n      } else {\n        if(removeBtn) removeBtn.style.display = 'none';\n        thumb.innerHTML = '';\n        thumb.className = 'maap-summary-item';\n        thumb.style.width = '50px'; thumb.style.height = '50px'; thumb.style.minWidth = '50px';\n        thumb.style.border = '1px dashed #ccc';\n        title.textContent = stepName;\n        title.style.color = '#999';\n      }\n    });\n\n    const priceSummary = document.getElementById('maap-bundle-price-summary');\n\n    const isComplete = hasStep3InDOM ? (bundleState.step1 && bundleState.step2 && bundleState.step3) : (bundleState.step1 && bundleState.step2);\n\n    if (isComplete) {\n      atcBtn.disabled = false;\n      \n      const p1 = bundleState.step1.price;\n      const v1 = bundleState.step1.vendor;\n      const p2 = bundleState.step2.price;\n      const p3 = hasStep3InDOM ? bundleState.step3.price : 0;\n      \n      const combined = p1 + p2 + p3;\n      let discountMod = 0.85; // 15% off\n      if (v1 === 'velodrom' || v1 === 'velodrom-vcc') {\n        discountMod = 0.8; // 20% off\n      }\n      if (Number.isFinite(window.BUNDLE_DISCOUNT_PERCENT)) {\n        discountMod = 1 - Math.min(100, Math.max(0, window.BUNDLE_DISCOUNT_PERCENT)) / 100;\n      }\n      // If it's a 3-item socks bundle, you might want a different discount here, \n      // but matching existing logic and potentially relying on Shopify scripts for exact pricing.\n      \n      const discounted = combined * discountMod;\n      const discountPct = Math.round((1 - discountMod) * 100);\n      \n      // format money (e.g. 169.00 -> 169,00)\n      const formatMoney = (cents) => {\n        return (cents / 100).toFixed(2).replace('.', ',');\n      };\n\n      priceSummary.innerHTML = discountPct > 0\n        ? `<span class=\"maap-discount-badge\">${discountPct}% OFF</span> <span class=\"maap-final-price\">\u20AC${formatMoney(discounted)}</span> <s class=\"maap-old-price\">\u20AC${formatMoney(combined)}</s>`\n        : `<span class=\"maap-final-price\">\u20AC${formatMoney(combined)}</span>`;\n      priceSummary.style.display = 'flex';\n    } else {\n      atcBtn.disabled = true;\n      if (priceSummary) priceSummary.style.display = 'none';\n    }\n  }\n\n  // ADD TO CART Logc\n  const atcBtn = document.getElementById('maap-add-to-cart-btn');\n  if (atcBtn) {\n    atcBtn.addEventListener('click', () => {\n      const hasStep3InDOM = !!document.getElementById('maap-summary-item-3');\n      const isComplete = hasStep3InDOM ? (bundleState.step1 && bundleState.step2 && bundleState.step3) : (bundleState.step1 && bundleState.step2);\n      \n      if (!isComplete) return;\n      \n      atcBtn.disabled = true;\n      atcBtn.textContent = window.BUNDLE_BUILDER_TRANSLATIONS ? window.BUNDLE_BUILDER_TRANSLATIONS.adding : 'ADDING...';\n\n      const timestamp = new Date().getTime();\n      const bundleId = `bundle_${timestamp}`;\n\n      const cartItems = [\n        {\n          id: bundleState.step1.id,\n          quantity: 1,\n          properties: {\n            '_bundle_id': bundleId,\n            'Estimated Delivery': '...'\n          }\n        },\n        {\n          id: bundleState.step2.id,\n          quantity: 1,\n          properties: {\n            '_bundle_id': bundleId,\n            'Estimated Delivery': '...'\n          }\n        }\n      ];\n\n      if (hasStep3InDOM && bundleState.step3) {\n        cartItems.push({\n          id: bundleState.step3.id,\n          quantity: 1,\n          properties: {\n            '_bundle_id': bundleId,\n            'Estimated Delivery': '...'\n          }\n        });\n      }\n\n      let updatesObj = {};\n      const readCartResponse = async (response) => {\n        const data = await response.json();\n        if (!response.ok || data.status >= 400) throw new Error(data.description || data.message || 'Unable to update cart');\n        return data;\n      };\n      const payload = {\n        items: cartItems\n      };\n\n      const cartUI = document.querySelector('cart-drawer') || document.querySelector('cart-notification');\n      if (cartUI && typeof cartUI.getSectionsToRender === 'function') {\n        payload.sections = cartUI.getSectionsToRender().map((s) => s.id).join(',');\n        payload.sections_url = window.location.pathname;\n      } else {\n        payload.sections = 'cart-drawer,cart-icon-bubble';\n        payload.sections_url = window.location.pathname;\n      }\n\n      // Track 'add' event for bundle telemetry\n      try {\n        let trackingBrand = window.BUNDLE_BRAND || 'unknown';\n        let trackingType = window.BUNDLE_TYPE || 'kit'; \n        let trackingSource = document.querySelector('cart-drawer')?.classList.contains('active') ? 'cart_drawer' : 'product_page';\n        let u = new URLSearchParams(window.location.search).get('utm_source') || sessionStorage.getItem('vcc_utm') || '';\n        if (u) sessionStorage.setItem('vcc_utm', u);\n        let trackingDevice = window.innerWidth < 768 ? 'mobile' : 'desktop';\n        fetch('https://www.velodrom.cc/internal/api/telemetry/bundle-clicks', {\n          method: 'POST',\n          headers: { 'Content-Type': 'application/json' },\n          keepalive: true,\n          body: JSON.stringify({ brand: trackingBrand, bundle_type: trackingType, source: trackingSource, event_type: 'add', device_type: trackingDevice, utm_source: u })\n        }).catch(() => {});\n      } catch(e) {}\n\n      let restoreObj = {};\n      const updateCart = (updates) => fetch(window.Shopify.routes.root + 'cart/update.js', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },\n        body: JSON.stringify({ updates })\n      }).then(readCartResponse);\n\n      fetch(window.Shopify.routes.root + 'cart.js')\n        .then(readCartResponse)\n        .then(async cartState => {\n          cartState.items.forEach(item => {\n            const matching = cartItems.some(selected => selected.id == item.variant_id);\n            if (matching && !item.properties?._bundle_id) {\n              updatesObj[item.key] = Math.max(0, item.quantity - 1);\n              restoreObj[item.variant_id] = (restoreObj[item.variant_id] || 0) + 1;\n            }\n          });\n          // Convert loose items first: when a size is down to its last unit, the\n          // loose copy holds that unit and Shopify rejects the bundle add (422).\n          if (Object.keys(updatesObj).length) await updateCart(updatesObj);\n          try {\n            return await fetch(window.Shopify.routes.root + 'cart/add.js', {\n              method: 'POST',\n              headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },\n              body: JSON.stringify(payload)\n            }).then(readCartResponse);\n          } catch (error) {\n            // Put the loose items back so a failed bundle never empties the cart.\n            const restore = Object.entries(restoreObj).map(([id, quantity]) => ({ id: Number(id), quantity }));\n            if (restore.length) {\n              await fetch(window.Shopify.routes.root + 'cart/add.js', {\n                method: 'POST',\n                headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },\n                body: JSON.stringify({ items: restore })\n              }).catch(() => {});\n            }\n            throw error;\n          }\n        })\n      .then(data => {\n        if (!data) return;\n        atcBtn.textContent = window.BUNDLE_BUILDER_TRANSLATIONS ? window.BUNDLE_BUILDER_TRANSLATIONS.added : 'ADDED!';\n        const cartDrawer = document.querySelector('cart-drawer');\n        if (cartDrawer) {\n          if (cartDrawer.classList.contains('is-empty')) cartDrawer.classList.remove('is-empty');\n          const d = cartDrawer.querySelector('.drawer__inner');\n          if (d && d.classList.contains('is-empty')) d.classList.remove('is-empty');\n\n          if (data.sections) {\n             cartDrawer.renderContents(data);\n             if (window.publish && window.PUB_SUB_EVENTS) {\n                window.publish(window.PUB_SUB_EVENTS.cartUpdate, { source: 'bundle-builder', cartData: data });\n             }\n          }\n          if (typeof window.recalculateCartDates === 'function') {\n            setTimeout(window.recalculateCartDates, 500);\n          }\n        } else {\n          window.location.href = window.Shopify.routes.root + 'cart';\n        }\n        \n        setTimeout(() => {\n          atcBtn.textContent = window.BUNDLE_BUILDER_TRANSLATIONS?.add_to_cart || 'ADD TO CART';\n          atcBtn.disabled = false;\n          \n          // Clear bundle UI\n          bundleState.step1 = null;\n          bundleState.step2 = null;\n          bundleState.step3 = null;\n          ['1', '2', '3'].forEach(step => {\n            const selectedElem = document.getElementById(`maap-selected-${step}`);\n            if (selectedElem) selectedElem.style.display = 'none';\n          });\n          document.querySelectorAll('.maap-product-panel').forEach(p => p.style.display = '');\n          document.querySelectorAll('.maap-size-input:checked').forEach(i => i.checked = false);\n          document.querySelectorAll('.maap-select-btn').forEach(b => {\n             b.disabled = true;\n             b.textContent = window.BUNDLE_BUILDER_TRANSLATIONS ? window.BUNDLE_BUILDER_TRANSLATIONS.select_size : 'SELECT SIZE';\n          });\n          // Switch back to Step 1 automatically\n          const step1Nav = document.querySelector('.maap-nav-btn[data-step-nav=\"1\"]');\n          if (step1Nav) step1Nav.click();\n\n          checkBundleCompletion();\n        }, 2000);\n      })\n      .catch((error) => {\n        console.error('Error adding bundle:', error);\n        const genericError = window.BUNDLE_BUILDER_TRANSLATIONS ? window.BUNDLE_BUILDER_TRANSLATIONS.error : 'There was an issue adding your bundle.';\n        // Shopify's reason (e.g. last unit already in the cart) is localized and actionable.\n        alert(error?.message && error.message !== 'Unable to update cart' && !(error instanceof TypeError) ? genericError + '\\n\\n' + error.message : genericError);\n        atcBtn.disabled = false;\n        atcBtn.textContent = window.BUNDLE_BUILDER_TRANSLATIONS ? window.BUNDLE_BUILDER_TRANSLATIONS.add_to_cart : 'ADD TO CART';\n      });\n    });\n  }\n});\n"],
  "mappings": "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",
  "names": ["atcBtn"]
}
