{
  "version": 3,
  "sources": ["/cdn/shop/t/35/assets/ks-dock.js?r=1791024840641"],
  "sourcesContent": ["/* ============================================================\n   KICK DOCK \u2014 assets/ks-dock.js\n   Loaded (defer) by sections/ks-dock.liquid only while the dock is on.\n \n   Reads #ks-dock-config (written by Liquid), the saved sizes and the fit\n   maths from window.KSFinder (snippets/ks-finder-core), the delivery\n   estimate from window.KSDelivery (assets/ks-delivery.js) and the bag\n   from /cart.js. Add to cart presses the theme's own button, so stock,\n   errors and the cart drawer behave exactly as without the dock.\n \n   States: unknown \u2192 fit \u2192 product \u2192 purchase. Every visible text comes\n   from the config and is set with textContent (never innerHTML).\n   ============================================================ */\n(function () {\n  'use strict';\n  if (window.__ksDockLoaded) return;\n  window.__ksDockLoaded = true;\n \n  var cfgEl = document.getElementById('ks-dock-config');\n  var dock = document.getElementById('KsDock');\n  if (!cfgEl || !dock) return;\n  /* Out of the footer section and straight under <body>: the theme editor\n     scrolls to a section when you click inside it, and the footer is at\n     the very bottom of the page. Under <body> a tap on the dock is just a\n     tap on the dock. */\n  var ownSection = dock.closest('.shopify-section');\n  document.body.appendChild(dock);\n  if (window.Shopify && window.Shopify.designMode) {\n    document.addEventListener('shopify:section:load', function (e) {\n      var sec = e.target;\n      if (!sec || !sec.querySelector || !sec.querySelector('#ks-dock-config')) return;\n      /* the editor re-rendered this section: start again with the new settings */\n      var old = document.getElementById('KsDock');\n      if (old && old !== sec.querySelector('#KsDock')) old.parentNode.removeChild(old);\n      var olddiag = document.querySelector('[data-kd-diag]');\n      if (olddiag && !sec.contains(olddiag)) olddiag.parentNode.removeChild(olddiag);\n      window.__ksDockLoaded = false;\n      var src = document.querySelector('script[src*=\"ks-dock.js\"]');\n      var fresh = document.createElement('script');\n      /* keep the ?v= part: the bare asset URL can come back stale from the CDN */\n      fresh.src = (src ? src.src : '') + (src && src.src.indexOf('?') > -1 ? '&' : '?') + 'r=' + Date.now();\n      document.body.appendChild(fresh);\n    }, { once: true });\n    document.addEventListener('shopify:section:unload', function (e) {\n      if (e.target === ownSection) { var d = document.getElementById('KsDock'); if (d) d.parentNode.removeChild(d); }\n    }, { once: true });\n  }\n  var cfg;\n  try { cfg = JSON.parse(cfgEl.textContent); } catch (e) { return; }\n  var T = cfg.t || {};\n  var isPhone = window.matchMedia('(max-width: 767px)');\n \n  /* ---------- small helpers ---------- */\n  function $(sel, root) { return (root || dock).querySelector(sel); }\n  function txt(k, d) { var v = T[k]; return v == null || v === '' ? (d || '') : String(v); }\n  function usOf(v) { return parseFloat(String(v).replace(/[^0-9.]/g, '')); }\n  function trim(n) { return (Math.round(n * 10) / 10).toString(); }\n  function el(tag, cls, text) {\n    var e = document.createElement(tag);\n    if (cls) e.className = cls;\n    if (text != null) e.textContent = text;\n    return e;\n  }\n  function clear(node) { while (node.firstChild) node.removeChild(node.firstChild); }\n  function reduced() { return window.matchMedia('(prefers-reduced-motion: reduce)').matches; }\n \n  /* money: shop.money_format with the amount in cents */\n  function money(cents) {\n    var f = cfg.money || '${{amount}}';\n    var n = (cents || 0) / 100;\n    function fmt(dec, thou, pt) {\n      var s = n.toFixed(dec);\n      var parts = s.split('.');\n      parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thou);\n      return parts.length > 1 ? parts[0] + pt + parts[1] : parts[0];\n    }\n    var m = /\\{\\{\\s*(\\w+)\\s*\\}\\}/.exec(f);\n    var key = m ? m[1] : 'amount', out;\n    switch (key) {\n      case 'amount_no_decimals': out = fmt(0, ',', '.'); break;\n      case 'amount_with_comma_separator': out = fmt(2, '.', ','); break;\n      case 'amount_no_decimals_with_comma_separator': out = fmt(0, '.', ','); break;\n      case 'amount_with_apostrophe_separator': out = fmt(2, \"'\", '.'); break;\n      case 'amount_no_decimals_with_space_separator': out = fmt(0, ' ', '.'); break;\n      case 'amount_with_space_separator': out = fmt(2, ' ', ','); break;\n      case 'amount_with_period_and_space_separator': out = fmt(2, ' ', '.'); break;\n      default: out = fmt(2, ',', '.');\n    }\n    return f.replace(/\\{\\{\\s*\\w+\\s*\\}\\}/, out).replace(/<[^>]*>/g, '').trim();\n  }\n  /* Fill a template into `node`: text pieces as text nodes, [price] as\n     <span class=\"money\"> so the currency app can convert it. */\n  function fill(node, tpl, vars) {\n    clear(node);\n    var re = /\\[(\\w+)\\]/g, last = 0, m;\n    while ((m = re.exec(tpl))) {\n      if (m.index > last) node.appendChild(document.createTextNode(tpl.slice(last, m.index)));\n      var k = m[1];\n      if (k === 'price' && vars.priceCents != null) {\n        var s = el('span', 'money', money(vars.priceCents));\n        node.appendChild(s);\n      } else {\n        node.appendChild(document.createTextNode(vars[k] == null ? '' : String(vars[k])));\n      }\n      last = re.lastIndex;\n    }\n    if (last < tpl.length) node.appendChild(document.createTextNode(tpl.slice(last)));\n    if (window.baCurr && typeof window.baCurr.refreshConversion === 'function') {\n      try { window.baCurr.refreshConversion(); } catch (e) {}\n    }\n  }\n \n  /* ---------- nodes ---------- */\n  var bar = $('[data-kd-bar]'), panel = $('[data-kd-panel]');\n  var mainBtn = $('[data-kd-main]'), kEl = $('[data-kd-k]'), subEl = $('[data-kd-sub]');\n  var chip = $('[data-kd-chip]'), cta = $('[data-kd-cta]'), ctaText = $('[data-kd-cta-text]');\n  var chatBtn = $('[data-kd-chat]'), chatDot = $('[data-kd-chat-dot]');\n  var diag = document.querySelector('[data-kd-diag]');\n \n  /* ---------- sizes (KSFinder) ---------- */\n  var KS = window.KSFinder || null;\n  var SV = KS && KS.sizes && KS.sizes.on && cfg.sizesOn ? KS.sizes : null;\n \n  function people() { return SV ? SV.list() : []; }\n  function person() {\n    var list = people();\n    if (!list.length) return null;\n    var id = SV.pick();\n    var p = id ? SV.get(id) : null;\n    if (p) return p;\n    var last = KS.recall ? KS.recall() || {} : {};\n    if (!(last.foot >= 10) && list.length === 1) return list[0];\n    /* several people, nobody picked: the one measured most recently */\n    return list.slice().sort(function (a, b) { return (+b.t || 0) - (+a.t || 0); })[0];\n  }\n  function recFor(model, p) {\n    if (!model || !p || !KS) return null;\n    var r = KS.sizeFor(model, p.foot, { fit: p.fit, socks: p.socks });\n    if (!r) return { none: true };\n    var pick = r.best || r.bestAny;\n    return { r: r, pick: pick, soldOut: !r.best, good: pick.score >= 75 };\n  }\n  /* Off the product page: the size that most of the models agree on */\n  function fitAcross(p) {\n    if (!KS || !KS.products || !KS.products.length) return null;\n    var count = {}, bestUs = null, bestN = 0;\n    KS.products.forEach(function (m) {\n      var x = recFor(m, p);\n      if (!x || x.none) return;\n      var k = String(x.pick.us);\n      count[k] = (count[k] || 0) + 1;\n      if (count[k] > bestN) { bestN = count[k]; bestUs = x.pick.us; }\n    });\n    return bestUs;\n  }\n  function finderUrl(p) {\n    var u = cfg.urls.finder || '/pages/size-finder';\n    if (!p || !(p.foot >= 10)) return u;\n    return u + (u.indexOf('?') > -1 ? '&' : '?') + 'ks_foot=' + trim(p.foot) + '&ks_fit=' + encodeURIComponent(p.fit || 'comfort') + (p.socks ? '&ks_socks=1' : '');\n  }\n \n  /* ---------- product page ---------- */\n  var P = cfg.product || null;\n  var model = P && KS && typeof KS.build === 'function' ? KS.build(P.raw) : null;\n  var secRoot = P ? (document.querySelector('[data-section-type=\"product\"]') || null) : null;\n  var form = secRoot ? secRoot.querySelector('form[action*=\"/cart/add\"]') : null;\n  var secId = secRoot ? (secRoot.getAttribute('data-section-id') || '') : '';\n  var SIZE_KEY = P ? 'option' + P.sizePos : '', COLOR_KEY = P && P.colorPos ? 'option' + P.colorPos : '';\n \n  function radios(key) {\n    return secRoot ? Array.prototype.slice.call(secRoot.querySelectorAll('input[type=radio][data-index=\"' + key + '\"]')) : [];\n  }\n  function currentOpt(key) {\n    if (!key || !secRoot) return '';\n    var r = radios(key).filter(function (x) { return x.checked; })[0];\n    if (r) return r.value;\n    var s = secRoot.querySelector('select[data-index=\"' + key + '\"]');\n    return s ? s.value : '';\n  }\n  function choose(key, value) {\n    var r = radios(key).filter(function (x) { return x.value === value; })[0];\n    if (r) {\n      if (!r.checked) { r.checked = true; r.dispatchEvent(new Event('change', { bubbles: true })); }\n      return true;\n    }\n    var s = secRoot && secRoot.querySelector('select[data-index=\"' + key + '\"]');\n    if (s && Array.prototype.some.call(s.options, function (o) { return o.value === value; })) {\n      if (s.value !== value) { s.value = value; s.dispatchEvent(new Event('change', { bubbles: true })); }\n      return true;\n    }\n    return false;\n  }\n  function sizeValue(us) {\n    var s = (P && P.raw.s) || [];\n    for (var i = 0; i < s.length; i++) if (usOf(s[i]) === us) return s[i];\n    return String(us);\n  }\n  function variantFor(sizeVal, color) {\n    var us = usOf(sizeVal);\n    var vs = (P && P.variants) || [];\n    var exact = vs.filter(function (v) { return usOf(v.s) === us && (!P.colorPos || !color || v.c === color); });\n    return exact.filter(function (v) { return v.a; })[0] || exact[0] || null;\n  }\n  function masterVariant() {\n    var inp = form && form.querySelector('[name=\"id\"]');\n    if (!inp || !inp.value) return null;\n    var id = String(inp.value);\n    return ((P && P.variants) || []).filter(function (v) { return String(v.id) === id; })[0] || null;\n  }\n  function delivery(variantId) {\n    if (!cfg.delivery || !window.KSDelivery || !secId) return null;\n    try { return variantId ? window.KSDelivery.get(secId, variantId) : window.KSDelivery.current(secId); } catch (e) { return null; }\n  }\n \n  /* ---------- bag (/cart.js) ---------- */\n  var CART = null, cartT = 0;\n  function loadCart(then) {\n    fetch((cfg.urls.cart || '/cart') + '.js', { credentials: 'same-origin', headers: { Accept: 'application/json' } })\n      .then(function (r) { return r.ok ? r.json() : null; })\n      .then(function (c) { if (c) { CART = c; paintSoon(); } if (then) then(c); })\n      .catch(function () {});\n  }\n  function cartLater() { clearTimeout(cartT); cartT = setTimeout(function () { loadCart(); }, 350); }\n  document.addEventListener('cart:updated', function (e) {\n    if (e && e.detail && e.detail.cart && e.detail.cart.item_count != null) { CART = e.detail.cart; paintSoon(); }\n    else cartLater();\n  });\n  document.addEventListener('ajaxProduct:added', function () { flashAdded(); cartLater(); });\n \n  /* ---------- state ---------- */\n  var S = { open: false, added: 0, mode: '' };\n  function count() { return CART ? CART.item_count || 0 : 0; }\n  function total() { return CART ? CART.total_price || 0 : 0; }\n \n  function compute() {\n    var p = SV ? person() : null;\n    var n = count();\n    if (S.card) return { mode: 'added', p: p, n: n, card: S.card };\n    if (S.added && Date.now() - S.added < 1800) return { mode: 'added', p: p, n: n };\n    if (P && model) {\n      var mv = masterVariant();\n      var color = currentOpt(COLOR_KEY);\n      var selSize = currentOpt(SIZE_KEY);\n      var rec = p ? recFor(model, p) : null;\n      var rs = radios(SIZE_KEY);\n      var sizeChosen = rs.length ? rs.some(function (r) { return r.checked; }) : !!selSize;\n      /* The theme ticks the first size on arrival. Until the shopper (or the\n         size helper) touches the form, a saved size beats that default. */\n      var follow = sizeChosen && (S.touched || (rec && rec.none));\n      var v = follow ? (mv || variantFor(selSize, color)) : null;\n      if (!v && rec && !rec.none) {\n        v = variantFor(sizeValue(rec.pick.us), color);\n        /* that size is out in this colour but in stock in another: offer that one */\n        if ((!v || !v.a) && rec.r.best) { var alt = variantFor(sizeValue(rec.pick.us), ''); if (alt && alt.a) v = alt; }\n      }\n      if (!v && sizeChosen && (S.touched || rec)) v = mv || variantFor(selSize, color);\n      if (n > 0 && S.showBag) return { mode: 'purchase', p: p, n: n };\n      return { mode: 'product', p: p, n: n, v: v, color: v ? v.c : color, rec: rec, sizeChosen: sizeChosen, touched: !!S.touched,\n               us: v ? usOf(v.s) : (rec && !rec.none ? rec.pick.us : NaN), sizeValRaw: v ? v.s : null };\n    }\n    if (n > 0) return { mode: 'purchase', p: p, n: n };\n    if (p) return { mode: 'fit', p: p, us: fitAcross(p) };\n    return { mode: 'unknown', p: null };\n  }\n \n  /* ---------- paint ---------- */\n  var soon = 0;\n  function paintSoon() { if (soon) return; soon = setTimeout(function () { soon = 0; paint(); }, 30); }\n \n  function setCta(label, vars, href, quiet) {\n    fill(ctaText, label, vars || {});\n    cta.classList.toggle('is-quiet', !!quiet);\n    if (href) { cta.setAttribute('href', href); cta.removeAttribute('role'); }\n    else { cta.setAttribute('href', '#'); cta.setAttribute('role', 'button'); }\n  }\n  function paint() {\n    var st = compute();\n    S.mode = st.mode;\n    var p = st.p, vars = { name: p ? p.name : '', foot: p ? trim(p.foot) : '', count: st.n || 0 };\n    chip.hidden = true;\n    mainBtn.disabled = false;\n    mainBtn.setAttribute('aria-label', txt('open', 'More about your fit'));\n \n    mainBtn.classList.toggle('no-more', st.mode !== 'fit');\n    if (st.mode === 'unknown') {\n      fill(kEl, txt('unknown', 'Find my size'), vars);\n      subEl.textContent = '';\n      setCta(txt('shop', 'Shop shoes'), vars, cfg.urls.shop);\n    } else if (st.mode === 'fit') {\n      vars.size = st.us != null && !isNaN(st.us) ? st.us : '';\n      fill(kEl, vars.size === '' ? txt('unknown', 'Find my size') : txt('fit', 'Your fit \u00B7 US [size] \u2713'), vars);\n      subEl.textContent = people().length > 1 ? (txt('xWho', 'Shopping for') + ' ' + p.name) : '';\n      var fu = cfg.urls.fit || cfg.urls.shop;\n      setCta(txt('fitBtn', 'Shop in my size'), vars, fu + (fu.indexOf('?') > -1 ? '&' : '?') + 'ks_foot=' + trim(p.foot) + '&ks_fit=' + encodeURIComponent(p.fit || 'comfort') + (p.socks ? '&ks_socks=1' : ''));\n    } else if (st.mode === 'added') {\n      fill(kEl, txt('added', 'Added to your bag \u2713'), vars);\n      subEl.textContent = st.card ? (st.n === 1 ? txt('bagOne', '1 item \u00B7 [price]') : txt('bag', '[count] items \u00B7 [price]')).replace(/\\[count\\]/g, st.n).replace(/\\s*\u00B7?\\s*\\[price\\]/g, '') : '';\n      vars.priceCents = total();\n      setCta(txt('checkout', 'Checkout'), vars, cfg.urls.checkout);\n    } else if (st.mode === 'purchase') {\n      vars.priceCents = total();\n      fill(kEl, st.n === 1 ? txt('bagOne', '1 item \u00B7 [price]') : txt('bag', '[count] items \u00B7 [price]'), vars);\n      subEl.textContent = txt('viewCart', 'View bag');\n      setCta(txt('checkout', 'Checkout'), vars, cfg.urls.checkout);\n    } else { /* product */\n      var rec = st.rec, v = st.v, sub = '';\n      vars.size = isNaN(st.us) ? '' : st.us;\n      vars.color = st.color || '';\n      vars.model = model.title;\n      var d = v ? delivery(v.id) : null;\n      if (!p) {\n        if (v) fill(kEl, txt('psel', 'US [size] \u00B7 [color]'), vars);\n        else fill(kEl, txt('pnofit', 'Find my size'), vars);\n      } else if (rec && rec.none) {\n        fill(kEl, txt('pnone', 'No match in this model'), vars);\n      } else if (rec && rec.soldOut && !st.touched && (!v || !v.a)) {\n        fill(kEl, txt('psold', 'US [size] \u00B7 sold out in this model'), vars);\n      } else if (rec && v && usOf(v.s) === rec.pick.us) {\n        vars.eu = rec.pick.eu || '';\n        vars.room = trim(rec.pick.room);\n        vars.quality = rec.good ? txt('xFitGood', 'Excellent fit') : txt('xFitOk', 'Good fit');\n        fill(kEl, rec.good ? txt('pfit', 'Your size US [size]') : txt('pclosest', 'Closest \u00B7 US [size]'), vars);\n        sub = txt('pfitSub', '[quality] \u00B7 EU [eu]');\n      } else if (v) {\n        fill(kEl, txt('psel', 'US [size] \u00B7 [color]'), vars);\n      } else {\n        fill(kEl, txt('pnofit', 'Find my size'), vars);\n      }\n      /* line 2: fit sentence, then the delivery estimate */\n      clear(subEl);\n      if (sub) {\n        var tmp = el('span'); fill(tmp, sub, vars);\n        /* colour the fit quality */\n        var q = vars.quality || '';\n        var str = tmp.textContent, at = q ? str.indexOf(q) : -1;\n        if (at > -1) {\n          if (at > 0) subEl.appendChild(document.createTextNode(str.slice(0, at)));\n          subEl.appendChild(el('span', 'ksdock__q2', q));\n          subEl.appendChild(document.createTextNode(str.slice(at + q.length)));\n        } else subEl.appendChild(document.createTextNode(str));\n      }\n      if (d && d.text) {\n        if (subEl.firstChild) subEl.appendChild(document.createTextNode(txt('sep', ' \u00B7 ')));\n        subEl.appendChild(document.createTextNode(d.text));\n      }\n      mainBtn.classList.toggle('no-more', !(p && rec && !rec.none));\n      if (st.n > 0 && cfg.bagChip) {\n        fill(chip.querySelector('[data-kd-chip-text]') || chip, txt('bagChip', '[count]'), vars);\n        chip.setAttribute('aria-label', txt('viewCart', 'View bag') + ' (' + (st.n || 0) + ')');\n        chip.hidden = false;\n      }\n      var noFit = rec && !st.touched && (rec.none || (rec.soldOut && (!v || !v.a)));\n      if (noFit) {\n        setCta(txt('xModels', 'See better-fitting models'), vars, finderUrl(p) + (p && p.foot >= 10 ? '&ks_go=results' : ''), true);\n      } else if (!v) {\n        setCta(st.sizeChosen && (st.touched || rec) ? txt('soldout', 'Sold out') : txt('choose', 'Choose size'), vars, null, true);\n      } else if (!v.a) {\n        setCta(txt('soldout', 'Sold out'), vars, null, true);\n      } else {\n        vars.priceCents = v.p;\n        setCta(txt('add', '[price] \u00B7 Add'), vars, null, false);\n      }\n      S.v = v;\n    }\n    S.st = st;\n    if (st.card) { S.open = true; paintCard(st); }\n    else if (!S.open || st.mode === 'purchase' || st.mode === 'unknown' || st.mode === 'added') { S.open = false; panel.hidden = true; }\n    else paintPanel(st);\n    dock.classList.toggle('is-open', S.open);\n    mainBtn.setAttribute('aria-expanded', S.open ? 'true' : 'false');\n    paintDiag(st);\n  }\n \n  /* ---------- expanded panel ---------- */\n  function paintPanel(st) {\n    var p = st.p;\n    clear(panel);\n    panel.hidden = false;\n    var head = el('div', 'ksdock__ph');\n    var hl = el('div');\n    hl.appendChild(el('p', 'ksdock__title', txt('xTitle', 'Recommended for you')));\n    if (p) { var b = el('p', 'ksdock__based'); fill(b, txt('xBased', 'Based on a [foot] cm foot length'), { foot: trim(p.foot), name: p.name }); hl.appendChild(b); }\n    head.appendChild(hl);\n    var x = el('button', 'ksdock__x', '\u00D7'); x.type = 'button'; x.setAttribute('aria-label', txt('close', 'Close'));\n    x.addEventListener('click', function () { S.open = false; paint(); });\n    head.appendChild(x);\n    panel.appendChild(head);\n \n    var rec = st.rec;\n    if (st.mode === 'product' && rec && !rec.none) {\n      var row = el('div', 'ksdock__row');\n      var big = el('div', 'ksdock__big', 'US ' + rec.pick.us);\n      if (rec.pick.eu) big.appendChild(el('small', null, 'EU ' + rec.pick.eu));\n      row.appendChild(big);\n      row.appendChild(el('span', 'ksdock__q' + (rec.good ? '' : ' is-ok'), rec.good ? txt('xFitGood', 'Excellent fit') : txt('xFitOk', 'Good fit')));\n      panel.appendChild(row);\n      var det = el('p', 'ksdock__detail');\n      fill(det, txt('xDetail', 'Your foot [foot] cm \u00B7 inside length [inner] cm \u00B7 [room] cm room'), { foot: trim(p.foot), inner: trim(rec.pick.cm), room: trim(rec.pick.room) });\n      panel.appendChild(det);\n      var track = el('div', 'ksdock__bar2');\n      var pin = el('span', 'ksdock__pin');\n      var span = KS.maxRoom - KS.minRoom || 1;\n      pin.style.left = Math.max(4, Math.min(96, ((rec.pick.room - KS.minRoom) / span) * 100)) + '%';\n      track.appendChild(pin);\n      panel.appendChild(track);\n    } else if (st.mode === 'fit') {\n      var row2 = el('div', 'ksdock__row');\n      row2.appendChild(el('div', 'ksdock__big', st.us != null && !isNaN(st.us) ? 'US ' + st.us : trim(p.foot) + ' cm'));\n      panel.appendChild(row2);\n    }\n \n    var list = people();\n    if (list.length > 1) {\n      var who = el('div', 'ksdock__who');\n      who.appendChild(el('span', null, txt('xWho', 'Shopping for')));\n      list.forEach(function (q) {\n        var bt = el('button', null, q.name); bt.type = 'button';\n        bt.setAttribute('aria-pressed', p && q.id === p.id ? 'true' : 'false');\n        bt.addEventListener('click', function () {\n          SV.pick(q.id);\n          applyRec(q);\n          paint();\n          if (KS.track) KS.track('ks_dock_person', { surface: cfg.surface });\n        });\n        who.appendChild(bt);\n      });\n      panel.appendChild(who);\n    }\n \n    var links = el('div', 'ksdock__links');\n    /* Change fit = edit this person's foot length / fit in My sizes; the finder is the fallback */\n    var a1 = el('a', null, txt('xChange', 'Change fit')); a1.href = finderUrl(p);\n    a1.addEventListener('click', function (e) {\n      if (window.KSMySizes && typeof window.KSMySizes.open === 'function') {\n        e.preventDefault();\n        S.open = false; paint();\n        window.KSMySizes.open();\n      }\n    });\n    links.appendChild(a1);\n    if (st.mode === 'product') { var a2 = el('a', null, txt('xModels', 'See better-fitting models')); a2.href = finderUrl(p) + (p && p.foot >= 10 ? '&ks_go=results' : ''); links.appendChild(a2); }\n    panel.appendChild(links);\n  }\n \n  /* ---------- added-to-bag card ---------- */\n  function paintCard(st) {\n    var c = st.card, v = c.v;\n    clear(panel);\n    panel.hidden = false;\n    var head = el('div', 'ksdock__ph');\n    head.appendChild(el('p', 'ksdock__title', txt('added', 'Added to your bag \u2713')));\n    var x = el('button', 'ksdock__x', '\u00D7'); x.type = 'button'; x.setAttribute('aria-label', txt('close', 'Close'));\n    x.addEventListener('click', closeCard);\n    head.appendChild(x);\n    panel.appendChild(head);\n \n    var card = el('div', 'ksdock__card');\n    var src = (c.item && c.item.image) || (P && P.img) || '';\n    /* the cart API gives the full-size image; ask the CDN for a small one */\n    if (src && /\\/cdn\\/|cdn\\.shopify\\.com|\\/s\\/files\\//.test(src) && !/[?&]width=/.test(src)) src += (src.indexOf('?') > -1 ? '&' : '?') + 'width=160';\n    if (src) { var im = el('img', 'ksdock__thumb'); im.alt = ''; im.loading = 'lazy'; im.src = src; card.appendChild(im); }\n    var body = el('div', 'ksdock__cbody');\n    body.appendChild(el('p', 'ksdock__ctitle', (c.item && c.item.product_title) || (model && model.title) || ''));\n    var meta = el('p', 'ksdock__cmeta');\n    var bits = [];\n    if (v && v.s) bits.push('US ' + usOf(v.s));\n    if (v && v.c) bits.push(v.c);\n    var tpl = bits.join(' \u00B7 ') + (bits.length ? ' \u00B7 ' : '') + '[price]';\n    fill(meta, tpl, { priceCents: c.item ? c.item.final_price : (v ? v.p : 0) });\n    body.appendChild(meta);\n    var d = v ? delivery(v.id) : null;\n    if (d && d.text) body.appendChild(el('p', 'ksdock__cmeta', d.text));\n    card.appendChild(body);\n    panel.appendChild(card);\n \n    var btns = el('div', 'ksdock__cbtns');\n    var keep = el('a', 'ksdock__cta is-quiet', txt('keep', 'Keep shopping')); keep.href = '#'; keep.setAttribute('role', 'button');\n    keep.addEventListener('click', function (e) { e.preventDefault(); closeCard(); });\n    btns.appendChild(keep);\n    var bag = el('a', 'ksdock__cta is-quiet', txt('viewCart', 'View bag')); bag.href = cfg.urls.cart || '/cart';\n    bag.addEventListener('click', function (e) { e.preventDefault(); closeCard(); openCart(); });\n    btns.appendChild(bag);\n    panel.appendChild(btns);\n  }\n  function closeCard() {\n    S.card = null;\n    S.open = false;\n    S.showBag = false;\n    paint();\n  }\n  /* add through the cart API ourselves (no theme drawer), then tell the theme */\n  function addDirect(v) {\n    cta.classList.add('is-busy');\n    fetch((cfg.urls.cart || '/cart') + '/add.js', {\n      method: 'POST', credentials: 'same-origin',\n      headers: { 'Content-Type': 'application/json', Accept: 'application/json' },\n      body: JSON.stringify({ id: v.id, quantity: 1 })\n    }).then(function (r) { return r.json().then(function (j) { return { ok: r.ok, j: j }; }); })\n      .then(function (res) {\n        cta.classList.remove('is-busy');\n        if (!res.ok) { addFailed(); return; }\n        loadCart(function (c) {\n          /* the theme rebuilds its drawer and header count from these */\n          try {\n            document.dispatchEvent(new CustomEvent('cart:build'));\n            document.dispatchEvent(new CustomEvent('cart:updated', { detail: { cart: c } }));\n          } catch (e) {}\n        });\n        S.added = 0;\n        S.card = { v: v, item: res.j };\n        paint();\n        if (KS && KS.track) KS.track('ks_dock_add', { surface: cfg.surface, mode: 'card' });\n      })\n      .catch(function () { cta.classList.remove('is-busy'); addFailed(); });\n  }\n  var errT = 0;\n  function addFailed() {\n    clear(subEl);\n    subEl.appendChild(el('span', 'ksdock__err', txt('addErr', \"Couldn't add this one \u2013 please try again\")));\n    clearTimeout(errT);\n    errT = setTimeout(paintSoon, 3500);\n  }\n \n  /* pick the recommended size in the theme's own buttons */\n  function applyRec(p) {\n    if (!model || !p) return false;\n    var x = recFor(model, p);\n    if (!x || x.none || x.soldOut) return false;\n    return choose(SIZE_KEY, sizeValue(x.pick.us));\n  }\n \n  /* ---------- actions ---------- */\n  function themeAddButton() {\n    return form && (form.querySelector('[data-add-to-cart]') || form.querySelector('button[type=submit][name=add]') || form.querySelector('[type=submit]'));\n  }\n  function scrollToSizes() {\n    var r = radios(SIZE_KEY)[0] || (secRoot && secRoot.querySelector('select[data-index=\"' + SIZE_KEY + '\"]'));\n    var wrap = r ? (r.closest('.variant-wrapper') || r.closest('fieldset') || r.parentNode) : null;\n    if (wrap) wrap.scrollIntoView({ behavior: reduced() ? 'auto' : 'smooth', block: 'center' });\n  }\n  var pendingAdd = 0;\n  function flashAdded() {\n    S.added = Date.now();\n    cta.classList.remove('is-busy');\n    paint();\n    setTimeout(function () {\n      S.added = 0;\n      /* \"mini\": stay on the bag until the shopper touches the product form again */\n      S.showBag = cfg.afterAdd === 'mini';\n      paint();\n    }, 1800);\n    if (KS && KS.track) KS.track('ks_dock_add', { surface: cfg.surface });\n  }\n  cta.addEventListener('click', function (e) {\n    var st = S.st || {};\n    if (st.mode !== 'product' && st.mode !== 'added') return; /* plain link */\n    if (st.mode === 'product' && cta.getAttribute('href') !== '#') return; /* a real link (better-fitting models) */\n    e.preventDefault();\n    if (st.mode === 'added') { location.href = cfg.urls.checkout; return; }\n    var v = S.v;\n    if (!v) { scrollToSizes(); return; }\n    if (!v.a) return;\n    /* keep the theme's form in step with what we add */\n    var ok = true;\n    if (v.s) ok = choose(SIZE_KEY, v.s) || ok;\n    if (COLOR_KEY && v.c) choose(COLOR_KEY, v.c);\n    if (cfg.afterAdd === 'card') { addDirect(v); return; }\n    var btn = themeAddButton();\n    var inp = form && form.querySelector('[name=\"id\"]');\n    if (!btn || !inp) { scrollToSizes(); return; }\n    cta.classList.add('is-busy');\n    clearTimeout(pendingAdd);\n    var tries = 0;\n    (function go() {\n      if (String(inp.value) !== String(v.id) && tries < 12) { tries++; pendingAdd = setTimeout(go, 80); return; }\n      if (String(inp.value) !== String(v.id)) inp.value = v.id;\n      btn.click();\n      /* if the theme does not use ajax, the page reloads; if it does, we hear ajaxProduct:added */\n      pendingAdd = setTimeout(function () { cta.classList.remove('is-busy'); }, 4000);\n    })();\n  });\n  mainBtn.addEventListener('click', function () {\n    var st = S.st || {};\n    if (st.mode === 'unknown') { location.href = finderUrl(null); return; }\n    if (st.mode === 'added') { location.href = cfg.urls.checkout; return; }\n    if (st.mode === 'purchase') {\n      openCart(); return;\n    }\n    if (st.mode === 'product' && !st.p && !st.rec) { location.href = finderUrl(null); return; }\n    S.open = !S.open;\n    paint();\n    if (S.open && KS && KS.track) KS.track('ks_dock_open', { surface: cfg.surface, mode: st.mode });\n  });\n  /* The bag: the theme's slide-out cart drawer, like the header icon.\n     The drawer fills itself over the network first, so give it a moment;\n     if it still is not open, the cart page is the fallback. */\n  function openCart() {\n    var cartUrl = cfg.urls.cart || '/cart';\n    if (cfg.surface === 'cart') { window.scrollTo({ top: 0, behavior: reduced() ? 'auto' : 'smooth' }); return; }\n    var opener = document.querySelector('.js-drawer-open-cart');\n    if (!opener) { location.href = cartUrl; return; }\n    /* after the tap on the dock has finished bubbling: the drawer closes\n       itself on any click outside, and the tap that opened it would count */\n    setTimeout(function () {\n      try { opener.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true })); } catch (e) { location.href = cartUrl; return; }\n      var waited = 0;\n      (function check() {\n        if (html.classList.contains('js-drawer-open')) return;\n        waited += 100;\n        if (waited >= 1500) { location.href = cartUrl; return; }\n        setTimeout(check, 100);\n      })();\n    }, 30);\n    if (KS && KS.track) KS.track('ks_dock_bag', { surface: cfg.surface });\n  }\n  chip.addEventListener('click', openCart);\n  document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && S.open) { if (S.card) closeCard(); else { S.open = false; paint(); } } });\n \n  /* swipe up to expand, down to close (phones) */\n  if (cfg.swipe) {\n    var g = null;\n    dock.addEventListener('touchstart', function (e) { if (e.touches.length === 1) g = { y: e.touches[0].clientY, t: Date.now() }; }, { passive: true });\n    dock.addEventListener('touchend', function (e) {\n      if (!g) return;\n      var dy = (e.changedTouches[0].clientY - g.y), dt = Date.now() - g.t;\n      g = null;\n      if (dt > 600 || Math.abs(dy) < 28) return;\n      var st = S.st || {};\n      if (dy < 0 && !S.open && (st.mode === 'product' || st.mode === 'fit')) { S.open = true; paint(); }\n      else if (dy > 0 && S.open) { if (S.card) closeCard(); else { S.open = false; paint(); } }\n    }, { passive: true });\n  }\n \n  /* ---------- hide while a drawer / modal / size chart / cookie bar is open ---------- */\n  var html = document.documentElement;\n  /* the Tidio chat window is open (API event, or a look at its widget) */\n  var chatWindowOpen = false;\n  function tidioWindowOpen() {\n    if (chatWindowOpen) return true;\n    var tc = document.getElementById('tidio-chat');\n    var sr = tc && tc.shadowRoot;\n    if (!sr || !shown(tc)) return false;\n    var chat = sr.querySelector('.chat');\n    return !!chat && !chat.classList.contains('chat-closed') && !sr.querySelector('.chat-closed') && chat.getBoundingClientRect().height > 200;\n  }\n  /* Anything that opens over the page: the theme's drawers and modals\n     (js-drawer-open, modal-open, lock-scroll, photo zoom), predictive\n     search, our size chart (kssc-lock), My sizes (kms-lock), the cookie\n     bar, Tidio \u2013 and, as a catch-all, anything that locks page scroll. */\n  var LOCK_HTML = ['js-drawer-open', 'modal-open', 'lock-scroll', 'pswp-open-in-ios', 'kssc-lock', 'kms-lock', 'kst-cookie-open', 'jdgm-modal-opened'];\n  var LOCK_BODY = ['predictive-overflow-hidden', 'modal-open', 'jdgm-modal-opened', 'pc-popup-open'];\n  /* offsetParent is null for position:fixed elements, so measure instead */\n  function shown(el) {\n    if (!el) return false;\n    var cs = getComputedStyle(el);\n    if (cs.display === 'none' || cs.visibility === 'hidden') return false;\n    var r = el.getBoundingClientRect();\n    return r.width > 0 && r.height > 0;\n  }\n  function blocked() {\n    if (tidioWindowOpen()) return true;\n    for (var i = 0; i < LOCK_HTML.length; i++) if (html.classList.contains(LOCK_HTML[i])) return true;\n    for (var j = 0; j < LOCK_BODY.length; j++) if (document.body.classList.contains(LOCK_BODY[j])) return true;\n    var ov = getComputedStyle(document.body).overflow, ovh = getComputedStyle(html).overflow;\n    if (ov === 'hidden' || ovh === 'hidden') return true;\n    if (shown(document.getElementById('shopify-pc__banner'))) return true;\n    var ms = document.querySelectorAll('.modal.modal--is-active, .modal--is-active, .pswp--open:not([aria-hidden=\"true\"]), .kms, dialog[open]');\n    for (var k = 0; k < ms.length; k++) if (shown(ms[k])) return true;\n    var ae = document.activeElement;\n    if (isPhone.matches && ae && /^(INPUT|TEXTAREA|SELECT)$/.test(ae.tagName) && ae.type !== 'radio' && ae.type !== 'checkbox' && !dock.contains(ae)) return true;\n    return false;\n  }\n  function visibility() { dock.classList.toggle('is-away', blocked()); }\n  new MutationObserver(visibility).observe(html, { attributes: true, attributeFilter: ['class', 'style'] });\n  new MutationObserver(visibility).observe(document.body, { attributes: true, attributeFilter: ['class', 'style'] });\n  document.addEventListener('focusin', visibility);\n  document.addEventListener('focusout', function () { setTimeout(visibility, 50); });\n  setInterval(visibility, 800);\n \n  /* ---------- shrink on scroll ---------- */\n  if (cfg.shrink && cfg.shrink.on && !reduced()) {\n    dock.style.setProperty('--kd-shrink', String(Math.max(0.4, Math.min(1, (cfg.shrink.to || 70) / 100))));\n    var lastY = window.pageYOffset, idleT = 0, after = cfg.shrink.after || 80;\n    window.addEventListener('scroll', function () {\n      var y = window.pageYOffset;\n      var down = y > lastY + 2, up = y < lastY - 2;\n      lastY = y;\n      if (S.open) { dock.classList.remove('is-shrunk'); return; }\n      if (down && y > after) dock.classList.add('is-shrunk');\n      else if (up || y <= after) dock.classList.remove('is-shrunk');\n      if (cfg.shrink.back === 'stop') { clearTimeout(idleT); idleT = setTimeout(function () { dock.classList.remove('is-shrunk'); }, 700); }\n    }, { passive: true });\n  }\n \n  /* ---------- chat (Tidio) ---------- */\n  /* Tidio's widget lives in #tidio-chat (shadow DOM). hide()/show()/open()\n     are its public API; the CSS rule is the belt to that braces. */\n  var chatStyle = null, chatOn = !!(cfg.chat && cfg.chat.on), chatDots = [];\n  function api() { return window.tidioChatApi || null; }\n  function tidioHide(on) {\n    if (!chatOn || !cfg.chat.hideTidio) return;\n    if (!chatStyle) {\n      chatStyle = document.createElement('style');\n      chatStyle.id = 'ks-dock-tidio';\n      chatStyle.textContent = '#tidio-chat{display:none !important}';\n    }\n    if (on && !chatStyle.parentNode) document.head.appendChild(chatStyle);\n    if (!on && chatStyle.parentNode) chatStyle.parentNode.removeChild(chatStyle);\n    var a = api();\n    try { if (a) { if (on) a.hide(); else a.show(); } } catch (e) {}\n  }\n  function setDots(show) { chatDots.forEach(function (d) { d.hidden = !show; }); }\n  function openChat() {\n    var a = api();\n    tidioHide(false);\n    if (a && typeof a.open === 'function') { try { a.open(); } catch (e) {} setDots(false); }\n    else {\n      /* not loaded yet (slow network, consent): open as soon as it is */\n      document.addEventListener('tidioChat-ready', function once() {\n        document.removeEventListener('tidioChat-ready', once);\n        var b = api(); if (b) { try { b.show(); b.open(); } catch (e) {} }\n      });\n    }\n    if (KS && KS.track) KS.track('ks_dock_chat', { surface: cfg.surface });\n  }\n  function wireTidio() {\n    var a = api(); if (!a || wireTidio.done) return; wireTidio.done = true;\n    try {\n      a.on('open', function () { chatWindowOpen = true; visibility(); tidioHide(false); setDots(false); });\n      a.on('close', function () { chatWindowOpen = false; tidioHide(true); visibility(); });\n      a.on('messageFromOperator', function () { setDots(true); });\n    } catch (e) {}\n    tidioHide(true);\n  }\n  document.addEventListener('tidioChat-ready', wireTidio);\n  wireTidio();\n  if (chatOn) {\n    tidioHide(true);\n    /* pos 'none': no button anywhere, chat opens only from #chat links */\n    if (cfg.chat.pos === 'dock-left' || cfg.chat.pos === 'dock-right') {\n      chatBtn.hidden = false;\n      chatDots.push(chatDot);\n      bar.classList.add(cfg.chat.pos === 'dock-right' ? 'has-chat-right' : 'has-chat-left');\n      chatBtn.addEventListener('click', openChat);\n    }\n    /* any link to #chat on the page opens the chat too (menu, footer, pages) */\n    document.addEventListener('click', function (e) {\n      var a = e.target && e.target.closest ? e.target.closest('a[href=\"#chat\"], a[href$=\"#chat\"]') : null;\n      if (!a) return;\n      e.preventDefault();\n      openChat();\n    });\n  }\n \n  /* ---------- bubbles beside / above the dock ---------- */\n  var icons = dock.querySelector('template[data-kd-icons]');\n  function icon(name) {\n    var src = icons && icons.content ? icons.content.querySelector('[data-icon=\"' + name + '\"]') : null;\n    return src ? src.cloneNode(true) : null;\n  }\n  var topBubbles = [];\n  function bubble(kind) {\n    if (kind === 'chat' && !(chatOn && cfg.chat.pos === 'bubble')) return null;\n    if (kind === 'sizes' && !SV) return null;\n    var b = el('button', 'ksdock__bubble ksdock__bubble--' + kind);\n    b.type = 'button';\n    var ic = icon(kind); if (ic) b.appendChild(ic);\n    if (kind === 'chat') {\n      b.setAttribute('aria-label', txt('chat', 'Chat with us'));\n      var dot = el('span', 'ksdock__dot'); dot.hidden = true; b.appendChild(dot); chatDots.push(dot);\n      b.addEventListener('click', openChat);\n    } else if (kind === 'sizes') {\n      b.setAttribute('aria-label', txt('sizes', 'My sizes'));\n      b.addEventListener('click', function () {\n        if (window.KSMySizes && typeof window.KSMySizes.open === 'function') window.KSMySizes.open();\n        else location.href = finderUrl(SV ? person() : null);\n        if (KS && KS.track) KS.track('ks_dock_sizes', { surface: cfg.surface });\n      });\n    } else if (kind === 'top') {\n      b.setAttribute('aria-label', txt('top', 'Back to top'));\n      b.classList.add('is-off');\n      topBubbles.push(b);\n      b.addEventListener('click', function () { window.scrollTo({ top: 0, behavior: reduced() ? 'auto' : 'smooth' }); });\n    } else return null;\n    return b;\n  }\n  ['left', 'right'].forEach(function (side) {\n    var slot = dock.querySelector('[data-kd-slot=\"' + side + '\"]');\n    var kind = cfg.slots ? cfg.slots[side] : 'none';\n    var b = slot && kind && kind !== 'none' ? bubble(kind) : null;\n    if (b) { slot.appendChild(b); slot.hidden = false; dock.classList.add('has-slot-' + side); }\n  });\n  if (cfg.slots && cfg.slots.above) dock.classList.add('ksdock--slots-above');\n  if (topBubbles.length) {\n    var topAfter = (cfg.slots && cfg.slots.topAfter) || 600;\n    var topTick = function () { var on = window.pageYOffset > topAfter; topBubbles.forEach(function (b) { b.classList.toggle('is-off', !on); }); };\n    window.addEventListener('scroll', topTick, { passive: true });\n    topTick();\n  }\n \n  /* ---------- diagnostics (theme editor only; the element exists only there) ---------- */\n  function paintDiag(st) {\n    if (!diag) return;\n    var p = st.p;\n    diag.textContent = 'KS Dock \u00B7 ' + st.mode + ' \u00B7 ' + cfg.surface +\n      (p ? ' \u00B7 person ' + p.name + ' ' + trim(p.foot) + ' cm/' + p.fit : ' \u00B7 no saved size') +\n      (model ? ' \u00B7 chart ' + model.chart : (P ? ' \u00B7 product: no chart match' : '')) +\n      (st.v ? ' \u00B7 variant ' + st.v.id : '') +\n      ' \u00B7 bag ' + count() +\n      (KS ? '' : ' \u00B7 KSFinder missing') + (SV ? '' : ' \u00B7 saved sizes off') +\n      (cfg.delivery && !window.KSDelivery && P ? ' \u00B7 no delivery data' : '');\n  }\n \n  /* ---------- wiring ---------- */\n  if (secRoot) {\n    secRoot.addEventListener('variantChange', paintSoon);\n    secRoot.addEventListener('change', function (e) {\n      if (e.target && /^(INPUT|SELECT)$/.test(e.target.tagName)) S.touched = true;\n      S.showBag = false;\n      S.card = null;\n      paintSoon();\n    });\n  }\n  document.addEventListener('ks:sizes', paintSoon);\n  window.addEventListener('pageshow', function () { loadCart(); });\n  document.addEventListener('shopify:section:load', paintSoon);\n \n  /* Sent here by \"See better-fitting models\": the finder already has the\n     foot length from the URL; press its own buttons \u2013 \"Show both\" ranges,\n     then \"Show my N shoes\" \u2013 so the shopper lands on the results. */\n  if (/[?&]ks_go=results\\b/.test(location.search)) {\n    var tries = 0;\n    (function toResults() {\n      var app = document.querySelector('[data-ksw]');\n      var both = app && app.querySelector('.ksw-any[data-f=\"system\"][data-v=\"\"]');\n      var show = app && app.querySelector('[data-show]');\n      if (both && show) {\n        if (both.getAttribute('aria-pressed') !== 'true') both.click();\n        show.click();\n        setTimeout(function () {\n          var res = document.querySelector('.ksw-res:not([hidden])');\n          if (res && res.getBoundingClientRect().top > window.innerHeight * 0.6) res.scrollIntoView({ behavior: reduced() ? 'auto' : 'smooth', block: 'start' });\n        }, 500);\n        return;\n      }\n      if (++tries < 30) setTimeout(toResults, 150);\n    })();\n  }\n \n  dock.hidden = false;\n  paint();\n  visibility();\n  loadCart();\n  /* the product form and delivery script may finish after us */\n  setTimeout(paintSoon, 400);\n  setTimeout(paintSoon, 1500);\n})();\n "],
  "mappings": "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",
  "names": ["model", "count", "tries", "el"]
}
