{
  "version": 3,
  "sources": ["/cdn/shop/t/25/assets/pl-site.js?r=3"],
  "sourcesContent": ["/* Printed Love 3.0 \u00B7 site behavior: header menus, dialogs, cart drawer (Shopify Ajax Cart API).\n   Ported from the prototype's shared/site.js. Exposes window.PLCart for product pages. */\n(function () {\n  'use strict';\n  var root = (window.Shopify && Shopify.routes && Shopify.routes.root) || '/';\n  function el(tag, cls, txt) { var n = document.createElement(tag); if (cls) n.className = cls; if (txt != null) n.textContent = txt; return n; }\n  function dlg(id) { return document.getElementById('pl-' + id); }\n\n  /* ---------------- dialogs ---------------- */\n  function openDialog(id) { var d = dlg(id); if (d && !d.open) d.showModal(); return d; }\n  document.addEventListener('click', function (e) {\n    var o = e.target.closest('[data-pl-open]'); if (o) { if (o.getAttribute('data-pl-open') === 'cart') refresh(); openDialog(o.getAttribute('data-pl-open')); return; }\n    var c = e.target.closest('dialog [data-pl-close]'); if (c) { c.closest('dialog').close(); return; }\n    if (e.target.tagName === 'DIALOG' && e.target.classList.contains('pl')) e.target.close();\n  });\n\n  /* ---------------- \"Chat with us\" links open Shopify Inbox's chat; with no chat on the page they fall back to their email link ---------------- */\n  document.addEventListener('click', function (e) {\n    var l = e.target.closest('[data-pl-chat-open]'); if (!l) return;\n    e.preventDefault();\n    var tries = 0;\n    /* look through the widget's shadow roots (some versions nest the launcher one level deeper, and it is not always a <button>) */\n    function deep(root, test, depth) {\n      if (!root || depth > 4) return null;\n      var all = root.querySelectorAll('*');\n      for (var k = 0; k < all.length; k++) { if (test(all[k])) return all[k]; }\n      for (var m = 0; m < all.length; m++) { var f = all[m].shadowRoot && deep(all[m].shadowRoot, test, depth + 1); if (f) return f; }\n      return null;\n    }\n    function isLauncher(n) { return n.matches && (n.matches('[part~=\"activator\"], .activator, button[aria-label=\"Chat\"], [aria-label=\"Chat\"]')); }\n    (function go() {\n      var host = document.querySelector('shopify-chat'), sr = host && host.shadowRoot;\n      var rt = sr && deep(sr, function (n) { return n.localName === 'shopify-agent-runtime'; }, 0);\n      if (rt && rt.hasAttribute('open')) return; // already open\n      if (rt) { // the current widget keeps its launcher inside the runtime's own shadow root, and the runtime has its own open methods\n        var fn = typeof rt.openFromActivator === 'function' ? rt.openFromActivator : (typeof rt.open === 'function' ? rt.open : null);\n        if (fn) { try { fn.call(rt); return; } catch (err) { /* fall through to the launcher */ } }\n      }\n      var btn = sr && (deep(sr, isLauncher, 0) || deep(sr, function (n) { return n.localName === 'button'; }, 0));\n      if (btn) {\n        btn.click();\n        setTimeout(function () { // some phones ignore a script click: try a full tap sequence, then ask the runtime directly\n          if (rt && rt.hasAttribute('open')) return;\n          ['pointerdown', 'mousedown', 'pointerup', 'mouseup', 'click'].forEach(function (t) { btn.dispatchEvent(new MouseEvent(t, { bubbles: true, cancelable: true, composed: true, view: window })); });\n          setTimeout(function () { if (rt && !rt.hasAttribute('open')) { if (typeof rt.open === 'function') { try { rt.open(); } catch (er) {} } else rt.setAttribute('open', ''); } }, 400);\n        }, 500);\n        return;\n      }\n      if (rt && ++tries > 3) { if (typeof rt.open === 'function') { try { rt.open(); return; } catch (er) {} } rt.setAttribute('open', ''); return; } // no launcher to press: open the runtime itself\n      if (++tries < 30) return setTimeout(go, 200); // chat still loading: wait up to 6s\n      // chat never loaded: say so (with what we could see) and offer email, instead of jumping to the mail app\n      var info = 'host:' + (host ? 'yes' : 'no') + ', open():' + (host && typeof host.open === 'function' ? 'yes' : 'no') + ', shadow:' + (sr ? 'yes' : 'no') + ', launcher:' + (sr && deep(sr, isLauncher, 0) ? 'yes' : 'no') + ', runtime:' + (rt ? 'yes' : 'no') + ', kids:' + (sr ? [].slice.call(sr.children).map(function (c) { return c.localName; }).join('/') : '-');\n      try { console.warn('[Printed Love] chat did not open (' + info + ')'); } catch (er) {}\n      var old = document.querySelector('.pl-chatfail'); if (old) old.remove();\n      var t = document.createElement('div'); t.className = 'pl-chatfail'; t.setAttribute('role', 'status');\n      t.innerHTML = '<p>The chat is not available right now. You can email us instead.</p><p class=\"pl-chatfail__info\"></p><a class=\"pl-btn pl-btn--primary\" href=\"' + (l.getAttribute('data-pl-chat-fallback') || '#') + '\">Email us</a><button type=\"button\" class=\"pl-chatfail__x\" aria-label=\"Close\">&times;</button>';\n      t.querySelector('.pl-chatfail__info').textContent = info;\n      t.querySelector('.pl-chatfail__x').addEventListener('click', function () { t.remove(); });\n      document.body.appendChild(t);\n    })();\n  });\n\n  /* ---------------- policy links (footer) open in a window over the page; close it and you are still where you were ---------------- */\n  (function () {\n    var dlg;\n    function build() {\n      dlg = document.createElement('dialog'); dlg.className = 'pl-policy'; dlg.setAttribute('aria-labelledby', 'pl-policy-title');\n      dlg.innerHTML = '<div class=\"pl-policy__bar\"><h2 class=\"pl-policy__title\" id=\"pl-policy-title\"></h2><button type=\"button\" class=\"pl-policy__close\" aria-label=\"Close\">&times;</button></div><div class=\"pl-policy__body\" tabindex=\"0\"></div>';\n      document.body.appendChild(dlg);\n      dlg.querySelector('.pl-policy__close').addEventListener('click', function () { dlg.close(); });\n      dlg.addEventListener('click', function (e) { if (e.target === dlg) dlg.close(); });\n      dlg.addEventListener('close', function () { document.documentElement.classList.remove('pl-policy-open'); });\n    }\n    function show(href) {\n      return fetch(href, { credentials: 'same-origin' }).then(function (r) { if (!r.ok) throw 0; return r.text(); }).then(function (html) {\n        var d = new DOMParser().parseFromString(html, 'text/html'), body = d.querySelector('.shopify-policy__body'), h = d.querySelector('.shopify-policy__title h1');\n        if (!body) throw 0;\n        if (!dlg) build();\n        dlg.querySelector('.pl-policy__title').textContent = h ? h.textContent.trim() : '';\n        var box = dlg.querySelector('.pl-policy__body'); box.innerHTML = body.innerHTML; box.scrollTop = 0;\n        if (!dlg.open) { dlg.showModal(); document.documentElement.classList.add('pl-policy-open'); }\n      });\n    }\n    document.addEventListener('click', function (e) {\n      if (e.defaultPrevented || e.button || e.metaKey || e.ctrlKey || e.shiftKey || !window.HTMLDialogElement) return;\n      var a = e.target.closest('.pl-footer__legal a[href*=\"/policies/\"], .pl-policy__body a[href*=\"/policies/\"]'); if (!a) return;\n      e.preventDefault();\n      show(a.href).catch(function () { location.href = a.href; }); // if it cannot load here, just go to the page\n    });\n  })();\n\n  /* ---------------- Shopify Inbox bubble: a small icon-only button that stays out of the way ----------------\n     The widget lives in an open shadow root, so we add our own rules there. On product pages the phone's sticky Add to cart bar\n     sits at the bottom; the bubble rides above it while the bar is showing. */\n  (function () {\n    var CSS = '.activator-nudge{right:14px !important;bottom:var(--pl-chat-bottom,14px) !important;left:auto !important;transition:bottom .25s ease}' +\n      '.activator{width:44px !important;height:44px !important;min-width:0 !important;padding:0 !important;border-radius:50% !important;justify-content:center !important;gap:0 !important;box-shadow:0 2px 10px rgb(52 46 42 / .22) !important}' +\n      '.activator__label{display:none !important}.activator__icon{margin:0 !important}';\n    function bar() { return document.querySelector('[data-pl-sticky]'); }\n    function lift(host) {\n      var b = bar(), up = b && !b.hasAttribute('inert') && b.offsetHeight > 0;\n      host.style.setProperty('--pl-chat-bottom', up ? (b.offsetHeight + 14) + 'px' : '14px');\n    }\n    function apply() {\n      var host = document.querySelector('shopify-chat'); if (!host || !host.shadowRoot || !host.shadowRoot.querySelector('.activator')) return false;\n      if (!host.shadowRoot.getElementById('pl-chat-style')) { var st = document.createElement('style'); st.id = 'pl-chat-style'; st.textContent = CSS; host.shadowRoot.appendChild(st); }\n      lift(host);\n      var b = bar(); if (b && !host.__plLift) { host.__plLift = true; new MutationObserver(function () { lift(host); }).observe(b, { attributes: true, attributeFilter: ['inert', 'aria-hidden', 'class'] }); addEventListener('resize', function () { lift(host); }); }\n      return true;\n    }\n    var tries = 0, t = setInterval(function () { if (apply() || ++tries > 40) clearInterval(t); }, 500);\n  })();\n\n  /* ---------------- header menus ---------------- */\n  function initHeader(h) {\n    var toggles = [].slice.call(h.querySelectorAll('[data-pl-menu-toggle]')), openName = null;\n    function panel(n) { return h.querySelector('[data-pl-menu-panel=\"' + n + '\"]'); }\n    function set(name, refocus) {\n      var was = openName;\n      toggles.forEach(function (t) { var n = t.getAttribute('data-pl-menu-toggle'), on = n === name; t.setAttribute('aria-expanded', String(on)); panel(n).hidden = !on; });\n      openName = name;\n      if (!name && refocus && was) h.querySelector('[data-pl-menu-toggle=\"' + was + '\"]').focus();\n    }\n    toggles.forEach(function (t) { t.addEventListener('click', function () { var n = t.getAttribute('data-pl-menu-toggle'); set(openName === n ? null : n); }); });\n    document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && openName) set(null, true); });\n    document.addEventListener('click', function (e) { if (openName && !h.contains(e.target)) set(null); });\n    h.querySelectorAll('[data-pl-menu-panel]').forEach(function (p) { p.addEventListener('click', function (e) { if (e.target.closest('a')) set(null); }); });\n    addEventListener('resize', function () { if (innerWidth < 990 && openName) set(null); });\n  }\n  document.querySelectorAll('[data-pl-site=\"header\"]').forEach(initHeader);\n\n  /* ---------------- cart ---------------- */\n  var last = null;\n  function fmt(cents) {\n    var n = cents / 100, cur = (last && last.currency) || 'USD';\n    try { return new Intl.NumberFormat('en-US', { style: 'currency', currency: cur, minimumFractionDigits: cents % 100 ? 2 : 0, maximumFractionDigits: 2 }).format(n); }\n    catch (e) { return '$' + n.toFixed(cents % 100 ? 2 : 0); }\n  }\n  function isPhoto(v) { return /^https?:\\/\\//.test(v); }\n  function setHandles(d) { return (d.getAttribute('data-pl-set-handles') || '').split(',').map(function (s) { return s.trim(); }).filter(Boolean); }\n\n  var cmp = {}; /* compare-at prices by product handle, then variant id (the cart JSON does not carry them) */\n  function loadCompare(cart, justAdded) {\n    var need = cart.items.map(function (i) { return i.handle; }).filter(function (h, i, a) { return h && !cmp[h] && a.indexOf(h) === i; });\n    need.forEach(function (h) {\n      cmp[h] = {};\n      fetch('/products/' + h + '.js').then(function (r) { return r.json(); }).then(function (pr) {\n        pr.variants.forEach(function (v) { cmp[h][v.id] = v.compare_at_price || 0; });\n        if (last) render(last, false);\n      }).catch(function () {});\n    });\n  }\n  function render(cart, justAdded) {\n    last = cart;\n    loadCompare(cart, justAdded);\n    var d = dlg('cart'); if (!d) return;\n    var list = d.querySelector('[data-pl-cart-lines]'); list.innerHTML = '';\n    cart.items.forEach(function (it) {\n      var li = el('li', 'pl-line'), img = el('div', 'pl-line__img'), body = el('div');\n      if (it.image) img.style.backgroundImage = 'url(' + it.image + ')';\n      var t = el('p', 'pl-line__title'), a = el('a', null, it.product_title); a.href = it.url; a.style.textDecoration = 'none'; t.appendChild(a);\n      var props = el('div', 'pl-line__props');\n      (it.options_with_values || []).forEach(function (o) { if (o.value && o.value !== 'Default Title') props.appendChild(el('span', null, o.name + ': ' + o.value)); });\n      var p = it.properties || {};\n      var rank = function (k) { return k === 'Pet Name' ? 0 : k === 'Font' ? 1 : isPhoto(p[k]) ? 3 : 2; };\n      Object.keys(p).sort(function (x, y) { return rank(x) - rank(y); }).forEach(function (k) {\n        var v = p[k]; if (!v || k.charAt(0) === '_') return;\n        if (isPhoto(v)) {\n          var ph = el('span', 'pl-line__photo'), im = el('img'); im.src = v; im.alt = ''; im.width = 28; im.height = 28; ph.appendChild(el('span', null, k + ':')); ph.appendChild(im); props.appendChild(ph);\n        } else props.appendChild(el('span', null, k + ': ' + v));\n      });\n      /* left: quantity stepper and Remove. right: the line total, with the price each underneath when there is more than one */\n      var row = el('div', 'pl-line__row'), ctl = el('div', 'pl-line__ctl'), sum = el('div', 'pl-line__sum'), pr = el('span', 'pl-line__price', fmt(it.final_line_price));\n      var was = Math.max(it.original_line_price, ((cmp[it.handle] || {})[it.variant_id] || 0) * it.quantity);\n      if (was > it.final_line_price) { pr.appendChild(document.createTextNode(' ')); pr.appendChild(el('s', 'pl-line__was', fmt(was))); }\n      var rm = el('button', 'pl-line__remove'); rm.type = 'button'; rm.title = 'Remove'; rm.innerHTML = '<svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 7h16M10 11v6M14 11v6M6 7l1 12a1 1 0 0 0 1 .9h8a1 1 0 0 0 1-.9L18 7M9 7V4.5A1.5 1.5 0 0 1 10.5 3h3A1.5 1.5 0 0 1 15 4.5V7\"/></svg>'; rm.setAttribute('aria-label', 'Remove ' + it.product_title);\n      rm.addEventListener('click', function () { change(it.key, 0); });\n      var qty = el('div', 'pl-line__qty'), minus = el('button', null, '\\u2212'), plus = el('button', null, '+'), qn = el('span', 'pl-line__qn', String(it.quantity));\n      qty.setAttribute('role', 'group'); qty.setAttribute('aria-label', 'Quantity');\n      minus.type = 'button'; plus.type = 'button'; minus.setAttribute('aria-label', 'Decrease quantity of ' + it.product_title); plus.setAttribute('aria-label', 'Increase quantity of ' + it.product_title);\n      qn.setAttribute('aria-live', 'polite'); if (it.quantity < 2) minus.disabled = true;\n      minus.addEventListener('click', function () { change(it.key, it.quantity - 1); }); plus.addEventListener('click', function () { change(it.key, it.quantity + 1); });\n      qty.appendChild(minus); qty.appendChild(qn); qty.appendChild(plus);\n      var ed = el('a', 'pl-line__edit', 'Edit'); ed.href = it.url.split('?')[0] + '?variant=' + it.variant_id + '#pl-buy';\n      ed.setAttribute('aria-label', 'Edit ' + it.product_title);\n      ed.addEventListener('click', function () { try { sessionStorage.setItem('plEdit', JSON.stringify({ key: it.key, qty: it.quantity, handle: it.handle, variant: it.variant_id, props: it.properties || {}, t: Date.now() })); } catch (er) {} });\n      ctl.appendChild(qty); ctl.appendChild(rm); ctl.appendChild(ed);\n      sum.appendChild(pr); if (it.quantity > 1) sum.appendChild(el('span', 'pl-line__each', fmt(it.final_price) + ' each'));\n      row.appendChild(ctl); row.appendChild(sum);\n      body.appendChild(t); body.appendChild(props); body.appendChild(row); li.appendChild(img); li.appendChild(body); list.appendChild(li);\n    });\n    document.querySelectorAll('[data-pl-cart-count]').forEach(function (c) { c.textContent = cart.item_count; });\n\n    // set nudge and discount breakdown (the discount itself comes from the Shopify Function)\n    var setEl = d.querySelector('[data-pl-cart-set]'), handles = setHandles(d), nKinds = 0;\n    cart.items.forEach(function (it) { if (handles.indexOf(it.handle) > -1) nKinds += it.quantity; }); // 2 or more pieces from the collection, even two of the same\n    var saving = cart.total_discount || 0;\n    setEl.hidden = nKinds === 0;\n    var nudge = setEl.querySelector('[data-pl-cart-nudge]');\n    nudge.hidden = nKinds >= 2;\n    nudge.innerHTML = '<a href=\"' + d.getAttribute('data-pl-set-url') + '\"><span class=\"pl-cart__tag\">Save 10%</span><span class=\"pl-cart__nudgetext\">Add one more Everyday Love piece</span><svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"M9 5l7 7-7 7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></a>';\n    setEl.querySelector('[data-pl-cart-items-row]').hidden = !(saving > 0);\n    setEl.querySelector('[data-pl-cart-items]').textContent = fmt(cart.original_total_price);\n    setEl.querySelector('[data-pl-cart-save-row]').hidden = !(saving > 0);\n    var nm = cart.cart_level_discount_applications && cart.cart_level_discount_applications[0];\n    var itemDisc = null; cart.items.some(function (it) { return (itemDisc = (it.discounts || [])[0]); });\n    setEl.querySelector('[data-pl-cart-save-name]').textContent = 'Everyday Love set discount';\n    setEl.querySelector('[data-pl-cart-save]').textContent = '\u2212' + fmt(saving);\n\n    var FREE = (+d.getAttribute('data-pl-free-ship') || 99) * 100;\n    // free-shipping minimum from each product's theme.shipping_money metafield (lowest in the cart wins), else the default\n    (d.getAttribute('data-pl-free-map') || '').split(';').forEach(function (pair) {\n      var kv = pair.split('='), amt = parseFloat(kv[1]);\n      if (kv[0] && amt > 0 && cart.items.some(function (it) { return it.handle === kv[0]; })) FREE = Math.min(FREE, Math.round(amt * 100));\n    });\n    var left = Math.max(0, FREE - cart.total_price), pct = Math.min(100, Math.round(cart.total_price / FREE * 100));\n    var fs = d.querySelector('[data-pl-freeship]');\n    fs.hidden = cart.item_count === 0; fs.classList.toggle('is-free', left === 0);\n    fs.querySelector('[data-pl-freeship-msg]').innerHTML = left === 0 ? \"<strong>You've unlocked free shipping.</strong>\" : \"You're <strong>\" + fmt(left) + '</strong> away from free shipping.';\n    fs.querySelector('[data-pl-freeship-fill]').style.width = pct + '%';\n    fs.querySelector('[data-pl-freeship-bar]').setAttribute('aria-valuenow', pct);\n    d.querySelector('[data-pl-cart-ship-amt]').textContent = left === 0 ? 'Free' : '$9.99';\n    d.querySelector('[data-pl-cart-total]').textContent = fmt(cart.total_price + (left === 0 ? 0 : 999)); // items + shipping\n    var sn = d.querySelector('[data-pl-cart-ship-note]'); sn.hidden = left === 0; sn.textContent = 'Orders over ' + fmt(FREE) + ' ships free.';\n    d.querySelector('[data-pl-cart-empty]').hidden = cart.item_count > 0;\n    d.querySelector('[data-pl-cart-foot]').hidden = cart.item_count === 0;\n    d.querySelector('[data-pl-cart-added]').hidden = !justAdded;\n    document.dispatchEvent(new CustomEvent('pl:cart', { detail: cart }));\n  }\n  function json(r) { if (!r.ok) return r.json().then(function (e) { throw new Error(e.description || e.message || 'Cart error'); }); return r.json(); }\n  function refresh(justAdded) { return fetch(root + 'cart.js', { headers: { Accept: 'application/json' } }).then(json).then(function (c) { render(c, justAdded); return c; }); }\n  function change(key, qty) { return fetch(root + 'cart/change.js', { method: 'POST', headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, body: JSON.stringify({ id: key, quantity: qty }) }).then(json).then(function (c) { render(c, false); return c; }); }\n  /* items: [{ id: variantId, quantity: 1, properties: { Photo: url, ... } }] */\n  function add(items) {\n    return fetch(root + 'cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, body: JSON.stringify({ items: items }) })\n      .then(json).then(function () { return refresh(true); }).then(replaceEdited).then(function (c) { openDialog('cart'); return c; });\n  }\n  /* Editing a line from the cart: once the changed version is added, take the old one out (if it merged into the same line, put its quantity back) */\n  function replaceEdited(c) {\n    var e = null; try { e = JSON.parse(sessionStorage.getItem('plEdit') || 'null'); sessionStorage.removeItem('plEdit'); } catch (er) {}\n    if (!e || !e.key || Date.now() - e.t > 3600000) return c;\n    var old = c.items.filter(function (i) { return i.key === e.key; })[0];\n    if (!old) return c;\n    var q = old.quantity > e.qty ? e.qty : 0; // same line again: undo the extra; otherwise remove the old version\n    return change(e.key, q).then(function () { return refresh(false); });\n  }\n  /* the product form itself (keeps Upload-Lift's own hidden fields, which it uses to link the file to the order) */\n  function addForm(fd) {\n    return fetch(root + 'cart/add.js', { method: 'POST', headers: { Accept: 'application/json' }, body: fd })\n      .then(json).then(function () { return refresh(true); }).then(replaceEdited).then(function (c) { openDialog('cart'); return c; });\n  }\n  window.PLCart = { add: add, addForm: addForm, refresh: refresh, open: function () { refresh().then(function () { openDialog('cart'); }); } };\n  refresh();\n})();\n\n/* Design-preview checkbox beside every \"Add to cart\" next-step button.\n   Shown only once the button has become Add to cart (CSS: .is-cart), and kept in sync with the buy box's own checkbox. */\n(function () {\n  function main() { return document.querySelector('[data-pl-form] [data-pl-preview]'); }\n  function mount() {\n    var m = main(); if (!m) return;\n    document.querySelectorAll('[data-pl-nextstep]').forEach(function (a) {\n      if (a.closest('[data-pl-world-toast]') || (a.nextElementSibling && a.nextElementSibling.classList.contains('pl-minipv'))) return;\n      var l = document.createElement('label'); l.className = 'pl-minipv';\n      l.innerHTML = '<input type=\"checkbox\" data-pl-minipv><span>Email me a design preview</span>';\n      l.querySelector('input').checked = m.checked;\n      a.insertAdjacentElement('afterend', l);\n    });\n  }\n  document.addEventListener('change', function (e) {\n    var t = e.target, m = main(); if (!m) return;\n    if (t.hasAttribute('data-pl-minipv')) { // a mini box was ticked: drive the real one (its own change handler updates the order)\n      m.checked = t.checked; m.dispatchEvent(new Event('change', { bubbles: true }));\n    }\n    if (t === m || t.hasAttribute('data-pl-minipv')) document.querySelectorAll('[data-pl-minipv]').forEach(function (b) { b.checked = m.checked; });\n  });\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', mount); else mount();\n  addEventListener('load', mount);\n})();\n\n/* Their uploaded photo, small, in the selection cards and the phone's sticky bar once they've added one.\n   Pages broadcast `pl:change` with the shared state (state.photo is the preview URL). */\n(function () {\n  function sync(photo) {\n    var cards = document.querySelectorAll('.pl-confirm:not([data-pl-world-toast])');\n    var lab = document.querySelector('[data-pl-form] .pl-summary__label'), txt = document.querySelector('[data-pl-summary-text]'), sum = document.querySelector('[data-pl-summary-thumb]');\n    cards.forEach(function (c) {\n      if (!c.querySelector('[data-pl-nextstep]')) return;\n      // same format as the buy box summary and the sticky bar: thumbnail (their photo, else the design), \"Your blanket\", \"Cosmos \u00B7 50 \u00D7 60 in\"\n      var th = c.querySelector(':scope > .pl-confirm__thumb');\n      if (!th) { th = document.createElement('span'); th.className = 'pl-confirm__thumb'; th.setAttribute('aria-hidden', 'true'); c.insertBefore(th, c.firstChild); }\n      var bg = photo ? 'url(\"' + photo + '\")' : (sum && sum.style.backgroundImage) || '';\n      th.style.backgroundImage = bg; th.style.backgroundColor = sum ? getComputedStyle(sum).backgroundColor : '';\n      var sel = c.querySelector(':scope > .pl-confirm__sel');\n      if (!sel) { sel = document.createElement('p'); sel.className = 'pl-confirm__sel'; sel.innerHTML = '<span class=\"pl-confirm__sellabel\"></span><span class=\"pl-confirm__seltext\"></span>'; th.insertAdjacentElement('afterend', sel); }\n      sel.querySelector('.pl-confirm__sellabel').textContent = lab ? lab.textContent : '';\n      sel.querySelector('.pl-confirm__seltext').textContent = txt ? txt.textContent : '';\n      c.classList.add('has-photo');\n    });\n    var bar = document.querySelector('[data-pl-sticky]');\n    if (bar) {\n      var s = bar.querySelector(':scope > .pl-sticky__thumb');\n      if (photo) {\n        if (!s) { s = document.createElement('img'); s.className = 'pl-sticky__thumb'; s.alt = 'Your photo'; bar.insertBefore(s, bar.firstChild); }\n        if (s.getAttribute('src') !== photo) s.src = photo;\n      } else if (s) s.remove();\n    }\n  }\n  document.addEventListener('pl:change', function (e) { var ph = e.detail && e.detail.photo; setTimeout(function () { sync(ph); }, 0); }); // after the page has written its summary\n  addEventListener('load', function () { setTimeout(function () { sync(null); }, 600); }); // show the selection summary even before a photo is added\n})();\n\n/* Once a photo is in, the preview ovals (portrait world, blanket looks, pillow turn) get a \"Change photo\" button that reopens the picker */\n(function () {\n  var SEL = '[data-pl-wp-pet], [data-pl-illo-portrait], .pl-turn__oval';\n  function sync(photo) {\n    document.querySelectorAll(SEL).forEach(function (o) {\n      var b = o.querySelector(':scope > [data-pl-change-photo]');\n      if (photo && !b) {\n        b = document.createElement('button'); b.type = 'button'; b.className = 'pl-illo__add pl-changephoto'; b.setAttribute('data-pl-change-photo', '');\n        b.innerHTML = '<svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"M4 8.5A1.5 1.5 0 0 1 5.5 7h2.2l1.4-2h5.8l1.4 2h2.2A1.5 1.5 0 0 1 20 8.5v9a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 17.5v-9Z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\"/><circle cx=\"12\" cy=\"13\" r=\"3.4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\"/></svg>Change photo';\n        o.appendChild(b);\n      }\n      if (b) b.hidden = !photo;\n    });\n  }\n  document.addEventListener('click', function (e) { if (e.target.closest('[data-pl-change-photo]')) { e.preventDefault(); e.stopPropagation(); document.dispatchEvent(new CustomEvent('pl:pick-photo')); } }, true);\n  document.addEventListener('pl:change', function (e) { var ph = e.detail && e.detail.photo; setTimeout(function () { sync(ph); }, 0); });\n})();\n\n/* Arriving from \"Edit\" in the cart: put back their design, size, frame, name and preview choice, then land on the personalization box.\n   (The photo can't be put back from here: they add it again, and the old line is replaced when this one is added.) */\n(function () {\n  var e = null; try { e = JSON.parse(sessionStorage.getItem('plEdit') || 'null'); } catch (er) {}\n  if (!e || !e.handle || Date.now() - e.t > 3600000 || location.pathname.indexOf('/products/' + e.handle) !== 0) return;\n  function apply() {\n    var jsonEl = document.querySelector('[data-pl-product-json]'); if (!jsonEl) return;\n    var cfg; try { cfg = JSON.parse(jsonEl.textContent); } catch (er) { return; }\n    var v = (cfg.variants || []).filter(function (x) { return x.id === e.variant; })[0];\n    if (v) {\n      document.dispatchEvent(new CustomEvent('pl:set-design', { detail: v.design }));\n      if (v.size) {\n        var sz = [].slice.call(document.querySelectorAll('input[name=\"size\"]')).filter(function (r) { var l = r.closest('label'); return l && l.textContent.indexOf(v.size) > -1; })[0];\n        if (sz) document.dispatchEvent(new CustomEvent('pl:set-size', { detail: sz.value }));\n      }\n      if (v.frame) document.dispatchEvent(new CustomEvent('pl:set-frame', { detail: v.frame }));\n    }\n    var nm = e.props['Pet Name'] || e.props['Name'] || '', f = document.querySelector('#pl-name');\n    if (nm && f) { f.value = nm; f.dispatchEvent(new Event('input', { bubbles: true })); }\n    var pv = document.querySelector('input[data-pl-preview]');\n    if (pv && e.props['Design preview'] === 'Yes' && !pv.checked) { pv.checked = true; pv.dispatchEvent(new Event('change', { bubbles: true })); }\n    var form = document.querySelector('[data-pl-form]');\n    if (form && !form.querySelector('.pl-editnote')) {\n      var n = document.createElement('p'); n.className = 'pl-editnote'; n.textContent = 'Editing your order. Update your choices and add to cart, and we will replace the earlier one.';\n      form.insertBefore(n, form.firstChild);\n    }\n    var buy = document.querySelector('#pl-buy'); if (buy) buy.scrollIntoView({ behavior: 'smooth', block: 'start' });\n  }\n  if (document.readyState === 'complete') setTimeout(apply, 400); else addEventListener('load', function () { setTimeout(apply, 400); });\n})();\n\n/* Footer signup: straight into the Klaviyo list \"Site & Footer Signups\" (Klaviyo's client API, public site ID + list ID).\n   Without JavaScript the form still posts to Shopify as a plain newsletter signup. */\n(function () {\n  var SITE = 'TeJy3J', LIST = 'QZTHgx';\n  var form = document.getElementById('pl-news-form'); if (!form) return;\n  form.addEventListener('submit', function (e) {\n    var input = form.querySelector('input[type=\"email\"]'), btn = form.querySelector('button[type=\"submit\"]');\n    var email = input && input.value.trim(); if (!email) return;\n    e.preventDefault();\n    var msg = form.querySelector('.pl-news__done');\n    if (!msg) { msg = document.createElement('p'); msg.className = 'pl-news__done'; msg.setAttribute('role', 'status'); form.appendChild(msg); }\n    msg.textContent = ''; if (btn) btn.disabled = true;\n    fetch('https://a.klaviyo.com/client/subscriptions/?company_id=' + SITE, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json', revision: '2024-10-15' },\n      body: JSON.stringify({ data: { type: 'subscription', attributes: {\n        custom_source: 'Footer Signup',\n        profile: { data: { type: 'profile', attributes: { email: email } } }\n      }, relationships: { list: { data: { type: 'list', id: LIST } } } } })\n    }).then(function (r) {\n      if (!r.ok) throw new Error('status ' + r.status);\n      msg.textContent = 'Thanks for signing up.'; input.value = '';\n    }).catch(function () {\n      msg.textContent = 'Please check your email address and try again.';\n    }).then(function () { if (btn) btn.disabled = false; });\n  });\n})();\n\n/* Cart page \"Edit\": remember the line, then the product page puts their choices back */\ndocument.addEventListener('click', function (e) {\n  var a = e.target.closest('[data-pl-cart-edit]'); if (!a) return;\n  var props = {};\n  try {\n    var raw = JSON.parse(a.getAttribute('data-props') || '{}');\n    if (Array.isArray(raw)) raw.forEach(function (kv) { if (kv && kv.length > 1) props[kv[0]] = kv[1]; }); // Liquid gives [[key, value], ...]\n    else props = raw;\n  } catch (er) {}\n  try { sessionStorage.setItem('plEdit', JSON.stringify({ key: a.getAttribute('data-key'), qty: +a.getAttribute('data-qty'), handle: a.getAttribute('data-handle'), variant: +a.getAttribute('data-variant'), props: props, t: Date.now() })); } catch (er) {}\n});\n"],
  "mappings": "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",
  "names": ["root", "t", "dlg"]
}
