{
  "version": 3,
  "sources": ["/cdn/shop/t/64/assets/stackhouse-anchor-offset.js?codex_v=20260625a"],
  "sourcesContent": ["(function() {\n  if (window.StackhouseAnchorOffsetLoaded) return;\n  window.StackhouseAnchorOffsetLoaded = true;\n\n  var skipSelector = '.pg, .sgh';\n  var chromeSelectors = ['header', '.announcement-bar-section', '.section-header', '.header-container'];\n\n  function targetFromHash(hash) {\n    if (!hash || hash === '#') return null;\n\n    var id = hash.charAt(0) === '#' ? hash.slice(1) : hash;\n    if (!id) return null;\n\n    try {\n      id = decodeURIComponent(id);\n    } catch (error) {\n    }\n\n    return document.getElementById(id);\n  }\n\n  function shouldSkip(target) {\n    return target && target.closest && target.closest(skipSelector);\n  }\n\n  function samePageAnchor(link) {\n    var href = link.getAttribute('href');\n    if (!href || href === '#' || href.indexOf('#') === -1) return null;\n\n    var url;\n    try {\n      url = new URL(href, window.location.href);\n    } catch (error) {\n      return null;\n    }\n\n    var currentPath = window.location.pathname.replace(/\\/$/, '');\n    var linkPath = url.pathname.replace(/\\/$/, '');\n\n    if (url.origin !== window.location.origin || linkPath !== currentPath) {\n      return null;\n    }\n\n    var target = targetFromHash(url.hash);\n    if (!target || shouldSkip(target)) return null;\n\n    return { target: target, hash: url.hash };\n  }\n\n  function headerOffset() {\n    var offset = 24;\n\n    var seen = [];\n    document.querySelectorAll(chromeSelectors.join(',')).forEach(function(node) {\n      if (seen.indexOf(node) !== -1) return;\n      seen.push(node);\n\n      var rect = node.getBoundingClientRect();\n      var style = window.getComputedStyle(node);\n      var fixedTop = style.position === 'fixed' || style.position === 'sticky';\n      var visibleTopChrome = rect.width > window.innerWidth * 0.5 && rect.height > 0 && rect.bottom > 0 && rect.top <= 4;\n\n      if (fixedTop && visibleTopChrome) {\n        offset = Math.max(offset, Math.ceil(rect.bottom) + 24);\n      }\n    });\n\n    return offset;\n  }\n\n  function readableTarget(target) {\n    if (!target || !target.querySelector) return target;\n\n    if (target.classList && target.classList.contains('pfh__section')) {\n      return target.querySelector('.pfh__header') || target.querySelector('h1, h2, h3') || target;\n    }\n\n    if (target.tagName && /^H[1-6]$/.test(target.tagName)) return target;\n\n    return target;\n  }\n\n  function scrollToAnchor(target, behavior) {\n    if (!target || !document.documentElement.contains(target)) return;\n\n    var readable = readableTarget(target);\n    var top = readable.getBoundingClientRect().top + window.pageYOffset - headerOffset();\n    var nextTop = Math.max(0, Math.round(top));\n\n    if (typeof window.scrollTo === 'function') {\n      window.scrollTo({ top: nextTop, behavior: behavior || 'auto' });\n    } else {\n      var scrollRoot = document.scrollingElement || document.documentElement || document.body;\n      scrollRoot.scrollTop = nextTop;\n      document.documentElement.scrollTop = nextTop;\n      document.body.scrollTop = nextTop;\n    }\n  }\n\n  document.addEventListener('click', function(event) {\n    var clicked = event.target;\n    if (!clicked || !clicked.closest) return;\n\n    var link = clicked.closest('a[href*=\"#\"]');\n    if (!link || link.classList.contains('ignore-scroll') || link.classList.contains('skip-link') || link.closest(skipSelector)) return;\n\n    var anchor = samePageAnchor(link);\n    if (!anchor) return;\n\n    event.preventDefault();\n    event.stopPropagation();\n    event.stopImmediatePropagation();\n    scrollToAnchor(anchor.target, 'smooth');\n\n    if (window.history && typeof window.history.pushState === 'function') {\n      window.history.pushState(null, '', anchor.hash);\n    } else {\n      window.location.hash = anchor.hash;\n    }\n  }, true);\n\n  function correctInitialAnchor() {\n    var target = targetFromHash(window.location.hash);\n    if (!target || shouldSkip(target)) return;\n\n    window.setTimeout(function() {\n      scrollToAnchor(target, 'auto');\n    }, 100);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', correctInitialAnchor);\n  } else {\n    correctInitialAnchor();\n  }\n\n})();\n"],
  "mappings": "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",
  "names": []
}
