{
  "version": 3,
  "sources": ["/cdn/shop/t/69/assets/kwd-cart-panel.js?x=2832"],
  "sourcesContent": ["/* KWD cart panel (2026-09-17). One renderer, one open/close, replaces the theme's\n   #CartDrawer + openDrawer/closeDrawer in theme.js and KWDDrawer in kwd-drawer.js.\n   Works off /cart.js and /cart/change.js only. */\n(function(){\n  'use strict';\n  var FREE=15000, HIDDEN=['ENTHUSIAST','CONNOISSEUR','SOMMELIER'];\n  var ov, box, open=false, cart=null, busy=false;\n  function esc(s){return String(s==null?'':s).replace(/[&<>\"']/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];});}\n  function money(c){return '$'+(c/100).toLocaleString('en-US',{minimumFractionDigits:2,maximumFractionDigits:2});}\n  function img(u){ if(!u) return ''; return u.replace(/(\\.[a-z]{3,4})(\\?|$)/i,'_180x180$1$2'); }\n  function build(){\n    if(box) return;\n    ov=document.createElement('div'); ov.className='kwdc-ov';\n    box=document.createElement('aside'); box.className='kwdc'; box.setAttribute('role','dialog'); box.setAttribute('aria-label','Your cart');\n    document.body.appendChild(ov); document.body.appendChild(box);\n    ov.addEventListener('click',close);\n    document.addEventListener('keydown',function(e){ if(e.key==='Escape'&&open) close(); });\n    box.addEventListener('click',function(e){\n      var b=e.target.closest('[data-act]'); if(!b) return;\n      var act=b.getAttribute('data-act');\n      if(act==='close') return close();\n      if(act==='checkout'){ window.location.href='/cart'; return; } /* owner: Check out goes to the cart page, where shipping and options are chosen */\n      var row=b.closest('.kwdc-it'); if(!row) return;\n      var key=row.getAttribute('data-key'), q=parseInt(row.getAttribute('data-qty'),10)||0;\n      if(act==='plus') change(key,q+1,row); else if(act==='minus') change(key,Math.max(0,q-1),row); else if(act==='rm') change(key,0,row);\n    });\n    window.addEventListener('resize',place);\n  }\n  function place(){\n    if(!box) return;\n    var chip=document.querySelector('.kwd-cart'); if(!chip) return;\n    var r=chip.getBoundingClientRect();\n    box.style.setProperty('--kwdc-top',Math.round(r.bottom+12)+'px');\n    box.style.setProperty('--kwdc-right',Math.max(12,Math.round(window.innerWidth-r.right))+'px');\n  }\n  function shipHTML(total){\n    var rem=FREE-total, cls, txt, p=Math.max(0,Math.min(100,total/FREE*100));\n    if(total>=FREE){ cls='is-ok'; txt='Free shipping unlocked'; }\n    else if(total>=FREE-2000){ cls='is-close'; txt='Only '+money(rem)+' more for free shipping'; }\n    else { cls='is-far'; txt=money(rem)+' more for free shipping'; }\n    return '<div class=\"kwdc-ship '+cls+'\"><b>'+txt+'</b><i style=\"--p:'+p.toFixed(1)+'%\"></i></div>';\n  }\n  function itemHTML(it){\n    var unit=it.price, orig=it.original_price>it.price?it.original_price:0;\n    return '<div class=\"kwdc-it\" data-key=\"'+esc(it.key)+'\" data-qty=\"'+it.quantity+'\">'\n      +'<a class=\"kwdc-img\" href=\"'+esc(it.url)+'\"><img src=\"'+esc(img(it.image))+'\" alt=\"\" loading=\"lazy\"></a>'\n      +'<div><a class=\"kwdc-t\" href=\"'+esc(it.url)+'\">'+esc(it.product_title)+'</a>'\n      +(it.variant_title&&it.variant_title!=='Default Title'?'<div class=\"kwdc-u\">'+esc(it.variant_title)+'</div>':'')\n      +'<div class=\"kwdc-u\">'+money(unit)+' each</div>'\n      +'<div class=\"kwdc-row\"><span class=\"kwdc-q\"><button type=\"button\" data-act=\"minus\" aria-label=\"Less\">&minus;</button><span>'+it.quantity+'</span><button type=\"button\" data-act=\"plus\" aria-label=\"More\">+</button></span>'\n      +'<button type=\"button\" class=\"kwdc-rm\" data-act=\"rm\">Remove</button></div></div>'\n      +'<div class=\"kwdc-p\">'+(orig?'<s>'+money(orig*it.quantity)+'</s>':'')+money(it.final_line_price!=null?it.final_line_price:unit*it.quantity)+'</div></div>';\n  }\n  function render(c){\n    if(c) cart=c; if(!box) build(); if(!cart) return;\n    var items=(cart.items||[]).filter(function(it){ return HIDDEN.indexOf(it.title)===-1; });\n    var n=0; items.forEach(function(it){ if(it.handle!=='personalized-gift-card') n+=it.quantity; });\n    var h='<div class=\"kwdc-hd\"><div><h3>Your cart</h3><div class=\"kwdc-n\">'+(n?n+(n===1?' bottle':' bottles'):'Nothing in it yet')+'</div></div><button type=\"button\" class=\"kwdc-x\" data-act=\"close\" aria-label=\"Close\">Close</button></div>';\n    if(!items.length){\n      h+='<div class=\"kwdc-empty\"><div class=\"ic\"></div><h4>Your cart is empty</h4><p>Free shipping on every case or $150.</p><a class=\"kwdc-go\" href=\"/collections/all-wine-products\">Browse the shelves</a></div>';\n    } else {\n      h+=shipHTML(cart.total_price)+'<div class=\"kwdc-list\">'+items.map(itemHTML).join('')+'</div>'\n       +'<div class=\"kwdc-ft\"><div class=\"kwdc-sum\"><span>Subtotal</span><b>'+money(cart.total_price)+'</b></div><p class=\"kwdc-note\">Taxes and any shipping are worked out at checkout.</p>'\n       +'<button type=\"button\" class=\"kwdc-go\" data-act=\"checkout\">Check out</button>'\n       +'<div class=\"kwdc-links\"><a href=\"#\" data-act=\"close\">Keep shopping</a></div></div>';\n    }\n    box.innerHTML=h;\n  }\n  function load(){\n    return fetch('/cart.js',{credentials:'same-origin',cache:'no-store',headers:{'Accept':'application/json'}}).then(function(r){return r.ok?r.json():null;});\n  }\n  function change(key,qty,row){\n    if(busy) return; busy=true; if(row) row.classList.add('busy');\n    fetch('/cart/change.js',{method:'POST',credentials:'same-origin',headers:{'Content-Type':'application/json','Accept':'application/json'},body:JSON.stringify({id:key,quantity:qty})})\n      .then(function(r){return r.json();}).then(function(c){ busy=false; render(c); try{window.KWDCart&&window.KWDCart.sync('change');}catch(e){} })\n      .catch(function(){ busy=false; if(row) row.classList.remove('busy'); });\n  }\n  var lastToggle=0;\n  function toggle(){ var t=Date.now(); if(t-lastToggle<350) return; lastToggle=t; open?close():show(); }\n  function show(){\n    build(); place(); open=true;\n    document.documentElement.classList.add('kwdc-open');\n    render(cart||{items:[],total_price:0});\n    setTimeout(function(){ if(open){ ov.classList.add('on'); box.classList.add('on'); } },20);\n    load().then(function(c){ if(c) render(c); });\n  }\n  function close(){\n    if(!box) return; open=false; ov.classList.remove('on'); box.classList.remove('on');\n    document.documentElement.classList.remove('kwdc-open');\n  }\n  function install(){\n    window.openDrawer=show; window.closeDrawer=close;\n    window.KWDDrawer={render:function(c){ render(c); }};\n    var chip=document.getElementById('mySid_new');\n    if(chip && chip.getAttribute('href')==='#'){ chip.removeAttribute('onclick'); if(!chip.__kwdc){ chip.__kwdc=1;\n      chip.addEventListener('click',function(e){ e.preventDefault(); e.stopImmediatePropagation(); toggle(); },true);\n      /* the carousels open the cart with jQuery's .trigger('click'), which never reaches a native listener on an <a> */\n      if(window.jQuery){ window.jQuery(chip).on('click',function(e){ e.preventDefault(); toggle(); }); } } }\n  }\n  /* keep the panel honest when the cart changes elsewhere (adds, header sync) */\n  /* any add-to-cart anywhere on the site (the header script tags the /cart/add call as 'add') opens the panel */\n  document.addEventListener('kwd:cart:updated',function(e){ var d=e.detail||{}; if(!d.cart) return; cart=d.cart;\n    /* never pop the panel on the cart page itself (the gift-card add-on there is an /cart/add too) */\n    var onCartPage=/^\\/cart\\/?$/.test(location.pathname)||document.body.classList.contains('template-cart');\n    if(d.reason==='add'){ if(onCartPage){ if(open) render(d.cart); return; } if(!open){ show(); } else { render(d.cart); } return; }\n    if(open && d.reason!=='change') render(d.cart); });\n  if(document.readyState==='loading') document.addEventListener('DOMContentLoaded',install); else install();\n  window.addEventListener('load',install);\n})();\n"],
  "mappings": "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",
  "names": []
}
