{
  "version": 3,
  "sources": ["/cdn/shop/t/9/assets/main.js?baf_cache=overscroll-20260616"],
  "sourcesContent": ["(() => {\n  const initBarkFrameMotion = () => {\n  const root = document.documentElement;\n  let stableMetricWidth = window.innerWidth;\n\n  const setStableScrollMetrics = () => {\n    const viewportHeight = window.innerHeight || root.clientHeight;\n    const header = document.querySelector('#header-component');\n    const headerHeight = header?.getBoundingClientRect().height\n      || parseFloat(getComputedStyle(document.body).getPropertyValue('--header-height'))\n      || 0;\n\n    root.style.setProperty('--baf-stable-vh', `${viewportHeight * 0.01}px`);\n    root.style.setProperty('--baf-stable-header-height', `${Math.round(headerHeight)}px`);\n    stableMetricWidth = window.innerWidth;\n  };\n\n  setStableScrollMetrics();\n\n  // The early theme controller owns the overscroll canvas on every page.\n\n  const internalLinkHosts = new Set([\n    window.location.hostname,\n    \"barkandframe.com\",\n    \"www.barkandframe.com\",\n    \"barkandframe.myshopify.com\"\n  ]);\n\n  document.querySelectorAll(\"a[href]\").forEach(anchor => {\n    let url;\n    try {\n      url = new URL(anchor.getAttribute(\"href\"), window.location.href);\n    } catch {\n      return;\n    }\n\n    if (![\"http:\", \"https:\"].includes(url.protocol) || internalLinkHosts.has(url.hostname)) return;\n\n    anchor.setAttribute(\"target\", \"_blank\");\n    const rel = new Set((anchor.getAttribute(\"rel\") || \"\").split(/\\s+/).filter(Boolean));\n    rel.add(\"noopener\");\n    rel.add(\"noreferrer\");\n    anchor.setAttribute(\"rel\", Array.from(rel).join(\" \"));\n  });\n\n  // Use browser-native scrolling on every device. Optional navigation helpers\n  // already fall back to native scrolling when no Lenis instance is present.\n  window.BarkFrameLenis = null;\n\n  if (window.ScrollTrigger?.config) {\n    ScrollTrigger.config({ ignoreMobileResize: true });\n  }\n  // ScrollTrigger already listens to native scrolling itself.\n\n  const fixedLayerMedia = window.matchMedia('(max-width: 989px), (hover: none), (pointer: coarse)');\n  const fixedLayerRoots = Array.from(document.querySelectorAll('.floating-images, .artist-collection__showcase, .at-home'));\n  let fixedLayerFrame = null;\n\n  const getStableHeaderHeight = () => (\n    parseFloat(getComputedStyle(root).getPropertyValue('--baf-stable-header-height'))\n    || parseFloat(getComputedStyle(document.body).getPropertyValue('--header-height'))\n    || 0\n  );\n\n  const getStableViewportHeight = () => (\n    (parseFloat(getComputedStyle(root).getPropertyValue('--baf-stable-vh')) || 0) * 100\n    || window.innerHeight\n    || root.clientHeight\n  );\n\n  const fixedLayerStates = new WeakMap();\n  const setFixedLayerState = (section, state) => {\n    if (fixedLayerStates.get(section) === state) return;\n    fixedLayerStates.set(section, state);\n    section.classList.toggle('is-fixed-active', state === 'active');\n    section.classList.toggle('is-fixed-after', state === 'after');\n  };\n\n  const updateFixedLayers = () => {\n    fixedLayerFrame = null;\n\n    if (!fixedLayerMedia.matches) {\n      fixedLayerRoots.forEach(section => setFixedLayerState(section, 'before'));\n      return;\n    }\n\n    const top = getStableHeaderHeight();\n    const scrollY = window.scrollY || window.pageYOffset || 0;\n\n    // Read all section geometry before any class change can invalidate layout.\n    const nextStates = fixedLayerRoots.map(section => {\n      if (!section.classList.contains('baf-fixed-layer')) return [section, 'before'];\n\n      const layerHeight = parseFloat(section.style.getPropertyValue('--baf-layer-height')) || 0;\n      const sectionTop = section.getBoundingClientRect().top + scrollY;\n      const sectionHeight = section.offsetHeight;\n      const start = sectionTop - top;\n      const end = sectionTop + sectionHeight - layerHeight - top;\n\n      return [section, scrollY >= end ? 'after' : scrollY >= start ? 'active' : 'before'];\n    });\n    nextStates.forEach(([section, state]) => setFixedLayerState(section, state));\n  };\n\n  const queueFixedLayerUpdate = () => {\n    if (!fixedLayerRoots.length || !fixedLayerMedia.matches || fixedLayerFrame !== null) return;\n    fixedLayerFrame = window.requestAnimationFrame(updateFixedLayers);\n  };\n\n  const measureFixedLayers = () => {\n    const enabled = fixedLayerMedia.matches && fixedLayerRoots.length > 0;\n    const top = getStableHeaderHeight();\n    const layerHeight = Math.max(1, Math.round(getStableViewportHeight() - top));\n\n    fixedLayerRoots.forEach(section => {\n      if (!enabled) {\n        section.classList.remove('baf-fixed-layer');\n        section.style.removeProperty('--baf-layer-top');\n        section.style.removeProperty('--baf-layer-height');\n        section.style.removeProperty('--baf-layer-after-top');\n        setFixedLayerState(section, 'before');\n        return;\n      }\n\n      section.style.setProperty('--baf-layer-top', `${Math.round(top)}px`);\n      section.style.setProperty('--baf-layer-height', `${layerHeight}px`);\n      section.classList.add('baf-fixed-layer');\n    });\n    if (enabled) {\n      const heights = fixedLayerRoots.map(section => section.offsetHeight);\n      fixedLayerRoots.forEach((section, index) => {\n        section.style.setProperty('--baf-layer-after-top', `${Math.max(0, heights[index] - layerHeight)}px`);\n      });\n    }\n\n    updateFixedLayers();\n  };\n\n  const handleStableLayoutResize = () => {\n    if (Math.abs(window.innerWidth - stableMetricWidth) <= 20) {\n      queueFixedLayerUpdate();\n      return;\n    }\n\n    setStableScrollMetrics();\n    measureFixedLayers();\n  };\n\n  measureFixedLayers();\n  window.addEventListener('scroll', queueFixedLayerUpdate, { passive: true });\n  window.addEventListener('resize', handleStableLayoutResize, { passive: true });\n  window.addEventListener('orientationchange', () => {\n    window.setTimeout(() => {\n      setStableScrollMetrics();\n      measureFixedLayers();\n    }, 250);\n  }, { passive: true });\n  window.addEventListener('load', measureFixedLayers, { once: true });\n  fixedLayerMedia.addEventListener?.('change', () => {\n    setStableScrollMetrics();\n    measureFixedLayers();\n  });\n  const floatingParallaxPattern = [\"0svh\", \"-20svh\", \"-10svh\", \"0svh\", \"-20svh\"];\n  document.querySelectorAll(\".floating-images__holder > .product-card--floating\").forEach((card, index) => {\n    if (!card.dataset.parallax) {\n      card.dataset.parallax = floatingParallaxPattern[index % floatingParallaxPattern.length];\n    }\n  });\n\n  if (window.gsap) {\n    document.querySelectorAll(\"[data-parallax]\").forEach(parallax => {\n      const amount = parallax.dataset.parallax ? parallax.dataset.parallax : \"-5vh\";\n      gsap.to(parallax, {y: amount, scrollTrigger: {\n          trigger: parallax,\n          start: \"top bottom\",\n          end: \"+=200%\",\n          scrub: true,\n          toggleActions: \"play none reverse none\"\n      }});\n    })\n\n    document.querySelectorAll(\".product-card--floating .image-block\").forEach(parallax => {\n      gsap.to(parallax, {\"--floating-image-parallax-y\": \"-5vh\", scrollTrigger: {\n          trigger: parallax,\n          start: \"top bottom\",\n          end: \"+=200%\",\n          scrub: true,\n          toggleActions: \"play none reverse none\"\n      }});\n    })\n  }\n  };\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initBarkFrameMotion, { once: true });\n  } else {\n    initBarkFrameMotion();\n  }\n})();\n\n(function () {\n  const TOP_OFFSET = 94;\n  const widePortraitMedia = window.matchMedia\n    ? window.matchMedia('(min-width: 750px) and (max-width: 1199px) and (orientation: portrait)')\n    : null;\n  let frame = null;\n\n  function getPanel() {\n    return document.querySelector('#make-portrait-section .make-portrait__right');\n  }\n\n  function isSplitLayout(panel) {\n    return !!(\n      panel &&\n      window.innerWidth >= 800 &&\n      !(widePortraitMedia && widePortraitMedia.matches) &&\n      window.getComputedStyle(panel).position === 'sticky'\n    );\n  }\n\n  function applyStaticPortraitSticky() {\n    const panel = getPanel();\n    if (!panel) return;\n\n    if (!isSplitLayout(panel)) {\n      panel.style.removeProperty('top');\n      return;\n    }\n\n    panel.style.top = `${TOP_OFFSET}px`;\n  }\n\n  function requestStaticPortraitSticky() {\n    if (frame) return;\n    frame = window.requestAnimationFrame(() => {\n      frame = null;\n      applyStaticPortraitSticky();\n    });\n  }\n\n  function initStaticPortraitSticky() {\n    if (!document.getElementById('make-portrait-section')) return;\n\n    requestStaticPortraitSticky();\n    window.setTimeout(requestStaticPortraitSticky, 120);\n    window.setTimeout(requestStaticPortraitSticky, 420);\n    window.addEventListener('scroll', requestStaticPortraitSticky, { passive: true });\n    window.addEventListener('resize', requestStaticPortraitSticky, { passive: true });\n    window.addEventListener('orientationchange', requestStaticPortraitSticky, { passive: true });\n    window.addEventListener('load', requestStaticPortraitSticky, { once: true });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initStaticPortraitSticky, { once: true });\n  } else {\n    initStaticPortraitSticky();\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
