{
  "version": 3,
  "sources": ["/cdn/shop/t/101/assets/custom.js?odx=quantity-rollback-20260624"],
  "sourcesContent": ["/*-----------------------------------------------------------------------------/\n/ Custom Theme JS\n/-----------------------------------------------------------------------------*/\n\n// Insert any custom theme js here...\n\nfunction getScrollHeaderOffset() {\n  const header = document.querySelector(\".js-header\");\n\n  return header ? header.getBoundingClientRect().height : 0;\n}\n\nfunction syncScrollNextButtons() {\n  document.querySelectorAll(\"[data-scroll-next-section]\").forEach(function (trigger) {\n    const carousel = trigger.closest(\".home-carousel\");\n\n    if (!carousel) return;\n\n    const headerOffset = getScrollHeaderOffset();\n    const carouselRect = carousel.getBoundingClientRect();\n    const triggerHeight = trigger.getBoundingClientRect().height || 0;\n    const isPastCarousel = carouselRect.bottom <= headerOffset + triggerHeight * 0.65;\n\n    trigger.classList.toggle(\"is-out-of-view\", isPastCarousel);\n  });\n}\n\ndocument.addEventListener(\"click\", function (event) {\n  if (!(event.target instanceof Element)) return;\n\n  const trigger = event.target.closest(\"[data-scroll-next-section]\");\n\n  if (!trigger) return;\n\n  const currentSection = trigger.closest(\".shopify-section\") || trigger.closest(\".section\");\n  let nextSection = currentSection ? currentSection.nextElementSibling : null;\n\n  while (nextSection && nextSection.offsetParent === null) {\n    nextSection = nextSection.nextElementSibling;\n  }\n\n  if (!nextSection) return;\n\n  const headerOffset = getScrollHeaderOffset();\n  const restingGap = window.matchMedia(\"(max-width: 47.9275em)\").matches ? 18 : 24;\n  const nextSectionTop = Math.max(0, nextSection.getBoundingClientRect().top + window.scrollY - headerOffset - restingGap);\n\n  window.scroll({\n    top: nextSectionTop,\n    behavior: window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches ? \"auto\" : \"smooth\"\n  });\n});\n\nlet scrollNextButtonsTicking = false;\n\nfunction requestSyncScrollNextButtons() {\n  if (scrollNextButtonsTicking) return;\n  scrollNextButtonsTicking = true;\n  window.requestAnimationFrame(function () {\n    scrollNextButtonsTicking = false;\n    syncScrollNextButtons();\n  });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", syncScrollNextButtons);\nwindow.addEventListener(\"scroll\", requestSyncScrollNextButtons, { passive: true });\nwindow.addEventListener(\"resize\", requestSyncScrollNextButtons);\n\nconst studioSelectionQuery = '[class*=\"0436301d-0018-4b49-8493-36629494c103\"]';\nconst studioSelectionDesktop = window.matchMedia(\"(min-width: 61.25em)\");\n\nfunction addMediaQueryChangeListener(mediaQueryList, listener) {\n  if (typeof mediaQueryList.addEventListener === \"function\") {\n    mediaQueryList.addEventListener(\"change\", listener);\n    return;\n  }\n\n  if (typeof mediaQueryList.addListener === \"function\") {\n    mediaQueryList.addListener(listener);\n  }\n}\n\nfunction setStudioSelectionDesktopPage(section, nextPage) {\n  const cards = Array.from(section.querySelectorAll(\"[data-items] > .product-card\"));\n  const control = section.querySelector(\"[data-studio-desktop-nav]\");\n  const groupSize = 6;\n  const pageCount = Math.ceil(cards.length / groupSize);\n\n  if (!studioSelectionDesktop.matches || cards.length <= groupSize) {\n    cards.forEach((card) => {\n      card.classList.remove(\"is-studio-desktop-active\", \"is-studio-desktop-hidden\");\n      card.style.order = \"\";\n      card.removeAttribute(\"aria-hidden\");\n    });\n\n    if (control) control.hidden = true;\n    return;\n  }\n\n  const safePage = ((nextPage % pageCount) + pageCount) % pageCount;\n  const start = safePage * groupSize;\n  const end = start + groupSize;\n\n  section.dataset.studioDesktopPage = String(safePage);\n\n  cards.forEach((card, index) => {\n    const order = index >= start && index < end ? index - start + 1 : 0;\n    card.classList.toggle(\"is-studio-desktop-active\", Boolean(order));\n    card.classList.toggle(\"is-studio-desktop-hidden\", !order);\n    card.style.order = order ? String(order) : \"\";\n    if (order) {\n      card.removeAttribute(\"aria-hidden\");\n    } else {\n      card.setAttribute(\"aria-hidden\", \"true\");\n    }\n  });\n\n  if (control) control.hidden = false;\n  syncStudioSelectionDesktopNavCenter(section);\n}\n\nfunction syncStudioSelectionDesktopNavCenter(section) {\n  const control = section.querySelector(\"[data-studio-desktop-nav]\");\n\n  if (!control || control.hidden || !studioSelectionDesktop.matches) return;\n\n  const parent = control.parentElement;\n  const activeCard = section.querySelector(\"[data-items] > .product-card.is-studio-desktop-active\")\n    || section.querySelector(\"[data-items] > .product-card\");\n  const media = activeCard?.querySelector(\".product-card-top\");\n\n  if (!parent || !media) return;\n\n  const parentRect = parent.getBoundingClientRect();\n  const mediaRect = media.getBoundingClientRect();\n  const mediaCenter = mediaRect.top - parentRect.top + mediaRect.height / 2;\n\n  control.style.setProperty(\"--oildeco-studio-nav-center\", `${mediaCenter}px`);\n}\n\nfunction setupStudioSelectionDesktopCarousel(root) {\n  const scope = root || document;\n  const sections = scope.matches?.(studioSelectionQuery) ? [scope] : [];\n\n  sections.push(...scope.querySelectorAll(studioSelectionQuery));\n\n  sections.forEach((section) => {\n    const cards = Array.from(section.querySelectorAll(\"[data-items] > .product-card\"));\n    const gridContainer = section.querySelector(\"[data-items]\");\n    let control = section.querySelector(\"[data-studio-desktop-nav]\");\n\n    if (!gridContainer || cards.length <= 6) {\n      if (control) control.remove();\n      return;\n    }\n\n    if (!control) {\n      control = document.createElement(\"div\");\n      control.className = \"oildeco-studio-desktop-nav\";\n      control.dataset.studioDesktopNav = \"true\";\n      control.innerHTML = `\n        <button class=\"oildeco-studio-desktop-nav__button oildeco-studio-desktop-nav__button--prev\" type=\"button\" data-studio-desktop-prev aria-label=\"Previous selected works\"></button>\n        <button class=\"oildeco-studio-desktop-nav__button oildeco-studio-desktop-nav__button--next\" type=\"button\" data-studio-desktop-next aria-label=\"Next selected works\"></button>\n      `;\n      gridContainer.parentElement.appendChild(control);\n    }\n\n    control.querySelector(\"[data-studio-desktop-prev]\").onclick = () => {\n      const currentPage = Number(section.dataset.studioDesktopPage || \"0\");\n      setStudioSelectionDesktopPage(section, currentPage - 1);\n    };\n\n    control.querySelector(\"[data-studio-desktop-next]\").onclick = () => {\n      const currentPage = Number(section.dataset.studioDesktopPage || \"0\");\n      setStudioSelectionDesktopPage(section, currentPage + 1);\n    };\n\n    setStudioSelectionDesktopPage(section, Number(section.dataset.studioDesktopPage || \"0\"));\n    window.requestAnimationFrame(() => syncStudioSelectionDesktopNavCenter(section));\n  });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  setupStudioSelectionDesktopCarousel(document);\n});\n\ndocument.addEventListener(\"shopify:section:load\", function (event) {\n  setupStudioSelectionDesktopCarousel(event.target);\n});\n\naddMediaQueryChangeListener(studioSelectionDesktop, function () {\n  setupStudioSelectionDesktopCarousel(document);\n});\n\nwindow.addEventListener(\"resize\", function () {\n  document.querySelectorAll(studioSelectionQuery).forEach(syncStudioSelectionDesktopNavCenter);\n});\n\nfunction relocatePdpQuantitySelector(root) {\n  const scope = root || document;\n  const sections = [];\n\n  if (scope.matches?.(\".section--product-single\")) {\n    sections.push(scope);\n  }\n\n  if (scope.querySelectorAll) {\n    sections.push(...scope.querySelectorAll(\".section--product-single\"));\n  }\n\n  sections.forEach((section) => {\n    const quantityBlock = section.querySelector(\".product-single__box__block--quantity_selector\");\n    const addActions = section.querySelector(\".product-single__box__block--buy_buttons .product-form__add\");\n\n    if (!quantityBlock || !addActions) return;\n\n    const form = addActions.closest(\"form\");\n    const targetParent = form || addActions.parentElement;\n\n    if (!targetParent || quantityBlock.nextElementSibling === addActions) return;\n\n    quantityBlock.classList.add(\"pdp-quantity--relocated\");\n    targetParent.insertBefore(quantityBlock, addActions);\n  });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  relocatePdpQuantitySelector(document);\n});\n\ndocument.addEventListener(\"shopify:section:load\", function (event) {\n  relocatePdpQuantitySelector(event.target);\n});\n"],
  "mappings": "AAMA,SAAS,uBAAwB,CAC/B,MAAM,OAAS,SAAS,cAAc,YAAY,EAElD,OAAO,OAAS,OAAO,sBAAsB,EAAE,OAAS,CAC1D,CAEA,SAAS,uBAAwB,CAC/B,SAAS,iBAAiB,4BAA4B,EAAE,QAAQ,SAAU,QAAS,CACjF,MAAM,SAAW,QAAQ,QAAQ,gBAAgB,EAEjD,GAAI,CAAC,SAAU,OAEf,MAAM,aAAe,sBAAsB,EACrC,aAAe,SAAS,sBAAsB,EAC9C,cAAgB,QAAQ,sBAAsB,EAAE,QAAU,EAC1D,eAAiB,aAAa,QAAU,aAAe,cAAgB,IAE7E,QAAQ,UAAU,OAAO,iBAAkB,cAAc,CAC3D,CAAC,CACH,CAEA,SAAS,iBAAiB,QAAS,SAAU,MAAO,CAClD,GAAI,EAAE,MAAM,kBAAkB,SAAU,OAExC,MAAM,QAAU,MAAM,OAAO,QAAQ,4BAA4B,EAEjE,GAAI,CAAC,QAAS,OAEd,MAAM,eAAiB,QAAQ,QAAQ,kBAAkB,GAAK,QAAQ,QAAQ,UAAU,EACxF,IAAI,YAAc,eAAiB,eAAe,mBAAqB,KAEvE,KAAO,aAAe,YAAY,eAAiB,MACjD,YAAc,YAAY,mBAG5B,GAAI,CAAC,YAAa,OAElB,MAAM,aAAe,sBAAsB,EACrC,WAAa,OAAO,WAAW,wBAAwB,EAAE,QAAU,GAAK,GACxE,eAAiB,KAAK,IAAI,EAAG,YAAY,sBAAsB,EAAE,IAAM,OAAO,QAAU,aAAe,UAAU,EAEvH,OAAO,OAAO,CACZ,IAAK,eACL,SAAU,OAAO,WAAW,kCAAkC,EAAE,QAAU,OAAS,QACrF,CAAC,CACH,CAAC,EAED,IAAI,yBAA2B,GAE/B,SAAS,8BAA+B,CAClC,2BACJ,yBAA2B,GAC3B,OAAO,sBAAsB,UAAY,CACvC,yBAA2B,GAC3B,sBAAsB,CACxB,CAAC,EACH,CAEA,SAAS,iBAAiB,mBAAoB,qBAAqB,EACnE,OAAO,iBAAiB,SAAU,6BAA8B,CAAE,QAAS,EAAK,CAAC,EACjF,OAAO,iBAAiB,SAAU,4BAA4B,EAE9D,MAAM,qBAAuB,kDACvB,uBAAyB,OAAO,WAAW,sBAAsB,EAEvE,SAAS,4BAA4B,eAAgB,SAAU,CAC7D,GAAI,OAAO,eAAe,kBAAqB,WAAY,CACzD,eAAe,iBAAiB,SAAU,QAAQ,EAClD,MACF,CAEI,OAAO,eAAe,aAAgB,YACxC,eAAe,YAAY,QAAQ,CAEvC,CAEA,SAAS,8BAA8B,QAAS,SAAU,CACxD,MAAM,MAAQ,MAAM,KAAK,QAAQ,iBAAiB,8BAA8B,CAAC,EAC3E,QAAU,QAAQ,cAAc,2BAA2B,EAC3D,UAAY,EACZ,UAAY,KAAK,KAAK,MAAM,OAAS,SAAS,EAEpD,GAAI,CAAC,uBAAuB,SAAW,MAAM,QAAU,UAAW,CAChE,MAAM,QAAS,MAAS,CACtB,KAAK,UAAU,OAAO,2BAA4B,0BAA0B,EAC5E,KAAK,MAAM,MAAQ,GACnB,KAAK,gBAAgB,aAAa,CACpC,CAAC,EAEG,UAAS,QAAQ,OAAS,IAC9B,MACF,CAEA,MAAM,UAAa,SAAW,UAAa,WAAa,UAClD,MAAQ,SAAW,UACnB,IAAM,MAAQ,UAEpB,QAAQ,QAAQ,kBAAoB,OAAO,QAAQ,EAEnD,MAAM,QAAQ,CAAC,KAAM,QAAU,CAC7B,MAAM,MAAQ,OAAS,OAAS,MAAQ,IAAM,MAAQ,MAAQ,EAAI,EAClE,KAAK,UAAU,OAAO,2BAA4B,EAAQ,KAAM,EAChE,KAAK,UAAU,OAAO,2BAA4B,CAAC,KAAK,EACxD,KAAK,MAAM,MAAQ,MAAQ,OAAO,KAAK,EAAI,GACvC,MACF,KAAK,gBAAgB,aAAa,EAElC,KAAK,aAAa,cAAe,MAAM,CAE3C,CAAC,EAEG,UAAS,QAAQ,OAAS,IAC9B,oCAAoC,OAAO,CAC7C,CAEA,SAAS,oCAAoC,QAAS,CACpD,MAAM,QAAU,QAAQ,cAAc,2BAA2B,EAEjE,GAAI,CAAC,SAAW,QAAQ,QAAU,CAAC,uBAAuB,QAAS,OAEnE,MAAM,OAAS,QAAQ,cAGjB,OAFa,QAAQ,cAAc,uDAAuD,GAC3F,QAAQ,cAAc,8BAA8B,IAC/B,cAAc,mBAAmB,EAE3D,GAAI,CAAC,QAAU,CAAC,MAAO,OAEvB,MAAM,WAAa,OAAO,sBAAsB,EAC1C,UAAY,MAAM,sBAAsB,EACxC,YAAc,UAAU,IAAM,WAAW,IAAM,UAAU,OAAS,EAExE,QAAQ,MAAM,YAAY,8BAA+B,GAAG,WAAW,IAAI,CAC7E,CAEA,SAAS,oCAAoC,KAAM,CACjD,MAAM,MAAQ,MAAQ,SAChB,SAAW,MAAM,UAAU,oBAAoB,EAAI,CAAC,KAAK,EAAI,CAAC,EAEpE,SAAS,KAAK,GAAG,MAAM,iBAAiB,oBAAoB,CAAC,EAE7D,SAAS,QAAS,SAAY,CAC5B,MAAM,MAAQ,MAAM,KAAK,QAAQ,iBAAiB,8BAA8B,CAAC,EAC3E,cAAgB,QAAQ,cAAc,cAAc,EAC1D,IAAI,QAAU,QAAQ,cAAc,2BAA2B,EAE/D,GAAI,CAAC,eAAiB,MAAM,QAAU,EAAG,CACnC,SAAS,QAAQ,OAAO,EAC5B,MACF,CAEK,UACH,QAAU,SAAS,cAAc,KAAK,EACtC,QAAQ,UAAY,6BACpB,QAAQ,QAAQ,iBAAmB,OACnC,QAAQ,UAAY;AAAA;AAAA;AAAA,QAIpB,cAAc,cAAc,YAAY,OAAO,GAGjD,QAAQ,cAAc,4BAA4B,EAAE,QAAU,IAAM,CAClE,MAAM,YAAc,OAAO,QAAQ,QAAQ,mBAAqB,GAAG,EACnE,8BAA8B,QAAS,YAAc,CAAC,CACxD,EAEA,QAAQ,cAAc,4BAA4B,EAAE,QAAU,IAAM,CAClE,MAAM,YAAc,OAAO,QAAQ,QAAQ,mBAAqB,GAAG,EACnE,8BAA8B,QAAS,YAAc,CAAC,CACxD,EAEA,8BAA8B,QAAS,OAAO,QAAQ,QAAQ,mBAAqB,GAAG,CAAC,EACvF,OAAO,sBAAsB,IAAM,oCAAoC,OAAO,CAAC,CACjF,CAAC,CACH,CAEA,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,oCAAoC,QAAQ,CAC9C,CAAC,EAED,SAAS,iBAAiB,uBAAwB,SAAU,MAAO,CACjE,oCAAoC,MAAM,MAAM,CAClD,CAAC,EAED,4BAA4B,uBAAwB,UAAY,CAC9D,oCAAoC,QAAQ,CAC9C,CAAC,EAED,OAAO,iBAAiB,SAAU,UAAY,CAC5C,SAAS,iBAAiB,oBAAoB,EAAE,QAAQ,mCAAmC,CAC7F,CAAC,EAED,SAAS,4BAA4B,KAAM,CACzC,MAAM,MAAQ,MAAQ,SAChB,SAAW,CAAC,EAEd,MAAM,UAAU,0BAA0B,GAC5C,SAAS,KAAK,KAAK,EAGjB,MAAM,kBACR,SAAS,KAAK,GAAG,MAAM,iBAAiB,0BAA0B,CAAC,EAGrE,SAAS,QAAS,SAAY,CAC5B,MAAM,cAAgB,QAAQ,cAAc,gDAAgD,EACtF,WAAa,QAAQ,cAAc,6DAA6D,EAEtG,GAAI,CAAC,eAAiB,CAAC,WAAY,OAGnC,MAAM,aADO,WAAW,QAAQ,MAAM,GACT,WAAW,cAEpC,CAAC,cAAgB,cAAc,qBAAuB,aAE1D,cAAc,UAAU,IAAI,yBAAyB,EACrD,aAAa,aAAa,cAAe,UAAU,EACrD,CAAC,CACH,CAEA,SAAS,iBAAiB,mBAAoB,UAAY,CACxD,4BAA4B,QAAQ,CACtC,CAAC,EAED,SAAS,iBAAiB,uBAAwB,SAAU,MAAO,CACjE,4BAA4B,MAAM,MAAM,CAC1C,CAAC",
  "names": []
}
