{
  "version": 3,
  "sources": ["/cdn/shop/t/22/assets/header-background-detector.js?header_rules=20260526"],
  "sourcesContent": ["(() => {\n  const LIGHT_CLASS = 'header--on-light-bg';\n  const DARK_CLASS = 'header--on-dark-bg';\n  const WHITE_THRESHOLD = 248;\n  const SAMPLE_X_RATIOS = [0.08, 0.22, 0.5, 0.78, 0.92];\n  const SAMPLE_Y_RATIOS = [0.35, 0.65];\n  const IGNORE_SELECTOR = '.js-header, .section-header, .shopify-section-group-header-group, .newsletter-popup, .section-newsletter-popup';\n  let frameId = null;\n\n  const parseRgb = color => {\n    if (!color) return null;\n\n    const hexMatch = color.trim().match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);\n    if (hexMatch) {\n      const hex = hexMatch[1].length === 3\n        ? hexMatch[1].split('').map(value => value + value).join('')\n        : hexMatch[1];\n\n      return {\n        red: parseInt(hex.slice(0, 2), 16),\n        green: parseInt(hex.slice(2, 4), 16),\n        blue: parseInt(hex.slice(4, 6), 16),\n        alpha: 1\n      };\n    }\n\n    const match = color.match(/rgba?\\(([^)]+)\\)/i);\n    if (!match) return null;\n\n    const [red, green, blue, alpha = 1] = match[1]\n      .split(',')\n      .map(value => parseFloat(value.trim()));\n\n    if ([red, green, blue, alpha].some(value => Number.isNaN(value)) || alpha === 0) {\n      return null;\n    }\n\n    return { red, green, blue, alpha };\n  };\n\n  const isCompleteWhite = color => (\n    color &&\n    color.alpha >= 0.95 &&\n    color.red >= WHITE_THRESHOLD &&\n    color.green >= WHITE_THRESHOLD &&\n    color.blue >= WHITE_THRESHOLD\n  );\n\n  const isMediaElement = element => {\n    const tagName = element.tagName;\n    return tagName === 'IMG' ||\n      tagName === 'VIDEO' ||\n      tagName === 'PICTURE' ||\n      element.classList?.contains('media') ||\n      element.closest?.('.media, picture, video');\n  };\n\n  const isIgnoredElement = element => (\n    element.closest?.(IGNORE_SELECTOR)\n  );\n\n  const getElementBackground = element => {\n    let currentElement = element;\n\n    while (currentElement && currentElement !== document.documentElement) {\n      if (isMediaElement(currentElement)) {\n        return null;\n      }\n\n      const color = parseRgb(window.getComputedStyle(currentElement).backgroundColor);\n      if (color && color.alpha >= 0.95) {\n        return color;\n      }\n\n      currentElement = currentElement.parentElement;\n    }\n\n    return parseRgb(window.getComputedStyle(document.body).backgroundColor);\n  };\n\n  const getBackgroundAtPoint = (x, y) => {\n    const elements = document.elementsFromPoint(x, y);\n    const pageElements = elements.filter(element => !isIgnoredElement(element));\n\n    if (pageElements.some(isMediaElement)) {\n      return null;\n    }\n\n    const pageElement = pageElements[0];\n\n    if (!pageElement) {\n      return parseRgb(window.getComputedStyle(document.body).backgroundColor);\n    }\n\n    return getElementBackground(pageElement);\n  };\n\n  const updateHeaderState = () => {\n    const header = document.querySelector('.js-header');\n    if (!header) return;\n\n    const rect = header.getBoundingClientRect();\n    const backgrounds = SAMPLE_X_RATIOS.flatMap(xRatio => (\n      SAMPLE_Y_RATIOS.map(yRatio => {\n        const x = Math.min(Math.max(rect.left + rect.width * xRatio, 0), window.innerWidth - 1);\n        const y = Math.min(Math.max(rect.top + rect.height * yRatio, 0), window.innerHeight - 1);\n        return getBackgroundAtPoint(x, y);\n      })\n    ));\n\n    const isWhiteBackground = backgrounds.length > 0 && backgrounds.every(isCompleteWhite);\n\n    header.classList.toggle(LIGHT_CLASS, isWhiteBackground);\n    header.classList.toggle(DARK_CLASS, !isWhiteBackground);\n  };\n\n  const scheduleUpdate = () => {\n    if (frameId) return;\n\n    frameId = window.requestAnimationFrame(() => {\n      frameId = null;\n      updateHeaderState();\n    });\n  };\n\n  ['DOMContentLoaded', 'shopify:section:load'].forEach(eventName => {\n    document.addEventListener(eventName, scheduleUpdate);\n  });\n\n  ['load', 'scroll', 'resize', 'orientationchange'].forEach(eventName => {\n    window.addEventListener(eventName, scheduleUpdate, { passive: true });\n  });\n\n  [100, 500, 1500, 3000].forEach(delay => {\n    window.setTimeout(scheduleUpdate, delay);\n  });\n\n  scheduleUpdate();\n})();\n"],
  "mappings": "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",
  "names": []
}
