{
  "version": 3,
  "sources": ["/cdn/shop/t/1064/assets/pressing-guide.js?auto=format%2Ccompress"],
  "sourcesContent": ["/* ===========================================================================\n   Pressing Guide controller.\n   Owns NO copy and NO numbers \u2014 every value is read from the server-rendered\n   DOM (block-driven data-* attributes). Two independent, guarded IIFEs:\n     1) the press engine (tabs + material listbox + \u00B0F/\u00B0C + pulse)\n     2) the jump nav (always-fixed via CSS; this file only drives scroll-spy)\n   Each section loads this file; init guards make the second execution a no-op.\n   See .claude/rules/pressing-guide.md.\n   =========================================================================== */\n(function () {\n  'use strict';\n  var toArray = function (nl) { return Array.prototype.slice.call(nl); };\n  var reduceMotion = function () {\n    return window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  };\n\n  /* ---------------------------------------------------------------- ENGINE */\n  (function () {\n    var root = document.querySelector('[data-pressing-engine]');\n    if (!root || root.__pgEngineInit) return;\n    root.__pgEngineInit = true;\n\n    var tempEl = root.querySelector('[data-temp-value]');\n    var presEl = root.querySelector('[data-pressure-value]');\n    var timeEl = root.querySelector('[data-time-value]');\n\n    function getUnit() {\n      var a = root.querySelector('.pg-temp-btn[aria-pressed=\"true\"]');\n      return a ? a.getAttribute('data-unit') : 'f';\n    }\n    function activeTab() {\n      return root.querySelector('.pg-tab[aria-selected=\"true\"]') || root.querySelector('.pg-tab');\n    }\n    function currentOption() {\n      return root.querySelector('.pg-select-option[aria-selected=\"true\"]') || root.querySelector('.pg-select-option');\n    }\n    function fmtTime(t) {\n      t = String(t || '');\n      return '~' + (/s$/.test(t) ? t.replace(/s$/, ' seconds') : t);\n    }\n\n    // Recompute settings card + inline chips from the selected material + active tab.\n    function applyMaterial(opt, pulse) {\n      if (!opt) return;\n      var tab = activeTab();\n      var unit = getUnit();\n      var mF = opt.getAttribute('data-temp-f') || '';\n      var mC = opt.getAttribute('data-temp-c') || '';\n      var presOverride = tab && tab.getAttribute('data-pressure-override');\n      var timeOverride = tab && tab.getAttribute('data-time-override');\n      var effPres = presOverride ? presOverride : (opt.getAttribute('data-pressure') || '');\n      var effTime = timeOverride ? timeOverride : (opt.getAttribute('data-time') || '');\n\n      if (tempEl) { tempEl.setAttribute('data-f', mF); tempEl.setAttribute('data-c', mC); tempEl.textContent = unit === 'c' ? mC : mF; }\n      if (presEl) presEl.textContent = effPres;\n      if (timeEl) timeEl.textContent = effTime;\n\n      // chips live in the separate Steps section \u2014 query the whole document\n      document.querySelectorAll('.material-temp').forEach(function (el) {\n        el.setAttribute('data-f', mF); el.setAttribute('data-c', mC);\n        el.textContent = unit === 'c' ? mC : mF;\n      });\n      var ts = fmtTime(effTime);\n      document.querySelectorAll('.material-time').forEach(function (el) { el.textContent = ts; });\n\n      if (pulse) pulseSettings();\n    }\n\n    function pulseSettings() {\n      if (reduceMotion()) return;\n      root.querySelectorAll('.pg-setting').forEach(function (el) {\n        el.classList.remove('pg-pulse');\n        void el.offsetWidth; // force reflow so the animation can replay\n        el.classList.add('pg-pulse');\n      });\n    }\n\n    // Tab \u2192 swap the visible notes + step bodies for that heat source, then refill chips.\n    function switchSource(tab) {\n      var key = tab.getAttribute('data-source');\n      // notes are in this (engine) section; step bodies are in the separate Steps section\n      root.querySelectorAll('[data-notes-for]').forEach(function (ul) {\n        ul.hidden = ul.getAttribute('data-notes-for') !== key;\n      });\n      document.querySelectorAll('[data-step-source]').forEach(function (b) {\n        b.hidden = b.getAttribute('data-step-source') !== key;\n      });\n      // per-source video players live in the separate Pressing Video section\n      document.querySelectorAll('[data-video-source]').forEach(function (b) {\n        b.hidden = b.getAttribute('data-video-source') !== key;\n      });\n      // dynamic settings heading: \"Find Your <active source> Settings\" \u2014 reads the active card's label (one source of truth). Runs on load (default source) + every user switch.\n      var settingsSrc = document.querySelector('[data-settings-source]');\n      var tabLabel = tab.querySelector('.pg-tile-label');\n      if (settingsSrc && tabLabel) settingsSrc.textContent = tabLabel.textContent.trim();\n      applyMaterial(currentOption(), false);\n    }\n\n    /* heat-source tabs: role=tab + roving tabindex + arrow-key nav */\n    var tabs = toArray(root.querySelectorAll('.pg-tab'));\n    function selectTab(tab) {\n      tabs.forEach(function (t) {\n        var on = t === tab;\n        t.setAttribute('aria-selected', on ? 'true' : 'false');\n        t.setAttribute('tabindex', on ? '0' : '-1');\n      });\n      switchSource(tab);\n      // auto-scroll to the settings section on USER selection (not on load \u2014 switchSource runs on init, selectTab does not). #settings carries scroll-margin-top 168/64, so scrollIntoView lands it just below the sticky nav at both breakpoints; smooth/auto follows the page's scroll-behavior (reduced-motion safe).\n      var settings = document.getElementById('settings');\n      if (settings) settings.scrollIntoView({ block: 'start' });\n    }\n    tabs.forEach(function (tab, i) {\n      tab.addEventListener('click', function () { selectTab(tab); });\n      tab.addEventListener('keydown', function (e) {\n        if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n          e.preventDefault();\n          var dir = e.key === 'ArrowRight' ? 1 : -1;\n          var next = tabs[(i + dir + tabs.length) % tabs.length];\n          next.focus();\n          selectTab(next);\n        }\n      });\n    });\n\n    /* \u00B0F / \u00B0C toggle \u2014 updates the hero temp + every inline temp chip (page-wide,\n       so troubleshooting chips would update too if they ever carry data-f/data-c). */\n    root.querySelectorAll('.pg-temp-btn').forEach(function (btn) {\n      btn.addEventListener('click', function () {\n        root.querySelectorAll('.pg-temp-btn').forEach(function (b) { b.setAttribute('aria-pressed', 'false'); });\n        btn.setAttribute('aria-pressed', 'true');\n        var unit = btn.getAttribute('data-unit');\n        root.querySelectorAll('[data-temp-value]').forEach(function (el) {\n          el.textContent = unit === 'c' ? (el.getAttribute('data-c') || '') : (el.getAttribute('data-f') || '');\n        });\n        document.querySelectorAll('.temp-inline[data-f]').forEach(function (el) {\n          el.textContent = unit === 'c' ? (el.getAttribute('data-c') || '') : (el.getAttribute('data-f') || '');\n        });\n      });\n    });\n\n    /* material picker \u2014 accessible single-select listbox (ARIA APG pattern).\n       This is a deliberate a11y upgrade over the source mockup, whose dropdown\n       was mouse-only. Full keyboard: \u2193/\u2191/Home/End/Enter/Space/Esc + type-ahead. */\n    var select = root.querySelector('[data-pg-select]');\n    if (select) {\n      var trigger = select.querySelector('.pg-select-trigger');\n      var listbox = select.querySelector('.pg-select-list');\n      var opts = toArray(select.querySelectorAll('.pg-select-option'));\n      var activeIdx = Math.max(0, opts.findIndex(function (o) { return o.getAttribute('aria-selected') === 'true'; }));\n      var typeBuf = '', typeTimer = null;\n\n      function openList() {\n        select.classList.add('open');\n        trigger.setAttribute('aria-expanded', 'true');\n        setActive(opts[activeIdx] || opts[0]);\n        listbox.focus();\n      }\n      function closeList(focusBack) {\n        select.classList.remove('open');\n        trigger.setAttribute('aria-expanded', 'false');\n        if (focusBack) trigger.focus();\n      }\n      function setActive(opt) {\n        if (!opt) return;\n        activeIdx = opts.indexOf(opt);\n        opts.forEach(function (o) { o.classList.toggle('pg-active', o === opt); });\n        listbox.setAttribute('aria-activedescendant', opt.id);\n        opt.scrollIntoView({ block: 'nearest' });\n      }\n      function choose(opt) {\n        if (!opt) return;\n        opts.forEach(function (o) { o.setAttribute('aria-selected', 'false'); });\n        opt.setAttribute('aria-selected', 'true');\n        var img = opt.querySelector('img'), name = opt.querySelector('.pg-opt-name');\n        var tImg = trigger.querySelector('.pg-select-thumb'), tName = trigger.querySelector('.pg-select-name');\n        if (img && tImg) tImg.src = img.src;\n        if (name && tName) tName.textContent = name.textContent;\n        // trigger \"Most Popular\" badge follows the selection (element is server-rendered; we only toggle [hidden])\n        var tBadge = trigger.querySelector('[data-popular-badge]');\n        if (tBadge) tBadge.hidden = !opt.querySelector('.pg-badge-popular');\n        closeList(true);\n        applyMaterial(opt, true);\n      }\n      function typeAhead(ch) {\n        if (typeTimer) clearTimeout(typeTimer);\n        typeBuf += ch.toLowerCase();\n        typeTimer = setTimeout(function () { typeBuf = ''; }, 600);\n        var match = opts.find(function (o) {\n          var n = o.querySelector('.pg-opt-name');\n          return n && n.textContent.toLowerCase().indexOf(typeBuf) === 0;\n        });\n        if (match) setActive(match);\n      }\n\n      trigger.addEventListener('click', function () {\n        select.classList.contains('open') ? closeList(false) : openList();\n      });\n      trigger.addEventListener('keydown', function (e) {\n        if (e.key === 'ArrowDown' || e.key === 'ArrowUp' || e.key === 'Enter' || e.key === ' ') {\n          e.preventDefault(); openList();\n        }\n      });\n      listbox.addEventListener('keydown', function (e) {\n        switch (e.key) {\n          case 'ArrowDown': e.preventDefault(); setActive(opts[Math.min(activeIdx + 1, opts.length - 1)]); break;\n          case 'ArrowUp': e.preventDefault(); setActive(opts[Math.max(activeIdx - 1, 0)]); break;\n          case 'Home': e.preventDefault(); setActive(opts[0]); break;\n          case 'End': e.preventDefault(); setActive(opts[opts.length - 1]); break;\n          case 'Enter': case ' ': e.preventDefault(); choose(opts[activeIdx]); break;\n          case 'Escape': e.preventDefault(); closeList(true); break;\n          case 'Tab': closeList(false); break;\n          default: if (e.key.length === 1) typeAhead(e.key);\n        }\n      });\n      opts.forEach(function (o) {\n        o.addEventListener('click', function () { choose(o); });\n        o.addEventListener('mousemove', function () { setActive(o); });\n      });\n      document.addEventListener('click', function (e) {\n        if (!select.contains(e.target)) closeList(false);\n      });\n    }\n    // Steps are a separate section now: on load, sync the cross-section step bodies\n    // to the active tab and overwrite the SSR'd no-JS default chips with the engine's\n    // live default material. (Notes + settings card are already SSR-correct.)\n    var initTab = activeTab();\n    if (initTab) switchSource(initTab);\n  })();\n\n  /* -------------------------------------------------------------- JUMP NAV */\n  (function () {\n    var nav = document.querySelector('[data-pressing-jumpnav]');\n    if (!nav || nav.__pgNavInit) return;\n    nav.__pgNavInit = true;\n    var links = toArray(nav.querySelectorAll('.pg-jump-link[data-target]'));\n\n    // The bar is always position:fixed via CSS (no in-flow phase, no sentinel/spacer).\n    // This IIFE only drives scroll-spy (active-tab highlighting).\n    var targets = links.map(function (l) {\n      var sel = l.getAttribute('data-target'), el = null;\n      try { el = sel && document.querySelector(sel); } catch (_) {}\n      return { link: l, el: el };\n    }).filter(function (t) { return t.el; });\n\n    function spy() {\n      if (!targets.length) return;\n      var bar = nav.querySelector('.pg-jump');\n      var off = (bar ? bar.getBoundingClientRect().bottom : 150) + 24; // live fixed-nav bottom + buffer; clears the 168px desktop / 64px mobile scroll-margin landings so the clicked section registers at both breakpoints\n      var cur = targets[0];\n      targets.forEach(function (t) {\n        if (t.el.getBoundingClientRect().top <= off) cur = t;\n      });\n      links.forEach(function (l) { l.classList.remove('active'); });\n      if (cur) cur.link.classList.add('active');\n    }\n    window.addEventListener('scroll', spy, { passive: true });\n    spy();\n  })();\n\n  /* ------------------------------------------ INLINE JUMP NAV (settings-card) */\n  /* The relocated inline jump links (.pg-jump-inline) keep real-anchor hrefs, but a 3rd-party\n     app injects a stray </body></html> mid-page that breaks NATIVE fragment scrolling on mobile\n     for the upper targets (#video / #steps don't scroll; #troubleshooting, on the far side of the\n     malformed close, does). getElementById still resolves all three (verified [1,1,1] live), so we\n     override the broken native scroll with scrollIntoView, which is immune to the malformed DOM.\n     The hrefs stay as the no-JS / crawlable fallback; this just preventDefaults + scrolls.\n     scrollIntoView({block:'start'}) HONORS the targets' scroll-margin-top (.pg-anchor /\n     .pg-steps-heading: 110px desktop / 24px mobile) automatically \u2014 the offset is applied exactly\n     once, no extra math. Harmless on desktop (native nav already works); makes it consistent. */\n  (function () {\n    if (window.__pgInlineNavInit) return;\n    window.__pgInlineNavInit = true;\n    document.addEventListener('click', function (e) {\n      var link = e.target && e.target.closest && e.target.closest('.pg-jump-inline__link');\n      if (!link) return;\n      var href = link.getAttribute('href') || '';\n      if (href.charAt(0) !== '#') return;\n      var target = document.getElementById(href.slice(1));\n      if (!target) return;\n      e.preventDefault();\n      target.scrollIntoView({ behavior: reduceMotion() ? 'auto' : 'smooth', block: 'start' });\n    });\n  })();\n})();\n"],
  "mappings": "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",
  "names": []
}
