{
  "version": 3,
  "sources": ["/cdn/shop/t/26/assets/cb-reviews-hub.js?cbv=20261028-1"],
  "sourcesContent": ["/* Cannibisters member ratings: the /pages/reviews page.\n   Every published rating, with a dashboard and filters. Data comes from\n   cannibisters-loyalty GET /api/loyalty/reviews?view=hub (lib/reviews.mjs\n   hubData), which is public and edge-cached. Ratings are stars per category\n   plus picked words, with no free text. Member names and labels are rendered with\n   textContent, never innerHTML. */\n(function () {\n  'use strict';\n\n  var STAR = 'M12 2.6l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.4l-5.9 3.3 1.3-6.6L2.5 9.5l6.6-.8z';\n  var reduceMotion = window.matchMedia && matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n  function h(tag, attrs, kids) {\n    var el = document.createElement(tag);\n    if (attrs) for (var k in attrs) {\n      var v = attrs[k];\n      if (v == null || v === false) continue;\n      if (k === 'class') el.className = v;\n      else if (k === 'text') el.textContent = v;\n      else if (k.slice(0, 2) === 'on') el.addEventListener(k.slice(2), v);\n      else el.setAttribute(k, v === true ? '' : v);\n    }\n    (kids || []).forEach(function (c) { if (c != null && c !== '') el.appendChild(typeof c === 'string' ? document.createTextNode(c) : c); });\n    return el;\n  }\n  function svgStars(cls) {\n    var ns = 'http://www.w3.org/2000/svg', s = document.createElementNS(ns, 'svg');\n    s.setAttribute('viewBox', '0 0 120 24'); s.setAttribute('class', cls); s.setAttribute('aria-hidden', 'true');\n    for (var i = 0; i < 5; i++) {\n      var p = document.createElementNS(ns, 'path');\n      p.setAttribute('d', STAR); p.setAttribute('transform', 'translate(' + i * 24 + ' 0)');\n      s.appendChild(p);\n    }\n    return s;\n  }\n  function stars(rating, size) {\n    var wrap = h('span', { class: 'cbr-stars' + (size ? ' cbr-stars--' + size : ''), role: 'img', 'aria-label': one(rating) + ' out of 5 stars' });\n    var fill = h('span', { class: 'cbr-stars__fill' });\n    fill.style.width = (Math.max(0, Math.min(5, rating)) / 5 * 100) + '%';\n    fill.appendChild(svgStars('cbr-stars__svg'));\n    wrap.appendChild(svgStars('cbr-stars__svg cbr-stars__svg--empty'));\n    wrap.appendChild(fill);\n    return wrap;\n  }\n  function one(n) { return (Math.round((Number(n) || 0) * 10) / 10).toFixed(1); }\n  function plural(n, a, b) { return n + ' ' + (n === 1 ? a : b); }\n  function fmtDate(iso) {\n    var d = new Date(iso + 'T12:00:00');\n    return isNaN(d) ? '' : d.toLocaleDateString('en-ZA', { day: 'numeric', month: 'short', year: 'numeric' });\n  }\n  function img(url, w) { return url ? url + (url.indexOf('?') < 0 ? '?' : '&') + 'width=' + w : null; }\n  function thumb(p, size) {\n    var src = img(p.image, size * 2);\n    return src ? h('img', { src: src, alt: '', width: String(size), height: String(size), loading: 'lazy' }) : h('span', { class: 'cbr-card__ph' });\n  }\n  // Fill bars once their group scrolls into view (observe the group: a bar at scale 0 has no area).\n  function fillOnView(root) {\n    var groups = root.querySelectorAll('.cbr-dist, .cbr-spark');\n    function go(g) { g.querySelectorAll('[data-fill]').forEach(function (b) { b.classList.add('is-in'); }); }\n    if (reduceMotion || !('IntersectionObserver' in window)) return groups.forEach(go);\n    var io = new IntersectionObserver(function (es) {\n      es.forEach(function (e) { if (e.isIntersecting) { go(e.target); io.unobserve(e.target); } });\n    }, { threshold: 0.3 });\n    groups.forEach(function (g) { io.observe(g); });\n  }\n  function select(label, value, options, onchange) {\n    return h('select', { class: 'cbr-select', 'aria-label': label, onchange: function (e) { onchange(e.target.value); } },\n      options.map(function (o) { return h('option', { value: o[0], selected: value === o[0], text: o[1] }); }));\n  }\n\n  function summarize(rows) {\n    var dist = [0, 0, 0, 0, 0], words = {}, sum = 0;\n    rows.forEach(function (r) {\n      dist[5 - Math.min(5, Math.max(1, Math.round(r.overall)))] += 1;\n      sum += r.overall;\n      r.words.forEach(function (w) {\n        if (w.kind === 'meh') return;\n        (words[w.label] = words[w.label] || { label: w.label, count: 0 }).count += 1;\n      });\n    });\n    return {\n      count: rows.length,\n      average: rows.length ? sum / rows.length : 0,\n      distribution: dist,\n      words: Object.keys(words).map(function (k) { return words[k]; }).sort(function (a, b) { return b.count - a.count; }),\n    };\n  }\n\n  function distribution(s, onPick, active) {\n    return h('ul', { class: 'cbr-dist' }, s.distribution.map(function (n, i) {\n      var star = 5 - i, pct = s.count ? n / s.count : 0;\n      return h('li', null, [h('button', {\n        type: 'button', class: 'cbr-dist__row' + (active === star ? ' is-active' : ''), 'aria-pressed': String(active === star),\n        'aria-label': 'Show ' + star + '-star ratings (' + n + ')', onclick: function () { onPick(star); },\n      }, [\n        h('span', { class: 'cbr-dist__k', text: star + '\u2605' }),\n        h('span', { class: 'cbr-dist__bar' }, [h('span', { class: 'cbr-dist__fill', 'data-fill': '', style: '--f:' + pct.toFixed(3) })]),\n        h('span', { class: 'cbr-dist__n', text: String(n) }),\n      ])]);\n    }));\n  }\n\n  function card(r, families) {\n    var fam = families[r.family] || { label: '', categories: [] };\n    var cats = fam.categories.filter(function (c) { return r.ratings && r.ratings[c.key]; }).map(function (c) {\n      return h('li', null, [h('span', { text: c.label }), h('b', { text: String(r.ratings[c.key]) })]);\n    });\n    return h('article', { class: 'cbr-card' }, [\n      h('a', { class: 'cbr-card__product', href: '/products/' + r.product.handle }, [\n        thumb(r.product, 48),\n        h('span', null, [h('span', { class: 'cbr-card__pname', text: r.product.title }), h('span', { class: 'cbr-card__ptype', text: fam.label })]),\n      ]),\n      h('div', { class: 'cbr-card__head' }, [stars(r.overall, 'sm'), h('span', { class: 'cbr-card__score', text: one(r.overall) })]),\n      cats.length ? h('ul', { class: 'cbr-cats', 'aria-label': 'Category ratings out of 5' }, cats) : null,\n      r.words.length ? h('ul', { class: 'cbr-tags cbr-tags--quiet' }, r.words.map(function (w) {\n        return h('li', { class: w.kind === 'meh' ? 'is-meh' : null, text: w.label });\n      })) : null,\n      h('p', { class: 'cbr-card__meta' }, [\n        h('span', { class: 'cbr-card__author', text: r.name }),\n        h('span', { class: 'cbr-badge', text: 'Verified buyer' }),\n        h('time', { datetime: r.date, text: fmtDate(r.date) }),\n      ]),\n    ]);\n  }\n\n  function mount(root) {\n    var api = (root.getAttribute('data-api') || 'https://cannibisters-loyalty.vercel.app') + '/api/loyalty/reviews?view=hub';\n    root.classList.add('cbr', 'cbr-hub');\n    root.setAttribute('aria-busy', 'true');\n    var p = new URLSearchParams(location.search);\n    var blank = { q: '', star: 0, family: '', word: '', sort: 'new', shown: 24 };\n    var st = { q: p.get('q') || '', star: Number(p.get('stars')) || 0, family: p.get('type') || '', word: p.get('word') || '', sort: p.get('sort') || 'new', shown: 24 };\n\n    /* Draft-theme demo: ?cb_reviews_demo=1 + CB_REVIEWS_HUB_DEMO_URL shows sample ratings. */\n    var demo = /[?&]cb_reviews_demo=1\\b/.test(location.search) && window.CB_REVIEWS_HUB_DEMO_URL;\n    var load = fetch(demo || api).then(function (r) { if (!r.ok) throw new Error('hub_' + r.status); return r.json(); });\n    if (demo) root.parentNode.insertBefore(h('p', { class: 'cbr-demo', text: 'Preview with sample ratings, not real members.' }), root);\n    load.then(render).catch(function () {\n      root.replaceChildren(h('p', { class: 'cbr-muted', text: 'Ratings couldn\u2019t load. Refresh the page to try again.' }));\n    }).finally(function () { root.removeAttribute('aria-busy'); });\n\n    function syncUrl() {\n      var q = new URLSearchParams();\n      if (st.q) q.set('q', st.q); if (st.star) q.set('stars', st.star); if (st.family) q.set('type', st.family);\n      if (st.word) q.set('word', st.word); if (st.sort !== 'new') q.set('sort', st.sort);\n      // keep Shopify's own params (preview_theme_id, view) so a shared link still opens the same page\n      ['view', 'preview_theme_id', 'cb_reviews_demo'].forEach(function (k) { if (p.get(k)) q.set(k, p.get(k)); });\n      try { history.replaceState(null, '', location.pathname + (q.toString() ? '?' + q : '')); } catch (e) { /* sandboxed */ }\n    }\n\n    function render(data) {\n      var all = data.reviews || [], fams = data.families || {};\n      var head = h('header', { class: 'cbr-hub__head' }, [\n        h('h1', { class: 'cbr-h1', text: 'Member ratings' }),\n        h('p', { class: 'cbr-lede', text: 'How members rate our flower, pre-rolls, edibles and more. Every rating comes from a verified member who bought the product.' }),\n      ]);\n      if (!all.length) {\n        root.replaceChildren(head, h('a', { class: 'cbr-btn cbr-btn--primary', href: '/collections/all', text: 'Browse the shop' }));\n        return;\n      }\n      var s = summarize(all);\n      var recommend = Math.round(all.filter(function (r) { return r.overall >= 4; }).length / s.count * 100);\n\n      // Top rated: products with 2+ ratings, by average then volume.\n      var byProduct = {};\n      all.forEach(function (r) {\n        var x = byProduct[r.product.handle] || (byProduct[r.product.handle] = { product: r.product, family: r.family, n: 0, sum: 0 });\n        x.n += 1; x.sum += r.overall;\n      });\n      var ranked = Object.keys(byProduct).map(function (k) { var x = byProduct[k]; x.avg = x.sum / x.n; return x; });\n      var top = ranked.filter(function (x) { return x.n >= 2; });\n      if (top.length < 3) top = ranked.slice();\n      top.sort(function (a, b) { return b.avg - a.avg || b.n - a.n; });\n\n      // Last 12 months of rating volume.\n      var months = [], now = new Date();\n      for (var m = 11; m >= 0; m--) {\n        var d = new Date(now.getFullYear(), now.getMonth() - m, 1);\n        months.push({ key: d.getFullYear() + '-' + d.getMonth(), label: d.toLocaleDateString('en-ZA', { month: 'short' }), n: 0 });\n      }\n      all.forEach(function (r) {\n        var dd = new Date(r.date + 'T12:00:00'), k = dd.getFullYear() + '-' + dd.getMonth();\n        months.forEach(function (x) { if (x.key === k) x.n++; });\n      });\n      var peak = Math.max.apply(null, months.map(function (x) { return x.n; })) || 1;\n\n      var stats = h('dl', { class: 'cbr-stats' }, [\n        h('div', { class: 'cbr-stat cbr-stat--lead' }, [h('dt', { text: 'Average rating' }), h('dd', null, [h('span', { class: 'cbr-stat__v', text: one(s.average) }), stars(s.average, 'md')])]),\n        h('div', { class: 'cbr-stat' }, [h('dt', { text: 'Ratings' }), h('dd', { class: 'cbr-stat__v', text: String(s.count) })]),\n        h('div', { class: 'cbr-stat' }, [h('dt', { text: 'Rated 4 stars or more' }), h('dd', { class: 'cbr-stat__v', text: recommend + '%' })]),\n        h('div', { class: 'cbr-stat' }, [h('dt', { text: 'Products rated' }), h('dd', { class: 'cbr-stat__v', text: String(ranked.length) })]),\n        h('div', { class: 'cbr-stat' }, [h('dt', { text: 'Members rating' }), h('dd', { class: 'cbr-stat__v', text: String(data.reviewers || 0) })]),\n      ]);\n\n      var dash = h('div', { class: 'cbr-dash' }, [\n        h('div', { class: 'cbr-panel' }, [h('h2', { class: 'cbr-panel__h', text: 'Rating breakdown' }),\n          distribution(s, function (star) { st.star = st.star === star ? 0 : star; st.shown = 24; render(data); }, st.star)]),\n        h('div', { class: 'cbr-panel cbr-board' }, [h('h2', { class: 'cbr-panel__h', text: 'Top rated' }),\n          h('ol', { class: 'cbr-board__list' }, top.slice(0, 6).map(function (x) {\n            return h('li', null, [h('a', { href: '/products/' + x.product.handle }, [\n              thumb(x.product, 40),\n              h('span', { class: 'cbr-board__name', text: x.product.title }),\n              h('span', { class: 'cbr-board__score' }, [stars(x.avg, 'sm'), h('span', { text: one(x.avg) + ' \u00B7 ' + plural(x.n, 'rating', 'ratings') })]),\n            ])]);\n          }))]),\n        h('div', { class: 'cbr-panel' }, [h('h2', { class: 'cbr-panel__h', text: 'Ratings per month' }),\n          h('ol', { class: 'cbr-spark' }, months.map(function (x) {\n            return h('li', { title: x.label + ': ' + x.n }, [h('span', { class: 'cbr-spark__col', 'data-fill': '', style: '--h:' + (x.n / peak).toFixed(3) }), h('span', { class: 'cbr-spark__m', text: x.label })]);\n          }))]),\n        h('div', { class: 'cbr-panel' }, [h('h2', { class: 'cbr-panel__h', text: 'Words members pick most' }),\n          h('ul', { class: 'cbr-tags cbr-tags--pick' }, s.words.slice(0, 16).map(function (w) {\n            return h('li', null, [h('button', { type: 'button', class: st.word === w.label ? 'is-on' : null, 'aria-pressed': String(st.word === w.label),\n              onclick: function () { st.word = st.word === w.label ? '' : w.label; st.shown = 24; render(data); } }, [w.label + ' ', h('b', { text: String(w.count) })])]);\n          }))]),\n      ]);\n\n      var familyKeys = Object.keys(fams).filter(function (k) { return all.some(function (r) { return r.family === k; }); });\n      var search = h('input', { type: 'search', class: 'cbr-input', placeholder: 'Search products, words or names', 'aria-label': 'Search ratings', value: st.q });\n      var t0;\n      search.addEventListener('input', function () { clearTimeout(t0); t0 = setTimeout(function () { st.q = search.value.trim(); st.shown = 24; renderFeed(); }, 200); });\n      var filters = h('div', { class: 'cbr-filters' }, [\n        search,\n        select('Product type', st.family, [['', 'All products']].concat(familyKeys.map(function (k) { return [k, fams[k].label]; })), function (v) { st.family = v; st.shown = 24; renderFeed(); }),\n        select('Sort', st.sort, [['new', 'Newest first'], ['high', 'Highest rated'], ['low', 'Lowest rated']], function (v) { st.sort = v; renderFeed(); }),\n      ]);\n      var meta = h('div', { class: 'cbr-bar' });\n      var feed = h('div', { class: 'cbr-feed' });\n      var moreSlot = h('div');\n\n      function renderFeed() {\n        var q = st.q.toLowerCase();\n        var list = all.filter(function (r) {\n          if (st.star && Math.round(r.overall) !== st.star) return false;\n          if (st.family && r.family !== st.family) return false;\n          if (st.word && !r.words.some(function (w) { return w.label === st.word; })) return false;\n          if (q && (r.product.title + ' ' + r.name + ' ' + r.words.map(function (w) { return w.label; }).join(' ')).toLowerCase().indexOf(q) < 0) return false;\n          return true;\n        }).sort(function (a, b) {\n          if (st.sort === 'high') return b.overall - a.overall || (a.date < b.date ? 1 : -1);\n          if (st.sort === 'low') return a.overall - b.overall || (a.date < b.date ? 1 : -1);\n          return a.date < b.date ? 1 : -1;\n        });\n        var active = [st.star && st.star + '\u2605', st.family && fams[st.family] && fams[st.family].label, st.word, st.q && '\u201C' + st.q + '\u201D'].filter(Boolean);\n        meta.replaceChildren(\n          h('p', { class: 'cbr-muted', text: plural(list.length, 'rating', 'ratings') + (active.length ? ' matching ' + active.join(', ') : '') }),\n          active.length ? h('button', { type: 'button', class: 'cbr-link', text: 'Clear filters', onclick: function () { st = Object.assign({}, blank, { sort: st.sort }); render(data); } }) : ''\n        );\n        feed.replaceChildren.apply(feed, list.length\n          ? list.slice(0, st.shown).map(function (r) { return card(r, fams); })\n          : [h('p', { class: 'cbr-empty', text: 'No ratings match those filters. Clear one to see more.' })]);\n        moreSlot.replaceChildren(list.length > st.shown\n          ? h('button', { type: 'button', class: 'cbr-btn cbr-btn--ghost cbr-more', text: 'Show more ratings', onclick: function () { st.shown += 24; renderFeed(); } })\n          : '');\n        syncUrl();\n      }\n\n      root.replaceChildren(head, stats, dash,\n        h('section', { class: 'cbr-feedwrap', 'aria-label': 'All ratings' }, [h('h2', { class: 'cbr-h2', text: 'All ratings' }), filters, meta, feed, moreSlot]));\n      renderFeed();\n      fillOnView(root);\n    }\n  }\n\n  function boot() {\n    document.querySelectorAll('[data-cb-reviews-hub]:not([data-cbr-ready])').forEach(function (el) { el.setAttribute('data-cbr-ready', ''); mount(el); });\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot); else boot();\n})();\n"],
  "mappings": "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",
  "names": []
}
