{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/tb-m-search.js?x=1794560347542"],
  "sourcesContent": ["/* Toybox phone search bar (snippets/tb-m-searchbar, on the home page and the vault): typing placeholder, voice search and the pinned shadow.\n   Voice search opens a bottom sheet with a big mic, so people can see when to speak, what was heard and\n   any problem in full. Phones do not always end the listening on their own (Safari on iPhone often keeps\n   going, Chrome sometimes never sends a final result), so we search as soon as a final result comes in,\n   or 1.5 s after the last words, and stop after 9 s at most. When nothing is heard, a button offers the\n   keyboard's own mic instead. */\n(function () {\n  var box = document.querySelector('[data-tb-msearch]');\n  if (!box || box.dataset.ready) return;\n  box.dataset.ready = '1';\n  var input = box.querySelector('input[type=\"search\"]'), ph = box.querySelector('[data-ph]'), mic = box.querySelector('[data-mic]');\n  var lead = ph.textContent.trim() || 'Search';\n  var terms = (box.dataset.terms || '').split('|').map(function (t) { return t.trim().toLowerCase(); }).filter(Boolean);\n  var still = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var esc = function (s) { return s.replace(/[&<>\"]/g, function (c) { return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]; }); };\n  var show = function (word, caret) { ph.innerHTML = esc(lead) + ' \u201C<b>' + esc(word) + '</b>' + (caret ? '<i></i>' : '') + '\u201D'; };\n  var sync = function () { box.classList.toggle('has-text', !!input.value); };\n  input.addEventListener('input', sync); sync();\n\n  /* Placeholder: type a popular search, hold, erase, next (paused while hidden or while voice search is open). */\n  if (terms.length) {\n    var i = 0, n = 0, dir = 1, t = 0;\n    var tick = function () {\n      clearTimeout(t);\n      if (document.hidden || box.classList.contains('is-listening')) { t = setTimeout(tick, 600); return; }\n      var w = terms[i];\n      if (still) { show(w, false); i = (i + 1) % terms.length; t = setTimeout(tick, 2600); return; }\n      if (dir > 0) {\n        n++; show(w.slice(0, n), true);\n        if (n >= w.length) { dir = -1; t = setTimeout(tick, 1500); return; }\n        t = setTimeout(tick, 75 + Math.random() * 40);\n      } else {\n        n--; show(w.slice(0, n), true);\n        if (n <= 0) { dir = 1; i = (i + 1) % terms.length; t = setTimeout(tick, 320); return; }\n        t = setTimeout(tick, 32);\n      }\n    };\n    show('', true);\n    t = setTimeout(tick, 700);\n  }\n\n  /* Voice search */\n  var SR = window.SpeechRecognition || window.webkitSpeechRecognition;\n  if (SR && mic) {\n    mic.hidden = false;\n    var sheet = null, ui = {}, rec = null, heard = '', err = '', done = true, stopping = false, timers = {};\n    var example = terms.length ? 'Try saying \u201C' + terms[0] + '\u201D' + (terms[1] ? ' or \u201C' + terms[1] + '\u201D' : '') : 'Say a toy, brand or age';\n    var MSG = {\n      'not-allowed': ['Microphone is blocked', 'Allow the microphone for this site in your browser settings, then try again.'],\n      'service-not-allowed': ['Voice input is off', 'On iPhone, turn on Dictation in Settings \u203A General \u203A Keyboard, then try again.'],\n      'network': ['No connection', 'Voice search needs the internet. Check your connection and try again.'],\n      'audio-capture': ['No microphone found', 'We couldn\u2019t find a microphone on this phone.'],\n      'start': ['The mic didn\u2019t start', 'Close other apps using the mic, then try again.']\n    };\n    var clear = function () { for (var k in timers) clearTimeout(timers[k]); timers = {}; };\n    var kill = function () {\n      clear();\n      var r = rec; rec = null;\n      if (r) { r.onstart = r.onaudiostart = r.onresult = r.onerror = r.onend = null; try { r.abort(); } catch (x) {} }\n    };\n    var state = function (s, status, hint) {\n      sheet.classList.remove('is-starting', 'is-listening', 'is-error');\n      sheet.classList.add('is-' + s);\n      ui.status.textContent = status;\n      ui.hint.textContent = hint;\n      if (s !== 'error') ui.kbd.hidden = true;\n      ui.act.setAttribute('aria-label', s === 'listening' ? 'Stop and search' : s === 'error' ? 'Try again' : 'Starting the mic');\n    };\n    var close = function () {\n      kill(); done = true;\n      if (sheet) sheet.hidden = true;\n      box.classList.remove('is-listening');\n      show('', true);\n    };\n    var go = function () {\n      var q = heard.replace(/[.?!]+$/, '').trim();\n      close();\n      if (window.TbFind) window.TbFind.open(q);\n      else location.href = box.querySelector('form').action + '?type=product&q=' + encodeURIComponent(q);\n    };\n    var fail = function (kind) {\n      kill(); done = true;\n      var m = MSG[kind] || ['Didn\u2019t catch that', 'Wait for \u201CListening\u201D, then speak clearly, close to the phone.'];\n      state('error', m[0], 'Tap the mic to try again');\n      ui.text.textContent = m[1];\n      ui.kbd.hidden = false;\n    };\n    var finish = function () {\n      if (done) return;\n      if (heard) { go(); return; }\n      /* Nothing heard yet: ask the phone to finish up and give it a moment to send what it has. */\n      if (rec && !stopping) {\n        stopping = true;\n        ui.status.textContent = 'One moment\u2026';\n        try { rec.stop(); } catch (x) {}\n        timers.grace = setTimeout(function () { if (heard) go(); else fail(err); }, 1500);\n        return;\n      }\n      fail(err);\n    };\n    /* Back-up: the phone keyboard's own mic (Apple or Google dictation) works in every browser. Open the\n       search screen with the keyboard up, right inside the tap so the phone allows it. A page can't draw on\n       the keyboard, so a bubble sits just above it with an arrow towards where the mic key usually is:\n       top right of the keyboard on Android (Gboard), bottom right under the keys on iPhone. */\n    var ios = /iP(hone|ad|od)/.test(navigator.userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);\n    var vv = window.visualViewport, tip = null, tipT = 0;\n    var placeTip = function () {\n      if (!tip) return;\n      var kb = vv ? Math.max(0, Math.round(window.innerHeight - vv.height - vv.offsetTop)) : 0;\n      var up = kb > 120;\n      tip.style.bottom = (kb + 12) + 'px';\n      tip.classList.toggle('is-kb', up);\n      tip.firstChild.textContent = up ? (ios ? 'Tap \uD83C\uDFA4 at the bottom right, under the keyboard' : 'Tap \uD83C\uDFA4 on your keyboard') : 'Tap the search box to open the keyboard, then tap \uD83C\uDFA4';\n    };\n    var hideTip = function () {\n      clearTimeout(tipT);\n      if (tip) { tip.remove(); tip = null; }\n      if (vv) { vv.removeEventListener('resize', placeTip); vv.removeEventListener('scroll', placeTip); }\n    };\n    var keyboard = function () {\n      close();\n      if (!window.TbFind) { input.focus(); return; }\n      window.TbFind.open('');\n      var q = document.getElementById('sm-q');\n      if (!q) return;\n      if (!q.dataset.ph0) q.dataset.ph0 = q.getAttribute('placeholder') || '';\n      var was = q.dataset.ph0;\n      q.setAttribute('placeholder', 'Tap \uD83C\uDFA4 on your keyboard and speak');\n      var back = function () { q.setAttribute('placeholder', was); q.removeEventListener('input', back); hideTip(); };\n      q.addEventListener('input', back);\n      hideTip();\n      tip = document.createElement('div');\n      tip.className = 'tbk' + (ios ? ' tbk--ios' : '');\n      tip.setAttribute('role', 'status');\n      tip.innerHTML = '<span></span><i aria-hidden=\"true\"></i>';\n      document.body.appendChild(tip);\n      placeTip();\n      if (vv) { vv.addEventListener('resize', placeTip); vv.addEventListener('scroll', placeTip); }\n      [200, 600, 1000].forEach(function (ms) { setTimeout(placeTip, ms); });\n      q.addEventListener('blur', function () { setTimeout(function () { if (document.activeElement !== q) hideTip(); }, 400); }, { once: true });\n      tipT = setTimeout(back, 15000);\n    };\n    var build = function () {\n      sheet = document.createElement('div');\n      sheet.className = 'tbv' + (box.classList.contains('tb-msearch--vault') ? ' tbv--vault' : '');\n      sheet.hidden = true;\n      sheet.setAttribute('role', 'dialog');\n      sheet.setAttribute('aria-modal', 'true');\n      sheet.setAttribute('aria-label', 'Search by voice');\n      sheet.innerHTML = '<div class=\"tbv__dim\" data-close></div><div class=\"tbv__panel\">'\n        + '<button type=\"button\" class=\"tbv__x\" data-close aria-label=\"Close\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\"/></svg></button>'\n        + '<p class=\"tbv__status\" aria-live=\"polite\"></p><p class=\"tbv__text\" aria-live=\"polite\"></p>'\n        + '<button type=\"button\" class=\"tbv__mic\" data-act>' + mic.innerHTML + '</button>'\n        + '<p class=\"tbv__hint\"></p>'\n        + '<button type=\"button\" class=\"tbv__kbd\" data-kbd hidden><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"2\" y=\"6\" width=\"20\" height=\"12\" rx=\"2\"/><path d=\"M6 10h.01M10 10h.01M14 10h.01M18 10h.01M7 14h10\"/></svg>Use keyboard mic instead</button></div>';\n      document.body.appendChild(sheet);\n      ui.status = sheet.querySelector('.tbv__status');\n      ui.text = sheet.querySelector('.tbv__text');\n      ui.hint = sheet.querySelector('.tbv__hint');\n      ui.act = sheet.querySelector('[data-act]');\n      ui.kbd = sheet.querySelector('[data-kbd]');\n      sheet.addEventListener('click', function (e) {\n        if (e.target.closest('[data-close]')) close();\n        else if (e.target.closest('[data-kbd]')) keyboard();\n        else if (e.target.closest('[data-act]')) { if (rec) finish(); else start(); }\n      });\n      document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && !sheet.hidden) close(); });\n    };\n    var start = function () {\n      if (!sheet) build();\n      kill();\n      heard = ''; err = ''; done = false; stopping = false;\n      sheet.hidden = false;\n      box.classList.add('is-listening');\n      ui.text.textContent = '';\n      ui.text.setAttribute('data-empty', '');\n      state('starting', 'Starting the mic\u2026', 'Wait a moment, then speak');\n      var r;\n      try {\n        r = new SR();\n        r.lang = document.documentElement.lang === 'hi' ? 'hi-IN' : 'en-IN';\n        r.interimResults = true;\n        r.continuous = false;\n        r.maxAlternatives = 1;\n      } catch (x) { fail('start'); return; }\n      rec = r;\n      /* Only ask people to speak once the mic is really on (it takes a moment on iPhones). */\n      var live = function () {\n        if (rec !== r || sheet.classList.contains('is-listening')) return;\n        clearTimeout(timers.boot);\n        state('listening', 'Listening\u2026 speak now', example);\n        ui.text.setAttribute('data-empty', 'Say a toy, brand or age');\n        timers.cap = setTimeout(finish, 9000);\n      };\n      r.onstart = live;\n      r.onaudiostart = live;\n      r.onresult = function (ev) {\n        live();\n        var text = '', final = false;\n        for (var k = 0; k < ev.results.length; k++) { text += ev.results[k][0].transcript; if (ev.results[k].isFinal) final = true; }\n        heard = text.trim();\n        ui.text.textContent = heard;\n        clearTimeout(timers.quiet);\n        if (final && heard) { finish(); return; }\n        if (heard) timers.quiet = setTimeout(finish, 1500);\n      };\n      r.onerror = function (ev) {\n        if (ev.error === 'aborted') return;\n        err = ev.error;\n        if (MSG[err]) { if (heard) go(); else fail(err); }\n      };\n      r.onend = function () { if (rec === r) { stopping = true; finish(); } };\n      timers.boot = setTimeout(function () { if (rec === r && !sheet.classList.contains('is-listening')) fail('start'); }, 5000);\n      try { r.start(); } catch (x) { fail('start'); }\n    };\n    mic.addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); start(); });\n    /* Leaving the page or switching apps closes it cleanly. */\n    document.addEventListener('visibilitychange', function () { if (document.hidden && !done) close(); });\n  }\n\n  /* Pinned just under the sticky header (its height changes, so it is measured), with a shadow once pinned. */\n  var wrap = box.closest('.shopify-section') || box;\n  var hd = document.getElementById('header-component');\n  var hdPinned = false, pinEl = null;\n  for (var e = hd; e && e !== document.body; e = e.parentElement) {\n    var pos = getComputedStyle(e).position;\n    if (pos === 'sticky' || pos === 'fixed') { hdPinned = true; pinEl = e; break; }\n  }\n  /* Runs once per scroll frame, so it reads every measurement first and writes only what changed:\n     a scroll frame then costs one layout instead of up to two (2026-11-07; original in\n     assets/bak-20261107-tb-m-search.js). The bar's position is re-read only in the rare frames where the\n     header's height or the bar's own height changes, so the pinned shadow still switches on and off at exactly the same point. */\n  var phone = window.matchMedia('(max-width: 749px)'), queued = false, lastTop = -1, lastH = -1, lastStuck = null;\n  var place = function () {\n    queued = false;\n    if (!phone.matches) return;\n    var top = 0;\n    if (hdPinned) { var r = hd.getBoundingClientRect(); if (r.bottom > 0 && getComputedStyle(hd).opacity !== '0') { /* 2026-11-13: pin under the header's resting spot (its sticky top + its height), not where it is this frame: on iPhones the header snaps to the top before this script runs, which left a gap for a frame or two. */ var pin = pinEl || hd, pr = pin.getBoundingClientRect(); top = Math.floor((parseFloat(getComputedStyle(pin).top) || 0) + (r.bottom - pr.top)); } }\n    var h = box.offsetHeight;\n    var boxTop = box.getBoundingClientRect().top;\n    if (top !== lastTop) { wrap.style.setProperty('--tbms-top', top + 'px'); lastTop = top; boxTop = box.getBoundingClientRect().top; }\n    if (h !== lastH) { wrap.style.setProperty('--tbms-h', h + 'px'); lastH = h; boxTop = box.getBoundingClientRect().top; }\n    var stuck = window.scrollY > 4 && boxTop <= top + 1;\n    if (stuck !== lastStuck) { box.classList.toggle('is-stuck', stuck); lastStuck = stuck; }\n  };\n  /* 2026-11-13: the header keeps sliding (its own transition, or iPhone momentum scrolling) after the last scroll event, so the bar keeps following it every frame for 600 ms after each scroll and when the header's transition ends; no gap shows between them. */ var until = 0, looping = false; var loop = function () { place(); if (performance.now() < until) requestAnimationFrame(loop); else looping = false; }; var ask = function () { until = performance.now() + 600; if (!looping) { looping = true; requestAnimationFrame(loop); } }; if (hd) { hd.addEventListener('transitionend', ask); hd.addEventListener('animationend', ask); }\n  window.addEventListener('scroll', ask, { passive: true });\n  window.addEventListener('resize', ask);\n  place();\n})();\n"],
  "mappings": "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",
  "names": ["t", "e"]
}
