{
  "version": 3,
  "sources": ["/cdn/shop/files/ai-buybox-simple.js?cb=1780240655"],
  "sourcesContent": ["/* =====================================================================\n   LIVFRESH Buy Box \u2014 SIMPLE (Stacked, No Tubes) \u2014 vanilla JS, no deps\n   Upload to Shopify Files; load via {{ 'ai-buybox-simple.js' | file_url }}.\n   Reads window.AI_BUYBOX_SIMPLE_CONFIG. Mounts into .ai-buybox-simple.\n\n   Port of the Claude Design handoff \"LIVFRESH Buy Box - Simple.html\"\n   (Stacked.html?layout=none&mode=subscribe / Version C \"No tubes\").\n\n   Behavior matches the prototype's React component:\n     - Underline mode tabs (Subscribe & Save / One-Time Purchase)\n     - Stacked supply rows: radio + left copy + right price (now/was/per-brushing)\n     - Subscribe mode: \"Buy 1 / Buy 2, Get 1 Free / Buy 3, Get 2 Free\" copy,\n       \"Ships every\u2026\" sublines, floating savings badges\n     - One-Time mode: \"One/Three/Five Pack\" + \"Includes N tubes\", no badges\n     - Welcome-gifts unlock journey, gifts unlock by selected pack quantity\n       in BOTH modes; the Bonus Tube stays locked on One-Time\n     - CTA shows the selected price; navy\u2192LIVFRESH-blue on hover (CSS)\n     - Reassure row: 90-Day Guarantee / Fast Shipping / Safe & Secure Checkout\n\n   Cart wiring + public API mirror ai-buybox.js so the PDP sticky ATC and\n   any aiBuybox:change / aiBuybox:added listeners keep working.\n   ===================================================================== */\n\n(function () {\n  'use strict';\n\n  var ROOT_SELECTOR = '.ai-buybox-simple';\n  var instances = [];\n\n  /* ---------------- helpers ---------------- */\n\n  function formatMoney(n) { return '$' + Number(n).toFixed(2); }\n\n  function el(tag, attrs, children) {\n    var node = document.createElement(tag);\n    if (attrs) {\n      for (var k in attrs) {\n        if (!Object.prototype.hasOwnProperty.call(attrs, k)) continue;\n        var v = attrs[k];\n        if (v == null || v === false) continue;\n        if (k === 'class') node.className = v;\n        else if (k === 'html') node.innerHTML = v;\n        else if (k === 'text') node.textContent = v;\n        else if (k === 'dataset') { for (var dk in v) { if (v[dk] != null) node.dataset[dk] = v[dk]; } }\n        else if (k.indexOf('on') === 0 && typeof v === 'function') node.addEventListener(k.slice(2), v);\n        else if (v === true) node.setAttribute(k, '');\n        else node.setAttribute(k, v);\n      }\n    }\n    if (children) {\n      (Array.isArray(children) ? children : [children]).forEach(function (c) {\n        if (c == null || c === false) return;\n        node.appendChild(typeof c === 'string' ? document.createTextNode(c) : c);\n      });\n    }\n    return node;\n  }\n\n  /* ---------------- cart wiring ---------------- */\n\n  function addToCart(variantId, sellingPlanId) {\n    var root = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';\n    var item = { id: variantId, quantity: 1 };\n    if (sellingPlanId) item.selling_plan = sellingPlanId;\n    return fetch(root + 'cart/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },\n      body: JSON.stringify({ items: [item] })\n    }).then(function (res) {\n      if (!res.ok) return res.text().then(function (t) { throw new Error('cart/add.js ' + res.status + ': ' + t); });\n      return res.json();\n    });\n  }\n\n  function openCartDrawer() {\n    if (typeof window.openCart === 'function') {\n      try { window.openCart(); return true; } catch (e) {}\n    }\n    var dialog = document.getElementById('miniCart');\n    if (dialog && typeof dialog.showModal === 'function') {\n      try { dialog.showModal(); return true; } catch (e) {}\n    }\n    window.location.href = '/cart';\n    return false;\n  }\n\n  /* ---------------- icons ---------------- */\n\n  var GIFT_TRUCK_SVG =\n    '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" aria-hidden=\"true\">' +\n    '<path d=\"M3 16V6h11v10\"/><path d=\"M14 9h4l3 4v3h-7\"/>' +\n    '<circle cx=\"7.5\" cy=\"17.5\" r=\"2\"/><circle cx=\"17.5\" cy=\"17.5\" r=\"2\"/></svg>';\n  var LOCK_SVG =\n    '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">' +\n    '<rect x=\"5\" y=\"11\" width=\"14\" height=\"9\" rx=\"2\"/><path d=\"M8 11V8a4 4 0 0 1 8 0v3\"/></svg>';\n  var TRUST_GUARANTEE_SVG =\n    '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3l7 3v5c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z\"/><path d=\"M9 12l2 2 4-4\"/></svg>';\n  var TRUST_SHIP_SVG =\n    '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 16V6h11v10\"/><path d=\"M14 9h4l3 4v3h-7\"/><circle cx=\"7.5\" cy=\"17.5\" r=\"2\"/><circle cx=\"17.5\" cy=\"17.5\" r=\"2\"/></svg>';\n  var TRUST_SECURE_SVG =\n    '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"9\" rx=\"2\"/><path d=\"M8 11V8a4 4 0 0 1 8 0v3\"/></svg>';\n\n  // Branded payment marks (inline SVG \u2014 no extra image assets). Same set used\n  // by ai-buybox.js; rendered as a \"secure checkout\" logo row below the trust row.\n  var PAYMENT_SVGS = {\n    amex: '<svg viewBox=\"0 0 60 36\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"60\" height=\"36\" rx=\"4\" fill=\"#1F72CD\"/><text x=\"30\" y=\"17\" font-family=\"Helvetica,Arial,sans-serif\" font-size=\"6.5\" font-weight=\"900\" fill=\"#fff\" text-anchor=\"middle\" letter-spacing=\"0.4\">AMERICAN</text><text x=\"30\" y=\"25\" font-family=\"Helvetica,Arial,sans-serif\" font-size=\"6.5\" font-weight=\"900\" fill=\"#fff\" text-anchor=\"middle\" letter-spacing=\"0.4\">EXPRESS</text></svg>',\n    applepay: '<svg viewBox=\"0 0 60 36\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"0.75\" y=\"0.75\" width=\"58.5\" height=\"34.5\" rx=\"4\" fill=\"#fff\" stroke=\"#000\" stroke-width=\"1.5\"/><path d=\"M19.4 13.2c-.5.7-1.4 1.1-2.2 1.1-.1-.9.3-1.7.8-2.3.5-.6 1.4-1 2.1-1.1.1.9-.3 1.7-.7 2.3zm.8 1.1c-1.2-.07-2.2.66-2.7.66-.6 0-1.5-.63-2.4-.62-1.2.02-2.3.7-2.9 1.8-1.3 2.2-.3 5.5 1 7.3.6.9 1.3 1.85 2.2 1.83.9-.04 1.2-.6 2.3-.6 1.1 0 1.4.6 2.4.58.95-.03 1.55-.88 2.13-1.77.55-.8.9-1.78.93-1.84-.02-.01-1.85-.71-1.86-2.83-.02-1.77 1.45-2.62 1.51-2.66-.83-1.22-2.13-1.36-2.6-1.4z\" fill=\"#000\"/><text x=\"34\" y=\"22.5\" font-family=\"Helvetica,Arial,sans-serif\" font-size=\"11\" font-weight=\"600\" fill=\"#000\">Pay</text></svg>',\n    discover: '<svg viewBox=\"0 0 60 36\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"60\" height=\"36\" rx=\"4\" fill=\"#fff\" stroke=\"#e5e7eb\"/><text x=\"29\" y=\"20\" font-family=\"Helvetica,Arial,sans-serif\" font-size=\"8.5\" font-weight=\"900\" fill=\"#000\" text-anchor=\"middle\" letter-spacing=\"-0.2\">DISCOVER</text><path d=\"M3 22 Q 30 30 57 22 L 57 30 Q 30 36 3 30 Z\" fill=\"#F7941D\"/></svg>',\n    gpay: '<svg viewBox=\"0 0 60 36\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"60\" height=\"36\" rx=\"4\" fill=\"#fff\" stroke=\"#e5e7eb\"/><g transform=\"translate(10 10) scale(0.65)\"><path d=\"M24 12.27c0-.79-.07-1.54-.2-2.27H12.24v4.3h6.6c-.28 1.54-1.15 2.85-2.45 3.72v3.09h3.97c2.32-2.14 3.66-5.3 3.66-9.04z\" fill=\"#4285F4\"/><path d=\"M12.24 24c3.32 0 6.1-1.1 8.13-2.99l-3.97-3.09c-1.1.74-2.51 1.18-4.16 1.18-3.2 0-5.91-2.16-6.88-5.06H1.27v3.18C3.29 21.3 7.45 24 12.24 24z\" fill=\"#34A853\"/><path d=\"M5.36 14.04c-.25-.74-.39-1.53-.39-2.34 0-.81.14-1.6.39-2.34V6.18H1.27C.46 7.8 0 9.65 0 11.7s.46 3.9 1.27 5.52l4.09-3.18z\" fill=\"#FBBC05\"/><path d=\"M12.24 4.7c1.81 0 3.43.62 4.7 1.84l3.53-3.53C18.34 1.19 15.55 0 12.24 0 7.45 0 3.29 2.7 1.27 6.18l4.09 3.18c.97-2.9 3.68-5.06 6.88-5.06z\" fill=\"#EA4335\"/></g><text x=\"35\" y=\"22\" font-family=\"Helvetica,Arial,sans-serif\" font-size=\"10\" font-weight=\"600\" fill=\"#5F6368\">Pay</text></svg>',\n    mastercard: '<svg viewBox=\"0 0 60 36\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"60\" height=\"36\" rx=\"4\" fill=\"#fff\" stroke=\"#e5e7eb\"/><circle cx=\"25\" cy=\"18\" r=\"9.5\" fill=\"#EB001B\"/><circle cx=\"35\" cy=\"18\" r=\"9.5\" fill=\"#F79E1B\"/><path d=\"M30 10.6 a 9.5 9.5 0 0 1 0 14.8 9.5 9.5 0 0 1 0 -14.8 Z\" fill=\"#FF5F00\"/></svg>',\n    paypal: '<svg viewBox=\"0 0 60 36\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"60\" height=\"36\" rx=\"4\" fill=\"#fff\" stroke=\"#e5e7eb\"/><text x=\"6\" y=\"24\" font-family=\"Helvetica,Arial,sans-serif\" font-size=\"13\" font-weight=\"900\" fill=\"#003087\" font-style=\"italic\" letter-spacing=\"-0.5\">Pay</text><text x=\"29\" y=\"24\" font-family=\"Helvetica,Arial,sans-serif\" font-size=\"13\" font-weight=\"900\" fill=\"#009CDE\" font-style=\"italic\" letter-spacing=\"-0.5\">Pal</text></svg>',\n    shoppay: '<svg viewBox=\"0 0 60 36\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"60\" height=\"36\" rx=\"4\" fill=\"#5A31F4\"/><text x=\"30\" y=\"23\" font-family=\"Helvetica,Arial,sans-serif\" font-size=\"12\" font-weight=\"900\" fill=\"#fff\" text-anchor=\"middle\" letter-spacing=\"-0.3\">shop</text></svg>',\n    visa: '<svg viewBox=\"0 0 60 36\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"60\" height=\"36\" rx=\"4\" fill=\"#fff\" stroke=\"#e5e7eb\"/><text x=\"30\" y=\"25\" font-family=\"Arial Black,Helvetica,sans-serif\" font-size=\"16\" font-weight=\"900\" fill=\"#1A1F71\" text-anchor=\"middle\" font-style=\"italic\" letter-spacing=\"-0.5\">VISA</text></svg>'\n  };\n\n  /* ---------------- mode tabs ---------------- */\n\n  function buildModeTabs(instance) {\n    var cfg = instance.cfg;\n    var copy = cfg.copy || {};\n    var tabs = el('div', { class: 'aibs-mode-tabs', role: 'tablist' });\n\n    // Each tab renders a title and (optionally) a subtitle. When a tab's\n    // subtitle is blank/empty the sub span is omitted entirely, so the title\n    // centers vertically in the tab (e.g. the One-Time tab with no second line).\n    function tab(mode, titleText, subText) {\n      var children = [el('span', { class: 'aibs-t-title', text: titleText })];\n      if (subText) children.push(el('span', { class: 'aibs-t-sub', text: subText }));\n      return el('button', {\n        type: 'button', class: 'aibs-mode-tab', role: 'tab',\n        dataset: { mode: mode }, 'aria-selected': 'false'\n      }, children);\n    }\n    var subscribeSub = copy.subscribeSub != null ? copy.subscribeSub : '+ Up To 40% Off & Free Gift';\n    var oneTimeSub = copy.oneTimeSub != null ? copy.oneTimeSub : '';\n    var subscribe = tab('subscribe', copy.subscribeTitle || 'Subscribe & Save', subscribeSub);\n    var oneTime = tab('onetime', copy.oneTimeTitle || 'One-Time Purchase', oneTimeSub);\n\n    subscribe.addEventListener('click', function () { setMode(instance, 'subscribe'); });\n    oneTime.addEventListener('click', function () { setMode(instance, 'onetime'); });\n\n    tabs.appendChild(subscribe);\n    tabs.appendChild(oneTime);\n    tabs._aibs = { subscribe: subscribe, oneTime: oneTime };\n    return tabs;\n  }\n\n  /* ---------------- supply rows ---------------- */\n\n  function buildRow(instance, card, idx) {\n    var popularClass = card.kind === 'popular' ? ' is-popular' : '';\n    var row = el('button', {\n      type: 'button', class: 'aibs-row' + popularClass,\n      dataset: { cardId: card.id, cardIndex: idx }, 'aria-pressed': 'false'\n    });\n\n    var badge = el('span', { class: 'aibs-badge', hidden: true });\n    row.appendChild(badge);\n\n    row.appendChild(el('span', { class: 'aibs-radio', 'aria-hidden': 'true' }));\n\n    var title = el('span', { class: 'aibs-row-title' });\n    var sub = el('span', { class: 'aibs-row-sub' });\n    var supply = el('span', { class: 'aibs-row-supply' });\n    row.appendChild(el('span', { class: 'aibs-row-main' }, [title, sub, supply]));\n\n    var now = el('span', { class: 'aibs-now' });\n    var was = el('span', { class: 'aibs-was' });\n    var per = el('span', { class: 'aibs-per' });\n    row.appendChild(el('span', { class: 'aibs-row-price' }, [now, was, per]));\n\n    row.addEventListener('click', function () { setSelected(instance, card.id); });\n\n    row._aibs = { badge: badge, title: title, sub: sub, supply: supply, now: now, was: was, per: per };\n    return row;\n  }\n\n  /* ---------------- welcome gifts ---------------- */\n\n  function buildWelcomeGifts(instance) {\n    var wg = instance.cfg.welcomeGifts;\n    if (!wg || !Array.isArray(wg.gifts) || !wg.gifts.length) return null;\n\n    var section = el('section', { class: 'aibs-welcome-gifts', 'aria-label': wg.title || 'Limited time free welcome gifts' });\n    section.appendChild(el('h3', { text: wg.title || 'Limited Time Free Welcome Gifts' }));\n\n    var track = el('div', { class: 'aibs-gift-track' });\n    track.appendChild(el('div', { class: 'aibs-gift-rail', 'aria-hidden': 'true' }));\n\n    var giftNodes = wg.gifts.map(function (g) {\n      var card = el('article', { class: 'aibs-gift-card', dataset: { giftId: g.id } });\n      card.appendChild(el('div', { class: 'aibs-gift-name', text: g.name || '' }));\n\n      var imgWrap = el('div', { class: 'aibs-gift-img', 'aria-hidden': 'true' });\n      var content = el('span', { class: 'aibs-gift-img-content', style: 'display:contents' });\n      imgWrap.appendChild(content);\n      var lock = el('span', { class: 'aibs-lock-overlay', html: LOCK_SVG, hidden: true });\n      imgWrap.appendChild(lock);\n      card.appendChild(imgWrap);\n\n      var save = el('div', { class: 'aibs-gift-save' });\n      var strikeSave = el('span', { class: 'aibs-strike-save' });\n      save.appendChild(strikeSave);\n      var freeLabel = el('span', { class: 'aibs-free' });\n      save.appendChild(freeLabel);\n      card.appendChild(save);\n\n      card._aibs = { gift: g, content: content, lock: lock, freeLabel: freeLabel, strikeSave: strikeSave };\n      track.appendChild(card);\n      return card;\n    });\n\n    section.appendChild(track);\n    section._aibs = { track: track, giftNodes: giftNodes };\n    return section;\n  }\n\n  // Unlock count by selected card (1pack\u21921, 3pack\u21923, 5pack\u21924 in the prototype).\n  function unlockedCountFor(instance) {\n    var card = instance.cfg.cards.find(function (c) { return c.id === instance.state.selectedId; });\n    if (card && typeof card.giftsUnlocked === 'number') return card.giftsUnlocked;\n    return 1;\n  }\n\n  function renderWelcomeGifts(instance) {\n    var section = instance.dom.welcomeGifts;\n    if (!section) return;\n    var mode = instance.state.mode;\n    var unlocked = unlockedCountFor(instance);\n    section._aibs.track.style.setProperty('--aibs-unlocked', String(unlocked));\n\n    section._aibs.giftNodes.forEach(function (node, i) {\n      var g = node._aibs.gift;\n      var isUnlocked = i < unlocked;\n      // Bonus tube never unlocks on the one-time purchase tab.\n      if (g.lockOnOnetime && mode === 'onetime') isUnlocked = false;\n\n      node.classList.toggle('is-locked', !isUnlocked);\n      node._aibs.lock.hidden = isUnlocked;\n      node._aibs.freeLabel.textContent = isUnlocked ? 'FREE' : 'LOCKED';\n\n      var content = node._aibs.content;\n      content.innerHTML = '';\n      var multi = 1;\n      if (g.multiByCard && instance.state.selectedId in g.multiByCard) multi = g.multiByCard[instance.state.selectedId];\n\n      // Save value scales with the item count \u2014 e.g. the Bonus Tube is 2 tubes\n      // on the 5-pack, so its \"Save $X\" doubles ($34.99 \u2192 $69.98).\n      var baseSave = g.save != null ? parseFloat(g.save) : NaN;\n      node._aibs.strikeSave.textContent = isNaN(baseSave) ? '' : 'Save $' + (baseSave * multi).toFixed(2);\n\n      if (g.iconType === 'truck') {\n        content.appendChild(el('span', { html: GIFT_TRUCK_SVG, style: 'display:contents' }));\n      } else if (g.imageUrl) {\n        if (multi >= 2) {\n          var pair = el('div', { class: 'aibs-tube-pair' });\n          for (var k = 0; k < multi; k++) pair.appendChild(el('img', { src: g.imageUrl, alt: '' }));\n          content.appendChild(pair);\n        } else {\n          content.appendChild(el('img', { src: g.imageUrl, alt: '' }));\n        }\n      }\n    });\n  }\n\n  /* ---------------- CTA + trust row ---------------- */\n\n  function buildCta(instance) {\n    var cfg = instance.cfg;\n    var btn = el('button', { type: 'button', class: 'aibs-cta', dataset: { action: 'add-to-cart', state: 'ready' } });\n    btn.addEventListener('click', function () { handleAddToCart(instance, btn); });\n    return btn;\n  }\n\n  function buildReassure() {\n    var wrap = el('div', { class: 'aibs-reassure' });\n    wrap.appendChild(el('span', { class: 'aibs-ritem', html: TRUST_GUARANTEE_SVG + '<span>90-Day Guarantee</span>' }));\n    wrap.appendChild(el('span', { class: 'aibs-rdiv', 'aria-hidden': 'true' }));\n    wrap.appendChild(el('span', { class: 'aibs-ritem', html: TRUST_SHIP_SVG + '<span>Fast Shipping</span>' }));\n    wrap.appendChild(el('span', { class: 'aibs-rdiv', 'aria-hidden': 'true' }));\n    wrap.appendChild(el('span', { class: 'aibs-ritem', html: TRUST_SECURE_SVG + '<span>Safe &amp; Secure Checkout</span>' }));\n    return wrap;\n  }\n\n  function buildPayments(instance) {\n    if (instance.cfg.hidePayments) return null;\n    var wrap = el('div', { class: 'aibs-pays', 'aria-label': 'Accepted payment methods' });\n    var order = ['amex', 'applepay', 'discover', 'gpay', 'mastercard', 'paypal', 'shoppay', 'visa'];\n    order.forEach(function (brand) {\n      wrap.appendChild(el('span', { class: 'aibs-pay', dataset: { brand: brand }, html: PAYMENT_SVGS[brand] }));\n    });\n    return wrap;\n  }\n\n  function handleAddToCart(instance, btn) {\n    var card = instance.cfg.cards.find(function (c) { return c.id === instance.state.selectedId; });\n    if (!card) return;\n    var mode = instance.state.mode;\n    var line = card[mode];\n    if (!line || !line.variantId) { console.warn('[ai-buybox-simple] no variantId for', card.id, mode); return; }\n\n    btn.dataset.state = 'loading';\n    btn.textContent = 'Adding\u2026';\n    btn.disabled = true;\n\n    addToCart(line.variantId, mode === 'subscribe' ? line.sellingPlanId : null)\n      .then(function () {\n        btn.dataset.state = 'ready';\n        btn.disabled = false;\n        renderCta(instance, btn);\n        openCartDrawer();\n        emit('added', Object.assign({ quantity: 1 }, currentSelectionDetail(instance)));\n      })\n      .catch(function (err) {\n        console.error('[ai-buybox-simple] add to cart failed', err);\n        btn.dataset.state = 'error';\n        btn.textContent = 'Try again';\n        btn.disabled = false;\n        setTimeout(function () { btn.dataset.state = 'ready'; renderCta(instance, btn); }, 1800);\n      });\n  }\n\n  /* ---------------- state + render ---------------- */\n\n  function setMode(instance, mode) {\n    if (mode !== 'onetime' && mode !== 'subscribe') return;\n    instance.state.mode = mode;\n    render(instance);\n  }\n  function setSelected(instance, cardId) {\n    instance.state.selectedId = cardId;\n    render(instance);\n  }\n\n  function priceFor(card, mode) {\n    var line = card[mode] || {};\n    return typeof line.price === 'number' ? line.price : 0;\n  }\n  function perBrushingFor(card, mode) {\n    var line = card[mode] || {};\n    return typeof line.perBrushing === 'number' ? line.perBrushing : null;\n  }\n\n  function renderModeTabs(instance) {\n    var refs = instance.dom.modeTabs._aibs;\n    var mode = instance.state.mode;\n    refs.subscribe.classList.toggle('is-active', mode === 'subscribe');\n    refs.oneTime.classList.toggle('is-active', mode === 'onetime');\n    refs.subscribe.setAttribute('aria-selected', mode === 'subscribe' ? 'true' : 'false');\n    refs.oneTime.setAttribute('aria-selected', mode === 'onetime' ? 'true' : 'false');\n  }\n\n  function renderRows(instance) {\n    var mode = instance.state.mode;\n    var selectedId = instance.state.selectedId;\n    instance.cfg.cards.forEach(function (card, i) {\n      var node = instance.dom.rowNodes[i];\n      if (!node) return;\n      var ref = node._aibs;\n      var copy = mode === 'subscribe' ? (card.sub || {}) : (card.ot || {});\n      var now = priceFor(card, mode);\n      var was = typeof card.retail === 'number' ? card.retail : now;\n      var pb = perBrushingFor(card, mode);\n\n      ref.title.textContent = copy.title || '';\n      // First sub-line. On One-Time this would be \"Includes N tubes\", which is\n      // redundant with the supply line below, so it's dropped on one-time.\n      var subText = mode === 'onetime' ? '' : (copy.line || '');\n      ref.sub.textContent = subText;\n      ref.sub.hidden = !subText;\n      // Second sub-line \u2014 tube count + day supply (mode-independent).\n      ref.supply.textContent = card.supply || '';\n      ref.supply.hidden = !card.supply;\n      ref.now.textContent = formatMoney(now);\n      ref.was.textContent = formatMoney(was);\n      ref.was.hidden = !(was > now + 0.005);\n      var perLabel = (instance.cfg.copy && instance.cfg.copy.perUnitLabel) || 'brushing';\n      ref.per.textContent = pb != null ? formatMoney(pb) + ' / ' + perLabel : '';\n      ref.per.hidden = pb == null;\n\n      // Savings badge.\n      //   Subscribe: \"Save $X\" (X = retail - subscribe price), and append the\n      //              tag label (\"Most Popular\" / \"Best Value\") when present.\n      //   One-Time:  just the tag label (no dollar amount), so \"Most Popular\" /\n      //              \"Best Value\" carry over to the one-time tab too.\n      var b = card.badge || {};\n      var save = Math.round(was - now);\n      var text = '';\n      if (mode === 'subscribe') {\n        if (save > 0 && b.label) text = 'Save $' + save + ' \\u2014 ' + b.label;\n        else if (save > 0) text = 'Save $' + save;\n        else if (b.label) text = b.label;\n      } else {\n        if (b.label) text = b.label;\n      }\n      if (text) {\n        ref.badge.textContent = text;\n        ref.badge.className = 'aibs-badge is-' + (b.kind || 'navy');\n        ref.badge.hidden = false;\n      } else {\n        ref.badge.hidden = true;\n      }\n\n      node.classList.toggle('is-selected', card.id === selectedId);\n      node.setAttribute('aria-pressed', card.id === selectedId ? 'true' : 'false');\n    });\n  }\n\n  function renderCta(instance, btn) {\n    var node = btn || instance.dom.cta;\n    if (!node) return;\n    if (node.dataset.state === 'loading' || node.dataset.state === 'error') return;\n    var card = instance.cfg.cards.find(function (c) { return c.id === instance.state.selectedId; });\n    var prefix = (instance.cfg.copy && instance.cfg.copy.ctaLabel) ? instance.cfg.copy.ctaLabel : 'Add to Cart';\n    if (!card) { node.textContent = prefix; return; }\n    var mode = instance.state.mode;\n    var now = priceFor(card, mode);\n    var was = typeof card.retail === 'number' ? card.retail : now;\n    // Structured CTA: label + price group. CSS renders them inline on desktop\n    // (\"ADD TO CART \u2014 $59.99 $89.97\") and stacked/centered on mobile so the\n    // text never wraps awkwardly.\n    node.textContent = '';\n    node.appendChild(el('span', { class: 'aibs-cta-label', text: prefix }));\n    var prices = el('span', { class: 'aibs-cta-prices' }, [\n      el('span', { class: 'aibs-cta-now', text: formatMoney(now) })\n    ]);\n    if (was > now + 0.005) {\n      prices.appendChild(el('span', { class: 'aibs-cta-was', text: formatMoney(was) }));\n    }\n    node.appendChild(prices);\n  }\n\n  // Subscription cadence in weeks for the selected card. Uses an explicit\n  // card.shipWeeks if set; otherwise derives it from the \"Ships every N months\"\n  // cadence line (1 month = 4 weeks \u2192 4 / 12 / 20 for the 1 / 3 / 5-pack).\n  function shipWeeksFor(card) {\n    if (card && typeof card.shipWeeks === 'number') return card.shipWeeks;\n    var line = (card && card.sub && card.sub.line) || '';\n    var w = line.match(/(\\d+)\\s*week/i);          // \"Ships every 12 weeks\"\n    if (w) return parseInt(w[1], 10);\n    var m = line.match(/(\\d+)\\s*month/i);          // \"Ships every 3 months\" (1 month = 4 weeks)\n    if (m) return parseInt(m[1], 10) * 4;\n    if (/month/i.test(line)) return 4;             // \"Ships every month\"\n    return null;\n  }\n\n  function renderShipNote(instance) {\n    var node = instance.dom.shipNote;\n    if (!node) return;\n    var card = instance.cfg.cards.find(function (c) { return c.id === instance.state.selectedId; });\n    var weeks = shipWeeksFor(card);\n    // Subscribe only \u2014 a one-time purchase has no recurring shipment.\n    if (instance.state.mode !== 'subscribe' || weeks == null) {\n      node.hidden = true;\n      return;\n    }\n    var tpl = (instance.cfg.copy && instance.cfg.copy.shipNoteTemplate) || 'This subscription ships every {weeks} weeks - Skip, pause, cancel anytime';\n    node.textContent = tpl.replace('{weeks}', String(weeks));\n    node.hidden = false;\n  }\n\n  function render(instance) {\n    renderModeTabs(instance);\n    renderRows(instance);\n    renderWelcomeGifts(instance);\n    renderCta(instance);\n    renderShipNote(instance);\n    emit('change', currentSelectionDetail(instance));\n  }\n\n  /* ---------------- events ---------------- */\n\n  function emit(name, detail) {\n    try { window.dispatchEvent(new CustomEvent('aiBuybox:' + name, { detail: detail || {} })); } catch (e) {}\n  }\n\n  function currentSelectionDetail(instance) {\n    var card = instance.cfg.cards.find(function (c) { return c.id === instance.state.selectedId; });\n    if (!card) return null;\n    var mode = instance.state.mode;\n    var line = card[mode] || {};\n    return {\n      mode: mode,\n      cardId: card.id,\n      card: card,\n      variantId: line.variantId || null,\n      sellingPlanId: mode === 'subscribe' ? (line.sellingPlanId || null) : null,\n      price: typeof line.price === 'number' ? line.price : null,\n      compareAtPrice: typeof card.retail === 'number' ? card.retail : null\n    };\n  }\n\n  /* ---------------- mount ---------------- */\n\n  function mount(root, cfg) {\n    if (root._aibsMounted) return;\n    root._aibsMounted = true;\n    root.innerHTML = '';\n\n    // CTA palette from config (rest + hover).\n    if (cfg.ctaColor) root.style.setProperty('--aibs-cart-bg', cfg.ctaColor);\n    if (cfg.ctaHover) root.style.setProperty('--aibs-cart-bg-hover', cfg.ctaHover);\n\n    var instance = {\n      root: root,\n      cfg: cfg,\n      state: {\n        mode: cfg.defaultMode === 'onetime' ? 'onetime' : 'subscribe',\n        selectedId: cfg.defaultSelectedId || (cfg.cards[1] || cfg.cards[0] || {}).id\n      },\n      dom: {}\n    };\n\n    instance.dom.modeTabs = buildModeTabs(instance);\n\n    var panel = el('div', { class: 'aibs-panel' });\n    panel.appendChild(el('p', { class: 'aibs-supply-label', text: (cfg.copy && cfg.copy.supplyLabel) || 'Choose Your Supply' }));\n\n    var rowsEl = el('div', { class: 'aibs-rows', role: 'radiogroup' });\n    instance.dom.rowNodes = cfg.cards.map(function (card, i) {\n      var node = buildRow(instance, card, i);\n      rowsEl.appendChild(node);\n      return node;\n    });\n    panel.appendChild(rowsEl);\n\n    instance.dom.welcomeGifts = buildWelcomeGifts(instance);\n    if (instance.dom.welcomeGifts) panel.appendChild(instance.dom.welcomeGifts);\n\n    instance.dom.cta = buildCta(instance);\n    panel.appendChild(instance.dom.cta);\n    instance.dom.shipNote = el('div', { class: 'aibs-ship-note', hidden: true });\n    panel.appendChild(instance.dom.shipNote);\n    panel.appendChild(buildReassure());\n    var pays = buildPayments(instance);\n    if (pays) panel.appendChild(pays);\n\n    root.appendChild(instance.dom.modeTabs);\n    root.appendChild(panel);\n\n    render(instance);\n    instances.push(instance);\n    return instance;\n  }\n\n  /* ---------------- public API (mirrors ai-buybox.js) ---------------- */\n\n  window.aiBuybox = window.aiBuybox || {\n    mount: function (root, cfg) { return mount(root, cfg || window.AI_BUYBOX_SIMPLE_CONFIG); },\n    getInstances: function () { return instances.slice(); },\n    addCurrentSelectionToCart: function () {\n      var inst = instances[0];\n      if (!inst) return Promise.reject(new Error('no buybox mounted'));\n      var card = inst.cfg.cards.find(function (c) { return c.id === inst.state.selectedId; });\n      var line = card && card[inst.state.mode];\n      if (!line || !line.variantId) return Promise.reject(new Error('no variant for current selection'));\n      return addToCart(line.variantId, inst.state.mode === 'subscribe' ? line.sellingPlanId : null)\n        .then(function (r) {\n          openCartDrawer();\n          emit('added', Object.assign({ quantity: 1 }, currentSelectionDetail(inst)));\n          return r;\n        });\n    },\n    getState: function () {\n      var inst = instances[0];\n      return inst ? currentSelectionDetail(inst) : null;\n    }\n  };\n\n  /* ---------------- init ---------------- */\n\n  function init() {\n    var cfg = window.AI_BUYBOX_SIMPLE_CONFIG;\n    if (!cfg) { console.warn('[ai-buybox-simple] window.AI_BUYBOX_SIMPLE_CONFIG not found.'); return; }\n    var roots = document.querySelectorAll(ROOT_SELECTOR);\n    if (!roots.length) { console.warn('[ai-buybox-simple] no .ai-buybox-simple element found.'); return; }\n    roots.forEach(function (r) { mount(r, cfg); });\n  }\n\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init);\n  else init();\n})();\n"],
  "mappings": "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",
  "names": []
}
