{
  "version": 3,
  "sources": ["/cdn/shop/t/43/assets/peak-assist.js?nocache=1785175026"],
  "sourcesContent": ["(function () {\n  \"use strict\";\n  window.PEAK_ASSIST_API = window.PEAK_ASSIST_API || 'https://peaksaunasteam.com/assist';\n\n\n  // --- GA4 funnel instrumentation (added 2026-07-29) -----------------------\n  // Transport note: peaksaunas.com serves GA4 ONLY through Shopify's Web\n  // Pixels sandbox, so window.gtag is undefined on ordinary storefront pages\n  // (verified live 2026-07-29). We therefore load our own gtag with\n  // send_page_view:false -- the exact pattern already proven in production on\n  // /pages/landing-page-11, whose pms_* events land in GA4 today. Page views\n  // stay owned by Shopify's pixel; this tag only emits our custom events.\n  // Sends counts and enums only -- never message text, name, phone or email.\n  var PA_GA4_ID = 'G-Q4S7FKHHR8';\n  var PA_TRACK_VER = 'pa-1.0';\n  var paTrackedOnce = {};\n  var paGtagBooted = false;\n  var paMsgSeq = 0;\n  var paClosing = false;\n\n  // Defines the gtag shim SYNCHRONOUSLY (so events queue into dataLayer and\n  // flush once gtag.js lands) but defers the ~100KB script fetch to idle time\n  // so site-wide instrumentation costs nothing against LCP.\n  function paEnsureGtag() {\n    if (typeof window.gtag === 'function') return true;  // LP pages already have it\n    if (paGtagBooted) return true;\n    paGtagBooted = true;\n    try {\n      window.dataLayer = window.dataLayer || [];\n      window.gtag = function () { window.dataLayer.push(arguments); };\n      window.gtag('js', new Date());\n      window.gtag('config', PA_GA4_ID, { send_page_view: false, transport_type: 'beacon' });\n      var load = function () {\n        var s = document.createElement('script');\n        s.async = true;\n        s.src = 'https://www.googletagmanager.com/gtag/js?id=' + PA_GA4_ID;\n        document.head.appendChild(s);\n      };\n      if (window.requestIdleCallback) window.requestIdleCallback(load, { timeout: 4000 });\n      else setTimeout(load, 2000);\n      return true;\n    } catch (err) { return false; }\n  }\n\n  function paTrack(name, params) {\n    try {\n      if (!paEnsureGtag()) return;\n      var p = params || {};\n      p.widget_version = PA_TRACK_VER;\n      p.pa_device = window.matchMedia('(max-width: 768px)').matches ? 'mobile' : 'desktop';\n      p.pa_page = location.pathname;\n      window.gtag('event', name, p);\n    } catch (err) { /* analytics must never break the widget */ }\n  }\n  function paTrackOnce(name, params) {\n    if (paTrackedOnce[name]) return;\n    paTrackedOnce[name] = true;\n    paTrack(name, params);\n  }\n\n  var askInput = document.getElementById('paf-ask-input');\n  var askPill = document.querySelector('#peak-action-footer .paf-ask-pill');\n  var sendBtn = document.getElementById('paf-send-btn');\n  if (askPill) paTrackOnce('peak_assist_impression', {});\n\n  // --- GHL chat-widget detection: poll for its open shadow root, then hide\n  // its own launcher/prompt so this footer's pill is the only visible entry\n  // point. SAFETY: this file never queries or clicks #lc_text-widget--send-btn\n  // \u2014 that button posts to the LIVE GHL account, so sending stays a manual,\n  // human action inside the widget itself.\n  var widgetReady = false;\n  var widgetHost = null;\n  var widgetShadow = null;\n\n  (function pollWidget(elapsed) {\n    var el = document.querySelector('chat-widget');\n    var sr = el && el.shadowRoot;\n    if (sr) {\n      if (!sr.getElementById('paf-widget-style')) {\n        var style = document.createElement('style');\n        style.id = 'paf-widget-style';\n        style.textContent = '.lc_text-widget--bubble, .lc_text-widget--prompt { display: none !important; }';\n        sr.appendChild(style);\n      }\n      widgetHost = el;\n      widgetShadow = sr;\n      widgetReady = true;\n      return;\n    }\n    if (elapsed >= 12000) return;\n    setTimeout(function () { pollWidget(elapsed + 250); }, 250);\n  })(0);\n\n  function updateSendState() {\n    if (askInput.value.trim().length > 0) {\n      sendBtn.classList.add('paf-active');\n    } else {\n      sendBtn.classList.remove('paf-active');\n    }\n  }\n\n  // The old GHL launcher-click + textarea-prefill helper was removed this\n  // round \u2014 the pill now opens the Peak Assist panel below instead of the\n  // GHL window. The widget-detection poll above is unchanged and still\n  // hides the GHL widget's own launcher/prompt via shadow-DOM style\n  // injection.\n  function sendAsk() {\n    var val = askInput.value.trim();\n    askInput.value = '';\n    updateSendState();\n    paOpenPanel(val || null);\n  }\n\n  askPill.addEventListener('click', function (e) {\n    if (e.target === sendBtn || sendBtn.contains(e.target)) return;\n    paTrack('peak_assist_bar_click', { resumed: (paHasThread || paContact) ? 1 : 0 });\n    // A click on the bar must OPEN THE CHAT. Until 2026-08-04 this only called\n    // askInput.focus() when there was no existing thread, so 67 of 109 people\n    // who clicked (5 days to 08-03) saw nothing happen. Opening the panel is\n    // what a chat launcher is expected to do.\n    if (paIsOpen()) {\n      paInput.focus();\n      return;\n    }\n    // Carry over anything already typed in the footer pill, but do NOT send it\n    // -- sending stays the visitor's decision.\n    var carried = askInput.value.trim();\n    askInput.value = '';\n    updateSendState();\n    paOpenPanel();\n    if (carried) {\n      paInput.value = carried;\n      paUpdateSendState();\n    }\n  });\n  askInput.addEventListener('input', updateSendState);\n  sendBtn.addEventListener('click', sendAsk);\n  askInput.addEventListener('keydown', function (e) {\n    if (e.key === 'Enter') {\n      e.preventDefault();\n      sendAsk();\n    }\n  });\n\n  // --- PA_P0_BUNDLE: 2-field modal + phone mask + hours copy + error/api telemetry (2026-08-05) ---\n  var PCM_COPY_OPEN = 'Our team is available now \u2014 expect a call shortly.';\n  var PA_TEAM = { on: false, who: '', photo: '', plural: false, note: 'Mon\u2013Fri 8am\u20137pm CT' };  /* PA_TEAM_AWARE 2026-09-25 */\n  var PCM_COPY_CLOSED = 'It\\'s after hours \u2014 we\\'ll call you when we reopen.';\n  var hoursChecked = false;\n  var hoursCopy = '';\n\n  var scheduleBtn = document.getElementById('paf-schedule-btn');\n  var modal = document.getElementById('peak-call-modal');\n  var closeBtn = document.getElementById('pcm-close-btn');\n  var formView = document.getElementById('pcm-form-view');\n  var successView = document.getElementById('pcm-success-view');\n  var form = document.getElementById('pcm-form');\n  var nameInput = document.getElementById('pcm-name');\n  var phoneInput = document.getElementById('pcm-phone');\n  var emailInput = document.getElementById('pcm-email');\n  var emailToggle = document.getElementById('pcm-email-toggle');\n  var emailRow = document.getElementById('pcm-email-row');\n  var submitBtn = document.getElementById('pcm-submit-btn');\n  var formError = document.getElementById('pcm-form-error');\n  var successMsg = document.getElementById('pcm-success-msg');\n  var doneBtn = document.getElementById('pcm-done-btn');\n  var hoursEl = document.getElementById('pcm-hours');\n  var lastFocused = null;\n\n  function setError(input, msg) {\n    var el = document.getElementById(input.id + '-error');\n    if (!el) return;\n    if (msg) {\n      el.textContent = msg;\n      el.classList.add('pcm-show');\n      input.classList.add('pcm-invalid');\n    } else {\n      el.textContent = '';\n      el.classList.remove('pcm-show');\n      input.classList.remove('pcm-invalid');\n    }\n  }\n\n  [nameInput, phoneInput, emailInput].forEach(function (input) {\n    input.addEventListener('input', function () { setError(input, ''); });\n  });\n\n  // International entry (leading '+') and anything past 10 digits is left\n  // completely untouched. Caret must be at the end of the field or we skip\n  // reformatting for that keystroke, to avoid cursor-jump bugs.\n  function formatPhone() {\n    var val = phoneInput.value;\n    var digits = val.replace(/\\D/g, '');\n    if (val.charAt(0) === '+' || digits.length > 10) return;\n    if (phoneInput.selectionStart !== val.length) return;\n    var out = digits;\n    if (digits.length > 6) {\n      out = '(' + digits.substr(0, 3) + ') ' + digits.substr(3, 3) + '-' + digits.substr(6);\n    } else if (digits.length > 3) {\n      out = '(' + digits.substr(0, 3) + ') ' + digits.substr(3);\n    } else if (digits.length > 0) {\n      out = '(' + digits;\n    }\n    phoneInput.value = out;\n  }\n  phoneInput.addEventListener('input', formatPhone);\n\n  // US-only lead gate. Mirrors us_phone.py on the server, which is the real\n  // gate -- this exists so the visitor sees the reason before submitting.\n  // Canada and the Caribbean share +1, so they are refused by area code here\n  // too. US territories (787/939/671/670/684/340) are US. Keep in step with\n  // us_phone.py NON_US_NPA -- test_us_phone_client.js checks that.\n  var PA_TOLLFREE_NPA = /^(800|822|833|844|855|866|877|88[0-9])$/;\n  var PA_SERVICE_NPA = /^(700|710|900|950|958|959)$/;\n  var PA_NON_US_NPA = (\n    // Canada\n    '204 226 236 249 250 257 263 289 306 343 354 365 367 368 382 387 403 416 ' +\n    '418 428 431 437 438 450 468 474 506 514 519 548 579 581 584 587 600 604 ' +\n    '613 622 639 647 672 683 705 709 742 753 778 780 782 807 819 825 867 873 ' +\n    '879 902 905 ' +\n    // Caribbean / Atlantic NANP members that are not US territories\n    '242 246 264 268 284 345 441 473 649 658 664 721 758 767 784 809 829 849 ' +\n    '868 869 876'\n  ).split(' ');\n\n  function paValidateUsPhone(raw) {\n    raw = (raw || '').trim();\n    if (!raw) return { ok: false, error: 'Please enter a US phone number \u2014 10 digits, area code first.' };\n    var plus = raw.charAt(0) === '+';\n    var digits = raw.replace(/\\s*(?:x|ext\\.?|extension|#)\\s*\\d{1,6}\\s*$/i, '').replace(/\\D/g, '');\n    var badFormat = { ok: false, error: 'Please enter a US phone number \u2014 10 digits, area code first.' };\n    if (digits.indexOf('011') === 0) return badFormat;\n    if (digits.length === 11 && digits.charAt(0) === '1') digits = digits.slice(1);\n    else if (plus && digits.charAt(0) !== '1') return badFormat;\n    if (digits.length !== 10) return badFormat;\n\n    var npa = digits.slice(0, 3), nxx = digits.slice(3, 6);\n    if (PA_TOLLFREE_NPA.test(npa)) {\n      return { ok: false, error: \"Please enter a direct line \u2014 toll-free numbers can't be used.\" };\n    }\n    if (PA_SERVICE_NPA.test(npa) || nxx === '976') {\n      return { ok: false, error: \"That number can't be reached \u2014 please enter a direct line.\" };\n    }\n    var invalid = { ok: false, error: \"Please check the number \u2014 that isn't a valid US phone number.\" };\n    if (!/^[2-9]/.test(npa) || npa.slice(1) === '11' || npa.slice(0, 2) === '37' || npa.slice(0, 2) === '96') return invalid;\n    if (!/^[2-9]/.test(nxx) || nxx.slice(1) === '11' || nxx === '555') return invalid;\n    if (/^(\\d)\\1{9}$/.test(digits)) return invalid;\n    if (PA_NON_US_NPA.indexOf(npa) !== -1) {\n      return { ok: false, error: 'We only serve the United States \u2014 please enter a US phone number.' };\n    }\n    return { ok: true };\n  }\n\n  function openModal() {\n    lastFocused = document.activeElement;\n    modal.classList.add('pcm-enter');\n    modal.style.display = 'flex';\n    void modal.offsetHeight;\n    requestAnimationFrame(function () { modal.classList.remove('pcm-enter'); });\n    setTimeout(function () { modal.classList.remove('pcm-enter'); }, 150);\n    modal.setAttribute('aria-hidden', 'false');\n    document.body.classList.add('pcm-open');\n    if (paContact) {\n      if (!nameInput.value) nameInput.value = paContact.name;\n      if (!phoneInput.value) phoneInput.value = paContact.phone;\n    }\n    checkHours();\n    setTimeout(function () { nameInput.focus(); }, 0);\n  }\n\n  function closeModal() {\n    modal.style.display = 'none';\n    modal.setAttribute('aria-hidden', 'true');\n    document.body.classList.remove('pcm-open');\n    if (lastFocused && typeof lastFocused.focus === 'function') lastFocused.focus();\n  }\n\n  function applyHoursCopy() {\n    if (hoursEl) hoursEl.textContent = hoursCopy;\n  }\n\n  // Fires at most once per pageview (first modal open); later opens just\n  // re-apply whatever was cached. ES5-safe stand-in for AbortController: a\n  // plain setTimeout race that ignores a late response instead of cancelling\n  // it. On ANY failure or timeout the copy stays '' -- never show a wrong\n  // promise when the API is unreachable.\n  function checkHours() {\n    if (hoursChecked) {\n      applyHoursCopy();\n      return;\n    }\n    hoursChecked = true;\n    hoursCopy = '';\n    applyHoursCopy();\n    var settled = false;\n    setTimeout(function () { settled = true; }, 4000);\n    fetch((window.PEAK_ASSIST_API || '') + '/healthz').then(function (res) {\n      return res.json();\n    }).then(function (json) {\n      if (settled) return;\n      settled = true;\n      try { paApplyTeam(json); } catch (e) {}\n      if (json && json.biz_hours_now === true) hoursCopy = PCM_COPY_OPEN;\n      else if (json && json.biz_hours_now === false) hoursCopy = PCM_COPY_CLOSED;\n      applyHoursCopy();\n    }).catch(function () {\n      settled = true;\n    });\n  }\n\n  /* PA_TEAM_AWARE 2026-09-25 */\n  // Who is on right now (backend roster: /root/peak-assist-api/roster.json). Drives the footer button,\n  // the ask pill, the call modal, the chat header, and the PDP call card. Off hours = neutral copy, grey dot.\n  function paSetText(id, t) { var el = document.getElementById(id); if (el) el.textContent = t; }\n  function paSetImg(id, src) { var el = document.getElementById(id); if (!el) return; if (src) { el.src = src; el.hidden = false; } else { el.hidden = true; } }\n  function paApplyTeam(json) {\n    var team = (json && json.team_on) || [];\n    var on = !!(json && json.biz_hours_now) && team.length > 0;\n    var names = team.map(function (t) { return t.name; });\n    var who = names.length === 0 ? '' : (names.length === 1 ? names[0] : names.slice(0, -1).join(', ') + ' & ' + names[names.length - 1]);\n    var withPhoto = team.filter(function (t) { return t.photo; })[0];\n    var photo = withPhoto ? withPhoto.photo + (withPhoto.photo.indexOf('?') < 0 ? '?width=120&height=120&crop=center' : '') : '';\n    var note = (json && json.hours_note) || PA_TEAM.note;\n    PA_TEAM = { on: on, who: who, photo: photo, plural: names.length > 1, note: note, names: names };\n    var mobile = window.innerWidth < 768;\n    paSetText('paf-schedule-label', (on && !mobile) ? 'Schedule a call \\u00b7 ' + who : 'Schedule a call');\n    paSetImg('paf-who-img', on ? photo : ''); paSetImg('paf-ask-img', on ? photo : '');\n    var dot = document.getElementById('paf-dot'); if (dot) dot.classList.toggle('is-on', on);\n    if (askInput) askInput.placeholder = on ? (mobile ? 'Chat with us' : 'Chat with ' + who) : 'Ask anything';\n    paSetText('pcm-subtitle', on ? 'Leave your info and ' + who + ' will give you a quick call.' : 'Leave your info and we\\'ll call you when we reopen (' + note + ').');\n    paSetImg('pcm-avatar', on ? photo : '');\n    PCM_COPY_OPEN = on ? who + (PA_TEAM.plural ? ' are' : ' is') + ' available now \\u2014 expect a call shortly.' : 'Our team is available now \\u2014 expect a call shortly.';\n    if (json && typeof json.biz_hours_now === 'boolean') { hoursCopy = json.biz_hours_now ? PCM_COPY_OPEN : PCM_COPY_CLOSED; applyHoursCopy(); }\n    paSetText('pa-title', on ? 'Chat with ' + who : 'Peak Assist');\n    paSetText('pa-status-text', on ? 'Online now \\u00b7 replies in a few minutes' : 'Answers now \\u00b7 team back ' + note);\n    var hd = document.getElementById('pa-header-avatar-img'); if (hd) hd.src = (on && photo) ? photo : PA_AVATAR_URL;\n    var sd = document.getElementById('pa-status-dot'); if (sd) sd.classList.toggle('is-off', !on);\n    var eye = document.querySelector('.pk-call-eyebrow'); if (eye) eye.textContent = on ? 'Talk to ' + who + ' \\u00b7 Peak team' : 'Talk to our team';\n    var head = document.querySelector('.pk-call-head'); if (head) head.textContent = head.textContent.replace(/Call or text .*? for a/, 'Call or text ' + (on ? who : 'us') + ' for a');\n    var av = document.querySelector('.pk-call-avatar'); if (av) { if (on && photo) { av.src = photo; av.hidden = false; } else { av.hidden = true; } }\n    var avail = document.querySelector('.pk-avail'); if (avail) avail.classList.toggle('is-off', !on);\n    var at = document.querySelector('[data-pk-availtext]'); if (at) at.textContent = on ? 'Available now \\u2014 sizing, voltage & delivery answered in minutes' : 'Back ' + note + ' \\u2014 leave a message and we reply first thing';\n  }\n  function paTeamAuthor() { return PA_TEAM.on ? { name: PA_TEAM.who, photo: PA_TEAM.photo } : null; }\n  function paWelcomeText() {\n    if (!PA_TEAM.on) return 'Hi! Ask us anything about our saunas.';\n    return PA_TEAM.plural ? 'Hi, ' + PA_TEAM.who + ' here. Ask us anything about our saunas.' : 'Hi, I\\'m ' + PA_TEAM.who + '. Ask me anything about our saunas.';\n  }\n  window.__paApplyTeam = paApplyTeam;\n  setTimeout(checkHours, 0);\n\n  // Cached storefront HTML can pair pre-P0 markup with this JS for ~30-45\n  // min after publish; the toggle/row may not exist on stale pages. Guard so\n  // those degrade to the old 3-field form instead of killing the widget.\n  function showEmailRow() {\n    if (!emailToggle || !emailRow) return;\n    emailRow.classList.add('pcm-show');\n    emailToggle.setAttribute('aria-expanded', 'true');\n    emailToggle.style.display = 'none';\n    emailInput.focus();\n  }\n\n  function resetEmailRow() {\n    if (!emailToggle || !emailRow) return;\n    emailRow.classList.remove('pcm-show');\n    emailToggle.setAttribute('aria-expanded', 'false');\n    emailToggle.style.display = '';\n  }\n\n  if (emailToggle) emailToggle.addEventListener('click', showEmailRow);\n\n  scheduleBtn.addEventListener('click', function () {\n    paTrack('schedule_call_open', {});\n    openModal();\n  });\n  closeBtn.addEventListener('click', closeModal);\n  modal.addEventListener('click', function (e) {\n    if (e.target === modal) closeModal();\n  });\n  document.addEventListener('keydown', function (e) {\n    if (e.key === 'Escape' && modal.style.display === 'flex') closeModal();\n  });\n\n  function resetForm() {\n    form.reset();\n    [nameInput, phoneInput, emailInput].forEach(function (input) { setError(input, ''); });\n    formError.textContent = '';\n    formError.hidden = true;\n    submitBtn.disabled = false;\n    submitBtn.textContent = 'Request a Call';\n    resetEmailRow();\n  }\n\n  doneBtn.addEventListener('click', function () {\n    resetForm();\n    formView.hidden = false;\n    successView.hidden = true;\n    closeModal();\n  });\n\n  function validate() {\n    var ok = true;\n    var nameError = 0;\n    var phoneError = 0;\n    var emailError = 0;\n    var name = nameInput.value.trim();\n    if (!name) {\n      setError(nameInput, 'Please enter your name.');\n      ok = false;\n      nameError = 1;\n    }\n    var phoneCheck = paValidateUsPhone(phoneInput.value);\n    if (!phoneCheck.ok) {\n      setError(phoneInput, phoneCheck.error);\n      ok = false;\n      phoneError = 1;\n    }\n    var email = emailInput.value.trim();\n    if (email && !/.+@.+\\..+/.test(email)) {\n      setError(emailInput, 'Please enter a valid email address.');\n      ok = false;\n      emailError = 1;\n    }\n    return { ok: ok, name_error: nameError, phone_error: phoneError, email_error: emailError };\n  }\n\n  function handleSubmitSuccess(fullName) {\n    var firstName = fullName.split(/\\s+/)[0];\n    successMsg.textContent = 'Thanks, ' + firstName + '! ' + (PA_TEAM.on ? PA_TEAM.who + ' will' : 'We\\'ll') + ' call you shortly.';\n    formView.hidden = true;\n    successView.hidden = false;\n    submitBtn.disabled = false;\n    submitBtn.textContent = 'Request a Call';\n  }\n\n  function handleSubmitError() {\n    formError.textContent = 'Something went wrong \u2014 please try again.';\n    formError.hidden = false;\n    submitBtn.disabled = false;\n    submitBtn.textContent = 'Request a Call';\n  }\n\n  function submitViaIframeFallback(payload) {\n    var done = false;\n    var iframe = document.createElement('iframe');\n    iframe.name = 'paf-sink';\n    iframe.style.display = 'none';\n\n    var f = document.createElement('form');\n    f.method = 'POST';\n    f.action = (window.PEAK_ASSIST_API || '') + '/api/schedule-call';\n    f.target = 'paf-sink';\n    f.style.display = 'none';\n    var fields = {\n      name: payload.name,\n      phone: payload.phone,\n      email: payload.email,\n      model: payload.model,\n      source: payload.source,\n      page: payload.page,\n      transport: 'iframe'\n    };\n    Object.keys(fields).forEach(function (key) {\n      var inp = document.createElement('input');\n      inp.type = 'hidden';\n      inp.name = key;\n      inp.value = fields[key];\n      f.appendChild(inp);\n    });\n\n    function cleanup() {\n      clearTimeout(timer);\n      if (f.parentNode) f.parentNode.removeChild(f);\n      if (iframe.parentNode) iframe.parentNode.removeChild(iframe);\n    }\n\n    function finish(ok) {\n      if (done) return;\n      done = true;\n      cleanup();\n      if (ok) {\n        handleSubmitSuccess(payload.name);\n      } else {\n        paTrack('schedule_call_api_error', { transport: 'iframe' });\n        handleSubmitError();\n      }\n    }\n\n    var timer = setTimeout(function () { finish(false); }, 8000);\n\n    // The very first 'load' a freshly-appended src-less iframe fires is its\n    // own empty document, not a response. Ignore that one, then attach a\n    // fresh one-shot listener for the real response before submitting.\n    iframe.addEventListener('load', function onInitialLoad() {\n      iframe.removeEventListener('load', onInitialLoad);\n      if (done) return;\n      iframe.addEventListener('load', function () {\n        try {\n          var json = JSON.parse(iframe.contentDocument.body.innerText);\n          finish(!!(json && json.ok));\n        } catch (err) {\n          finish(false);\n        }\n      }, { once: true });\n      document.body.appendChild(f);\n      f.submit();\n    }, { once: true });\n\n    document.body.appendChild(iframe);\n  }\n\n  form.addEventListener('submit', function (e) {\n    e.preventDefault();\n    formError.textContent = '';\n    formError.hidden = true;\n    var valid = validate();\n    if (!valid.ok) {\n      paTrack('schedule_call_error', {\n        name_error: valid.name_error, phone_error: valid.phone_error, email_error: valid.email_error\n      });\n      return;\n    }\n    var hasEmail = emailInput.value.trim() ? 1 : 0;\n    paTrack('schedule_call_submit', { has_email: hasEmail });\n    if (window.PK && window.PK.lead) window.PK.lead('schedule_call', { has_email: hasEmail });\n\n    // model stays '' -- the sauna-model select was removed from the modal;\n    // the server (peak_assist_api.py schedule_call()) does `(b.get(\"model\")\n    // or \"\").strip()` and only appends a Slack line `if model:`, so '' is a\n    // clean no-op server-side, verified 2026-08-05.\n    var payload = {\n      name: nameInput.value.trim(),\n      phone: phoneInput.value.trim(),\n      email: emailInput.value.trim(),\n      model: '',\n      source: 'homepage-footer',\n      page: location.pathname\n    };\n    if (window.PK && window.PK.ids) {\n      var sIds = window.PK.ids();\n      for (var sk in sIds) { if (sIds[sk]) payload[sk] = sIds[sk]; }\n    }\n\n    submitBtn.disabled = true;\n    submitBtn.textContent = 'Sending\u2026';\n\n    fetch((window.PEAK_ASSIST_API || '') + '/api/schedule-call', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify(payload)\n    }).then(function (res) {\n      return res.json().then(function (json) {\n        if (res.ok && json && json.ok) {\n          handleSubmitSuccess(payload.name);\n        } else {\n          paTrack('schedule_call_api_error', { transport: 'fetch' });\n          handleSubmitError();\n        }\n      });\n    }).catch(function () {\n      // fetch() itself rejected (network-level failure, e.g. blocked by a\n      // third-party script) \u2014 retry via the hidden-iframe form transport.\n      submitViaIframeFallback(payload);\n    });\n  });\n\n  // === Peak Assist chat panel (Tesla-Assist-style) ===\n  // Placed after the modal section on purpose: it only ever *reads*\n  // scheduleBtn/modal/closeModal (already declared above) or adds brand-new,\n  // additive listeners alongside the modal's own \u2014 nothing above this line\n  // is modified. This is a deliberate parallel copy of the fetch/iframe\n  // transport pattern above rather than a shared helper, per instruction.\n  var paPanel = document.getElementById('peak-assist-panel');\n  var paMessages = document.getElementById('pa-messages');\n  var paInput = document.getElementById('pa-input');\n  var paSendBtn = document.getElementById('pa-send-btn');\n  var paMinBtn = document.getElementById('pa-min-btn');\n  var paCloseBtn = document.getElementById('pa-close-btn');\n  var paHasThread = false;\n  var paLastFocused = null;\n  var PA_AVATAR_URL = 'https://cdn.shopify.com/s/files/1/0825/8312/6317/t/43/assets/peak-assist-avatar.jpg?v=1785195022';\n\n  // API base + reply polling state. Bench mode (this local design bench) is\n  // the default (''), meaning every panel endpoint below resolves to a\n  // same-origin relative path exactly as before. Setting window.PEAK_ASSIST_API\n  // before this script runs switches the panel into \"remote\" mode: canned\n  // replies stop and GET .../api/ask-question/replies polling takes over.\n  const API_BASE = (window.PEAK_ASSIST_API || '');\n  var paContact = null; // {name, phone} once inline capture succeeds\n  var paTid = null;\n  var paPendingFirstMessage = null;\n  var paPendingFirstMessageRow = null;\n  var PA_POLL_MIN = 5000;\n  var PA_POLL_MAX = 15000;\n  var paPollTimer = null;\n  var paPollDelay = PA_POLL_MIN;\n  var paPollFailures = 0;\n  var paSinceTs = 0;\n  var paSeenReplyTs = {};\n  var paConnNoteEl = null;\n\n  function paIsOpen() {\n    return paPanel.style.display === 'flex';\n  }\n\n  function paMakeAvatar(photo) {\n    var img = document.createElement('img');\n    img.className = 'pa-avatar';\n    img.alt = '';\n    img.src = photo || PA_AVATAR_URL;\n    img.onerror = function () {\n      var fallback = document.createElement('div');\n      fallback.className = 'pa-avatar-fallback';\n      fallback.textContent = 'P';\n      if (img.parentNode) img.parentNode.replaceChild(fallback, img);\n    };\n    return img;\n  }\n\n  function paActionIcon(name) {\n    var ns = 'http://www.w3.org/2000/svg';\n    var svg = document.createElementNS(ns, 'svg');\n    svg.setAttribute('viewBox', '0 0 24 24');\n    svg.setAttribute('aria-hidden', 'true');\n    svg.setAttribute('fill', 'none');\n    svg.setAttribute('stroke', 'currentColor');\n    svg.setAttribute('stroke-width', '2');\n    svg.setAttribute('stroke-linecap', 'round');\n    svg.setAttribute('stroke-linejoin', 'round');\n    var d;\n    if (name === 'up') {\n      d = 'M7 10v12M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2h0a3.13 3.13 0 0 1 3 3.88Z';\n    } else if (name === 'down') {\n      d = 'M17 14V2M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L13 22h0a3.13 3.13 0 0 1-3-3.88Z';\n    } else {\n      var rect = document.createElementNS(ns, 'rect');\n      rect.setAttribute('width', '13');\n      rect.setAttribute('height', '13');\n      rect.setAttribute('x', '9');\n      rect.setAttribute('y', '9');\n      rect.setAttribute('rx', '2');\n      svg.appendChild(rect);\n      d = 'M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1';\n    }\n    var path = document.createElementNS(ns, 'path');\n    path.setAttribute('d', d);\n    svg.appendChild(path);\n    return svg;\n  }\n\n  function paMakeActionBtn(kind, label) {\n    var btn = document.createElement('button');\n    btn.type = 'button';\n    btn.className = 'pa-action pa-action-' + kind;\n    btn.setAttribute('aria-label', label);\n    if (kind === 'up' || kind === 'down') btn.setAttribute('aria-pressed', 'false');\n    btn.appendChild(paActionIcon(kind));\n    return btn;\n  }\n\n  function paFallbackCopy(text) {\n    var ta = document.createElement('textarea');\n    ta.value = text;\n    ta.style.position = 'fixed';\n    ta.style.opacity = '0';\n    document.body.appendChild(ta);\n    ta.select();\n    try { document.execCommand('copy'); } catch (err) {}\n    document.body.removeChild(ta);\n  }\n\n  paMessages.addEventListener('click', function (e) {\n    var btn = e.target.closest ? e.target.closest('.pa-action') : null;\n    if (!btn) return;\n    if (btn.classList.contains('pa-action-copy')) {\n      var wrapC = btn.closest('.pa-bubble-wrap');\n      var bubbleC = wrapC ? wrapC.querySelector('.pa-bubble') : null;\n      var text = bubbleC ? bubbleC.textContent : '';\n      if (navigator.clipboard && navigator.clipboard.writeText) {\n        navigator.clipboard.writeText(text).catch(function () { paFallbackCopy(text); });\n      } else {\n        paFallbackCopy(text);\n      }\n      return;\n    }\n    var wrap = btn.closest('.pa-actions');\n    if (!wrap) return;\n    var up = wrap.querySelector('.pa-action-up');\n    var down = wrap.querySelector('.pa-action-down');\n    var target = btn.classList.contains('pa-action-up') ? up : down;\n    var other = target === up ? down : up;\n    var nowPressed = target.getAttribute('aria-pressed') !== 'true';\n    target.setAttribute('aria-pressed', nowPressed ? 'true' : 'false');\n    other.setAttribute('aria-pressed', 'false');\n  });\n\n  function paAddMessage(role, text, author) {\n    paHasThread = true;\n    var row = document.createElement('div');\n    row.className = 'pa-row pa-row-' + role;\n    var wrap = document.createElement('div');\n    wrap.className = 'pa-bubble-wrap';\n    var bubble = document.createElement('div');\n    bubble.className = role === 'assistant' ? 'pa-bubble pa-bubble-assistant' : 'pa-bubble pa-bubble-user';\n    bubble.textContent = text;\n    if (role === 'assistant' && author && author.name) { var who = document.createElement('div'); who.className = 'pa-author'; who.textContent = author.name; wrap.appendChild(who); }\n    wrap.appendChild(bubble);\n    if (role === 'assistant') {\n      row.appendChild(paMakeAvatar(author && author.photo));\n      var actions = document.createElement('div');\n      actions.className = 'pa-actions';\n      actions.appendChild(paMakeActionBtn('up', 'Good response'));\n      actions.appendChild(paMakeActionBtn('down', 'Bad response'));\n      actions.appendChild(paMakeActionBtn('copy', 'Copy message'));\n      wrap.appendChild(actions);\n    }\n    row.appendChild(wrap);\n    paMessages.appendChild(row);\n    paMessages.scrollTop = paMessages.scrollHeight;\n    return row;\n  }\n\n  function paAddErrorNote(userRow) {\n    if (!userRow || !userRow.parentNode) return;\n    var wrap = userRow.querySelector('.pa-bubble-wrap');\n    if (!wrap || wrap.querySelector('.pa-error-note')) return;\n    var note = document.createElement('div');\n    note.className = 'pa-error-note';\n    note.textContent = \"Couldn't send \u2014 connection issue.\";\n    wrap.appendChild(note);\n  }\n\n  function paShowTyping() {\n    var row = document.createElement('div');\n    row.className = 'pa-row pa-row-assistant';\n    row.id = 'pa-typing-row';\n    row.appendChild(paMakeAvatar());\n    var bubble = document.createElement('div');\n    bubble.className = 'pa-bubble pa-bubble-assistant pa-typing';\n    bubble.setAttribute('aria-label', 'Peak Assist is typing');\n    for (var i = 0; i < 3; i++) {\n      var dot = document.createElement('span');\n      dot.className = 'pa-dot';\n      bubble.appendChild(dot);\n    }\n    row.appendChild(bubble);\n    paMessages.appendChild(row);\n    paMessages.scrollTop = paMessages.scrollHeight;\n  }\n\n  function paHideTyping() {\n    var row = document.getElementById('pa-typing-row');\n    if (row && row.parentNode) row.parentNode.removeChild(row);\n  }\n\n  // --- Inline contact capture ---------------------------------------------\n  // Shown once, as an assistant bubble containing a form, right after the\n  // user's first message renders. Blocks further sends until name+phone are\n  // captured, then bridges the held first message through to the backend.\n  function paShowCaptureForm() {\n    paTrack('peak_assist_capture_shown', {});\n    var row = document.createElement('div');\n    row.className = 'pa-row pa-row-assistant pa-row-capture';\n    row.appendChild(paMakeAvatar());\n    var wrap = document.createElement('div');\n    wrap.className = 'pa-bubble-wrap';\n    var bubble = document.createElement('div');\n    bubble.className = 'pa-bubble pa-bubble-assistant';\n\n    var intro = document.createElement('div');\n    intro.textContent = \"Happy to help! So our team can reach you if we get disconnected \u2014 what's your first name and best phone number?\";\n    bubble.appendChild(intro);\n\n    var form = document.createElement('form');\n    form.className = 'pa-capture-form';\n    form.noValidate = true;\n\n    var nameField = document.createElement('div');\n    nameField.className = 'pa-capture-field';\n    var nameInput = document.createElement('input');\n    nameInput.type = 'text';\n    nameInput.className = 'pa-capture-input';\n    nameInput.placeholder = 'First name';\n    nameInput.setAttribute('aria-label', 'First name');\n    nameInput.autocomplete = 'given-name';\n    var nameErr = document.createElement('div');\n    nameErr.className = 'pa-capture-error';\n    nameField.appendChild(nameInput);\n    nameField.appendChild(nameErr);\n\n    var phoneField = document.createElement('div');\n    phoneField.className = 'pa-capture-field';\n    var phoneInput = document.createElement('input');\n    phoneInput.type = 'tel';\n    phoneInput.className = 'pa-capture-input';\n    phoneInput.placeholder = 'Phone number';\n    phoneInput.setAttribute('aria-label', 'Phone number');\n    phoneInput.autocomplete = 'tel';\n    var phoneErr = document.createElement('div');\n    phoneErr.className = 'pa-capture-error';\n    phoneField.appendChild(phoneInput);\n    phoneField.appendChild(phoneErr);\n\n    var submitBtn = document.createElement('button');\n    submitBtn.type = 'submit';\n    submitBtn.className = 'pa-capture-submit';\n    submitBtn.textContent = 'Start chat';\n\n    var consent = document.createElement('div');\n    consent.className = 'pa-capture-consent';\n    consent.textContent = 'By submitting you agree to receive SMS or e-mails for the provided channel. Rates may be applied.';\n\n    form.appendChild(nameField);\n    form.appendChild(phoneField);\n    form.appendChild(submitBtn);\n    form.appendChild(consent);\n    bubble.appendChild(form);\n    wrap.appendChild(bubble);\n    row.appendChild(wrap);\n    paMessages.appendChild(row);\n    paMessages.scrollTop = paMessages.scrollHeight;\n\n    paInput.disabled = true;\n    paSendBtn.disabled = true;\n\n    function setCaptureError(input, errEl, msg) {\n      if (msg) {\n        errEl.textContent = msg;\n        input.classList.add('pa-capture-invalid');\n      } else {\n        errEl.textContent = '';\n        input.classList.remove('pa-capture-invalid');\n      }\n    }\n    nameInput.addEventListener('input', function () { setCaptureError(nameInput, nameErr, ''); });\n    phoneInput.addEventListener('input', function () { setCaptureError(phoneInput, phoneErr, ''); });\n\n    form.addEventListener('submit', function (e) {\n      e.preventDefault();\n      var ok = true;\n      var nameVal = nameInput.value.trim();\n      if (!nameVal) {\n        setCaptureError(nameInput, nameErr, 'Please enter your first name.');\n        ok = false;\n      }\n      var phoneCheck = paValidateUsPhone(phoneInput.value);\n      if (!phoneCheck.ok) {\n        setCaptureError(phoneInput, phoneErr, phoneCheck.error);\n        ok = false;\n      }\n      if (!ok) {\n        paTrack('peak_assist_capture_error', {\n          name_error: nameVal ? 0 : 1,\n          phone_error: phoneCheck.ok ? 0 : 1\n        });\n        return;\n      }\n      paTrack('peak_assist_capture_submit', {});\n      if (window.PK && window.PK.lead) window.PK.lead('chat', {});\n\n      paContact = { name: nameVal, phone: phoneInput.value.trim() };\n      paInput.disabled = false;\n      paSendBtn.disabled = false;\n\n      bubble.innerHTML = '';\n      bubble.textContent = 'Thanks, ' + nameVal + '!';\n\n      var pending = paPendingFirstMessage;\n      var pendingRow = paPendingFirstMessageRow;\n      paPendingFirstMessage = null;\n      paPendingFirstMessageRow = null;\n      if (pending) paDispatchMessage(pending, pendingRow);\n      if (window.innerWidth > 768) {\n        setTimeout(function () { paInput.focus(); }, 0);\n      }\n    });\n\n    if (window.innerWidth > 768) {\n      setTimeout(function () { nameInput.focus(); }, 0);\n    }\n  }\n\n  // --- Reply polling (remote mode only; bench mode never calls this) ------\n  function paShowConnNote() {\n    if (paConnNoteEl) return;\n    paConnNoteEl = document.createElement('div');\n    paConnNoteEl.className = 'pa-connection-note';\n    paConnNoteEl.textContent = 'Connection hiccup \u2014 still trying\u2026';\n    paMessages.appendChild(paConnNoteEl);\n    paMessages.scrollTop = paMessages.scrollHeight;\n  }\n\n  function paClearConnNote() {\n    if (paConnNoteEl && paConnNoteEl.parentNode) paConnNoteEl.parentNode.removeChild(paConnNoteEl);\n    paConnNoteEl = null;\n  }\n\n  function paResetConnectionState() {\n    paPollDelay = PA_POLL_MIN;\n    paPollFailures = 0;\n    paSinceTs = 0;\n    paSeenReplyTs = {};\n    paClearConnNote();\n  }\n\n  function paStopPolling() {\n    if (paPollTimer) {\n      clearTimeout(paPollTimer);\n      paPollTimer = null;\n    }\n  }\n\n  function paPausePolling() {\n    paStopPolling();\n  }\n\n  function paScheduleNextPoll(delay) {\n    paStopPolling();\n    paPollTimer = setTimeout(paPollReplies, delay);\n  }\n\n  function paPollReplies() {\n    paPollTimer = null;\n    if (!API_BASE || !paTid || !paIsOpen() || document.hidden) return;\n    var url = API_BASE + '/api/ask-question/replies?tid=' + encodeURIComponent(paTid) + '&since=' + encodeURIComponent(paSinceTs);\n    fetch(url).then(function (res) {\n      return res.json().then(function (json) {\n        if (!res.ok || !json || !json.ok) throw new Error('bad replies response');\n        paPollFailures = 0;\n        paPollDelay = PA_POLL_MIN;\n        paClearConnNote();\n        var replies = json.replies || [];\n        var typingCleared = false;\n        replies.forEach(function (r) {\n          var key = String(r.ts);\n          if (paSeenReplyTs[key]) return;\n          paSeenReplyTs[key] = true;\n          if (r.ts && r.ts > paSinceTs) paSinceTs = r.ts;\n          if (!typingCleared) { paHideTyping(); typingCleared = true; }\n          paAddMessage('assistant', r.message || r.text || '', { name: r.author, photo: r.avatar });\n          paTrack('peak_assist_reply_received', {});\n        });\n      });\n    }).catch(function () {\n      paPollFailures++;\n      paPollDelay = PA_POLL_MAX;\n      if (paPollFailures >= 4) paShowConnNote();\n    }).then(function () {\n      paScheduleNextPoll(paPollDelay);\n    });\n  }\n\n  function paResumePollingIfNeeded() {\n    if (!API_BASE || !paTid || !paIsOpen() || document.hidden || paPollTimer) return;\n    paScheduleNextPoll(0);\n  }\n\n  function paStartPolling() {\n    paResumePollingIfNeeded();\n  }\n\n  document.addEventListener('visibilitychange', function () {\n    if (document.hidden) {\n      paPausePolling();\n    } else {\n      paResumePollingIfNeeded();\n    }\n  });\n\n  function paDispatchMessage(text, userRow) {\n    var payload = {\n      message: text,\n      name: paContact ? paContact.name : '',\n      phone: paContact ? paContact.phone : '',\n      page: location.pathname,\n      tid: paTid\n    };\n    if (window.PK && window.PK.ids) {\n      var cIds = window.PK.ids();\n      for (var ck in cIds) { if (cIds[ck]) payload[ck] = cIds[ck]; }\n    }\n    paPostMessage(payload, function (ok, tid) {\n      if (!ok) { paAddErrorNote(userRow); return; }\n      if (tid && !paTid) {\n        paTid = tid;\n        paSinceTs = Date.now();\n        paStartPolling();\n      }\n    });\n    paShowTyping();\n    if (!API_BASE) {\n      setTimeout(function () {\n        paHideTyping();\n        paAddMessage('assistant', 'Thanks! ' + (PA_TEAM.on ? PA_TEAM.who : 'our team') + ' will be with you in just a minute.');\n      }, 1200);\n    }\n  }\n\n  function paPostMessageViaIframe(payload, callback) {\n    var done = false;\n    var iframe = document.createElement('iframe');\n    iframe.name = 'pa-sink';\n    iframe.style.display = 'none';\n\n    var f = document.createElement('form');\n    f.method = 'POST';\n    f.action = API_BASE + '/api/ask-question';\n    f.target = 'pa-sink';\n    f.style.display = 'none';\n    var fields = {\n      message: payload.message,\n      name: payload.name || '',\n      phone: payload.phone || '',\n      page: payload.page,\n      tid: payload.tid || '',\n      transport: 'iframe'\n    };\n    Object.keys(fields).forEach(function (key) {\n      var inp = document.createElement('input');\n      inp.type = 'hidden';\n      inp.name = key;\n      inp.value = fields[key];\n      f.appendChild(inp);\n    });\n\n    function cleanup() {\n      clearTimeout(timer);\n      if (f.parentNode) f.parentNode.removeChild(f);\n      if (iframe.parentNode) iframe.parentNode.removeChild(iframe);\n    }\n    function finish(ok, tid) {\n      if (done) return;\n      done = true;\n      cleanup();\n      callback(ok, tid);\n    }\n    var timer = setTimeout(function () { finish(false); }, 8000);\n\n    iframe.addEventListener('load', function onInitialLoad() {\n      iframe.removeEventListener('load', onInitialLoad);\n      if (done) return;\n      iframe.addEventListener('load', function () {\n        try {\n          var json = JSON.parse(iframe.contentDocument.body.innerText);\n          finish(!!(json && json.ok), json && json.tid);\n        } catch (err) {\n          finish(false);\n        }\n      }, { once: true });\n      document.body.appendChild(f);\n      f.submit();\n    }, { once: true });\n\n    document.body.appendChild(iframe);\n  }\n\n  function paPostMessage(payload, callback) {\n    fetch(API_BASE + '/api/ask-question', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify(payload)\n    }).then(function (res) {\n      return res.json().then(function (json) {\n        callback(!!(res.ok && json && json.ok), json && json.tid);\n      });\n    }).catch(function () {\n      paPostMessageViaIframe(payload, callback);\n    });\n  }\n\n  function paSendMessage(text) {\n    text = (text || '').trim();\n    if (!text) return;\n    paRemoveChips();\n    paMsgSeq++;\n    paTrack('peak_assist_message_send', {\n      seq: paMsgSeq, chars: text.length, gated: paContact ? 0 : 1\n    });\n    var userRow = paAddMessage('user', text);\n    if (!paContact) {\n      // First message ever in this thread: hold it and collect contact info\n      // before it's bridged to the backend. Later messages skip this.\n      paPendingFirstMessage = text;\n      paPendingFirstMessageRow = userRow;\n      paShowCaptureForm();\n      return;\n    }\n    paDispatchMessage(text, userRow);\n  }\n\n  function paUpdateSendState() {\n    if (paInput.value.trim().length > 0) {\n      paSendBtn.classList.add('pa-active');\n    } else {\n      paSendBtn.classList.remove('pa-active');\n    }\n  }\n\n  function paHandlePanelSend() {\n    var val = paInput.value.trim();\n    paInput.value = '';\n    paUpdateSendState();\n    paSendMessage(val);\n  }\n\n  var PA_CHIPS = ['How much is delivery?', 'Which size fits my space?', 'What financing is available?'];\n\n  function paRemoveChips() {\n    var c = document.getElementById('pa-chips');\n    if (c) c.remove();\n  }\n\n  function paRenderChips() {\n    if (document.getElementById('pa-chips')) return;\n    var wrap = document.createElement('div');\n    wrap.id = 'pa-chips';\n    wrap.className = 'pa-chips';\n    PA_CHIPS.forEach(function (q) {\n      var b = document.createElement('button');\n      b.type = 'button';\n      b.className = 'pa-chip';\n      b.textContent = q;\n      b.addEventListener('click', function () {\n        paRemoveChips();\n        paSendMessage(q);\n      });\n      wrap.appendChild(b);\n    });\n    paMessages.appendChild(wrap);\n  }\n\n  // iOS: position:fixed ignores the software keyboard, so the sheet must be\n  // lifted and shrunk to the VISUAL viewport while it is open. bottom and\n  // max-height are not in the transition list, so these updates are instant.\n  var paVV = window.visualViewport;\n\n  function paSyncSheet() {\n    if (!paVV || !paIsOpen() || window.innerWidth > 768) return;\n    var hidden = Math.max(0, window.innerHeight - paVV.height - paVV.offsetTop);\n    paPanel.style.bottom = hidden + 'px';\n    paPanel.style.maxHeight = Math.round(paVV.height * 0.98) + 'px';\n  }\n\n  function paResetSheet() {\n    paPanel.style.bottom = '';\n    paPanel.style.maxHeight = '';\n  }\n\n  if (paVV) {\n    paVV.addEventListener('resize', paSyncSheet);\n    paVV.addEventListener('scroll', paSyncSheet);\n  }\n\n  function paOpenPanel(prefill) {\n    paTrack('peak_assist_panel_open', {\n      entry: prefill ? 'pill_prefill' : (paHasThread ? 'resume' : 'bar_click'),\n      has_contact: paContact ? 1 : 0\n    });\n    if (modal.style.display === 'flex') closeModal();\n    paLastFocused = document.activeElement;\n    paPanel.classList.add('pa-enter');\n    paPanel.style.display = 'flex';\n    void paPanel.offsetHeight;\n    requestAnimationFrame(function () { paPanel.classList.remove('pa-enter'); });\n    setTimeout(function () { paPanel.classList.remove('pa-enter'); }, 150);\n    paPanel.setAttribute('aria-hidden', 'false');\n    if (!paHasThread) {\n      paAddMessage('assistant', paWelcomeText(), paTeamAuthor());\n      paRenderChips();\n    }\n    if (window.innerWidth > 768) {\n      setTimeout(function () { paInput.focus(); }, 0);\n    }\n    if (prefill) paSendMessage(prefill);\n    paSyncSheet();\n    paResumePollingIfNeeded();\n  }\n\n  function paMinimizePanel() {\n    if (!paClosing) paTrack('peak_assist_panel_minimize', {\n      has_thread: paHasThread ? 1 : 0, messages: paMsgSeq\n    });\n    paPanel.style.display = 'none';\n    paPanel.setAttribute('aria-hidden', 'true');\n    paResetSheet();\n    if (paLastFocused && typeof paLastFocused.focus === 'function') paLastFocused.focus();\n    paPausePolling();\n  }\n\n  function paClosePanel() {\n    // X = fresh start; minimize (\u2014) = resume via a click anywhere on the\n    // Ask a Question bar (Caleb 2026-07-27).\n    paTrack('peak_assist_panel_close', {\n      has_thread: paHasThread ? 1 : 0, messages: paMsgSeq, captured: paContact ? 1 : 0\n    });\n    paClosing = true;\n    paMinimizePanel();\n    paClosing = false;\n    paMsgSeq = 0;\n    paMessages.innerHTML = '';\n    paHasThread = false;\n    paContact = null;\n    paTid = null;\n    paPendingFirstMessage = null;\n    paPendingFirstMessageRow = null;\n    paInput.disabled = false;\n    paSendBtn.disabled = false;\n    paResetConnectionState();\n  }\n\n  paMinBtn.addEventListener('click', paMinimizePanel);\n  paCloseBtn.addEventListener('click', paClosePanel);\n  paInput.addEventListener('input', paUpdateSendState);\n  paSendBtn.addEventListener('click', paHandlePanelSend);\n  paInput.addEventListener('keydown', function (e) {\n    if (e.key === 'Enter') {\n      e.preventDefault();\n      paHandlePanelSend();\n    }\n  });\n  document.addEventListener('keydown', function (e) {\n    if (e.key === 'Escape' && paIsOpen()) paMinimizePanel();\n  });\n\n  // Additive cross-closing with the Schedule-a-Call modal: a second,\n  // independent listener alongside the modal's own \u2014 does not touch\n  // openModal/scheduleBtn's existing listener at all.\n  scheduleBtn.addEventListener('click', function () {\n    if (paIsOpen()) paMinimizePanel();\n  });\n})();\n"],
  "mappings": "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",
  "names": ["form", "nameInput", "phoneInput", "submitBtn"]
}
