{
  "version": 3,
  "sources": ["/cdn/shop/t/23/assets/dg-pdp-v3.js?dg=20260702-size-guard"],
  "sourcesContent": ["const DG_PDP_STATE = '__dgPdpInitialized';\n\nif (!window[DG_PDP_STATE]) {\n  window[DG_PDP_STATE] = true;\n\n  const TYPE_KEYS = {\n    't-shirt': 'tshirt',\n    shirt: 'tshirt',\n    tshirt: 'tshirt',\n    tee: 'tshirt',\n    sweatshirt: 'sweatshirt',\n    hoodie: 'hoodie',\n    'washed tee': 'washed_tee',\n    washedtee: 'washed_tee',\n    'washed t shirt': 'washed_tee',\n    'washed tshirt': 'washed_tee',\n    'washed shirt': 'washed_tee',\n  };\n  const TYPE_DISPLAY_NAMES = {\n    tshirt: 'T-shirt',\n    sweatshirt: 'Sweatshirt',\n    hoodie: 'Hoodie',\n    washed_tee: 'Washed Tee',\n  };\n  const TYPE_DISPLAY_ORDER = ['tshirt', 'washed_tee', 'sweatshirt', 'hoodie'];\n\n  const COLOR_ALIASES = {\n    black: { all: 'black' },\n    white: { all: 'white' },\n    'dark grey': { all: 'dark_grey' },\n    'dark gray': { all: 'dark_grey' },\n    grey: { all: 'grey' },\n    gray: { all: 'grey' },\n    beige: { all: 'beige' },\n    coffee: { washed_tee: 'coffee' },\n    mocha: { tshirt: 'mocha', sweatshirt: 'chocolate', hoodie: 'chocolate' },\n    chocolate: { tshirt: 'mocha', sweatshirt: 'chocolate', hoodie: 'chocolate' },\n    'dark blue': { tshirt: 'dark_blue', sweatshirt: 'navy_blue', hoodie: 'navy_blue' },\n    navy: { tshirt: 'dark_blue', sweatshirt: 'navy_blue', hoodie: 'navy_blue' },\n    'navy blue': { tshirt: 'dark_blue', sweatshirt: 'navy_blue', hoodie: 'navy_blue' },\n    blue: { all: 'blue' },\n    'light blue': { all: 'light_blue' },\n    forest: { all: 'forest' },\n    avocado: { all: 'forest' },\n    green: { washed_tee: 'green' },\n    'teal green': { washed_tee: 'teal_green' },\n    teal: { washed_tee: 'teal_green' },\n    orange: { washed_tee: 'orange' },\n    'dark brown': { washed_tee: 'dark_brown' },\n    'olive green': { washed_tee: 'olive_green' },\n    olive: { washed_tee: 'olive_green' },\n    'light green': { sweatshirt: 'light_green', hoodie: 'light_green' },\n    bluestone: { tshirt: 'bluestone' },\n    pink: { all: 'pink' },\n    violet: { tshirt: 'violet', sweatshirt: 'purple', hoodie: 'purple' },\n    purple: { tshirt: 'violet', sweatshirt: 'purple', hoodie: 'purple', washed_tee: 'purple' },\n    'light purple': { tshirt: 'violet', sweatshirt: 'purple', hoodie: 'purple' },\n    red: { all: 'red' },\n    claret: { all: 'claret' },\n  };\n  const DISPLAY_COLOR_NAMES = {\n    tshirt: {\n      grey: 'Gray',\n      forest: 'Avocado',\n      violet: 'Light Purple',\n      dark_blue: 'Dark Blue',\n    },\n    sweatshirt: {\n      grey: 'Grey',\n      forest: 'Avocado',\n      purple: 'Light Purple',\n      navy_blue: 'Dark Blue',\n    },\n    hoodie: {\n      grey: 'Grey',\n      forest: 'Avocado',\n      purple: 'Light Purple',\n      navy_blue: 'Dark Blue',\n    },\n    washed_tee: {\n      grey: 'Grey',\n      teal_green: 'Teal Green',\n      dark_brown: 'Dark brown',\n      olive_green: 'Olive green',\n    },\n  };\n  const CANONICAL_COLOR_VALUES = {\n    tshirt: {\n      grey: 'gray',\n      forest: 'avocado',\n      violet: 'light purple',\n      dark_blue: 'dark blue',\n    },\n    sweatshirt: {\n      grey: 'grey',\n      forest: 'avocado',\n      purple: 'purple',\n      navy_blue: 'navy blue',\n    },\n    hoodie: {\n      grey: 'grey',\n      forest: 'avocado',\n      purple: 'purple',\n      navy_blue: 'navy blue',\n    },\n    washed_tee: {\n      grey: 'grey',\n      teal_green: 'teal green',\n      dark_brown: 'dark brown',\n      olive_green: 'olive green',\n    },\n  };\n  const SWATCH_LABEL_SELECTOR =\n    '.product-information .variant-option--swatches[data-option-name=\"clothing-color\"] .variant-option__button-label--has-swatch';\n  const stripLegacyTypePrefix = (value) =>\n    String(value || '')\n      .normalize('NFKC')\n      .replace(/\\u2060/g, '')\n      .replace(/^[tsh]-\\s*/i, '')\n      .trim();\n\n  const normalizeText = (value) =>\n    stripLegacyTypePrefix(value)\n      .replace(/[_-]+/g, ' ')\n      .replace(/\\s+/g, ' ')\n      .trim()\n      .toLowerCase();\n  const normalizeVariantValue = (value) =>\n    String(value || '')\n      .normalize('NFKC')\n      .replace(/\\u2060/g, '')\n      .replace(/\\s+/g, ' ')\n      .trim()\n      .toLowerCase();\n  const optionValueEquals = (left, right) => normalizeVariantValue(left) === normalizeVariantValue(right);\n  const isLegacyTypePrefixedValue = (value) => /^[tsh]-\\s*/i.test(String(value || '').trim());\n\n  const typeKeyFromValue = (value) => TYPE_KEYS[normalizeText(value)] || 'tshirt';\n\n  const getProductInfoRoots = () =>\n    Array.from(document.querySelectorAll('.product-information')).filter(\n      (root) => root.querySelector('variant-picker') || root.querySelector('[data-dg-size-chart]')\n    );\n\n  const getPickerForRoot = (root) => {\n    if (!root) return null;\n\n    return root.querySelector('variant-picker[data-template-product-match=\"true\"]') || root.querySelector('variant-picker');\n  };\n\n  const colorKeyFromValue = (value, typeKey) => {\n    const alias = COLOR_ALIASES[normalizeText(value)];\n    if (!alias) return null;\n\n    return alias[typeKey] || alias.all || null;\n  };\n\n  const parseConfig = (picker) => {\n    const script = picker.querySelector('script[data-dg-pdp-config]');\n    if (!script?.textContent) return null;\n\n    try {\n      if (picker.__dgPdpConfigText === script.textContent && picker.__dgPdpConfig) {\n        return picker.__dgPdpConfig;\n      }\n\n      const parsed = normalizeConfig(JSON.parse(script.textContent));\n      picker.__dgPdpConfigText = script.textContent;\n      picker.__dgPdpConfig = parsed;\n\n      return parsed;\n    } catch (error) {\n      console.warn('DG PDP config could not be parsed', error);\n      return null;\n    }\n  };\n\n  const normalizeMatrixEntry = (entry) => {\n    if (Array.isArray(entry)) {\n      return {\n        id: entry[4] || '',\n        type: entry[0] || '',\n        size: entry[1] || '',\n        color: entry[2] || '',\n        available: Boolean(entry[3]),\n      };\n    }\n\n    return entry;\n  };\n\n  const normalizeConfig = (config) => {\n    if (!config || typeof config !== 'object') return config;\n\n    if (!config.bridgeAssetUrl && config.variantBridgeUrl) {\n      config.bridgeAssetUrl = config.variantBridgeUrl;\n    }\n\n    if (Array.isArray(config.variantMatrix)) {\n      config.variantMatrix = config.variantMatrix.map(normalizeMatrixEntry).filter(Boolean);\n    }\n\n    return config;\n  };\n\n  const normalizeVariantId = (id) =>\n    String(id || '')\n      .replace('gid://shopify/ProductVariant/', '')\n      .trim();\n\n  const moneyToMinorUnits = (value) => {\n    if (value === null || value === undefined || value === '') return null;\n    if (typeof value === 'number') return Number.isInteger(value) ? value : Math.round(value * 100);\n\n    const normalized = String(value).replace(/[^0-9.-]/g, '');\n    if (!normalized) return null;\n\n    const numericValue = Number(normalized);\n    if (!Number.isFinite(numericValue)) return null;\n\n    return normalized.includes('.') ? Math.round(numericValue * 100) : Math.round(numericValue);\n  };\n\n  const bridgeEntryToVariant = (entry) => {\n    const options = Array.isArray(entry?.options) ? entry.options : [];\n    const option1 = entry?.option1 || options[0] || '';\n    const option2 = entry?.option2 || options[1] || '';\n    const option3 = entry?.option3 || options[2] || '';\n    const id = normalizeVariantId(entry?.id);\n    const price = moneyToMinorUnits(entry?.price);\n    const compareAtPrice = moneyToMinorUnits(entry?.compareAtPrice ?? entry?.compare_at_price);\n\n    if (!id || !option1 || !option2 || !option3) return null;\n\n    return {\n      ...entry,\n      id,\n      option1,\n      option2,\n      option3,\n      price,\n      compare_at_price: compareAtPrice,\n      available: Boolean(entry?.availableForSale ?? entry?.available),\n    };\n  };\n\n  const bridgeVariantToMatrixEntry = (variant) => ({\n    id: variant.id,\n    type: variant.option1,\n    size: variant.option2,\n    color: variant.option3,\n    available: Boolean(variant.available),\n  });\n\n  const getBridgeVariants = (data) =>\n    (Array.isArray(data?.variants) ? data.variants : []).map(bridgeEntryToVariant).filter(Boolean);\n\n  const fetchJson = (url) => {\n    if (typeof window.fetch === 'function') {\n      return window.fetch(url, { credentials: 'same-origin' }).then((response) => {\n        if (!response.ok) throw new Error(`Bridge asset responded ${response.status}`);\n\n        return response.json();\n      });\n    }\n\n    return new Promise((resolve, reject) => {\n      const request = new XMLHttpRequest();\n      request.open('GET', url, true);\n      request.withCredentials = false;\n      request.onreadystatechange = () => {\n        if (request.readyState !== 4) return;\n        if (request.status < 200 || request.status >= 300) {\n          reject(new Error(`Bridge asset responded ${request.status}`));\n          return;\n        }\n\n        try {\n          resolve(JSON.parse(request.responseText));\n        } catch (error) {\n          reject(error);\n        }\n      };\n      request.onerror = () => reject(new Error('Bridge asset request failed'));\n      request.send();\n    });\n  };\n\n  const registerFullVariants = (picker, config, variants) => {\n    if (!picker || !config || !Array.isArray(variants) || variants.length === 0) return false;\n\n    picker.__dgFullVariants = variants;\n    config.variantMatrix = variants.map(bridgeVariantToMatrixEntry);\n    config.__dgBridgeLoaded = true;\n    config.__dgBridgeVariantCount = variants.length;\n\n    const variantScript = picker.querySelector('script[data-variant-picker-variants]');\n    if (variantScript) {\n      variantScript.textContent = JSON.stringify(variants);\n    }\n\n    return true;\n  };\n\n  const hasPartialVariantMatrix = (config) =>\n    Array.isArray(config?.variantMatrix) && config.variantMatrix.length >= 250 && config.__dgBridgeLoaded !== true;\n\n  const hasLargeVariantMatrix = (config) => Array.isArray(config?.variantMatrix) && config.variantMatrix.length >= 250;\n\n  const explicitVariantUrlSelected = () => {\n    try {\n      return new URL(window.location.href).searchParams.has('variant');\n    } catch (error) {\n      return false;\n    }\n  };\n\n  const clearInitialSizeSelection = (picker, config) => {\n    if (!picker || picker.dataset.dgSizeUserSelected === 'true') return;\n    if (picker.dataset.dgInitialSizeCleared === 'true') return;\n    if (!hasLargeVariantMatrix(config) || explicitVariantUrlSelected()) return;\n\n    const checkedSizeInput = picker.querySelector('[data-option-name=\"size\"] input:checked');\n    if (!(checkedSizeInput instanceof HTMLInputElement)) {\n      picker.dataset.dgInitialSizeCleared = 'true';\n      return;\n    }\n\n    document.querySelectorAll(`input[name=\"${CSS.escape(checkedSizeInput.name)}\"]`).forEach((input) => {\n      if (!(input instanceof HTMLInputElement)) return;\n      input.checked = false;\n      input.dataset.currentChecked = 'false';\n      input.dataset.previousChecked = 'false';\n    });\n\n    picker.dataset.dgInitialSizeCleared = 'true';\n  };\n\n  const getSelectedVariantFromFullData = (picker) => {\n    const variants = Array.isArray(picker?.__dgFullVariants) ? picker.__dgFullVariants : [];\n    if (variants.length === 0) return null;\n\n    const selectedValues = ['type', 'size', 'clothing-color'].map((name) => getSelectedInputValue(picker, name));\n\n    if (selectedValues.some((value) => !value)) return null;\n\n    const [selectedType, selectedSize, selectedColor] = selectedValues;\n    const selectedTypeKey = typeKeyFromValue(selectedType);\n    const selectedColorKey = colorKeyFromValue(selectedColor, selectedTypeKey);\n\n    return (\n      variants.find((variant) =>\n        typeKeyFromValue(variant.option1) === selectedTypeKey &&\n        optionValueEquals(variant.option2, selectedSize) &&\n        (selectedColorKey\n          ? colorKeyFromValue(variant.option3, selectedTypeKey) === selectedColorKey\n          : optionValueEquals(variant.option3, selectedColor))\n      ) || null\n    );\n  };\n\n  const productFormForRoot = (root, picker) => {\n    const productId = picker?.dataset.productId;\n    const escapedProductId = productId ? CSS.escape(productId) : '';\n\n    return (\n      (escapedProductId && root?.querySelector(`product-form-component[data-product-id=\"${escapedProductId}\"]`)) ||\n      root?.querySelector('product-form-component') ||\n      null\n    );\n  };\n\n  const localizedButtonText = (key) => {\n    const lang = String(document.documentElement.lang || '').toLowerCase();\n\n    if (key === 'unavailable') {\n      if (lang.startsWith('zh')) return '\u4E0D\u53EF\u7528';\n      return 'Unavailable';\n    }\n\n    if (key === 'choose') {\n      if (lang.startsWith('zh')) return '\u8BF7\u9009\u62E9\u9009\u9879';\n      return 'Choose options';\n    }\n\n    if (lang.startsWith('zh')) return '\u6DFB\u52A0\u5230\u8D2D\u7269\u8F66';\n    return 'Add to cart';\n  };\n\n  const setButtonText = (button, text) => {\n    const target =\n      button?.querySelector('.add-to-cart-text__content span span') ||\n      button?.querySelector('.add-to-cart-text__content') ||\n      button;\n\n    if (target && target.textContent.trim() !== text) {\n      target.textContent = text;\n    }\n  };\n\n  const syncProductFormFromFullVariants = (root, picker) => {\n    const variant = getSelectedVariantFromFullData(picker);\n    const form = productFormForRoot(root, picker);\n\n    if (!form) return;\n\n    const variantInput = form.querySelector('input[name=\"id\"]');\n\n    if (!variant) {\n      if (variantInput) {\n        variantInput.value = '';\n      }\n\n      const buttonContainer = form.querySelector('add-to-cart-component[ref=\"addToCartButtonContainer\"]');\n      const button = form.querySelector('[ref=\"addToCartButton\"]');\n      const acceleratedCheckout = form.querySelector('[ref=\"acceleratedCheckoutButtonContainer\"]');\n\n      buttonContainer?.disable?.();\n      if (button) {\n        button.disabled = true;\n        setButtonText(button, localizedButtonText('choose'));\n      }\n      acceleratedCheckout?.setAttribute('hidden', 'true');\n      return;\n    }\n\n    if (variantInput && variantInput.value !== variant.id) {\n      variantInput.value = variant.id;\n    }\n\n    const buttonContainer = form.querySelector('add-to-cart-component[ref=\"addToCartButtonContainer\"]');\n    const button = form.querySelector('[ref=\"addToCartButton\"]');\n    const acceleratedCheckout = form.querySelector('[ref=\"acceleratedCheckoutButtonContainer\"]');\n\n    if (variant.available) {\n      buttonContainer?.enable?.();\n      if (button) {\n        button.disabled = false;\n        setButtonText(button, localizedButtonText('add'));\n      }\n      acceleratedCheckout?.removeAttribute('hidden');\n    } else {\n      buttonContainer?.disable?.();\n      if (button) {\n        button.disabled = true;\n        setButtonText(button, localizedButtonText('unavailable'));\n      }\n      acceleratedCheckout?.setAttribute('hidden', 'true');\n    }\n\n    picker.dispatchEvent(\n      new CustomEvent('variant:update', {\n        bubbles: true,\n        detail: {\n          resource: variant.available ? variant : null,\n          sourceId: picker.querySelector('input:checked')?.dataset.optionValueId || '',\n          data: {\n            html: document,\n            productId: picker.dataset.productId || '',\n            localUpdate: true,\n          },\n        },\n      })\n    );\n  };\n\n  const hydrateVariantBridge = (picker, config, root) => {\n    if (!picker || !config || config.__dgBridgeLoaded || config.__dgBridgeLoading) return;\n    if (!config.bridgeAssetUrl || !hasPartialVariantMatrix(config)) return;\n\n    config.__dgBridgeLoading = true;\n\n    fetchJson(config.bridgeAssetUrl)\n      .then((data) => {\n        const variants = getBridgeVariants(data);\n\n        if (variants.length > (config.variantMatrix?.length || 0) && registerFullVariants(picker, config, variants)) {\n          syncProductFormFromFullVariants(root, picker);\n          scheduleSync();\n        }\n      })\n      .catch((error) => {\n        config.__dgBridgeFailed = true;\n        console.warn('DG PDP variant bridge could not be loaded', error);\n      })\n      .finally(() => {\n        config.__dgBridgeLoading = false;\n      });\n  };\n\n  const getCurrentTypeKey = (root) => {\n    const picker = getPickerForRoot(root);\n    const input = picker?.querySelector('[data-option-name=\"type\"] input:checked');\n    return typeKeyFromValue(input?.value || 'T-shirt');\n  };\n\n  const isTouchPreviewMode = () =>\n    window.matchMedia('(hover: none), (pointer: coarse)').matches;\n\n  const ensurePopover = (label, imageUrl, colorName) => {\n    if (label.dataset.dgPreviewImage !== imageUrl) {\n      label.dataset.dgPreviewImage = imageUrl;\n    }\n\n    if (label.dataset.dgPreviewLabel !== colorName) {\n      label.dataset.dgPreviewLabel = colorName;\n    }\n  };\n\n  const setHiddenState = (element, hidden) => {\n    if (element && element.hidden !== hidden) {\n      element.hidden = hidden;\n    }\n  };\n\n  const setDisplayState = (element, displayValue) => {\n    if (element?.style && element.style.display !== displayValue) {\n      element.style.display = displayValue;\n    }\n  };\n\n  const setStylePropertyIfChanged = (element, property, value) => {\n    if (!element?.style) return;\n\n    if (element.style.getPropertyValue(property) !== value) {\n      element.style.setProperty(property, value);\n    }\n  };\n\n  const getSwatchPreview = () => {\n    let preview = document.getElementById('dg-swatch-preview');\n\n    if (!preview) {\n      preview = document.createElement('div');\n      preview.id = 'dg-swatch-preview';\n      preview.setAttribute('aria-hidden', 'true');\n      preview.innerHTML =\n        '<img class=\"dg-swatch-preview__image\" loading=\"eager\" decoding=\"async\" alt=\"\">' +\n        '<span class=\"dg-swatch-preview__label\"></span>';\n      document.body.appendChild(preview);\n    }\n\n    return preview;\n  };\n\n  const hideSwatchPreview = ({ force = false } = {}) => {\n    const preview = document.getElementById('dg-swatch-preview');\n\n    if (!force && preview?.dataset.persistent === 'true') return;\n\n    document.querySelectorAll('.dg-swatch-is-hovering').forEach((label) => {\n      label.classList.remove('dg-swatch-is-previewing');\n      label.classList.remove('dg-swatch-is-hovering');\n    });\n\n    if (preview) {\n      preview.classList.remove('is-visible');\n      preview.style.opacity = '';\n      preview.style.visibility = '';\n      preview.style.left = '';\n      preview.style.top = '';\n      preview.style.transform = '';\n      delete preview.dataset.persistent;\n    }\n  };\n\n  const readableColorName = (typeKey, key) => {\n    const override = DISPLAY_COLOR_NAMES[typeKey]?.[key];\n    if (override) return override;\n\n    return key\n      .split('_')\n      .map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n      .join(' ');\n  };\n\n  const canonicalColorValue = (typeKey, key) =>\n    CANONICAL_COLOR_VALUES[typeKey]?.[key] || String(key || '').replace(/_/g, ' ');\n\n  const readableTypeName = (value) => {\n    const typeKey = typeKeyFromValue(value);\n    return TYPE_DISPLAY_NAMES[typeKey] || String(value || '').trim() || 'T-shirt';\n  };\n\n  const clearTouchSwatchPreview = (root = document) => {\n    if (!isTouchPreviewMode()) return;\n\n    root.querySelectorAll?.('[data-option-name=\"clothing-color\"]').forEach((fieldset) => {\n      delete fieldset.dataset.dgMobilePreviewActive;\n      fieldset.querySelectorAll('.dg-swatch-is-selected-preview, .dg-swatch-is-previewing, .dg-swatch-is-hovering').forEach((label) => {\n        label.classList.remove('dg-swatch-is-selected-preview');\n        label.classList.remove('dg-swatch-is-previewing');\n        label.classList.remove('dg-swatch-is-hovering');\n      });\n    });\n\n    hideSwatchPreview({ force: true });\n  };\n\n  const updateSwatchImage = (label, imageUrl, colorKey, typeKey) => {\n    const swatch = label.querySelector('.swatch');\n    const input = label.querySelector('input');\n    const colorName = readableColorName(typeKey, colorKey);\n\n    if (label.dataset.dgColorKey !== colorKey) {\n      label.dataset.dgColorKey = colorKey;\n    }\n\n    setStylePropertyIfChanged(label, '--dg-color-order', '0');\n\n    if (input && input.getAttribute('aria-label') !== colorName) {\n      input.setAttribute('aria-label', colorName);\n    }\n\n    if (swatch) {\n      setStylePropertyIfChanged(swatch, '--dg-reference-swatch', `url(\"${imageUrl}\")`);\n\n      if (!swatch.classList.contains('dg-reference-swatch')) {\n        swatch.classList.add('dg-reference-swatch');\n      }\n\n      let image = swatch.querySelector('.dg-reference-swatch__image');\n\n      if (!image) {\n        image = document.createElement('img');\n        image.className = 'dg-reference-swatch__image';\n        image.loading = 'lazy';\n        image.decoding = 'async';\n        swatch.appendChild(image);\n      }\n\n      if (image.getAttribute('src') !== imageUrl) {\n        image.src = imageUrl;\n      }\n\n      if (image.alt !== colorName) {\n        image.alt = colorName;\n      }\n    }\n\n    ensurePopover(label, imageUrl, colorName);\n  };\n\n  const showSwatchPreview = (label, { persistent = false } = {}) => {\n    const imageUrl = label.dataset.dgPreviewImage;\n    const colorName = label.dataset.dgPreviewLabel || '';\n\n    if (label.dataset.dgSuppressPreview === 'true') return;\n\n    document.querySelectorAll('.dg-swatch-is-hovering').forEach((item) => {\n      if (item !== label) {\n        item.classList.remove('dg-swatch-is-hovering');\n        if (!item.classList.contains('dg-swatch-is-selected-preview')) {\n          item.classList.remove('dg-swatch-is-previewing');\n        }\n      }\n    });\n\n    label.classList.add('dg-swatch-is-hovering');\n    label.classList.add('dg-swatch-is-previewing');\n\n    if (!imageUrl) return;\n\n    const preview = getSwatchPreview();\n    const image = preview.querySelector('.dg-swatch-preview__image');\n    const text = preview.querySelector('.dg-swatch-preview__label');\n    const rect = label.getBoundingClientRect();\n\n    if (image) {\n      image.src = imageUrl;\n      image.alt = colorName;\n    }\n\n    if (text) {\n      text.textContent = colorName;\n    }\n\n    preview.style.left = `${rect.left + rect.width / 2}px`;\n    preview.style.top = `${rect.top - 10}px`;\n    preview.style.transform = 'translate(-50%, -100%)';\n\n    const previewRect = preview.getBoundingClientRect();\n    const clampedLeft = Math.min(\n      Math.max(rect.left + rect.width / 2, previewRect.width / 2 + 8),\n      window.innerWidth - previewRect.width / 2 - 8\n    );\n\n    preview.style.left = `${clampedLeft}px`;\n\n    if (previewRect.top < 8) {\n      preview.style.top = `${rect.bottom + 10}px`;\n      preview.style.transform = 'translate(-50%, 0)';\n    }\n\n    preview.dataset.persistent = persistent ? 'true' : 'false';\n\n    window.requestAnimationFrame(() => {\n      preview.classList.add('is-visible');\n      preview.style.opacity = '1';\n      preview.style.visibility = 'visible';\n    });\n  };\n\n  const bindSwatchPreview = (label) => {\n    if (label.dataset.dgSwatchPreviewBound === 'true') return;\n\n    label.dataset.dgSwatchPreviewBound = 'true';\n\n    const show = () => {\n      if (isTouchPreviewMode()) return;\n\n      showSwatchPreview(label);\n    };\n\n    const hide = () => {\n      delete label.dataset.dgSuppressPreview;\n      hideSwatchPreview();\n    };\n\n    label.addEventListener('pointerenter', show);\n    label.addEventListener('mouseenter', show);\n    label.addEventListener('focusin', show);\n    label.addEventListener('pointerleave', hide);\n    label.addEventListener('mouseleave', hide);\n    label.addEventListener('focusout', hide);\n    label.addEventListener('pointerup', hide);\n    label.addEventListener('pointercancel', hide);\n  };\n\n  const upgradeLegacyColorButtonToSwatch = (fieldset, label) => {\n    if (!fieldset || !label) return;\n\n    fieldset.classList.add('variant-option--swatches');\n\n    if (!label.classList.contains('variant-option__button-label--has-swatch')) {\n      label.classList.add('variant-option__button-label--has-swatch');\n    }\n\n    let swatch = label.querySelector('.swatch');\n    if (!swatch) {\n      swatch = document.createElement('span');\n      swatch.className = 'swatch swatch--unscaled swatch--unavailable';\n      label.insertBefore(swatch, label.querySelector('.variant-option__strikethrough') || label.firstChild?.nextSibling || null);\n    }\n\n    label.querySelector('.variant-option__button-label__pill')?.remove();\n    label.querySelector('.variant-option__button-label__text')?.remove();\n\n    return swatch;\n  };\n\n  const syncSelectedSwatchPreview = (fieldset) => {\n    if (!fieldset) return;\n\n    fieldset.querySelectorAll('.dg-swatch-is-selected-preview').forEach((label) => {\n      label.classList.remove('dg-swatch-is-selected-preview');\n      label.classList.remove('dg-swatch-is-previewing');\n    });\n\n    if (!isTouchPreviewMode()) return;\n    if (fieldset.dataset.dgMobilePreviewActive !== 'true') return;\n\n    const checkedInput = fieldset.querySelector('input:checked');\n    const checkedLabel = checkedInput?.closest('.variant-option__button-label');\n    if (!checkedLabel || checkedLabel.hidden || checkedLabel.style.display === 'none') return;\n\n    checkedLabel.classList.add('dg-swatch-is-selected-preview');\n    checkedLabel.classList.add('dg-swatch-is-previewing');\n    showSwatchPreview(checkedLabel, { persistent: true });\n  };\n\n  const applyInputSelection = (input, { activateMobilePreview = false } = {}) => {\n    if (!(input instanceof HTMLInputElement)) return;\n\n    const fieldset = input.closest('fieldset, [data-option-name]');\n    const wasChecked = input.checked;\n\n    document.querySelectorAll(`input[name=\"${CSS.escape(input.name)}\"]`).forEach((radio) => {\n      radio.dataset.currentChecked = radio === input ? 'true' : 'false';\n      radio.checked = radio === input;\n    });\n\n    input.checked = true;\n    input.dataset.currentChecked = 'true';\n\n    if (fieldset && isTouchPreviewMode()) {\n      if (activateMobilePreview) {\n        fieldset.dataset.dgMobilePreviewActive = 'true';\n      } else {\n        delete fieldset.dataset.dgMobilePreviewActive;\n      }\n    }\n\n    if (wasChecked) {\n      syncSelectedSwatchPreview(fieldset);\n      return;\n    }\n\n    input.dispatchEvent(new Event('input', { bubbles: true }));\n    input.dispatchEvent(new Event('change', { bubbles: true }));\n    syncSelectedSwatchPreview(fieldset);\n  };\n\n  const selectSwatchLabel = (label) => {\n    const input = label.querySelector('input');\n    const fieldset = label.closest('[data-option-name=\"clothing-color\"]');\n\n    if (!input || input.getAttribute('aria-disabled') === 'true' || input.dataset.optionAvailable === 'false') return;\n\n    applyInputSelection(input, { activateMobilePreview: true });\n    label.dataset.dgSuppressPreview = 'true';\n    hideSwatchPreview({ force: true });\n    syncSelectedSwatchPreview(fieldset);\n    scheduleSync();\n  };\n\n  const swatchLabelFromPoint = (clientX, clientY) =>\n    Array.from(document.querySelectorAll(SWATCH_LABEL_SELECTOR)).find((label) => {\n      if (label.hidden || getComputedStyle(label).display === 'none') return false;\n\n      const rect = label.getBoundingClientRect();\n\n      return clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\n    });\n\n  const isOptionAvailable = (label) => {\n    const input = label.querySelector('input');\n    if (!input) return false;\n\n    return input.getAttribute('aria-disabled') !== 'true' && input.dataset.optionAvailable !== 'false';\n  };\n\n  const setLabelAvailability = (label, isAvailable) => {\n    const input = label?.querySelector('input');\n    if (!(input instanceof HTMLInputElement)) return false;\n\n    const nextAvailable = Boolean(isAvailable);\n    const optionUnavailable = nextAvailable ? 'false' : 'true';\n    const optionAvailable = nextAvailable ? 'true' : 'false';\n\n    if (label.dataset.dgOptionUnavailable !== optionUnavailable) {\n      label.dataset.dgOptionUnavailable = optionUnavailable;\n    }\n\n    if (input.dataset.optionAvailable !== optionAvailable) {\n      input.dataset.optionAvailable = optionAvailable;\n    }\n\n    if (input.disabled !== !nextAvailable) {\n      input.disabled = !nextAvailable;\n    }\n\n    if (nextAvailable) {\n      if (input.getAttribute('aria-disabled') === 'true') {\n        input.removeAttribute('aria-disabled');\n      }\n    } else {\n      if (input.getAttribute('aria-disabled') !== 'true') {\n        input.setAttribute('aria-disabled', 'true');\n      }\n    }\n\n    return nextAvailable;\n  };\n\n  const prefixScore = (value, typeKey) => {\n    const rawValue = String(value || '').trim();\n\n    if (/^H-/i.test(rawValue)) return typeKey === 'hoodie' ? 8 : 0;\n    if (/^S-/i.test(rawValue)) return typeKey === 'sweatshirt' ? 7 : typeKey === 'hoodie' ? 1 : 0;\n    if (/^T-/i.test(rawValue)) return typeKey === 'tshirt' ? 7 : typeKey === 'hoodie' ? 6 : 0;\n\n    return 0;\n  };\n\n  const collectColorMatrixState = (variantMatrix, typeKey, selectedSizeValue) => {\n    const typeEntries = Array.isArray(variantMatrix)\n      ? variantMatrix.filter((entry) => typeKeyFromValue(entry?.type) === typeKey)\n      : [];\n    const sizeEntries = selectedSizeValue\n      ? typeEntries.filter((entry) => optionValueEquals(entry?.size, selectedSizeValue))\n      : typeEntries;\n    const colorState = new Map();\n\n    sizeEntries.forEach((entry) => {\n      const colorKey = colorKeyFromValue(entry?.color, typeKey);\n      if (!colorKey) return;\n\n      const rawValue = normalizeVariantValue(entry?.color);\n      const existing =\n        colorState.get(colorKey) || {\n          rawValues: new Set(),\n          availableRawValues: new Set(),\n          hasAvailable: false,\n        };\n\n      existing.rawValues.add(rawValue);\n\n      if (entry?.available) {\n        existing.availableRawValues.add(rawValue);\n        existing.hasAvailable = true;\n      }\n\n      colorState.set(colorKey, existing);\n    });\n\n    return colorState;\n  };\n\n  const collectSizeMatrixState = (variantMatrix, typeKey) => {\n    const typeEntries = Array.isArray(variantMatrix)\n      ? variantMatrix.filter((entry) => typeKeyFromValue(entry?.type) === typeKey)\n      : [];\n    const sizeState = new Map();\n\n    typeEntries.forEach((entry) => {\n      const sizeKey = normalizeVariantValue(entry?.size);\n      if (!sizeKey) return;\n\n      const existing =\n        sizeState.get(sizeKey) || {\n          hasAvailable: false,\n        };\n\n      if (entry?.available) {\n        existing.hasAvailable = true;\n      }\n\n      sizeState.set(sizeKey, existing);\n    });\n\n    return sizeState;\n  };\n\n  const syncSizeButtons = (picker) => {\n    const config = parseConfig(picker);\n    const fieldset = picker.querySelector('[data-option-name=\"size\"]');\n    const typeInput = picker.querySelector('[data-option-name=\"type\"] input:checked');\n\n    if (!config || !fieldset || !typeInput) return;\n\n    const typeKey = typeKeyFromValue(typeInput.value);\n    const sizeState = collectSizeMatrixState(config.variantMatrix, typeKey);\n    const matrixIsPartial = hasPartialVariantMatrix(config);\n    const labels = Array.from(fieldset.querySelectorAll(':scope > .variant-option__button-label'));\n    let checkedAvailable = false;\n    let fallbackInput = null;\n\n    labels.forEach((label) => {\n      const input = label.querySelector('input');\n      if (!(input instanceof HTMLInputElement)) return;\n\n      const available = matrixIsPartial || Boolean(sizeState.get(normalizeVariantValue(input.value))?.hasAvailable);\n\n      setLabelAvailability(label, available);\n      setHiddenState(label, false);\n      setDisplayState(label, '');\n\n      if (!fallbackInput && available) {\n        fallbackInput = input;\n      }\n\n      if (input.checked && available) {\n        checkedAvailable = true;\n      }\n    });\n\n    const keepInitialSizeEmpty =\n      picker.dataset.dgInitialSizeCleared === 'true' &&\n      picker.dataset.dgSizeUserSelected !== 'true' &&\n      !explicitVariantUrlSelected();\n\n    if (!checkedAvailable && fallbackInput && !keepInitialSizeEmpty) {\n      applyInputSelection(fallbackInput, { activateMobilePreview: false });\n    }\n  };\n\n  const syncClothingColors = (picker) => {\n    const config = parseConfig(picker);\n    const fieldset = picker.querySelector('[data-option-name=\"clothing-color\"]');\n    const typeInput = picker.querySelector('[data-option-name=\"type\"] input:checked');\n    const sizeInput = picker.querySelector('[data-option-name=\"size\"] input:checked');\n\n    if (!config || !fieldset || !typeInput) return;\n\n    const typeKey = typeKeyFromValue(typeInput.value);\n    const colorOrder = config.colorOrderByType?.[typeKey] || [];\n    const references = config.colorReferences?.[typeKey] || {};\n    const colorOrderIndex = new Map(colorOrder.map((key, index) => [key, index]));\n    const labels = Array.from(fieldset.querySelectorAll(':scope > .variant-option__button-label'));\n    const candidates = new Map();\n    const previousCheckedInput = fieldset.querySelector('input:checked');\n    const preferredColorKey = colorKeyFromValue(previousCheckedInput?.value, typeKey);\n    const typeColorState = collectColorMatrixState(config.variantMatrix, typeKey, '');\n    const scopedColorState = collectColorMatrixState(config.variantMatrix, typeKey, sizeInput?.value || '');\n    const matrixIsPartial = hasPartialVariantMatrix(config);\n\n    labels.forEach((label) => {\n      const input = label.querySelector('input');\n      const colorKey = colorKeyFromValue(input?.value, typeKey);\n      const imageUrl = colorKey ? references[colorKey] : null;\n      const typeState = colorKey ? typeColorState.get(colorKey) : null;\n      const scopedState = colorKey ? scopedColorState.get(colorKey) : null;\n      const normalizedRawValue = normalizeVariantValue(input?.value);\n      const matchesType = matrixIsPartial || typeState?.rawValues.has(normalizedRawValue);\n\n      if (!input || !colorKey || !imageUrl || !colorOrderIndex.has(colorKey) || !matchesType) {\n        setHiddenState(label, true);\n        setDisplayState(label, 'none');\n        return;\n      }\n\n      const current = candidates.get(colorKey);\n      let score = prefixScore(input.value, typeKey);\n      if (normalizeVariantValue(input.value) === normalizeVariantValue(canonicalColorValue(typeKey, colorKey))) {\n        score += 40;\n      }\n      if (scopedState?.availableRawValues.has(normalizedRawValue)) score += 30;\n      else if (scopedState?.rawValues.has(normalizedRawValue)) score += 20;\n      else if (typeState?.availableRawValues.has(normalizedRawValue)) score += 10;\n      if (input.checked) score += 10;\n      if (!isLegacyTypePrefixedValue(input.value)) score += 4;\n\n      const next = { label, input, imageUrl, score };\n\n      if (!current || next.score > current.score) {\n        candidates.set(colorKey, next);\n      }\n    });\n\n    const visibleItems = [];\n\n    colorOrder.forEach((colorKey, index) => {\n      const candidate = candidates.get(colorKey);\n      if (!candidate) return;\n\n      upgradeLegacyColorButtonToSwatch(fieldset, candidate.label);\n      updateSwatchImage(candidate.label, candidate.imageUrl, colorKey, typeKey);\n      bindSwatchPreview(candidate.label);\n      setLabelAvailability(candidate.label, matrixIsPartial || Boolean(scopedColorState.get(colorKey)?.hasAvailable));\n      setHiddenState(candidate.label, false);\n      setDisplayState(candidate.label, '');\n      setStylePropertyIfChanged(candidate.label, '--dg-color-order', String(index));\n      visibleItems.push(candidate);\n    });\n\n    labels.forEach((label) => {\n      const input = label.querySelector('input');\n      const colorKey = colorKeyFromValue(input?.value, typeKey);\n      const selected = colorKey ? candidates.get(colorKey)?.label : null;\n\n      if (selected !== label) {\n        setHiddenState(label, true);\n        setDisplayState(label, 'none');\n      }\n    });\n\n    const orderedLabels = visibleItems.map(({ label }) => label);\n    const currentLabels = labels.filter((label) => !label.hidden && label.style.display !== 'none');\n    const orderChanged =\n      currentLabels.length !== orderedLabels.length || currentLabels.some((label, index) => label !== orderedLabels[index]);\n\n    if (orderChanged) {\n      const fragment = document.createDocumentFragment();\n      orderedLabels.forEach((label) => fragment.appendChild(label));\n      fieldset.appendChild(fragment);\n    }\n\n    const swatchValue = fieldset.querySelector('.variant-option__swatch-value');\n    if (swatchValue) {\n      swatchValue.textContent = '';\n      swatchValue.hidden = true;\n    }\n\n    const checkedInput = fieldset.querySelector('input:checked');\n    const checkedLabel = checkedInput?.closest('.variant-option__button-label');\n    const checkedVisible = checkedLabel && !checkedLabel.hidden && checkedLabel.style.display !== 'none';\n    const checkedAvailable = checkedVisible && isOptionAvailable(checkedLabel);\n\n    const preferredItem =\n      (preferredColorKey && visibleItems.find(({ input }) => colorKeyFromValue(input?.value, typeKey) === preferredColorKey)) ||\n      visibleItems.find(({ label }) => isOptionAvailable(label)) ||\n      visibleItems[0];\n\n    if ((!checkedVisible || !checkedAvailable) && preferredItem?.input) {\n      applyInputSelection(preferredItem.input, { activateMobilePreview: false });\n    }\n\n    syncSelectedSwatchPreview(fieldset);\n  };\n\n  const syncTypeButtons = (picker) => {\n    const fieldset = picker.querySelector('[data-option-name=\"type\"]');\n\n    if (!fieldset) return;\n\n    const labels = Array.from(fieldset.querySelectorAll(':scope > .variant-option__button-label'));\n\n    labels.forEach((label) => {\n      const input = label.querySelector('input');\n      const text = label.querySelector('.variant-option__button-label__text');\n\n      if (!input) return;\n\n      const displayValue = readableTypeName(input.value);\n      const typeKey = typeKeyFromValue(input.value);\n      if (text && text.textContent !== displayValue) {\n        text.textContent = displayValue;\n      }\n\n      if (input.getAttribute('aria-label') !== displayValue) {\n        input.setAttribute('aria-label', displayValue);\n      }\n\n      if (typeKey === 'washed_tee') {\n        setLabelAvailability(label, true);\n        setHiddenState(label, false);\n        setDisplayState(label, '');\n      }\n    });\n\n    const orderedLabels = labels\n      .slice()\n      .sort((left, right) => {\n        const leftKey = typeKeyFromValue(left.querySelector('input')?.value);\n        const rightKey = typeKeyFromValue(right.querySelector('input')?.value);\n        const leftIndex = TYPE_DISPLAY_ORDER.indexOf(leftKey);\n        const rightIndex = TYPE_DISPLAY_ORDER.indexOf(rightKey);\n\n        return (leftIndex === -1 ? TYPE_DISPLAY_ORDER.length : leftIndex) -\n          (rightIndex === -1 ? TYPE_DISPLAY_ORDER.length : rightIndex);\n      });\n    const orderChanged = orderedLabels.some((label, index) => labels[index] !== label);\n\n    if (orderChanged) {\n      const fragment = document.createDocumentFragment();\n      orderedLabels.forEach((label) => fragment.appendChild(label));\n      fieldset.appendChild(fragment);\n    }\n  };\n\n  const syncSizeCharts = (root) => {\n    if (!root?.querySelector('[data-dg-size-chart]')) return;\n\n    const typeKey = getCurrentTypeKey(root);\n    const chartType = typeKey === 'tshirt' || typeKey === 'washed_tee' ? 'tee' : 'outerwear';\n\n    root.dataset.dgPdpType = typeKey;\n\n    root.querySelectorAll('[data-dg-size-chart] .size-table-group').forEach((table) => {\n      table.hidden = table.dataset.sizeChartType !== chartType;\n    });\n  };\n\n  const getCurrentVariantId = (root, picker) => {\n    const formVariantId = root?.querySelector('product-form-component input[name=\"id\"]')?.value;\n    if (formVariantId) return String(formVariantId);\n\n    const selectedVariantId = picker?.selectedVariant?.id;\n    if (selectedVariantId) return String(selectedVariantId);\n\n    const selectedInputVariantId = picker?.querySelector('input:checked')?.dataset?.variantId;\n    if (selectedInputVariantId) return String(selectedInputVariantId);\n\n    return '';\n  };\n\n  const syncPickerRequestUrl = (root, picker) => {\n    if (!root || !picker) return;\n\n    const currentUrl = new URL(window.location.href);\n    const variantId = getCurrentVariantId(root, picker);\n\n    currentUrl.hash = '';\n\n    if (variantId) {\n      currentUrl.searchParams.set('variant', variantId);\n    } else {\n      currentUrl.searchParams.delete('variant');\n    }\n\n    picker.dataset.productUrl = `${currentUrl.pathname}${currentUrl.search}`;\n  };\n\n  const getSelectedInputValue = (picker, optionName) =>\n    picker?.querySelector(`[data-option-name=\"${optionName}\"] input:checked`)?.value || '';\n\n  const syncAll = () => {\n    const roots = getProductInfoRoots();\n\n    if (roots.length === 0) return;\n\n    roots.forEach((root) => {\n      const picker = getPickerForRoot(root);\n\n      if (picker) {\n        const config = parseConfig(picker);\n        hydrateVariantBridge(picker, config, root);\n        // Keep Horizon's native first-variant selection. An empty initial Size\n        // state leaves the form without a valid variant id until the user clicks.\n\n        const nextState = {\n          type: getSelectedInputValue(picker, 'type'),\n          size: getSelectedInputValue(picker, 'size'),\n          color: getSelectedInputValue(picker, 'clothing-color'),\n          variantId: getCurrentVariantId(root, picker),\n        };\n        const previousState = picker.__dgSyncState || null;\n        const isInitialSync = picker.dataset.dgSyncInitialized !== 'true';\n        const typeChanged = isInitialSync || previousState?.type !== nextState.type;\n        const sizeChanged = isInitialSync || previousState?.size !== nextState.size;\n        const colorChanged = isInitialSync || previousState?.color !== nextState.color;\n        const variantChanged = isInitialSync || previousState?.variantId !== nextState.variantId;\n\n        if (variantChanged) {\n          syncPickerRequestUrl(root, picker);\n        }\n\n        if (typeChanged) {\n          syncTypeButtons(picker);\n          syncSizeButtons(picker);\n        }\n\n        if (typeChanged || sizeChanged) {\n          syncClothingColors(picker);\n        } else if (colorChanged) {\n          syncSelectedSwatchPreview(picker.querySelector('[data-option-name=\"clothing-color\"]'));\n        }\n\n        if (\n          config?.__dgBridgeLoaded ||\n          (picker.dataset.dgInitialSizeCleared === 'true' && !getSelectedInputValue(picker, 'size'))\n        ) {\n          syncProductFormFromFullVariants(root, picker);\n        }\n\n        picker.__dgSyncState = nextState;\n        picker.dataset.dgSyncInitialized = 'true';\n      }\n\n      if (!picker || picker.dataset.dgLastTypeKey !== getCurrentTypeKey(root)) {\n        syncSizeCharts(root);\n\n        if (picker) {\n          picker.dataset.dgLastTypeKey = getCurrentTypeKey(root);\n        }\n      }\n    });\n  };\n\n  let syncQueued = false;\n\n  const scheduleSync = () => {\n    if (syncQueued) return;\n\n    syncQueued = true;\n    window.requestAnimationFrame(() => {\n      syncQueued = false;\n      syncAll();\n    });\n  };\n\n  document.addEventListener('DOMContentLoaded', scheduleSync);\n  document.addEventListener('DOMContentLoaded', () => {\n    [100, 350, 900, 1800].forEach((delay) => {\n      window.setTimeout(scheduleSync, delay);\n    });\n  });\n  const observeTypeButtonState = () => {\n    document.querySelectorAll('variant-picker [data-option-name=\"type\"]').forEach((fieldset) => {\n      if (fieldset.dataset.dgTypeVisibilityObserved === 'true') return;\n\n      fieldset.dataset.dgTypeVisibilityObserved = 'true';\n      new MutationObserver(scheduleSync).observe(fieldset, {\n        attributes: true,\n        subtree: true,\n        attributeFilter: ['hidden', 'style', 'disabled', 'aria-disabled', 'data-option-available'],\n      });\n    });\n  };\n  document.addEventListener('DOMContentLoaded', observeTypeButtonState);\n  new MutationObserver(observeTypeButtonState).observe(document.documentElement, {\n    childList: true,\n    subtree: true,\n  });\n  new MutationObserver((mutations) => {\n    const productPickerReplaced = mutations.some((mutation) =>\n      Array.from(mutation.addedNodes).some(\n        (node) =>\n          node instanceof Element &&\n          (node.matches('variant-picker, product-form-component') ||\n            node.querySelector('variant-picker, product-form-component'))\n      )\n    );\n\n    if (productPickerReplaced) {\n      scheduleSync();\n    }\n  }).observe(document.documentElement, {\n    childList: true,\n    subtree: true,\n  });\n  observeTypeButtonState();\n  if (document.readyState !== 'loading') {\n    scheduleSync();\n    [100, 350, 900, 1800].forEach((delay) => {\n      window.setTimeout(scheduleSync, delay);\n    });\n  }\n  document.addEventListener('change', (event) => {\n    if (!(event.target instanceof HTMLElement)) return;\n    const picker = event.target.closest('variant-picker');\n    if (!picker) return;\n\n    if (event.isTrusted && event.target.matches('[data-option-name=\"size\"] input')) {\n      picker.dataset.dgSizeUserSelected = 'true';\n      picker.dataset.dgInitialSizeCleared = 'true';\n\n      document.querySelectorAll(`input[name=\"${CSS.escape(event.target.name)}\"]`).forEach((input) => {\n        if (!(input instanceof HTMLInputElement)) return;\n        input.dataset.currentChecked = input === event.target ? 'true' : 'false';\n        input.dataset.previousChecked = 'false';\n      });\n    }\n\n    if (isTouchPreviewMode() && !event.target.closest('[data-option-name=\"clothing-color\"]')) {\n      clearTouchSwatchPreview(picker);\n    }\n\n    scheduleSync();\n    [100, 350, 900].forEach((delay) => {\n      window.setTimeout(scheduleSync, delay);\n    });\n  });\n  document.addEventListener(\n    'pointerup',\n    (event) => {\n      const point = event.changedTouches?.[0] || event;\n      const label =\n        swatchLabelFromPoint(point.clientX, point.clientY) ||\n        (event.target instanceof HTMLElement ? event.target.closest(SWATCH_LABEL_SELECTOR) : null);\n\n      if (!label) return;\n\n      event.preventDefault();\n      selectSwatchLabel(label);\n    },\n    true\n  );\n  document.addEventListener('mousemove', (event) => {\n    if (swatchLabelFromPoint(event.clientX, event.clientY)) return;\n\n    hideSwatchPreview();\n  });\n  document.addEventListener('pointerdown', (event) => {\n    if (!(event.target instanceof HTMLElement)) return;\n    if (event.target.closest(SWATCH_LABEL_SELECTOR)) return;\n\n    clearTouchSwatchPreview(document);\n    hideSwatchPreview({ force: true });\n  });\n  document.addEventListener(\n    'scroll',\n    () => {\n      hideSwatchPreview({ force: true });\n    },\n    { passive: true }\n  );\n  document.addEventListener('variant:update', scheduleSync);\n  window.addEventListener('load', scheduleSync);\n\n  [0, 150, 500, 1200, 2500, 4000].forEach((delay) => {\n    window.setTimeout(scheduleSync, delay);\n  });\n\n  scheduleSync();\n}\n"],
  "mappings": "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",
  "names": ["buttonContainer", "button", "acceleratedCheckout"]
}
