{
  "version": 3,
  "sources": ["/cdn/shop/files/stt-reviews-v2.js?x=1792692878711"],
  "sourcesContent": ["/* STT reviews: real reviews from our Etsy shops, shown on product pages and on /pages/reviews */\n(function () {\n  if (window.__sttReviews) return; window.__sttReviews = true;\n  var BASE = (function () { var s = document.currentScript && document.currentScript.src; return s ? s.replace(/stt-reviews[^\\/]*\\.js.*$/, '') : '/cdn/shop/files/'; })();\n  var css = '.stt-rv{max-width:1100px;margin:48px auto;padding-inline:max(16px,env(safe-area-inset-left,0px));color:inherit}' +\n    '.stt-rv__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-bottom:18px}' +\n    '.stt-rv__h{font-size:1.6rem;margin:0}.stt-rv__sum{display:flex;align-items:center;gap:8px;font-size:1rem}' +\n    '.stt-rv__stars{color:#b8860b;letter-spacing:2px;font-size:1.05rem;white-space:nowrap}' +\n    '.stt-rv__note{font-size:.85rem;opacity:.7;margin:0 0 18px}' +\n    '.stt-rv__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}' +\n    '.stt-rv__card{border:1px solid rgb(var(--color-foreground-rgb,0 0 0)/.12);padding:16px;display:grid;gap:8px;align-content:start;background:rgb(var(--color-background-rgb,255 255 255))}' +\n    '.stt-rv__meta{display:flex;justify-content:space-between;gap:8px;font-size:.82rem;opacity:.75}' +\n    '.stt-rv__t{margin:0;line-height:1.5;font-size:.95rem}' +\n    '.stt-rv__more{margin:20px auto 0;display:block;padding:12px 22px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;cursor:pointer}' +\n    '.stt-rv__chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.stt-rv__chip{padding:8px 14px;border:1px solid rgb(var(--color-foreground-rgb,0 0 0)/.25);background:transparent;color:inherit;font:inherit;cursor:pointer;border-radius:999px}' +\n    '.stt-rv__chip[aria-pressed=true]{background:rgb(var(--color-foreground-rgb,0 0 0));color:rgb(var(--color-background-rgb,255 255 255))}';\n  var st = document.createElement('style'); st.textContent = css; document.head.appendChild(st);\n  var esc = function (s) { var d = document.createElement('div'); d.textContent = s; return d.innerHTML; };\n  var stars = function (n) { return '\\u2605\\u2605\\u2605\\u2605\\u2605'.slice(0, n) + '\\u2606\\u2606\\u2606\\u2606\\u2606'.slice(0, 5 - n); };\n  var fmt = function (n) { return Number(n).toLocaleString('en-US'); };\n  var card = function (r) { return '<article class=\"stt-rv__card\"><div class=\"stt-rv__stars\" aria-label=\"' + r.s + ' out of 5 stars\">' + stars(r.s) + '</div><p class=\"stt-rv__t\">' + esc(r.t) + '</p><div class=\"stt-rv__meta\"><span>' + esc(r.n) + '</span><span>' + esc(r.d) + '</span></div></article>'; };\n  var get = function (f) { return fetch(BASE + f.replace('.json', '-v2.json') + '?v=2').then(function (r) { return r.json(); }); };\n\n  function catFor(title) {\n    var s = (title || '').toLowerCase();\n    if (/sweat|hoodie|shirt|crew|apparel/.test(s)) return 'apparel';\n    if (/drink|cocktail/.test(s) || (/acrylic/.test(s) && /bar/.test(s))) return 'barsign';\n    if (/guest ?book/.test(s)) return 'guestbook';\n    if (/seating|find your seat/.test(s)) return 'seating';\n    if (/welcome|wedding|seat not a side|love story|miss to mrs|timeline|bridal|rehearsal/.test(s)) return 'wedding';\n    if (/family|name sign|established|coffee|bar sign/.test(s)) return 'family';\n    return 'general';\n  }\n  function section(stats, data, heading) {\n    var el = document.createElement('section'); el.className = 'stt-rv'; el.id = 'reviews';\n    el.innerHTML = '<div class=\"stt-rv__head\"><h2 class=\"stt-rv__h\">' + esc(heading) + '</h2><div class=\"stt-rv__sum\"><span class=\"stt-rv__stars\" aria-hidden=\"true\">\\u2605\\u2605\\u2605\\u2605\\u2605</span><strong>' + stats.avg.toFixed(2) + '</strong><span>out of 5 from ' + fmt(stats.total) + ' reviews</span></div></div>' +\n      '<p class=\"stt-rv__note\">Reviews from customers of our Etsy shops (Small Town Timbers since 2018). ' + (data.cat !== 'general' ? 'Shown here: reviews from orders of our ' + esc(data.label) + '.' : '') + '</p><div class=\"stt-rv__grid\"></div>';\n    var grid = el.querySelector('.stt-rv__grid'), shown = 0, list = data.reviews;\n    var more = document.createElement('button'); more.type = 'button'; more.className = 'stt-rv__more'; more.textContent = 'Show more reviews';\n    var add = function (n) { grid.insertAdjacentHTML('beforeend', list.slice(shown, shown + n).map(card).join('')); shown += n; more.hidden = shown >= list.length; };\n    more.addEventListener('click', function () { add(9); });\n    add(6); el.appendChild(more);\n    if (!document.getElementById('stt-reviews-page')) { var a = document.createElement('a'); a.href = '/pages/reviews'; a.textContent = 'Read all reviews'; a.style.cssText = 'display:block;text-align:center;margin-top:12px;text-decoration:underline;color:inherit'; el.appendChild(a); }\n    return el;\n  }\n  function productPage() {\n    var h1 = document.querySelector('h1'); var title = h1 ? h1.textContent : document.title;\n    var c = catFor(title);\n    Promise.all([get('stt-reviews-stats.json'), get('stt-reviews-' + c + '.json').catch(function () { return get('stt-reviews-general.json'); })]).then(function (x) {\n      var anchor = document.querySelector('stt-personalizer'); anchor = anchor && anchor.closest('.shopify-section');\n      anchor = anchor || document.querySelector('main .shopify-section'); if (!anchor || document.getElementById('reviews')) return;\n      anchor.after(section(x[0], x[1], 'What our customers say'));\n    }).catch(function () {});\n  }\n  function reviewsPage(root) {\n    get('stt-reviews-all.json').then(function (all) {\n      var labels = { all: 'All', wedding: 'Wedding signs', guestbook: 'Guest books', seating: 'Seating charts', apparel: 'Apparel', barsign: 'Bar signs' };\n      var cur = 'all';\n      var draw = function () {\n        var list = cur === 'all' ? all.reviews : all.reviews.filter(function (r) { return r.c === cur; });\n        var sec = section(all, { cat: 'general', reviews: list }, 'Customer reviews');\n        var chips = document.createElement('div'); chips.className = 'stt-rv__chips';\n        Object.keys(labels).forEach(function (k) { var b = document.createElement('button'); b.type = 'button'; b.className = 'stt-rv__chip'; b.textContent = labels[k]; b.setAttribute('aria-pressed', String(k === cur)); b.onclick = function () { cur = k; draw(); }; chips.appendChild(b); });\n        sec.insertBefore(chips, sec.querySelector('.stt-rv__grid'));\n        root.replaceChildren(sec);\n      };\n      draw();\n    });\n  }\n  function init() {\n    var root = document.getElementById('stt-reviews-page');\n    if (root) return reviewsPage(root);\n    if (/\\/products\\//.test(location.pathname)) productPage();\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n})();\n"],
  "mappings": "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",
  "names": []
}
