{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/toybox.js?x=1794560353250"],
  "sourcesContent": ["/* Toybox sections: small custom elements. No dependencies. */\n\n/* Hero slideshow: auto-advance, dots, play/pause, sound.\n   Each slide's video restarts from the beginning when the slide comes on screen,\n   and the slide timer starts once the video is actually playing.\n   Slides can carry a desktop and a mobile video; the one that fits the screen plays.\n   Performance (2026-11-07; original in assets/bak-20261107-toybox.js):\n   - While the banner is scrolled out of view its video pauses and the slide timer waits;\n     both carry on from the same slide when it comes back into view.\n   - The next slide's video starts downloading part-way through the current slide instead\n     of straight away, so it no longer competes with the first screen while the page loads.\n   Phones (up to 749px, 2026-11-07): the hero is a row of swipeable cards (assets/tb-mobile.css), and\n   each card's video plays while that card is on screen (assets/tb-mobile.js). The slideshow timer and\n   its video control stay off there: before, every 10 seconds they paused the video of the card being\n   looked at and played one off screen. Every card stays reachable by screen readers and the keyboard. */\nclass TbHero extends HTMLElement {\n  connectedCallback() {\n    this.slides = [...this.querySelectorAll('.tb-hero__slide')];\n    this.dots = [...this.querySelectorAll('.tb-hero__dots button')];\n    this.i = 0;\n    this.started = false;\n    this.tok = 0;\n    this.onScreen = true;\n    this.mq = window.matchMedia('(max-width: 749px)');\n    this.onMq = () => { this.started = false; this.go(this.i, true); };\n    this.mq.addEventListener?.('change', this.onMq);\n    this.playing = !window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    this.muted = true;\n    this.ms = (parseInt(this.dataset.seconds, 10) || 6) * 1000;\n    this.dots.forEach((d, k) => d.addEventListener('click', () => this.go(k, true)));\n    this.querySelector('[data-play]')?.addEventListener('click', () => this.setPlaying(!this.playing));\n    this.querySelector('[data-mute]')?.addEventListener('click', () => this.setMuted(!this.muted));\n    this.addEventListener('shopify:block:select', (e) => { const k = this.slides.indexOf(e.target.closest('.tb-hero__slide')); if (k > -1) { this.setPlaying(false); this.go(k); } });\n    if ('IntersectionObserver' in window) {\n      this.io = new IntersectionObserver((entries) => {\n        const on = entries[entries.length - 1].isIntersecting;\n        if (on === this.onScreen) return;\n        this.onScreen = on;\n        if (this.phone()) return;\n        const v = this.video(this.slides[this.i]);\n        if (on) {\n          if (v && this.playing) v.play().catch(() => {});\n          this.restart();\n        } else {\n          if (v) v.pause();\n          clearTimeout(this.t);\n          clearTimeout(this.preT);\n          this.tok++;\n        }\n      });\n      this.io.observe(this);\n    }\n    this.setPlaying(this.playing);\n    this.go(0);\n  }\n  disconnectedCallback() { clearTimeout(this.t); clearTimeout(this.preT); this.tok++; this.io?.disconnect(); this.mq?.removeEventListener?.('change', this.onMq); }\n  video(s) {\n    if (!s) return null;\n    const vids = s.querySelectorAll('video');\n    if (vids.length < 2) return vids[0] || null;\n    return s.querySelector(this.mq.matches ? '.tb-hero__video--mob' : '.tb-hero__video--desk') || vids[0];\n  }\n  phone() { return this.mq.matches; }\n  go(k, user) {\n    if (!this.slides.length) return;\n    if (this.phone()) {\n      /* Card row: every card is shown, so none is hidden from screen readers; tb-mobile.js plays the\n         videos of the cards on screen. Stop the slideshow and any desktop video still playing. */\n      clearTimeout(this.t); clearTimeout(this.preT); this.tok++;\n      this.started = false;\n      this.slides.forEach((s) => {\n        s.setAttribute('aria-hidden', 'false');\n        s.querySelectorAll('a, button').forEach((el) => el.tabIndex = 0);\n        s.querySelectorAll('.tb-hero__video--desk').forEach((v) => v.pause());\n      });\n      return;\n    }\n    const prev = this.i;\n    this.i = (k + this.slides.length) % this.slides.length;\n    const changed = !this.started || prev !== this.i;\n    this.started = true;\n    this.slides.forEach((s, j) => {\n      const on = j === this.i;\n      s.classList.toggle('is-active', on);\n      s.setAttribute('aria-hidden', on ? 'false' : 'true');\n      s.querySelectorAll('a, button').forEach((el) => el.tabIndex = on ? 0 : -1);\n      const act = on ? this.video(s) : null;\n      s.querySelectorAll('video').forEach((v) => {\n        v.muted = this.muted;\n        if (v === act) {\n          if (changed) { try { v.currentTime = 0; } catch (e) {} }\n          if (this.playing && this.onScreen) v.play().catch(() => {}); else v.pause();\n        } else {\n          v.pause();\n          if (v.currentTime) { try { v.currentTime = 0; } catch (e) {} }\n        }\n      });\n    });\n    /* A slide picked by hand (dot, or the theme editor) gets the next video straight away;\n       otherwise restart() fetches it part-way through this slide. */\n    if (user) this.preloadNext();\n    this.dots.forEach((d, j) => d.setAttribute('aria-current', j === this.i ? 'true' : 'false'));\n    if (changed || user) this.restart();\n  }\n  preloadNext() {\n    const next = this.video(this.slides[(this.i + 1) % this.slides.length]);\n    if (next && next.preload !== 'auto') next.preload = 'auto';\n  }\n  restart() {\n    clearTimeout(this.t);\n    clearTimeout(this.preT);\n    const tok = ++this.tok;\n    if (!this.playing || this.slides.length < 2 || !this.onScreen || this.phone()) return;\n    const arm = () => {\n      if (tok !== this.tok) return;\n      clearTimeout(this.t);\n      this.t = setTimeout(() => this.go(this.i + 1), this.ms);\n      clearTimeout(this.preT);\n      this.preT = setTimeout(() => this.preloadNext(), Math.max(this.ms * 0.4, this.ms - 6000));\n    };\n    arm();\n    const v = this.video(this.slides[this.i]);\n    if (v && (v.paused || v.readyState < 3)) v.addEventListener('playing', arm, { once: true });\n  }\n  setPlaying(p) {\n    this.playing = p;\n    this.classList.toggle('is-paused', !p);\n    const b = this.querySelector('[data-play]');\n    if (b) b.setAttribute('aria-label', p ? 'Pause slideshow' : 'Play slideshow');\n    const v = this.phone() ? null : this.video(this.slides[this.i]);\n    if (v) { if (p && this.onScreen) v.play().catch(() => {}); else v.pause(); }\n    this.restart();\n  }\n  setMuted(m) {\n    this.muted = m;\n    this.classList.toggle('is-unmuted', !m);\n    const b = this.querySelector('[data-mute]');\n    if (b) b.setAttribute('aria-label', m ? 'Turn sound on' : 'Mute');\n    this.querySelectorAll('video').forEach((v) => { v.muted = m; });\n  }\n}\ncustomElements.get('tb-hero') || customElements.define('tb-hero', TbHero);\n\n/* Scroll-snap carousel: product photos and reviews. Arrows and dots are optional. */\nclass TbCarousel extends HTMLElement {\n  connectedCallback() {\n    this.track = this.querySelector('[data-track]');\n    if (!this.track) return;\n    this.dots = [...this.querySelectorAll('[data-dots] span')];\n    this.querySelector('[data-prev]')?.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); this.step(-1); });\n    this.querySelector('[data-next]')?.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); this.step(1); });\n    this.track.addEventListener('scroll', () => { cancelAnimationFrame(this.raf); this.raf = requestAnimationFrame(() => this.sync()); }, { passive: true });\n  }\n  get page() {\n    const c = this.track.firstElementChild;\n    if (!c) return this.track.clientWidth;\n    const gap = parseFloat(getComputedStyle(this.track).columnGap) || 0;\n    return (c.getBoundingClientRect().width + gap) || this.track.clientWidth;\n  }\n  step(d) {\n    const max = this.track.scrollWidth - this.track.clientWidth;\n    let x = this.track.scrollLeft + d * this.page;\n    if (x > max + 2) x = 0; else if (x < -2) x = max;\n    this.track.scrollTo({ left: x });\n  }\n  sync() {\n    const k = Math.round(this.track.scrollLeft / Math.max(1, this.page));\n    this.dots.forEach((d, j) => d.classList.toggle('is-on', j === k));\n    const live = this.querySelector('[data-live]');\n    if (live) live.textContent = 'Photo ' + (k + 1) + ' of ' + this.dots.length;\n  }\n}\ncustomElements.get('tb-carousel') || customElements.define('tb-carousel', TbCarousel);\n\n/* Gift picker: age buttons change where the main button goes. */\nclass TbGiftPicker extends HTMLElement {\n  connectedCallback() {\n    const cta = this.querySelector('[data-cta]');\n    const label = this.querySelector('[data-cta-label]');\n    this.querySelectorAll('[data-age]').forEach((b) => b.addEventListener('click', () => {\n      this.querySelectorAll('[data-age]').forEach((x) => x.setAttribute('aria-pressed', x === b ? 'true' : 'false'));\n      if (cta) cta.href = b.dataset.url;\n      if (label) label.textContent = b.dataset.phrase;\n    }));\n  }\n}\ncustomElements.get('tb-gift-picker') || customElements.define('tb-gift-picker', TbGiftPicker);\n\n/* Drop countdown. data-date is ISO 8601 with offset, e.g. 2026-11-15T19:00:00+05:30 */\nclass TbCountdown extends HTMLElement {\n  connectedCallback() {\n    this.end = Date.parse(this.dataset.date);\n    if (isNaN(this.end)) { this.hidden = true; return; }\n    this.tick();\n    this.t = setInterval(() => this.tick(), 1000);\n  }\n  disconnectedCallback() { clearInterval(this.t); }\n  tick() {\n    let s = Math.max(0, Math.floor((this.end - Date.now()) / 1000));\n    if (s === 0) { clearInterval(this.t); const live = this.querySelector('[data-live-text]'); if (live) { this.querySelector('[data-units]').hidden = true; live.hidden = false; } return; }\n    const v = { d: Math.floor(s / 86400), h: Math.floor(s % 86400 / 3600), m: Math.floor(s % 3600 / 60), s: s % 60 };\n    for (const k in v) { const el = this.querySelector('[data-' + k + ']'); if (el) el.textContent = String(v[k]).padStart(2, '0'); }\n  }\n}\ncustomElements.get('tb-countdown') || customElements.define('tb-countdown', TbCountdown);\n\n/* Add to cart from a product card. Uses Shopify's cart actions so the cart drawer opens; falls back to a normal form post. */\nclass TbAddToCart extends HTMLElement {\n  connectedCallback() {\n    const form = this.querySelector('form');\n    if (!form) return;\n    form.addEventListener('submit', async (e) => {\n      const actions = window.Shopify && window.Shopify.actions;\n      if (!actions || !actions.updateCart) return;\n      e.preventDefault();\n      const btn = form.querySelector('button');\n      btn.classList.add('is-loading');\n      try {\n        const id = form.querySelector('[name=\"id\"]').value;\n        const res = await actions.updateCart({ lines: [{ merchandiseId: 'gid://shopify/ProductVariant/' + id, quantity: 1 }] }, { event: { context: 'product' } });\n        if (res && res.userErrors && res.userErrors.length) throw new Error(res.userErrors[0].message);\n        const drawer = document.querySelector('theme-drawer#cart-drawer');\n        if (drawer && drawer.open && !drawer.isOpen && !document.querySelector('cart-drawer-component[auto-open]')) drawer.open();\n      } catch (err) {\n        form.submit();\n      } finally {\n        btn.classList.remove('is-loading');\n      }\n    });\n  }\n}\ncustomElements.get('tb-add-to-cart') || customElements.define('tb-add-to-cart', TbAddToCart);\n"],
  "mappings": "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",
  "names": []
}
