{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/tb-overlays.js?x=1794560349981"],
  "sourcesContent": ["/* Cookie banner, first-order pop-up and chat bubble. The brand name comes from window.TB_BRAND (snippets/tb-brand.liquid). */\n(() => {\n  const BRAND = window.TB_BRAND || 'Toybox';\n  const store = {\n    get(k) { try { return localStorage.getItem(k); } catch (e) { return null; } },\n    set(k, v) { try { localStorage.setItem(k, v); } catch (e) {} }\n  };\n\n  /* Cookie banner, backed by Shopify's Customer Privacy API. */\n  class TbCookie extends HTMLElement {\n    connectedCallback() {\n      this.$ = (s) => this.querySelector(s);\n      this.querySelectorAll('[data-all]').forEach((b) => b.addEventListener('click', () => this.decide(true, true)));\n      this.$('[data-essential]')?.addEventListener('click', () => this.decide(false, false));\n      this.$('[data-choose]')?.addEventListener('click', () => this.choose());\n      this.$('[data-save]')?.addEventListener('click', () => this.decide(this.$('[data-analytics]').checked, this.$('[data-marketing]').checked));\n      document.addEventListener('click', (e) => {\n        const a = e.target.closest('a[href$=\"#cookie-settings\"], [data-cookie-settings]');\n        if (a) { e.preventDefault(); this.open(true); }\n      });\n      const start = () => {\n        const cp = window.Shopify && window.Shopify.customerPrivacy;\n        if (cp && cp.currentVisitorConsent) {\n          const c = cp.currentVisitorConsent() || {};\n          if (c.analytics === '' || c.analytics === undefined) this.open(false);\n        } else if (!store.get('tb-cookie')) {\n          this.open(false);\n        }\n      };\n      if (window.Shopify && window.Shopify.loadFeatures) {\n        window.Shopify.loadFeatures([{ name: 'consent-tracking-api', version: '0.1' }], (err) => { if (err) { if (!store.get('tb-cookie')) this.open(false); } else start(); });\n      } else start();\n    }\n    open(choose) { this.hidden = false; document.documentElement.classList.add('tb-cookie-open'); if (choose) this.choose(); }\n    choose() { this.$('[data-choices]').hidden = false; this.$('[data-main]').hidden = true; this.$('[data-save-row]').hidden = false; }\n    decide(analytics, marketing) {\n      store.set('tb-cookie', JSON.stringify({ analytics, marketing, at: Date.now() }));\n      const cp = window.Shopify && window.Shopify.customerPrivacy;\n      if (cp && cp.setTrackingConsent) {\n        try { cp.setTrackingConsent({ analytics, marketing, preferences: analytics, sale_of_data: marketing }, () => {}); } catch (e) {}\n      }\n      this.hidden = true;\n      document.documentElement.classList.remove('tb-cookie-open');\n      document.dispatchEvent(new CustomEvent('tb:cookie-done'));\n    }\n  }\n  customElements.get('tb-cookie') || customElements.define('tb-cookie', TbCookie);\n\n  /* First-order sign-up pop-up: once per visitor, after the cookie banner is answered. */\n  class TbSignup extends HTMLElement {\n    connectedCallback() {\n      this.key = this.dataset.key || 'tb-signup';\n      this.querySelectorAll('[data-close]').forEach((b) => b.addEventListener('click', () => this.close()));\n      this.addEventListener('keydown', (e) => { if (e.key === 'Escape') this.close(); });\n      this.querySelector('[data-copy]')?.addEventListener('click', (e) => {\n        const b = e.currentTarget;\n        navigator.clipboard?.writeText(b.dataset.copy).then(() => { b.textContent = 'Copied!'; }).catch(() => {});\n      });\n      if (this.querySelector('[data-done]') || this.querySelector('.tb-signup__err')) { this.open(); return; }\n      if (store.get(this.key)) return;\n      if (this.hasAttribute('data-home-only') && this.dataset.template !== 'index') return;\n      const delay = (parseInt(this.dataset.delay, 10) || 0) * 1000;\n      const go = () => { this.t = setTimeout(() => this.open(), delay); };\n      if (document.documentElement.classList.contains('tb-cookie-open') || (document.querySelector('tb-cookie') && document.querySelector('tb-cookie').hidden === false)) {\n        document.addEventListener('tb:cookie-done', go, { once: true });\n      } else {\n        setTimeout(() => {\n          if (document.documentElement.classList.contains('tb-cookie-open')) document.addEventListener('tb:cookie-done', go, { once: true });\n          else go();\n        }, 800);\n      }\n    }\n    open() {\n      this.hidden = false;\n      document.documentElement.classList.add('tb-signup-open');\n      this.last = document.activeElement;\n      setTimeout(() => this.querySelector('input[type=\"email\"], [data-copy], .tb-signup__x')?.focus(), 50);\n    }\n    close() {\n      clearTimeout(this.t);\n      store.set(this.key, '1');\n      this.hidden = true;\n      document.documentElement.classList.remove('tb-signup-open');\n      this.last?.focus?.();\n    }\n  }\n  customElements.get('tb-signup') || customElements.define('tb-signup', TbSignup);\n\n  /* Chat bubble: quick answers, then hands the conversation to WhatsApp. */\n  class TbChat extends HTMLElement {\n    connectedCallback() {\n      this.panel = this.querySelector('[data-panel]');\n      this.msgs = this.querySelector('[data-msgs]');\n      this.querySelectorAll('[data-toggle]').forEach((b) => b.addEventListener('click', () => this.toggle()));\n      this.querySelectorAll('[data-q]').forEach((b) => b.addEventListener('click', () => {\n        this.say(b.dataset.q, true);\n        this.say(b.dataset.a, false);\n        this.topic = b.dataset.q;\n        this.querySelector('[data-quick]')?.remove();\n      }));\n      this.querySelector('[data-form]')?.addEventListener('submit', (e) => { e.preventDefault(); this.send(); });\n      const now = new Date();\n      const ist = new Date(now.getTime() + (now.getTimezoneOffset() + 330) * 60000);\n      const online = ist.getDay() !== 0 && ist.getHours() >= 10 && ist.getHours() < 19;\n      const st = this.querySelector('[data-status]');\n      if (st) { st.textContent = online ? 'Online \u00B7 usually replies in minutes' : 'Away \u00B7 back at 10am'; st.classList.toggle('is-on', online); }\n      const away = this.querySelector('[data-away]');\n      if (away) away.hidden = online;\n    }\n    toggle() {\n      const open = this.panel.hidden;\n      this.panel.hidden = !open;\n      this.classList.toggle('is-open', open);\n      const b = this.querySelector('.tb-chat__bubble');\n      b?.setAttribute('aria-expanded', open ? 'true' : 'false');\n      b?.setAttribute('aria-label', open ? 'Close chat' : 'Open chat with ' + BRAND);\n      if (open) setTimeout(() => this.querySelector('[data-input]')?.focus(), 50);\n    }\n    say(text, me) {\n      const d = document.createElement('div');\n      d.className = 'tb-chat__msg' + (me ? ' is-me' : '');\n      d.textContent = text;\n      this.msgs.appendChild(d);\n      this.msgs.scrollTop = this.msgs.scrollHeight;\n    }\n    send() {\n      const inp = this.querySelector('[data-input]');\n      const t = (inp.value || '').trim();\n      if (!t) return;\n      this.say(t, true);\n      inp.value = '';\n      const wa = this.dataset.wa;\n      const text = (this.topic ? this.topic + ': ' : '') + t;\n      if (wa) {\n        this.say('Opening WhatsApp so our team can reply to you there\u2026', false);\n        window.open('https://wa.me/' + wa + '?text=' + encodeURIComponent(text), '_blank', 'noopener');\n      } else {\n        this.say('Thanks! Taking you to our contact form so the team can reply.', false);\n        setTimeout(() => { location.href = '/pages/contact'; }, 900);\n      }\n    }\n  }\n  customElements.get('tb-chat') || customElements.define('tb-chat', TbChat);\n})();\n"],
  "mappings": "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",
  "names": []
}
