{
  "version": 3,
  "sources": ["/cdn/shop/t/5/assets/custom-product-cart.js?psv=artwork-upload-20260814"],
  "sourcesContent": ["(() => {\n  const storefrontRoot = () => window.Shopify?.routes?.root || '/';\n  const endpoint = (path) => `${storefrontRoot()}${path}`;\n\n  const responseError = async (response, fallback) => {\n    const payload = await response.json().catch(() => ({}));\n    const error = new Error(payload.description || payload.message || fallback);\n    error.status = response.status;\n    return error;\n  };\n\n  const addJsonItems = async (items) => {\n    const response = await fetch(endpoint('cart/add.js'), {\n      method: 'POST',\n      headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n      body: JSON.stringify({ items }),\n    });\n    if (!response.ok) throw await responseError(response, 'Could not add this item to cart.');\n    return response.json();\n  };\n\n  const addItemsWithArtwork = async (items, artworkFile) => {\n    const formData = new FormData();\n    items.forEach((item, index) => {\n      formData.set(`items[${index}][id]`, String(item.id));\n      formData.set(`items[${index}][quantity]`, String(item.quantity));\n      if (item.parent_id) formData.set(`items[${index}][parent_id]`, String(item.parent_id));\n      Object.entries(item.properties || {}).forEach(([key, value]) => {\n        formData.set(`items[${index}][properties][${key}]`, String(value));\n      });\n    });\n    formData.set('items[0][properties][Custom artwork]', artworkFile, artworkFile.name);\n    const response = await fetch(endpoint('cart/add.js'), {\n      method: 'POST',\n      headers: { Accept: 'application/json' },\n      body: formData,\n    });\n    if (!response.ok) throw await responseError(response, 'Could not upload this image to the cart.');\n    return response.json();\n  };\n\n  const wait = (milliseconds) => new Promise((resolve) => window.setTimeout(resolve, milliseconds));\n\n  const getCart = async () => {\n    const retryDelays = [400, 800, 1600];\n    for (let attempt = 0; attempt <= retryDelays.length; attempt += 1) {\n      const response = await fetch(endpoint('cart.js'), { headers: { Accept: 'application/json' } });\n      if (response.ok) return response.json();\n      if (response.status !== 429 || attempt === retryDelays.length) {\n        throw await responseError(response, 'Could not refresh cart.');\n      }\n      await wait(retryDelays[attempt]);\n    }\n    throw new Error('Could not refresh cart.');\n  };\n\n  const refreshAfterConfirmedAdd = async (result) => {\n    try {\n      return { ...result, cart: await getCart(), cartRefreshDeferred: false };\n    } catch (error) {\n      if (error.status !== 429) throw error;\n      return { ...result, cart: null, cartRefreshDeferred: true };\n    }\n  };\n\n  window.CustomProductCart = {\n    async add({ form, cartPayload, artwork }) {\n      const file = artwork?.getFile?.();\n      if (!file) {\n        await addJsonItems(cartPayload.items);\n        return refreshAfterConfirmedAdd({ hasArtwork: false });\n      }\n\n      await addItemsWithArtwork(cartPayload.items, file);\n      return refreshAfterConfirmedAdd({ hasArtwork: true });\n    },\n  };\n})();\n\n\n"],
  "mappings": "CAAC,IAAM,CACL,MAAM,eAAiB,IAAM,OAAO,SAAS,QAAQ,MAAQ,IACvD,SAAY,MAAS,GAAG,eAAe,CAAC,GAAG,IAAI,GAE/C,cAAgB,MAAO,SAAU,WAAa,CAClD,MAAM,QAAU,MAAM,SAAS,KAAK,EAAE,MAAM,KAAO,CAAC,EAAE,EAChD,MAAQ,IAAI,MAAM,QAAQ,aAAe,QAAQ,SAAW,QAAQ,EAC1E,aAAM,OAAS,SAAS,OACjB,KACT,EAEM,aAAe,MAAO,OAAU,CACpC,MAAM,SAAW,MAAM,MAAM,SAAS,aAAa,EAAG,CACpD,OAAQ,OACR,QAAS,CAAE,OAAQ,mBAAoB,eAAgB,kBAAmB,EAC1E,KAAM,KAAK,UAAU,CAAE,KAAM,CAAC,CAChC,CAAC,EACD,GAAI,CAAC,SAAS,GAAI,MAAM,MAAM,cAAc,SAAU,kCAAkC,EACxF,OAAO,SAAS,KAAK,CACvB,EAEM,oBAAsB,MAAO,MAAO,cAAgB,CACxD,MAAM,SAAW,IAAI,SACrB,MAAM,QAAQ,CAAC,KAAM,QAAU,CAC7B,SAAS,IAAI,SAAS,KAAK,QAAS,OAAO,KAAK,EAAE,CAAC,EACnD,SAAS,IAAI,SAAS,KAAK,cAAe,OAAO,KAAK,QAAQ,CAAC,EAC3D,KAAK,WAAW,SAAS,IAAI,SAAS,KAAK,eAAgB,OAAO,KAAK,SAAS,CAAC,EACrF,OAAO,QAAQ,KAAK,YAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAK,KAAK,IAAM,CAC9D,SAAS,IAAI,SAAS,KAAK,iBAAiB,GAAG,IAAK,OAAO,KAAK,CAAC,CACnE,CAAC,CACH,CAAC,EACD,SAAS,IAAI,uCAAwC,YAAa,YAAY,IAAI,EAClF,MAAM,SAAW,MAAM,MAAM,SAAS,aAAa,EAAG,CACpD,OAAQ,OACR,QAAS,CAAE,OAAQ,kBAAmB,EACtC,KAAM,QACR,CAAC,EACD,GAAI,CAAC,SAAS,GAAI,MAAM,MAAM,cAAc,SAAU,0CAA0C,EAChG,OAAO,SAAS,KAAK,CACvB,EAEM,KAAQ,cAAiB,IAAI,QAAS,SAAY,OAAO,WAAW,QAAS,YAAY,CAAC,EAE1F,QAAU,SAAY,CAC1B,MAAM,YAAc,CAAC,IAAK,IAAK,IAAI,EACnC,QAAS,QAAU,EAAG,SAAW,YAAY,OAAQ,SAAW,EAAG,CACjE,MAAM,SAAW,MAAM,MAAM,SAAS,SAAS,EAAG,CAAE,QAAS,CAAE,OAAQ,kBAAmB,CAAE,CAAC,EAC7F,GAAI,SAAS,GAAI,OAAO,SAAS,KAAK,EACtC,GAAI,SAAS,SAAW,KAAO,UAAY,YAAY,OACrD,MAAM,MAAM,cAAc,SAAU,yBAAyB,EAE/D,MAAM,KAAK,YAAY,OAAO,CAAC,CACjC,CACA,MAAM,IAAI,MAAM,yBAAyB,CAC3C,EAEM,yBAA2B,MAAO,QAAW,CACjD,GAAI,CACF,MAAO,CAAE,GAAG,OAAQ,KAAM,MAAM,QAAQ,EAAG,oBAAqB,EAAM,CACxE,OAAS,MAAO,CACd,GAAI,MAAM,SAAW,IAAK,MAAM,MAChC,MAAO,CAAE,GAAG,OAAQ,KAAM,KAAM,oBAAqB,EAAK,CAC5D,CACF,EAEA,OAAO,kBAAoB,CACzB,MAAM,IAAI,CAAE,KAAM,YAAa,OAAQ,EAAG,CACxC,MAAM,KAAO,SAAS,UAAU,EAChC,OAAK,MAKL,MAAM,oBAAoB,YAAY,MAAO,IAAI,EAC1C,yBAAyB,CAAE,WAAY,EAAK,CAAC,IALlD,MAAM,aAAa,YAAY,KAAK,EAC7B,yBAAyB,CAAE,WAAY,EAAM,CAAC,EAKzD,CACF,CACF,GAAG",
  "names": []
}
