bitsnap-react 1.18.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/AGENTS.md +106 -0
  2. package/README.md +98 -0
  3. package/dist/BitsnapCart-E72W5RRZ.mjs +2 -0
  4. package/dist/BitsnapCart-LHJ6KOTV.css +2 -0
  5. package/dist/BitsnapCart-LHJ6KOTV.css.map +1 -0
  6. package/dist/BitsnapCart-Q2HER6GU.js +2 -0
  7. package/dist/BitsnapCart-Q2HER6GU.js.map +1 -0
  8. package/dist/CartProvider-677CE2FI.js +2 -0
  9. package/dist/CartProvider-677CE2FI.js.map +1 -0
  10. package/dist/CartProvider-YPDOFSYC.mjs +2 -0
  11. package/dist/{PanelModelFiles-JZFSF7BF.mjs → PanelModelFiles-4B2HYGIE.mjs} +2 -2
  12. package/dist/{PanelModelFiles-7HPXWONN.js → PanelModelFiles-EKQRLF46.js} +2 -2
  13. package/dist/PanelModelFiles-EKQRLF46.js.map +1 -0
  14. package/dist/analytics.js +1 -1
  15. package/dist/analytics.js.map +1 -1
  16. package/dist/analytics.mjs +1 -1
  17. package/dist/catalog.js +1 -1
  18. package/dist/catalog.js.map +1 -1
  19. package/dist/catalog.mjs +1 -1
  20. package/dist/chat.css +2 -0
  21. package/dist/chat.css.map +1 -0
  22. package/dist/chat.d.mts +172 -0
  23. package/dist/chat.d.ts +172 -0
  24. package/dist/chat.js +2 -0
  25. package/dist/chat.js.map +1 -0
  26. package/dist/chat.mjs +2 -0
  27. package/dist/chat.mjs.map +1 -0
  28. package/dist/chunk-2FD2QP4Y.js +2 -0
  29. package/dist/chunk-2FD2QP4Y.js.map +1 -0
  30. package/dist/chunk-5JRUPLXY.mjs +2 -0
  31. package/dist/chunk-5JRUPLXY.mjs.map +1 -0
  32. package/dist/chunk-5M6M7FAR.mjs +2 -0
  33. package/dist/chunk-5M6M7FAR.mjs.map +1 -0
  34. package/dist/chunk-6Q3VGPSF.js.map +1 -1
  35. package/dist/chunk-AAC576BC.mjs +5 -0
  36. package/dist/chunk-AAC576BC.mjs.map +1 -0
  37. package/dist/{chunk-4OVOKGGS.mjs → chunk-AB37DWOK.mjs} +2 -2
  38. package/dist/{chunk-ZATPBYOA.js → chunk-BUYTK7KM.js} +2 -2
  39. package/dist/chunk-BUYTK7KM.js.map +1 -0
  40. package/dist/{chunk-DP2NOHCI.js → chunk-D2ASWUXM.js} +2 -2
  41. package/dist/chunk-D2ASWUXM.js.map +1 -0
  42. package/dist/chunk-DDIEFKNP.mjs +2 -0
  43. package/dist/{chunk-ZHTMK5TA.mjs.map → chunk-DDIEFKNP.mjs.map} +1 -1
  44. package/dist/{chunk-4HGZZJEL.js → chunk-DOJICJCQ.js} +2 -2
  45. package/dist/chunk-DOJICJCQ.js.map +1 -0
  46. package/dist/chunk-EMR4YXNY.mjs +2 -0
  47. package/dist/chunk-EMR4YXNY.mjs.map +1 -0
  48. package/dist/{chunk-JA62KNAQ.js → chunk-GJOGATP6.js} +2 -2
  49. package/dist/chunk-GJOGATP6.js.map +1 -0
  50. package/dist/chunk-GQ5OKU74.js +2 -0
  51. package/dist/chunk-GQ5OKU74.js.map +1 -0
  52. package/dist/chunk-JSDGZ4NY.js.map +1 -1
  53. package/dist/chunk-KHQEDQYF.js +5 -0
  54. package/dist/chunk-KHQEDQYF.js.map +1 -0
  55. package/dist/chunk-KOYBZORL.js.map +1 -1
  56. package/dist/chunk-LGPNJ5XE.js +2 -0
  57. package/dist/chunk-LGPNJ5XE.js.map +1 -0
  58. package/dist/chunk-MDAFPGPA.js +2 -0
  59. package/dist/chunk-MDAFPGPA.js.map +1 -0
  60. package/dist/{chunk-JHJ3ZZF4.mjs → chunk-MMLBQHBM.mjs} +2 -2
  61. package/dist/chunk-MWWEPEU2.js +2 -0
  62. package/dist/chunk-MWWEPEU2.js.map +1 -0
  63. package/dist/{chunk-GEBRXFT3.mjs → chunk-N523LFAM.mjs} +2 -2
  64. package/dist/chunk-NWXZ45TV.js +2 -0
  65. package/dist/chunk-NWXZ45TV.js.map +1 -0
  66. package/dist/chunk-OFPRIENJ.mjs +2 -0
  67. package/dist/chunk-OFPRIENJ.mjs.map +1 -0
  68. package/dist/chunk-OR566YJI.mjs +2 -0
  69. package/dist/chunk-OR566YJI.mjs.map +1 -0
  70. package/dist/chunk-Q337IQNA.js +2 -0
  71. package/dist/chunk-Q337IQNA.js.map +1 -0
  72. package/dist/chunk-SCEWYZUZ.mjs +2 -0
  73. package/dist/chunk-SCEWYZUZ.mjs.map +1 -0
  74. package/dist/{chunk-CF45RDMD.mjs → chunk-SSSF64M7.mjs} +2 -2
  75. package/dist/{chunk-CF45RDMD.mjs.map → chunk-SSSF64M7.mjs.map} +1 -1
  76. package/dist/chunk-W3RGQYPD.js.map +1 -1
  77. package/dist/chunk-WG54EHST.mjs +2 -0
  78. package/dist/chunk-WG54EHST.mjs.map +1 -0
  79. package/dist/chunk-XEXPQFKN.mjs +2 -0
  80. package/dist/chunk-XEXPQFKN.mjs.map +1 -0
  81. package/dist/chunk-YV2C276H.js +2 -0
  82. package/dist/chunk-YV2C276H.js.map +1 -0
  83. package/dist/consent.js.map +1 -1
  84. package/dist/course.d.mts +2 -14
  85. package/dist/course.d.ts +2 -14
  86. package/dist/course.js +1 -1
  87. package/dist/course.js.map +1 -1
  88. package/dist/course.mjs +1 -1
  89. package/dist/course.mjs.map +1 -1
  90. package/dist/embed/analytics.js +1 -1
  91. package/dist/errors.js.map +1 -1
  92. package/dist/index.css +1 -1
  93. package/dist/index.css.map +1 -1
  94. package/dist/index.d.mts +288 -4
  95. package/dist/index.d.ts +288 -4
  96. package/dist/index.js +1 -1
  97. package/dist/index.js.map +1 -1
  98. package/dist/index.mjs +1 -1
  99. package/dist/index.mjs.map +1 -1
  100. package/dist/internal.js.map +1 -1
  101. package/dist/methods-64D5DD6K.js +2 -0
  102. package/dist/methods-64D5DD6K.js.map +1 -0
  103. package/dist/methods-NQA3DFLE.mjs +2 -0
  104. package/dist/methods-NQA3DFLE.mjs.map +1 -0
  105. package/dist/model-files-client-P4PORZJ6.js.map +1 -1
  106. package/dist/models.js.map +1 -1
  107. package/dist/returns.js +1 -1
  108. package/dist/returns.js.map +1 -1
  109. package/dist/returns.mjs +1 -1
  110. package/dist/texts-9kfgClsA.d.mts +14 -0
  111. package/dist/texts-9kfgClsA.d.ts +14 -0
  112. package/dist/{types-D6LsoycW.d.mts → types-B-sjyZQs.d.mts} +7 -1
  113. package/dist/{types-ClFCVzk_.d.ts → types-iRe6ix2y.d.ts} +7 -1
  114. package/dist/viewer3d.js.map +1 -1
  115. package/dist/viewer3d.mjs +1 -1
  116. package/dist/viewer3d.mjs.map +1 -1
  117. package/dist/widgets-BT2LN2Nq.d.mts +547 -0
  118. package/dist/widgets-BVOSj9fU.d.ts +547 -0
  119. package/package.json +18 -3
  120. package/dist/CartProvider-OEI526IN.js +0 -2
  121. package/dist/CartProvider-OEI526IN.js.map +0 -1
  122. package/dist/CartProvider-RYAA3JDA.mjs +0 -2
  123. package/dist/PanelModelFiles-7HPXWONN.js.map +0 -1
  124. package/dist/chunk-4HGZZJEL.js.map +0 -1
  125. package/dist/chunk-5X7TP3TQ.mjs +0 -2
  126. package/dist/chunk-5X7TP3TQ.mjs.map +0 -1
  127. package/dist/chunk-7RXW6XFY.js +0 -2
  128. package/dist/chunk-7RXW6XFY.js.map +0 -1
  129. package/dist/chunk-DP2NOHCI.js.map +0 -1
  130. package/dist/chunk-EVIDNS22.mjs +0 -2
  131. package/dist/chunk-EVIDNS22.mjs.map +0 -1
  132. package/dist/chunk-G4V2KWTV.js +0 -2
  133. package/dist/chunk-G4V2KWTV.js.map +0 -1
  134. package/dist/chunk-GWF3MRUP.js +0 -2
  135. package/dist/chunk-GWF3MRUP.js.map +0 -1
  136. package/dist/chunk-JA62KNAQ.js.map +0 -1
  137. package/dist/chunk-UPAOIY4R.mjs +0 -2
  138. package/dist/chunk-UPAOIY4R.mjs.map +0 -1
  139. package/dist/chunk-V5ECGBFW.js +0 -5
  140. package/dist/chunk-V5ECGBFW.js.map +0 -1
  141. package/dist/chunk-VNV5BD4X.js +0 -2
  142. package/dist/chunk-VNV5BD4X.js.map +0 -1
  143. package/dist/chunk-VNYHJT6V.mjs +0 -2
  144. package/dist/chunk-VNYHJT6V.mjs.map +0 -1
  145. package/dist/chunk-WJO5GSY3.mjs +0 -5
  146. package/dist/chunk-WJO5GSY3.mjs.map +0 -1
  147. package/dist/chunk-ZATPBYOA.js.map +0 -1
  148. package/dist/chunk-ZHTMK5TA.mjs +0 -2
  149. package/dist/methods-AULQDKVS.mjs +0 -2
  150. package/dist/methods-PMH5VQ25.js +0 -2
  151. package/dist/methods-PMH5VQ25.js.map +0 -1
  152. /package/dist/{CartProvider-RYAA3JDA.mjs.map → BitsnapCart-E72W5RRZ.mjs.map} +0 -0
  153. /package/dist/{methods-AULQDKVS.mjs.map → CartProvider-YPDOFSYC.mjs.map} +0 -0
  154. /package/dist/{PanelModelFiles-JZFSF7BF.mjs.map → PanelModelFiles-4B2HYGIE.mjs.map} +0 -0
  155. /package/dist/{chunk-4OVOKGGS.mjs.map → chunk-AB37DWOK.mjs.map} +0 -0
  156. /package/dist/{chunk-JHJ3ZZF4.mjs.map → chunk-MMLBQHBM.mjs.map} +0 -0
  157. /package/dist/{chunk-GEBRXFT3.mjs.map → chunk-N523LFAM.mjs.map} +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkKOYBZORLjs = require('./chunk-KOYBZORL.js');var _chunk4HGZZJELjs = require('./chunk-4HGZZJEL.js');var _chunkDP2NOHCIjs = require('./chunk-DP2NOHCI.js');var _chunk7RXW6XFYjs = require('./chunk-7RXW6XFY.js');var wt=["root","grid","card","cardLink","image","imagePlaceholder","body","name","description","price","comparePrice","badge","model3dBadge","actions","addToCartButton","selectButton","message","pagination","paginationButton","pageIndicator","emptyState","error","retryButton","skeleton"],Dt={fontFamily:"--bitsnap-products-font-family",gridMinWidth:"--bitsnap-products-grid-min-width",fontSize:"--bitsnap-products-font-size",background:"--bitsnap-products-background",surface:"--bitsnap-products-surface",foreground:"--bitsnap-products-foreground",mutedForeground:"--bitsnap-products-muted-foreground",border:"--bitsnap-products-border",buttonBackground:"--bitsnap-products-button-background",buttonForeground:"--bitsnap-products-button-foreground",buttonHoverBackground:"--bitsnap-products-button-hover-background",hoverSurface:"--bitsnap-products-hover-surface",focusRing:"--bitsnap-products-focus-ring",error:"--bitsnap-products-error",badgeBackground:"--bitsnap-products-badge-background",badgeForeground:"--bitsnap-products-badge-foreground",radius:"--bitsnap-products-radius"},Et={light:{background:"#ffffff",surface:"#f9fafb",foreground:"#18181b",mutedForeground:"#71717a",border:"#e4e4e7",buttonBackground:"#18181b",buttonForeground:"#fafafa",buttonHoverBackground:"#000000",hoverSurface:"#f4f4f5",focusRing:"#71717a",error:"#dc2626",badgeBackground:"#f4f4f5",badgeForeground:"#3f3f46",radius:"8px",gridMinWidth:"9rem"},dark:{background:"#18181b",surface:"#27272a",foreground:"#fafafa",mutedForeground:"#a1a1aa",border:"#3f3f46",buttonBackground:"#fafafa",buttonForeground:"#18181b",buttonHoverBackground:"#e4e4e7",hoverSurface:"#3f3f46",focusRing:"#a1a1aa",error:"#f87171",badgeBackground:"#3f3f46",badgeForeground:"#e4e4e7",radius:"8px",gridMinWidth:"9rem"}},_t=[];function pt(t){let e=_chunkKOYBZORLjs.a.call(void 0, t,{defaultTheme:"light",presets:Et,variables:Dt,shadcnVariables:_t});return{theme:e.theme,tokens:e.tokens,elements:e.elements,boundaryClassName:e.theme,boundaryStyle:e.boundaryStyle}}function W(t,e){return _chunkKOYBZORLjs.b.call(void 0, t.elements,e)}function mt(t,e){try{return new Intl.NumberFormat(t,{style:"currency",currency:e,currencyDisplay:"symbol"})}catch (e2){return}}function H(t,e,r=_chunk7RXW6XFYjs.d){let o=t/100,s=_nullishCoalesce(mt(r,e), () => (mt(_chunk7RXW6XFYjs.d,e)));return s!=null?s.format(o):`${o.toFixed(2)} ${e}`}var _react = require('react');var Nt=24,Ot=48,z=class extends Error{constructor(e,r){super(e),this.name="ProductListError",this.status=r}};function O(t){return t==null||!Number.isFinite(t)?Nt:Math.min(Ot,Math.max(1,Math.floor(t)))}function gt(t,e){return Math.max(1,Math.ceil(t/e))}function B(t){return t.replace(/\/+$/,"")}function Bt(t){let e=new URLSearchParams;e.set("limit",String(t.limit)),e.set("offset",String(t.offset)),t.locale&&e.set("locale",t.locale);let r=_optionalChain([t, 'access', _2 => _2.search, 'optionalAccess', _3 => _3.trim, 'call', _4 => _4()]);return r&&e.set("search",r),`${B(t.host)}/api/integrations/${encodeURIComponent(t.projectID)}/public-commerce/product-list?${e.toString()}`}function Rt(t){return typeof t=="object"&&t!=null&&Array.isArray(t.items)&&typeof t.totalCount=="number"}async function ft(t,e){let r=await fetch(_chunk4HGZZJELjs.c.call(void 0, Bt(t)),{method:"GET",credentials:"omit",headers:{Accept:"application/json"},signal:e});if(!r.ok)throw new z(`Could not load products (${r.status})`,r.status);let o=await r.json();if(!Rt(o))throw new z("Unexpected product list response");return o}function G(t){let{projectID:e,locale:r,search:o,initialData:s}=t,[n]=_react.useState.call(void 0, ()=>_chunk4HGZZJELjs.e),i=_nullishCoalesce(t.host, () => (n)),d=O(t.pageSize),c=JSON.stringify([e,i,_nullishCoalesce(r, () => (null)),_nullishCoalesce(_optionalChain([o, 'optionalAccess', _5 => _5.trim, 'call', _6 => _6()]), () => (null)),d]),[m,l]=_react.useState.call(void 0, {queryKey:c,page:1});m.queryKey!==c&&l({queryKey:c,page:1});let[P,T]=_react.useState.call(void 0, 0),[g,p]=_react.useState.call(void 0, ()=>({requestKey:s!=null?`${c}|1|0`:"",data:s,error:void 0})),f=_nullishCoalesce(_optionalChain([g, 'access', _7 => _7.data, 'optionalAccess', _8 => _8.totalCount]), () => (0)),b=gt(f,d),x=m.queryKey===c?m.page:1,k=f>0?Math.min(x,b):x,S=`${c}|${k}|${P}`,C=g.requestKey===S;_react.useEffect.call(void 0, ()=>{if(C)return;let y=new AbortController;return ft({projectID:e,host:i,locale:r,search:o,limit:d,offset:(k-1)*d},y.signal).then(h=>{y.signal.aborted||p({requestKey:S,data:h,error:void 0})},h=>{y.signal.aborted||p(D=>({requestKey:S,data:D.data,error:h instanceof Error?h:new Error(String(h))}))}),()=>y.abort()},[S,C]);let w=_react.useCallback.call(void 0, y=>{let h=Math.max(1,Math.floor(y));l({queryKey:c,page:f>0?Math.min(h,b):h})},[c,f,b]),A=_react.useCallback.call(void 0, ()=>T(y=>y+1),[]);return _react.useMemo.call(void 0, ()=>({products:_nullishCoalesce(_optionalChain([g, 'access', _9 => _9.data, 'optionalAccess', _10 => _10.items]), () => ([])),totalCount:f,page:k,pageCount:b,setPage:w,isLoading:!C,error:C?g.error:void 0,refetch:A}),[g,f,k,b,w,C,A])}function Pt(t,e){if(t.projectID!=null&&t.projectID!==e.projectID)return{ok:!1,reason:`the page cart already belongs to project "${t.projectID}"`};let r=null,o=e.host?B(e.host):"",s=B(t.host);if(o&&o!==s){if(s!==B(t.defaultHost))return{ok:!1,reason:`the page cart already uses the host "${t.host}"`};r=o}return{ok:!0,setProjectID:t.projectID==null?e.projectID:null,setHost:r}}function Z(t,e){let r=e.cartItemId!=null&&e.cartItemId!==e.id?e.cartItemId:null;t.track("add_to_cart",{qty:1,value_minor:e.price,currency:e.currency},{product_id:e.id,variant_id:r})}async function yt(t,e){let[{Bitsnap:r},{getProjectID:o,setProjectID:s}]=await Promise.all([Promise.resolve().then(() => _interopRequireWildcard(require("./methods-PMH5VQ25.js"))),Promise.resolve().then(() => _interopRequireWildcard(require("./CartProvider-OEI526IN.js")))]),n=Pt({projectID:o(),host:_chunk4HGZZJELjs.e,defaultHost:_chunk4HGZZJELjs.d},e);if(!n.ok)return Ft(n.reason);if(n.setProjectID!=null&&s(n.setProjectID),n.setHost!=null&&_chunk4HGZZJELjs.f.call(void 0, n.setHost),await r.addProductToCart(_nullishCoalesce(t.cartItemId, () => (t.id)),1,void 0,{url:e.url,name:t.name,price:t.price,currency:t.currency,analytics:_chunkDP2NOHCIjs.k})!=null)throw new Error("Could not add the product to the cart");e.analytics!=null&&Z(e.analytics,t),e.showCart&&r.showCart()}function Ft(t){throw console.warn(`bitsnap-react: ProductList did not add to the cart because ${t}. Pass onAddToCart to use another cart.`),new Error("The page cart belongs to another project or host")}var K=50,Ut=1e3;function ht(t,e=Ut){let r=new Set,o=new Map,s=[],n=[],i,d,c=!1;function m(){for(d!==void 0&&clearTimeout(d),d=void 0;s.length>0;){let p=s.slice(0,K),f=n.slice(0,K);s=s.slice(K),n=n.slice(K);try{t({productIds:p,positions:f})}catch (e3){}}}function l(){m();try{_optionalChain([_chunkDP2NOHCIjs.f.call(void 0, ), 'optionalAccess', _11 => _11.flush, 'call', _12 => _12()])}catch (e4){}}let P=()=>{typeof document<"u"&&document.visibilityState==="hidden"&&l()};function T(){c||typeof window>"u"||(c=!0,window.addEventListener("pagehide",l,!0),document.addEventListener("visibilitychange",P,!0))}function g(){if(i)return i;if(!(typeof IntersectionObserver>"u"))return i=new IntersectionObserver(p=>{for(let f of p){let b=o.get(f.target);!b||!f.isIntersecting||f.intersectionRatio<.5||(o.delete(f.target),_optionalChain([i, 'optionalAccess', _13 => _13.unobserve, 'call', _14 => _14(f.target)]),!r.has(b.id)&&(r.add(b.id),s.push(b.id),n.push(b.position)))}s.length>0&&d===void 0&&(d=setTimeout(m,e),_optionalChain([d, 'access', _15 => _15.unref, 'optionalCall', _16 => _16()]))},{threshold:[.5]}),T(),i}return{observe(p,f,b){try{if(r.has(f))return()=>{};let x=g();return x?(o.set(p,{id:f,position:b}),x.observe(p),()=>{o.delete(p),x.unobserve(p)}):()=>{}}catch (e5){return()=>{}}},flush:m,destroy(){try{m(),_optionalChain([i, 'optionalAccess', _17 => _17.disconnect, 'call', _18 => _18()]),c&&(window.removeEventListener("pagehide",l,!0),document.removeEventListener("visibilitychange",P,!0),c=!1)}catch (e6){}i=void 0,o.clear()}}}var Ht={en:{addToCart:"Add to cart",addingToCart:"Adding\u2026",addedToCart:"Added to cart",addToCartError:"Could not add to the cart. Try again.",chooseOptions:"Choose",viewProduct:"View",unavailable:"Unavailable",subscription:"Subscription",model3d:"3D",model3dLabel:"3D model",priceFrom:"from {price}",originalPrice:"Original price",loading:"Loading products",empty:"There are no products to show.",error:"Could not load the products.",retry:"Try again",pagination:"Pagination",previousPage:"Previous",nextPage:"Next",pageOf:"Page {page} of {pageCount}"},pl:{addToCart:"Dodaj do koszyka",addingToCart:"Dodawanie\u2026",addedToCart:"Dodano do koszyka",addToCartError:"Nie uda\u0142o si\u0119 doda\u0107 do koszyka. Spr\xF3buj ponownie.",chooseOptions:"Wybierz",viewProduct:"Zobacz",unavailable:"Niedost\u0119pny",subscription:"Subskrypcja",model3d:"3D",model3dLabel:"Model 3D",priceFrom:"od {price}",originalPrice:"Cena przed obni\u017Ck\u0105",loading:"\u0141adowanie produkt\xF3w",empty:"Brak produkt\xF3w do wy\u015Bwietlenia.",error:"Nie uda\u0142o si\u0119 za\u0142adowa\u0107 produkt\xF3w.",retry:"Spr\xF3buj ponownie",pagination:"Paginacja",previousPage:"Poprzednia",nextPage:"Nast\u0119pna",pageOf:"Strona {page} z {pageCount}"}};function Lt(t,e){return _chunk7RXW6XFYjs.b.call(void 0, Ht,t,e)}function Q(t,e){return t.replace(/\{(\w+)\}/g,(r,o)=>o in e?String(e[o]):r)}var _jsxruntime = require('react/jsx-runtime');var Ct=_react.createContext.call(void 0, void 0),$t={observe:()=>()=>{},clicked:()=>{}},Tt=_react.createContext.call(void 0, $t);function M(){let t=_react.useContext.call(void 0, Ct);if(t==null)throw new Error("ProductList parts must be rendered inside ProductList");return t}function u(t,e){let{appearance:r}=M(),o=W(r,t);return{"data-bitsnap-products-slot":t,className:_chunk4HGZZJELjs.g.call(void 0, e,_optionalChain([o, 'optionalAccess', _19 => _19.className])),style:_optionalChain([o, 'optionalAccess', _20 => _20.style])}}var X="inline-flex cursor-pointer items-center justify-center px-4 py-2 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:opacity-50",St=`${X} w-full`,Kt=`${St} no-underline`;function Vt({product:t,onAdd:e}){let{texts:r}=M(),[o,s]=_react.useState.call(void 0, "idle"),n=u("addToCartButton",St),i=u("message","mt-2 text-xs");_react.useEffect.call(void 0, ()=>{if(o!=="added")return;let m=setTimeout(()=>s("idle"),2e3);return()=>clearTimeout(m)},[o]);let d=_react.useCallback.call(void 0, async()=>{s("adding");try{await e(),s("added")}catch(m){console.error("bitsnap-react: could not add to the cart",m),s("error")}},[e]),c=o==="adding"?r.addingToCart:o==="added"?r.addedToCart:r.addToCart;return _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, "button",{type:"button",...n,disabled:o==="adding","aria-label":`${c}: ${t.name}`,onClick:d,children:c}),o==="error"?_jsxruntime.jsx.call(void 0, "p",{...i,role:"alert",children:r.addToCartError}):null]})}function qt({product:t,position:e,href:r,onAdd:o,renderItem:s}){let{texts:n,locale:i}=M(),d=_react.useContext.call(void 0, Tt),c=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>{if(c.current!=null)return d.observe(c.current,t.id,e)},[d,t.id,e]);let m=_react.useCallback.call(void 0, ()=>d.clicked(t,e),[d,t,e]),l=u("card","relative flex flex-col overflow-hidden border transition-colors"),P=u("cardLink","flex flex-1 flex-col no-underline"),T=u("image","aspect-square w-full overflow-hidden"),g=u("imagePlaceholder","aspect-square w-full"),p=u("body","flex flex-1 flex-col gap-1 p-4"),f=u("name","text-base font-medium leading-snug"),b=u("description","line-clamp-2 text-sm"),x=u("price","mt-auto pt-2 text-base font-semibold"),k=u("comparePrice","ml-2 text-sm font-normal"),S=u("badge","absolute left-3 top-3 px-2 py-0.5 text-xs font-medium"),C=u("model3dBadge","absolute right-3 top-3 inline-flex items-center gap-1 px-2 py-0.5 text-xs font-semibold"),w=u("actions","p-4 pt-0"),A=u("selectButton",Kt),y=H(t.price,t.currency,i),h=t.compareAtPrice!=null&&t.compareAtPrice>t.price?H(t.compareAtPrice,t.currency,i):null;if(s!=null)return _jsxruntime.jsx.call(void 0, "li",{ref:c,...l,"data-unavailable":t.available?void 0:"",children:s(t,{href:r,price:y,compareAtPrice:h,texts:n,locale:i,addToCart:o,trackClick:m})});let D=_nullishCoalesce(_optionalChain([t, 'access', _21 => _21.image, 'optionalAccess', _22 => _22.thumbnailUrl]), () => (_optionalChain([t, 'access', _23 => _23.image, 'optionalAccess', _24 => _24.url]))),E=t.available?t.isRecurring?n.subscription:null:n.unavailable;return _jsxruntime.jsxs.call(void 0, "li",{ref:c,...l,"data-unavailable":t.available?void 0:"",children:[_jsxruntime.jsxs.call(void 0, "a",{...P,href:r,onClick:m,children:[D!=null?_jsxruntime.jsx.call(void 0, "div",{...T,children:_jsxruntime.jsx.call(void 0, "img",{src:D,alt:"",loading:"lazy",decoding:"async",className:"h-full w-full object-cover"})}):_jsxruntime.jsx.call(void 0, "div",{...g,"aria-hidden":"true"}),_jsxruntime.jsxs.call(void 0, "div",{...p,children:[_jsxruntime.jsx.call(void 0, "h3",{...f,children:t.name}),t.shortDescription?_jsxruntime.jsx.call(void 0, "p",{...b,children:t.shortDescription}):null,_jsxruntime.jsxs.call(void 0, "p",{...x,children:[t.priceFrom?Q(n.priceFrom,{price:y}):y,h!=null?_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsxs.call(void 0, "span",{className:"sr-only",children:[n.originalPrice,": "]}),_jsxruntime.jsx.call(void 0, "del",{...k,children:h})]}):null]})]})]}),E!=null?_jsxruntime.jsx.call(void 0, "span",{...S,"data-kind":t.available?"subscription":"unavailable",children:E}):null,t.has3d===!0?_jsxruntime.jsxs.call(void 0, "span",{...C,title:n.model3dLabel,children:[_jsxruntime.jsx.call(void 0, Wt,{}),_jsxruntime.jsx.call(void 0, "span",{"aria-hidden":"true",children:n.model3d}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:n.model3dLabel})]}):null,_jsxruntime.jsx.call(void 0, "div",{...w,children:t.available?t.addToCart?_jsxruntime.jsx.call(void 0, Vt,{product:t,onAdd:o}):_jsxruntime.jsx.call(void 0, "a",{...A,href:r,onClick:m,children:t.variantCount>1?n.chooseOptions:n.viewProduct}):_jsxruntime.jsx.call(void 0, "button",{type:"button",...A,disabled:!0,children:n.unavailable})})]})}function Wt(){return _jsxruntime.jsxs.call(void 0, "svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[_jsxruntime.jsx.call(void 0, "path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"}),_jsxruntime.jsx.call(void 0, "path",{d:"m3.3 7 8.7 5 8.7-5"}),_jsxruntime.jsx.call(void 0, "path",{d:"M12 22V12"})]})}var kt="m-0 grid list-none grid-cols-[repeat(auto-fill,minmax(min(100%,var(--bitsnap-products-grid-min-width,9rem)),1fr))] gap-5 p-0";function Gt({count:t,label:e}){let r=u("grid",kt),o=u("skeleton","aspect-[3/4] animate-pulse");return _jsxruntime.jsx.call(void 0, "div",{...r,role:"status","aria-busy":"true","aria-label":e,children:Array.from({length:t},(s,n)=>_jsxruntime.jsx.call(void 0, "div",{...o,"aria-hidden":"true"},n))})}function Zt({page:t,pageCount:e,isLoading:r,onPage:o}){let{texts:s}=M(),n=u("pagination","mt-8 flex items-center justify-center gap-4"),i=u("paginationButton",X),d=u("pageIndicator","text-sm");return _jsxruntime.jsxs.call(void 0, "nav",{...n,"aria-label":s.pagination,children:[_jsxruntime.jsx.call(void 0, "button",{type:"button",...i,"aria-disabled":r||t<=1,onClick:()=>{!r&&t>1&&o(t-1)},children:s.previousPage}),_jsxruntime.jsx.call(void 0, "span",{...d,"aria-live":"polite",children:Q(s.pageOf,{page:t,pageCount:e})}),_jsxruntime.jsx.call(void 0, "button",{type:"button",...i,"aria-disabled":r||t>=e,onClick:()=>{!r&&t<e&&o(t+1)},children:s.nextPage})]})}function Qt({options:t,productHref:e,renderItem:r,onAddToCart:o,showCartOnAdd:s}){let{texts:n}=M(),{products:i,page:d,pageCount:c,setPage:m,isLoading:l,error:P,refetch:T}=G(t),g=_chunkDP2NOHCIjs.m.call(void 0, ),p=_optionalChain([t, 'access', _25 => _25.search, 'optionalAccess', _26 => _26.trim, 'call', _27 => _27()])?"search":"catalog",f=O(t.pageSize),b=_react.useRef.call(void 0, !1);_react.useEffect.call(void 0, ()=>{b.current||l||P!=null||(b.current=!0,g.track("product_list_viewed",{list_id:p,item_count:i.length}))},[g,l,P,p,i.length]);let x=_react.useMemo.call(void 0, ()=>ht(({productIds:L,positions:I})=>g.track("product_impression",{list_id:p,product_ids:L,positions:I})),[g,p]);_react.useEffect.call(void 0, ()=>()=>x.destroy(),[x]);let k=_react.useMemo.call(void 0, ()=>({observe:x.observe,clicked:(L,I)=>g.track("product_clicked",{list_id:p,position:I},{product_id:L.id})}),[x,g,p]),S=_react.useRef.call(void 0, null),C=_react.useRef.call(void 0, !1),w=_react.useCallback.call(void 0, L=>{C.current=!0,m(L)},[m]);_react.useEffect.call(void 0, ()=>{l||!C.current||(C.current=!1,_optionalChain([S, 'access', _28 => _28.current, 'optionalAccess', _29 => _29.focus, 'call', _30 => _30({preventScroll:!0})]),_optionalChain([S, 'access', _31 => _31.current, 'optionalAccess', _32 => _32.scrollIntoView, 'call', _33 => _33({block:"start"})]))},[l]);let A=u("grid",kt),y=u("emptyState","py-12 text-center text-sm"),h=u("error","flex flex-col items-center gap-3 py-12 text-center text-sm"),D=u("retryButton",X),{projectID:E,host:J}=t,It=_react.useCallback.call(void 0, (L,I)=>async()=>{if(o!=null){await _chunkDP2NOHCIjs.p.call(void 0, ()=>o(L)),Z(g,L);return}await yt(L,{projectID:E,host:J,showCart:s,analytics:g,url:I})},[o,E,J,s,g]),_;return l&&i.length===0?_=_jsxruntime.jsx.call(void 0, Gt,{count:Math.min(O(t.pageSize),8),label:n.loading}):P!=null?_=_jsxruntime.jsxs.call(void 0, "div",{...h,role:"alert",children:[_jsxruntime.jsx.call(void 0, "p",{children:n.error}),_jsxruntime.jsx.call(void 0, "button",{type:"button",...D,onClick:T,children:n.retry})]}):i.length===0?_=_jsxruntime.jsx.call(void 0, "p",{...y,children:n.empty}):_=_jsxruntime.jsx.call(void 0, "ul",{...A,"aria-busy":l||void 0,className:_chunk4HGZZJELjs.g.call(void 0, A.className,l&&"opacity-60"),children:i.map((L,I)=>{let Y=e(L);return _jsxruntime.jsx.call(void 0, qt,{product:L,position:(d-1)*f+I,href:Y,onAdd:It(L,Y),renderItem:r},L.id)})}),_jsxruntime.jsx.call(void 0, Tt.Provider,{value:k,children:_jsxruntime.jsxs.call(void 0, "div",{ref:S,tabIndex:-1,className:"p-1 outline-none scroll-mt-4",children:[_,c>1&&P==null?_jsxruntime.jsx.call(void 0, Zt,{page:d,pageCount:c,isLoading:l,onPage:w}):null]})})}var Xt=t=>`/p/${encodeURIComponent(t.uniqueSlug)}`;function Jt({productHref:t=Xt,appearance:e,texts:r,renderItem:o,onAddToCart:s,showCartOnAdd:n=!0,className:i,analytics:d,...c}){let m=_chunkDP2NOHCIjs.n.call(void 0, c.projectID,d,"catalog"),l=_nullishCoalesce(c.locale, () => (_chunk7RXW6XFYjs.d)),P=_react.useMemo.call(void 0, ()=>pt(e),[e]),T=_react.useMemo.call(void 0, ()=>Lt(l,r),[l,r]),g=_react.useMemo.call(void 0, ()=>({appearance:P,texts:T,locale:l}),[P,T,l]),p=W(P,"root");return _jsxruntime.jsx.call(void 0, _chunkDP2NOHCIjs.l,{value:m,children:_jsxruntime.jsx.call(void 0, Ct.Provider,{value:g,children:_jsxruntime.jsx.call(void 0, "div",{"data-bitsnap-products":"root","data-bitsnap-products-slot":"root",className:_chunk4HGZZJELjs.g.call(void 0, "bitsnap-react",P.boundaryClassName,i,_optionalChain([p, 'optionalAccess', _34 => _34.className])),style:{...P.boundaryStyle,..._optionalChain([p, 'optionalAccess', _35 => _35.style])},children:_jsxruntime.jsx.call(void 0, Qt,{options:c,productHref:t,renderItem:o,onAddToCart:s,showCartOnAdd:n})})})})}exports.a = wt; exports.b = H; exports.c = G; exports.d = Jt;
2
- //# sourceMappingURL=chunk-GWF3MRUP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/emems/web/bitsnap/bitsnap/bitsnap-react/dist/chunk-GWF3MRUP.js","../src/components/products/appearance.ts","../src/components/products/format.ts"],"names":["PRODUCT_LIST_SLOT_NAMES","PRODUCT_LIST_TOKEN_VARIABLES","PRODUCT_LIST_THEME_PRESETS","PRODUCT_LIST_SHADCN_VARIABLES","resolveProductListAppearance","appearance","resolved","resolveAppearanceCore","getProductListSlotAppearance","slot","getSlotAppearance","createFormatter","locale","currency","formatProductPrice","amount","DEFAULT_LOCALE","value","formatter"],"mappings":"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","file":"/home/emems/web/bitsnap/bitsnap/bitsnap-react/dist/chunk-GWF3MRUP.js","sourcesContent":[null,"import type { CSSProperties } from \"react\";\nimport {\n getSlotAppearance,\n resolveAppearanceCore,\n type AppearanceElements,\n type ShadcnVariableMapping,\n type SlotAppearance,\n} from \"@/src/lib/appearance-core\";\n\n/**\n * Product list appearance API.\n *\n * It mirrors `CheckoutAppearance` and `ReturnsAppearance` (theme, tokens,\n * elements) so a shop can reuse one brand object for all of them. The resolver\n * is pure: it turns the caller input into a theme name, the tokens in effect,\n * the slot overrides and the inline style for the theme boundary.\n */\n\nexport type ProductListTheme = \"light\" | \"dark\";\n\nexport type ProductListAppearanceTokens = {\n /** Font family of the list. The library never loads fonts. */\n fontFamily?: string;\n /** Minimum grid track width. Use \"100%\" for one column. */\n gridMinWidth?: string;\n /** Base font size. */\n fontSize?: string;\n /** List background. */\n background?: string;\n /** Raised surfaces: cards, image placeholders, skeletons. */\n surface?: string;\n /** Main text color. */\n foreground?: string;\n /** Secondary text: descriptions, the struck-through price. */\n mutedForeground?: string;\n /** Borders of cards and buttons. */\n border?: string;\n /** \"Add to cart\" button background. */\n buttonBackground?: string;\n /** \"Add to cart\" button text. */\n buttonForeground?: string;\n /** \"Add to cart\" button background on hover. */\n buttonHoverBackground?: string;\n /** Hover surface of cards and secondary buttons. */\n hoverSurface?: string;\n /** Focus ring color. */\n focusRing?: string;\n /** Error and unavailable state color. */\n error?: string;\n /** Badge background (subscription, unavailable). */\n badgeBackground?: string;\n /** Badge text. */\n badgeForeground?: string;\n /** Corner radius of cards, images and buttons. */\n radius?: string;\n};\n\n/**\n * Stable slot names. They are exposed as `data-bitsnap-products-slot`\n * attributes so they can also be targeted from plain CSS.\n */\nexport const PRODUCT_LIST_SLOT_NAMES = [\n \"root\",\n \"grid\",\n \"card\",\n \"cardLink\",\n \"image\",\n \"imagePlaceholder\",\n \"body\",\n \"name\",\n \"description\",\n \"price\",\n \"comparePrice\",\n \"badge\",\n \"model3dBadge\",\n \"actions\",\n \"addToCartButton\",\n \"selectButton\",\n \"message\",\n \"pagination\",\n \"paginationButton\",\n \"pageIndicator\",\n \"emptyState\",\n \"error\",\n \"retryButton\",\n \"skeleton\",\n] as const;\n\nexport type ProductListSlotName = (typeof PRODUCT_LIST_SLOT_NAMES)[number];\n\nexport type ProductListSlotAppearance = SlotAppearance;\n\nexport type ProductListAppearanceElements =\n AppearanceElements<ProductListSlotName>;\n\nexport type ProductListAppearance = {\n /** `\"light\"` or `\"dark\"`. Omitted means `\"light\"`. */\n theme?: ProductListTheme;\n /** Partial overrides applied over the theme preset. */\n tokens?: ProductListAppearanceTokens;\n /** Per element `className`/`style` overrides. */\n elements?: ProductListAppearanceElements;\n};\n\nexport type ResolvedProductListAppearance = {\n theme: ProductListTheme;\n /** Tokens that are in effect (the theme preset plus caller overrides). */\n tokens: ProductListAppearanceTokens;\n elements: ProductListAppearanceElements;\n /** Theme marker class for the theme boundary. */\n boundaryClassName: string;\n /** Inline custom properties applied to the list root. */\n boundaryStyle: CSSProperties;\n};\n\n/** CSS custom property used for each token. */\nexport const PRODUCT_LIST_TOKEN_VARIABLES = {\n fontFamily: \"--bitsnap-products-font-family\",\n gridMinWidth: \"--bitsnap-products-grid-min-width\",\n fontSize: \"--bitsnap-products-font-size\",\n background: \"--bitsnap-products-background\",\n surface: \"--bitsnap-products-surface\",\n foreground: \"--bitsnap-products-foreground\",\n mutedForeground: \"--bitsnap-products-muted-foreground\",\n border: \"--bitsnap-products-border\",\n buttonBackground: \"--bitsnap-products-button-background\",\n buttonForeground: \"--bitsnap-products-button-foreground\",\n buttonHoverBackground: \"--bitsnap-products-button-hover-background\",\n hoverSurface: \"--bitsnap-products-hover-surface\",\n focusRing: \"--bitsnap-products-focus-ring\",\n error: \"--bitsnap-products-error\",\n badgeBackground: \"--bitsnap-products-badge-background\",\n badgeForeground: \"--bitsnap-products-badge-foreground\",\n radius: \"--bitsnap-products-radius\",\n} as const;\n\nexport type ProductListTokenName = keyof typeof PRODUCT_LIST_TOKEN_VARIABLES;\n\n/**\n * Complete palettes. They carry colors and radius only, so typography is never\n * reset implicitly. `products.css` falls back to the light values, which keeps\n * the list usable even when the boundary style is missing.\n */\nexport const PRODUCT_LIST_THEME_PRESETS: Record<\n ProductListTheme,\n ProductListAppearanceTokens\n> = {\n light: {\n background: \"#ffffff\",\n surface: \"#f9fafb\",\n foreground: \"#18181b\",\n mutedForeground: \"#71717a\",\n border: \"#e4e4e7\",\n buttonBackground: \"#18181b\",\n buttonForeground: \"#fafafa\",\n buttonHoverBackground: \"#000000\",\n hoverSurface: \"#f4f4f5\",\n focusRing: \"#71717a\",\n error: \"#dc2626\",\n badgeBackground: \"#f4f4f5\",\n badgeForeground: \"#3f3f46\",\n radius: \"8px\",\n gridMinWidth: \"9rem\",\n },\n dark: {\n background: \"#18181b\",\n surface: \"#27272a\",\n foreground: \"#fafafa\",\n mutedForeground: \"#a1a1aa\",\n border: \"#3f3f46\",\n buttonBackground: \"#fafafa\",\n buttonForeground: \"#18181b\",\n buttonHoverBackground: \"#e4e4e7\",\n hoverSurface: \"#3f3f46\",\n focusRing: \"#a1a1aa\",\n error: \"#f87171\",\n badgeBackground: \"#3f3f46\",\n badgeForeground: \"#e4e4e7\",\n radius: \"8px\",\n gridMinWidth: \"9rem\",\n },\n};\n\n/** The list renders its own elements, so no shared primitive needs remapping. */\nconst PRODUCT_LIST_SHADCN_VARIABLES: ShadcnVariableMapping<ProductListTokenName> =\n [];\n\nexport function resolveProductListAppearance(\n appearance?: ProductListAppearance,\n): ResolvedProductListAppearance {\n const resolved = resolveAppearanceCore<\n ProductListTokenName,\n ProductListTheme,\n ProductListSlotName\n >(appearance, {\n defaultTheme: \"light\",\n presets: PRODUCT_LIST_THEME_PRESETS,\n variables: PRODUCT_LIST_TOKEN_VARIABLES,\n shadcnVariables: PRODUCT_LIST_SHADCN_VARIABLES,\n });\n\n return {\n theme: resolved.theme,\n tokens: resolved.tokens,\n elements: resolved.elements,\n boundaryClassName: resolved.theme,\n boundaryStyle: resolved.boundaryStyle,\n };\n}\n\n/** Caller overrides for a single slot, if any were provided. */\nexport function getProductListSlotAppearance(\n resolved: ResolvedProductListAppearance,\n slot: ProductListSlotName,\n): ProductListSlotAppearance | undefined {\n return getSlotAppearance(resolved.elements, slot);\n}\n","import { DEFAULT_LOCALE } from \"../checkout/locale\";\n\nfunction createFormatter(\n locale: string,\n currency: string,\n): Intl.NumberFormat | undefined {\n try {\n return new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency,\n currencyDisplay: \"symbol\",\n });\n } catch {\n // RangeError: invalid locale or currency code.\n return undefined;\n }\n}\n\n/**\n * Formats a price in minor units (grosze, cents) for the locale, the same way\n * the cart does (`amount / 100`). An unknown locale falls back to Polish and an\n * invalid currency code to a plain number followed by the code.\n */\nexport function formatProductPrice(\n amount: number,\n currency: string,\n locale: string = DEFAULT_LOCALE,\n): string {\n const value = amount / 100;\n const formatter =\n createFormatter(locale, currency) ??\n createFormatter(DEFAULT_LOCALE, currency);\n\n return formatter != null\n ? formatter.format(value)\n : `${value.toFixed(2)} ${currency}`;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/emems/web/bitsnap/bitsnap/bitsnap-react/dist/chunk-JA62KNAQ.js","../src/components/returns/state-machine.ts","../src/components/returns/BitsnapReturns.tsx"],"names":["STEPS_WITH_SESSION","stepRequiresSession","step","initialReturnsStep","hasSession","reduceReturnsStep","event","STEP_NUMBERS","RETURNS_STEP_COUNT","returnsStepNumber","StepIndicator","current","text","useReturnsText","slot","useReturnsSlot","jsx","cn","ReturnsRouter","panelToken","logo","status","challenge","projectID","useReturnsContext","locale","useReturnsLocale","dispatch","useReducer","useEffect","restored","useRef","SkeletonRows","stepNumber","loginStep","jsxs","LoginBrandLogo","ReturnsEmailStep","ReturnsCodeStep","ReturnsOrderList","orderId","ReturnsOrderDetail","items","note","ReturnsConfirmation","returnId","ReturnsResult","ReturnsMyReturnsList","ReturnsMyReturnDetail","BitsnapReturns","showLogo","logoUrl","logoDarkUrl","props","ReturnsProvider"],"mappings":"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","file":"/home/emems/web/bitsnap/bitsnap/bitsnap-react/dist/chunk-JA62KNAQ.js","sourcesContent":[null,"/** One line chosen for return. */\nexport type SelectedReturnLine = {\n lineId: string;\n quantity: number;\n};\n\n/** Where the default flow of `BitsnapReturns` currently is. */\nexport type ReturnsStep =\n | { name: \"email\" }\n | { name: \"code\" }\n | { name: \"orders\" }\n | {\n name: \"order\";\n orderId: string;\n /** Selection to restore when coming back from the confirmation. */\n items?: SelectedReturnLine[];\n note?: string;\n }\n | {\n name: \"confirmation\";\n orderId: string;\n items: SelectedReturnLine[];\n note: string;\n }\n | { name: \"result\"; returnId: string }\n | { name: \"myReturns\" }\n | { name: \"myReturn\"; returnId: string };\n\nexport type ReturnsStepName = ReturnsStep[\"name\"];\n\nexport type ReturnsStepEvent =\n /** A verification code was requested. */\n | { type: \"CODE_SENT\" }\n /** The session became valid: code verified, stored session or panel token. */\n | { type: \"AUTHENTICATED\" }\n /** The session was dropped by the backend, expiry or logout. */\n | { type: \"SESSION_EXPIRED\" }\n | { type: \"SELECT_ORDER\"; orderId: string }\n | { type: \"REVIEW\"; items: SelectedReturnLine[]; note: string }\n | { type: \"SUBMITTED\"; returnId: string }\n | { type: \"OPEN_MY_RETURNS\" }\n | { type: \"SELECT_RETURN\"; returnId: string }\n | { type: \"BACK\" }\n /** Leave the result screen for the order list. */\n | { type: \"CONTINUE\" };\n\nconst STEPS_WITH_SESSION: readonly ReturnsStepName[] = [\n \"orders\",\n \"order\",\n \"confirmation\",\n \"result\",\n \"myReturns\",\n \"myReturn\",\n];\n\n/** Steps that cannot be shown without a returns session. */\nexport function stepRequiresSession(step: ReturnsStepName): boolean {\n return STEPS_WITH_SESSION.includes(step);\n}\n\n/** Starts at the orders when a session exists, otherwise at the email. */\nexport function initialReturnsStep(hasSession: boolean): ReturnsStep {\n return hasSession ? { name: \"orders\" } : { name: \"email\" };\n}\n\n/**\n * Pure transition function of the default flow. Events that do not apply to\n * the current step leave it unchanged.\n */\nexport function reduceReturnsStep(\n step: ReturnsStep,\n event: ReturnsStepEvent,\n): ReturnsStep {\n switch (event.type) {\n case \"SESSION_EXPIRED\":\n // Email and code do not need a session; keep a pending verification.\n return stepRequiresSession(step.name) ? { name: \"email\" } : step;\n case \"CODE_SENT\":\n return step.name === \"email\" ? { name: \"code\" } : step;\n case \"AUTHENTICATED\":\n return step.name === \"email\" || step.name === \"code\"\n ? { name: \"orders\" }\n : step;\n case \"SELECT_ORDER\":\n return step.name === \"orders\"\n ? { name: \"order\", orderId: event.orderId }\n : step;\n case \"REVIEW\":\n return step.name === \"order\"\n ? {\n name: \"confirmation\",\n orderId: step.orderId,\n items: event.items,\n note: event.note,\n }\n : step;\n case \"SUBMITTED\":\n return step.name === \"confirmation\"\n ? { name: \"result\", returnId: event.returnId }\n : step;\n case \"OPEN_MY_RETURNS\":\n return step.name === \"orders\" || step.name === \"result\"\n ? { name: \"myReturns\" }\n : step;\n case \"SELECT_RETURN\":\n return step.name === \"myReturns\"\n ? { name: \"myReturn\", returnId: event.returnId }\n : step;\n case \"CONTINUE\":\n return step.name === \"result\" ? { name: \"orders\" } : step;\n case \"BACK\":\n switch (step.name) {\n case \"code\":\n return { name: \"email\" };\n case \"order\":\n case \"myReturns\":\n return { name: \"orders\" };\n case \"confirmation\":\n return {\n name: \"order\",\n orderId: step.orderId,\n items: step.items,\n note: step.note,\n };\n case \"myReturn\":\n return { name: \"myReturns\" };\n default:\n return step;\n }\n }\n}\n\nconst STEP_NUMBERS: Partial<Record<ReturnsStepName, number>> = {\n email: 1,\n code: 2,\n orders: 3,\n order: 4,\n confirmation: 5,\n result: 6,\n};\n\nexport const RETURNS_STEP_COUNT = 6;\n\n/** Position of a step in the return flow, `undefined` for the \"my returns\" views. */\nexport function returnsStepNumber(step: ReturnsStepName): number | undefined {\n return STEP_NUMBERS[step];\n}\n","import { useEffect, useReducer, useRef } from \"react\";\nimport { cn } from \"@/src/lib/utils\";\nimport {\n LoginBrandLogo,\n type LoginLogoOptions,\n} from \"@/src/ui/email-code-login/LoginBrandLogo\";\nimport { useReturnsSlot } from \"./appearance.context\";\nimport { ReturnsCodeStep, ReturnsEmailStep } from \"./AuthSteps\";\nimport { SkeletonRows } from \"./internal\";\nimport { ReturnsMyReturnDetail, ReturnsMyReturnsList } from \"./MyReturns\";\nimport {\n ReturnsConfirmation,\n ReturnsOrderDetail,\n ReturnsOrderList,\n ReturnsResult,\n} from \"./OrderSteps\";\nimport {\n ReturnsProvider,\n useReturnsContext,\n type ReturnsProviderProps,\n} from \"./ReturnsProvider\";\nimport {\n initialReturnsStep,\n reduceReturnsStep,\n RETURNS_STEP_COUNT,\n returnsStepNumber,\n} from \"./state-machine\";\nimport { useReturnsLocale, useReturnsText } from \"./texts.context\";\n\n/**\n * Props of {@link BitsnapReturns}. `showLogo`, `logoUrl` and `logoDarkUrl` set\n * the shop logo above the e-mail and code steps: by default the logo from the\n * shop settings, or Bitsnap's when the shop has none.\n */\nexport type BitsnapReturnsProps = Omit<ReturnsProviderProps, \"children\"> &\n LoginLogoOptions;\n\nfunction StepIndicator({ current }: { current: number }) {\n const text = useReturnsText();\n const slot = useReturnsSlot(\"stepIndicator\");\n\n return (\n <p\n data-bitsnap-returns-slot=\"stepIndicator\"\n className={cn(\"text-xs\", slot.className)}\n style={slot.style}\n >\n {text(\"stepIndicator\", { current, total: RETURNS_STEP_COUNT })}\n </p>\n );\n}\n\n/** Default step router. All transitions come from the pure state machine. */\nfunction ReturnsRouter({\n panelToken,\n logo,\n}: {\n panelToken: boolean;\n logo: LoginLogoOptions;\n}) {\n const { status, challenge, projectID } = useReturnsContext(\"BitsnapReturns\");\n const locale = useReturnsLocale();\n const [step, dispatch] = useReducer(\n reduceReturnsStep,\n initialReturnsStep(false),\n );\n\n // A valid session (verified code, stored session, exchanged panel token)\n // moves on to the orders; a dropped one returns to the start.\n useEffect(() => {\n if (status === \"authenticated\") {\n dispatch({ type: \"AUTHENTICATED\" });\n } else if (status === \"anonymous\") {\n dispatch({ type: \"SESSION_EXPIRED\" });\n }\n }, [status]);\n\n // A verification that was pending before a reload or an app switch returns\n // to the code step once, when the stored state has been read.\n const restored = useRef(false);\n useEffect(() => {\n if (restored.current || status === \"hydrating\") {\n return;\n }\n restored.current = true;\n if (status === \"anonymous\" && challenge != null) {\n dispatch({ type: \"CODE_SENT\" });\n }\n }, [status, challenge]);\n\n // Without a panel token the server render and the first client render show\n // the email step; a stored session switches to the orders after hydration.\n if (status === \"exchanging\" || (status === \"hydrating\" && panelToken)) {\n return <SkeletonRows />;\n }\n\n const stepNumber = returnsStepNumber(step.name);\n\n // The logo sits above the step indicator, and stays mounted between the\n // e-mail and the code step; the steps themselves then show none.\n const loginStep = step.name === \"email\" || step.name === \"code\";\n\n return (\n <div className=\"flex flex-col gap-4\">\n {loginStep && (\n <LoginBrandLogo projectId={projectID} locale={locale} {...logo} />\n )}\n {stepNumber != null && <StepIndicator current={stepNumber} />}\n {step.name === \"email\" && (\n <ReturnsEmailStep\n showLogo={false}\n onSubmitted={() => dispatch({ type: \"CODE_SENT\" })}\n />\n )}\n {step.name === \"code\" && (\n <ReturnsCodeStep\n showLogo={false}\n onVerified={() => dispatch({ type: \"AUTHENTICATED\" })}\n onBack={() => dispatch({ type: \"BACK\" })}\n />\n )}\n {step.name === \"orders\" && (\n <ReturnsOrderList\n showLogout={!panelToken}\n onSelectOrder={(orderId) =>\n dispatch({ type: \"SELECT_ORDER\", orderId })\n }\n onOpenMyReturns={() => dispatch({ type: \"OPEN_MY_RETURNS\" })}\n />\n )}\n {step.name === \"order\" && (\n <ReturnsOrderDetail\n orderId={step.orderId}\n initialItems={step.items}\n initialNote={step.note}\n onBack={() => dispatch({ type: \"BACK\" })}\n onContinue={({ items, note }) =>\n dispatch({ type: \"REVIEW\", items, note })\n }\n />\n )}\n {step.name === \"confirmation\" && (\n <ReturnsConfirmation\n orderId={step.orderId}\n items={step.items}\n note={step.note}\n onBack={() => dispatch({ type: \"BACK\" })}\n onSubmitted={(returnId) =>\n dispatch({ type: \"SUBMITTED\", returnId })\n }\n />\n )}\n {step.name === \"result\" && (\n <ReturnsResult\n returnId={step.returnId}\n onContinue={() => dispatch({ type: \"CONTINUE\" })}\n onOpenMyReturns={() => dispatch({ type: \"OPEN_MY_RETURNS\" })}\n />\n )}\n {step.name === \"myReturns\" && (\n <ReturnsMyReturnsList\n onSelectReturn={(returnId) =>\n dispatch({ type: \"SELECT_RETURN\", returnId })\n }\n onBack={() => dispatch({ type: \"BACK\" })}\n />\n )}\n {step.name === \"myReturn\" && (\n <ReturnsMyReturnDetail\n returnId={step.returnId}\n onBack={() => dispatch({ type: \"BACK\" })}\n />\n )}\n </div>\n );\n}\n\n/**\n * Customer return flow: email, code, orders, line selection, confirmation and\n * result, plus the list of earlier returns. It is `ReturnsProvider` with the\n * default step router; compose your own page from the step components to\n * change the layout.\n *\n * ```tsx\n * <BitsnapReturns projectID=\"…\" appearance={brand} texts={{ emailStepTitle: \"Return a product\" }} />\n * ```\n */\nexport function BitsnapReturns({\n showLogo,\n logoUrl,\n logoDarkUrl,\n ...props\n}: BitsnapReturnsProps) {\n return (\n <ReturnsProvider {...props}>\n <ReturnsRouter\n panelToken={props.panelAccessToken != null && props.panelAccessToken !== \"\"}\n logo={{ showLogo, logoUrl, logoDarkUrl }}\n />\n </ReturnsProvider>\n );\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{c as u,d,e as p,f as m}from"./chunk-GEBRXFT3.mjs";import{k as l}from"./chunk-CF45RDMD.mjs";import{d as c}from"./chunk-VNYHJT6V.mjs";function f(t,r){try{return new Intl.NumberFormat(t,{style:"currency",currency:r,currencyDisplay:"symbol"})}catch{return}}function L(t,r,o=c){let e=t/100,n=f(o,r)??f(c,r);return n!=null?n.format(e):`${e.toFixed(2)} ${r}`}var P=24,g=48,i=class extends Error{status;constructor(r,o){super(r),this.name="ProductListError",this.status=o}};function T(t){return t==null||!Number.isFinite(t)?P:Math.min(g,Math.max(1,Math.floor(t)))}function A(t,r){return Math.max(1,Math.ceil(t/r))}function a(t){return t.replace(/\/+$/,"")}function I(t){let r=new URLSearchParams;r.set("limit",String(t.limit)),r.set("offset",String(t.offset)),t.locale&&r.set("locale",t.locale);let o=t.search?.trim();return o&&r.set("search",o),`${a(t.host)}/api/integrations/${encodeURIComponent(t.projectID)}/public-commerce/product-list?${r.toString()}`}function y(t){return typeof t=="object"&&t!=null&&Array.isArray(t.items)&&typeof t.totalCount=="number"}async function H(t,r){let o=await fetch(u(I(t)),{method:"GET",credentials:"omit",headers:{Accept:"application/json"},signal:r});if(!o.ok)throw new i(`Could not load products (${o.status})`,o.status);let e=await o.json();if(!y(e))throw new i("Unexpected product list response");return e}function h(t,r){if(t.projectID!=null&&t.projectID!==r.projectID)return{ok:!1,reason:`the page cart already belongs to project "${t.projectID}"`};let o=null,e=r.host?a(r.host):"",n=a(t.host);if(e&&e!==n){if(n!==a(t.defaultHost))return{ok:!1,reason:`the page cart already uses the host "${t.host}"`};o=e}return{ok:!0,setProjectID:t.projectID==null?r.projectID:null,setHost:o}}function b(t,r){let o=r.cartItemId!=null&&r.cartItemId!==r.id?r.cartItemId:null;t.track("add_to_cart",{qty:1,value_minor:r.price,currency:r.currency},{product_id:r.id,variant_id:o})}async function M(t,r){let[{Bitsnap:o},{getProjectID:e,setProjectID:n}]=await Promise.all([import("./methods-AULQDKVS.mjs"),import("./CartProvider-RYAA3JDA.mjs")]),s=h({projectID:e(),host:p,defaultHost:d},r);if(!s.ok)return C(s.reason);if(s.setProjectID!=null&&n(s.setProjectID),s.setHost!=null&&m(s.setHost),await o.addProductToCart(t.cartItemId??t.id,1,void 0,{url:r.url,name:t.name,price:t.price,currency:t.currency,analytics:l})!=null)throw new Error("Could not add the product to the cart");r.analytics!=null&&b(r.analytics,t),r.showCart&&o.showCart()}function C(t){throw console.warn(`bitsnap-react: ProductList did not add to the cart because ${t}. Pass onAddToCart to use another cart.`),new Error("The page cart belongs to another project or host")}export{T as a,A as b,H as c,b as d,M as e,L as f};
2
- //# sourceMappingURL=chunk-UPAOIY4R.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/products/format.ts","../src/components/products/fetch.ts","../src/components/products/cart-target.ts","../src/components/products/add-to-cart.ts"],"sourcesContent":["import { DEFAULT_LOCALE } from \"../checkout/locale\";\n\nfunction createFormatter(\n locale: string,\n currency: string,\n): Intl.NumberFormat | undefined {\n try {\n return new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency,\n currencyDisplay: \"symbol\",\n });\n } catch {\n // RangeError: invalid locale or currency code.\n return undefined;\n }\n}\n\n/**\n * Formats a price in minor units (grosze, cents) for the locale, the same way\n * the cart does (`amount / 100`). An unknown locale falls back to Polish and an\n * invalid currency code to a plain number followed by the code.\n */\nexport function formatProductPrice(\n amount: number,\n currency: string,\n locale: string = DEFAULT_LOCALE,\n): string {\n const value = amount / 100;\n const formatter =\n createFormatter(locale, currency) ??\n createFormatter(DEFAULT_LOCALE, currency);\n\n return formatter != null\n ? formatter.format(value)\n : `${value.toFixed(2)} ${currency}`;\n}\n","import { withClientParam } from \"@/src/lib/client-header\";\nimport type { BitsnapModels } from \"@/src/models\";\n\nexport type PublicListProduct = BitsnapModels.PublicListProduct;\nexport type ProductListData = BitsnapModels.ProductListResponse;\n\nexport const DEFAULT_PAGE_SIZE = 24;\nexport const MAX_PAGE_SIZE = 48;\n\nexport type ProductListQuery = {\n projectID: string;\n /** Origin of the Bitsnap backend (or of a custom domain), without a path. */\n host: string;\n locale?: string;\n search?: string;\n limit: number;\n offset: number;\n};\n\nexport class ProductListError extends Error {\n readonly status: number | undefined;\n\n constructor(message: string, status?: number) {\n super(message);\n this.name = \"ProductListError\";\n this.status = status;\n }\n}\n\n/** Page size within what the backend accepts (1 to 48, default 24). */\nexport function clampPageSize(pageSize?: number): number {\n if (pageSize == null || !Number.isFinite(pageSize)) {\n return DEFAULT_PAGE_SIZE;\n }\n return Math.min(MAX_PAGE_SIZE, Math.max(1, Math.floor(pageSize)));\n}\n\nexport function pageCountFor(totalCount: number, pageSize: number): number {\n return Math.max(1, Math.ceil(totalCount / pageSize));\n}\n\n/** Origin without trailing slashes, so equal hosts compare equal as strings. */\nexport function normalizeHost(host: string): string {\n return host.replace(/\\/+$/, \"\");\n}\n\nexport function buildProductListURL(query: ProductListQuery): string {\n const params = new URLSearchParams();\n params.set(\"limit\", String(query.limit));\n params.set(\"offset\", String(query.offset));\n if (query.locale) {\n params.set(\"locale\", query.locale);\n }\n const search = query.search?.trim();\n if (search) {\n params.set(\"search\", search);\n }\n\n const host = normalizeHost(query.host);\n return `${host}/api/integrations/${encodeURIComponent(\n query.projectID,\n )}/public-commerce/product-list?${params.toString()}`;\n}\n\nfunction isProductListData(value: unknown): value is ProductListData {\n return (\n typeof value === \"object\" &&\n value != null &&\n Array.isArray((value as ProductListData).items) &&\n typeof (value as ProductListData).totalCount === \"number\"\n );\n}\n\n/**\n * Loads one page of the catalog with a plain, credential-less `fetch`. It does\n * not touch the global project ID or host.\n */\nexport async function fetchProductList(\n query: ProductListQuery,\n signal?: AbortSignal,\n): Promise<ProductListData> {\n const response = await fetch(withClientParam(buildProductListURL(query)), {\n method: \"GET\",\n credentials: \"omit\",\n headers: { Accept: \"application/json\" },\n signal,\n });\n\n if (!response.ok) {\n throw new ProductListError(\n `Could not load products (${response.status})`,\n response.status,\n );\n }\n\n const payload: unknown = await response.json();\n if (!isProductListData(payload)) {\n throw new ProductListError(\"Unexpected product list response\");\n }\n\n return payload;\n}\n","import { normalizeHost } from \"./fetch\";\n\nexport type CartState = {\n /** Project the page cart is set up for, `null` or `undefined` when none yet. */\n projectID: string | null | undefined;\n /** Backend origin the page cart currently talks to. */\n host: string;\n /** Backend origin used when the page did not choose another one. */\n defaultHost: string;\n};\n\nexport type CartTarget = {\n projectID: string;\n /** Omitted or empty keeps the current host. */\n host?: string;\n};\n\nexport type CartPlan =\n | { ok: true; setProjectID: string | null; setHost: string | null }\n | { ok: false; reason: string };\n\n/**\n * Decides, without changing anything, whether the page cart can serve the\n * target and what has to be filled in first. Both the project and the host are\n * checked before the caller changes either of them, so a refused click leaves\n * the page cart untouched.\n */\nexport function planCartTarget(state: CartState, target: CartTarget): CartPlan {\n if (state.projectID != null && state.projectID !== target.projectID) {\n return {\n ok: false,\n reason: `the page cart already belongs to project \"${state.projectID}\"`,\n };\n }\n\n let setHost: string | null = null;\n const targetHost = target.host ? normalizeHost(target.host) : \"\";\n const currentHost = normalizeHost(state.host);\n if (targetHost && targetHost !== currentHost) {\n if (currentHost !== normalizeHost(state.defaultHost)) {\n return {\n ok: false,\n reason: `the page cart already uses the host \"${state.host}\"`,\n };\n }\n setHost = targetHost;\n }\n\n return {\n ok: true,\n setProjectID: state.projectID == null ? target.projectID : null,\n setHost,\n };\n}\n","import { noopInstrument, type Instrument } from \"@/src/analytics/instrument\";\nimport { DEFAULT_HOST, HOST, setCustomHost } from \"../checkout/constants\";\nimport { planCartTarget } from \"./cart-target\";\nimport type { PublicListProduct } from \"./fetch\";\n\n/** What adding needs; a `PublicListProduct` fits, so does the 3D viewer's product. */\nexport type CartableProduct = Pick<\n PublicListProduct,\n \"id\" | \"cartItemId\" | \"name\" | \"price\" | \"currency\"\n>;\n\nexport type AddToCartTarget = {\n projectID: string;\n /** Backend origin the cart talks to. Omitted or empty keeps the current one. */\n host?: string;\n /** Open the cart drawer afterwards. */\n showCart: boolean;\n /** Product page the cart item links to. */\n url?: string;\n /** Where `add_to_cart` is reported. Omitted: nothing is reported. */\n analytics?: Instrument;\n};\n\n/** `add_to_cart` for a product of the list (quantity 1, price in minor units). */\nexport function trackProductAdded(\n instrument: Instrument,\n product: CartableProduct,\n) {\n const variant =\n product.cartItemId != null && product.cartItemId !== product.id\n ? product.cartItemId\n : null;\n instrument.track(\n \"add_to_cart\",\n { qty: 1, value_minor: product.price, currency: product.currency },\n { product_id: product.id, variant_id: variant },\n );\n}\n\n/**\n * Default \"add to cart\" action of `ProductList`: `Bitsnap.addProductToCart`\n * with quantity 1, then the cart drawer.\n *\n * The checkout is a heavy module (RPC client, cart state, payment buttons), so\n * it is loaded on the first click and never ends up in the first paint of a\n * catalog page. The cart only knows one project and one host at a time, and\n * they are page-wide (the cart is kept in localStorage, `setProjectID` also\n * changes the panel configuration). So the list only fills them in when the\n * page has not set them yet; when the page already works for another project\n * or host, nothing is changed and the call fails (pass `onAddToCart` to the\n * list in that case).\n */\nexport async function addProductToCart(\n product: CartableProduct,\n target: AddToCartTarget,\n): Promise<void> {\n const [{ Bitsnap }, { getProjectID, setProjectID }] = await Promise.all([\n import(\"../checkout/methods\"),\n import(\"../checkout/CartProvider\"),\n ]);\n\n const plan = planCartTarget(\n { projectID: getProjectID(), host: HOST, defaultHost: DEFAULT_HOST },\n target,\n );\n if (!plan.ok) {\n return failConflict(plan.reason);\n }\n if (plan.setProjectID != null) {\n setProjectID(plan.setProjectID);\n }\n if (plan.setHost != null) {\n setCustomHost(plan.setHost);\n }\n\n // Single-variant products are added by their variant, not the product ID.\n const error = await Bitsnap.addProductToCart(\n product.cartItemId ?? product.id,\n 1,\n undefined,\n {\n url: target.url,\n name: product.name,\n price: product.price,\n currency: product.currency,\n // Reported below from the list's own data.\n analytics: noopInstrument,\n },\n );\n if (error != null) {\n throw new Error(\"Could not add the product to the cart\");\n }\n if (target.analytics != null) {\n trackProductAdded(target.analytics, product);\n }\n\n if (target.showCart) {\n Bitsnap.showCart();\n }\n}\n\nfunction failConflict(reason: string): never {\n console.warn(\n `bitsnap-react: ProductList did not add to the cart because ${reason}. ` +\n \"Pass onAddToCart to use another cart.\",\n );\n throw new Error(\"The page cart belongs to another project or host\");\n}\n"],"mappings":"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","names":["createFormatter","locale","currency","formatProductPrice","amount","DEFAULT_LOCALE","value","formatter","DEFAULT_PAGE_SIZE","MAX_PAGE_SIZE","ProductListError","message","status","clampPageSize","pageSize","pageCountFor","totalCount","normalizeHost","host","buildProductListURL","query","params","search","isProductListData","value","fetchProductList","signal","response","withClientParam","payload","planCartTarget","state","target","setHost","targetHost","normalizeHost","currentHost","trackProductAdded","instrument","product","variant","addProductToCart","target","Bitsnap","getProjectID","setProjectID","plan","planCartTarget","HOST","DEFAULT_HOST","failConflict","setCustomHost","noopInstrument","reason"]}
@@ -1,5 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkZATPBYOAjs = require('./chunk-ZATPBYOA.js');var _chunkVNV5BD4Xjs = require('./chunk-VNV5BD4X.js');var _chunkG4V2KWTVjs = require('./chunk-G4V2KWTV.js');var _chunk4HGZZJELjs = require('./chunk-4HGZZJEL.js');var _chunkDP2NOHCIjs = require('./chunk-DP2NOHCI.js');var _chunk7RXW6XFYjs = require('./chunk-7RXW6XFY.js');var _react = require('@formkit/auto-animate/react');var _react3 = require('react');var _jsxruntime = require('react/jsx-runtime');function Ee({className:e,...t}){return _jsxruntime.jsx.call(void 0, "div",{"data-slot":"card",className:_chunk4HGZZJELjs.g.call(void 0, "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...t})}function Oe({className:e,...t}){return _jsxruntime.jsx.call(void 0, "div",{"data-slot":"card-header",className:_chunk4HGZZJELjs.g.call(void 0, "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...t})}function Ue({className:e,...t}){return _jsxruntime.jsx.call(void 0, "div",{"data-slot":"card-title",className:_chunk4HGZZJELjs.g.call(void 0, "leading-none font-semibold",e),...t})}function Tn({className:e,...t}){return _jsxruntime.jsx.call(void 0, "div",{"data-slot":"card-description",className:_chunk4HGZZJELjs.g.call(void 0, "text-muted-foreground text-sm",e),...t})}function Te({className:e,...t}){return _jsxruntime.jsx.call(void 0, "div",{"data-slot":"card-content",className:_chunk4HGZZJELjs.g.call(void 0, "px-6",e),...t})}var _lucidereact = require('lucide-react');var ra="text-muted-foreground text-xs leading-5",na="dark:border-foreground/30 dark:focus-visible:border-foreground/70 dark:focus-visible:ring-foreground/25 dark:aria-invalid:border-destructive-foreground dark:aria-invalid:ring-destructive-foreground/30",oa=new Set(["invalidEmail","emailNotFound","deliveryUnavailable"]),lr="inline-flex min-h-11 items-center px-1 text-sm underline underline-offset-4 hover:no-underline focus-visible:ring-[3px] focus-visible:ring-ring/50 rounded-sm outline-none disabled:opacity-50 disabled:no-underline";function Ln({login:e,texts:t,allowHaveCode:n=!0,emailPlaceholder:a,emailInputId:r,codeInputId:o,className:i,buttonClassName:d,children:c}){let l=_react3.useId.call(void 0, ),b=_nullishCoalesce(r, () => (`${l}-email`)),P=_nullishCoalesce(o, () => (`${l}-code`)),w=`${l}-notice`,h=`${l}-hint`,{notice:y}=e,u=_optionalChain([y, 'optionalAccess', _2 => _2.kind])==="error",m=e.busy==="send",p=e.busy==="verify",x=e.busy==="resend",U=_chunk4HGZZJELjs.g.call(void 0, "h-11 w-full",d),le=_optionalChain([y, 'optionalAccess', _3 => _3.kind])==="success",E=_jsxruntime.jsxs.call(void 0, "div",{id:w,className:"min-h-10 text-sm leading-5",children:[_jsxruntime.jsx.call(void 0, "p",{role:"alert",className:"font-medium text-red-700 dark:text-red-400",children:u?y.text:null}),_jsxruntime.jsxs.call(void 0, "p",{role:"status",className:_chunk4HGZZJELjs.g.call(void 0, "flex items-start gap-1.5",le?"font-medium text-emerald-700 dark:text-emerald-400":"text-foreground"),children:[le&&_jsxruntime.jsx.call(void 0, _lucidereact.CircleCheck,{"aria-hidden":!0,className:"mt-0.5 size-4 shrink-0"}),_jsxruntime.jsx.call(void 0, "span",{children:y!=null&&!u?y.text:null})]})]}),de=u&&e.step==="email"&&(y.failure==null||oa.has(y.failure)),Ce=_jsxruntime.jsx.call(void 0, "p",{className:"sr-only",role:"status","aria-live":"polite",children:e.announcement}),ee=_jsxruntime.jsxs.call(void 0, "div",{className:"grid gap-2",children:[_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.d,{htmlFor:b,children:t.emailLabel}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.r,{id:b,ref:e.emailRef,name:"email",type:"email",autoComplete:"email",inputMode:"email",autoCapitalize:"none",autoCorrect:"off",spellCheck:!1,autoFocus:!0,required:!0,className:_chunk4HGZZJELjs.g.call(void 0, "h-11 text-base disabled:opacity-100 disabled:text-foreground/70",na),placeholder:_nullishCoalesce(a, () => (t.emailPlaceholder)),value:e.email,disabled:e.isBusy,"aria-invalid":de?!0:void 0,"aria-describedby":w,onChange:Y=>e.setEmail(Y.target.value)})]});if(e.step==="email")return _jsxruntime.jsxs.call(void 0, "form",{noValidate:!0,className:_chunk4HGZZJELjs.g.call(void 0, "flex flex-col gap-4",i),onSubmit:Y=>{Y.preventDefault(),e.sendCode()},children:[Ce,ee,E,_jsxruntime.jsxs.call(void 0, _chunkG4V2KWTVjs.q,{type:"submit",disabled:e.isBusy,"aria-busy":m,className:U,children:[m&&_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.e,{"aria-hidden":!0}),m?t.sending:t.sendCode]}),n&&_jsxruntime.jsxs.call(void 0, "p",{className:"flex flex-wrap items-center justify-center text-center text-sm",children:[t.haveCodePrompt!==""&&_jsxruntime.jsx.call(void 0, "span",{children:t.haveCodePrompt}),_jsxruntime.jsx.call(void 0, "button",{type:"button",className:lr,disabled:e.isBusy,onClick:e.haveCode,children:t.haveCode})]})]});let[A,fe]=t.codeSentTo.split("{email}"),J=e.dead!=null,He=J?t.resendNew:e.secondsLeft>0?_chunkZATPBYOAjs.i.call(void 0, t.resendIn,{seconds:e.secondsLeft}):t.resend;return _jsxruntime.jsxs.call(void 0, "form",{noValidate:!0,className:_chunk4HGZZJELjs.g.call(void 0, "flex flex-col gap-4",i),onSubmit:Y=>{Y.preventDefault(),e.submitCode()},children:[Ce,e.needsEmail?ee:_jsxruntime.jsxs.call(void 0, "div",{className:"flex flex-wrap items-center justify-between gap-x-2",children:[_jsxruntime.jsxs.call(void 0, "p",{className:"min-w-0 flex-[1_1_14rem] text-sm leading-5 break-words",children:[A,_jsxruntime.jsx.call(void 0, "strong",{className:"font-semibold",children:e.email}),"\u2060",fe]}),_jsxruntime.jsx.call(void 0, "button",{type:"button",className:_chunk4HGZZJELjs.g.call(void 0, lr,"-ml-1 shrink-0"),disabled:e.isBusy,onClick:e.changeEmail,children:t.changeEmail})]}),c,_jsxruntime.jsxs.call(void 0, "div",{className:"grid gap-2",children:[_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.d,{htmlFor:P,children:t.codeLabel}),_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.k,{id:P,name:"code",inputRef:e.codeRef,value:e.code,onChange:e.setCode,onComplete:Y=>void e.submitCode(Y),disabled:e.isBusy||J,invalid:u&&!e.needsEmail,"aria-describedby":`${w} ${h}`}),_jsxruntime.jsxs.call(void 0, "p",{id:h,className:ra,children:[t.validity," ",t.spamHint]})]}),E,_jsxruntime.jsxs.call(void 0, _chunkG4V2KWTVjs.q,{type:"submit",disabled:e.isBusy||J,"aria-busy":p,className:U,children:[p&&_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.e,{"aria-hidden":!0}),p?t.verifying:t.verify]}),e.needsEmail?_jsxruntime.jsx.call(void 0, "div",{className:"flex justify-center",children:_jsxruntime.jsx.call(void 0, "button",{type:"button",className:lr,disabled:e.isBusy,onClick:e.changeEmail,children:t.noCode})}):_jsxruntime.jsxs.call(void 0, _chunkG4V2KWTVjs.q,{type:"button",variant:J?"default":"outline",disabled:e.isBusy||!J&&e.secondsLeft>0,"aria-busy":x,className:J?U:"h-11 w-full",onClick:()=>void e.resend(),children:[x&&_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.e,{"aria-hidden":!0}),He]})]})}function dr(e){switch(e){case 1:return"emailNotFound";case 2:return"invalidEmail";case 3:return"wrongCode";case 14:return"expired";case 15:return"tooManyAttempts";case 13:return"rateLimited";case 12:return"deliveryFailed";case 11:return"deliveryUnavailable";default:return"unknown"}}var aa={pl:{title:"Zaloguj si\u0119",description:"Wy\u015Blemy do Ciebie kod na maila, dzi\u0119ki kt\xF3remu si\u0119 zalogujesz.",codeTitle:"Wpisz kod z maila",codeDescription:"Kod ma 6 cyfr."},en:{title:"Sign in",description:"We will email you a code that signs you in.",codeTitle:"Enter the code from the email",codeDescription:"The code has 6 digits."}};function Rn(e=_chunk7RXW6XFYjs.f.call(void 0, ),t){return{..._chunkZATPBYOAjs.h.call(void 0, e,t),..._chunk7RXW6XFYjs.a.call(void 0, aa,e),...ia(t,["title","description","codeTitle","codeDescription"])}}function ia(e,t){let n={};for(let a of t){let r=_optionalChain([e, 'optionalAccess', _4 => _4[a]]);r!=null&&(n[a]=r)}return n}var sa="return_url",cr="__return_url",la="accessToken";function gt(e){let t=new URLSearchParams(e).get(sa);return t?An(t):null}function yt(e){typeof window>"u"||(e?window.sessionStorage.setItem(cr,e):window.sessionStorage.removeItem(cr))}function Ye(){if(typeof window>"u")return null;let e=window.sessionStorage.getItem(cr);return e?An(e):null}function da(e,t){return t.some(n=>{if(e===n)return!0;let a=new URL(n).hostname,r=new URL(e).hostname;return r.endsWith(`.${a}`)||r===a})}function An(e){try{let t=new URL(e);return t.protocol!=="https:"&&t.protocol!=="http:"||!da(t.origin,_chunkVNV5BD4Xjs.h.call(void 0, ))?null:t.toString()}catch (e2){return null}}function Ze(e,t){let n=new URL(e);return n.searchParams.set(la,t),n.toString()}if(typeof window<"u"){let t=[window.location.origin,"https://bitsnap.pl","https://kursy.bitsnap.pl"];_chunkVNV5BD4Xjs.h.call(void 0, ).length===0&&_chunkVNV5BD4Xjs.g.call(void 0, Array.from(new Set(t)))}var ua=({texts:e,projectID:t,host:n,locale:a,logo:r})=>{let o=_chunkDP2NOHCIjs.m.call(void 0, ),{mutateAsync:i}=_chunkG4V2KWTVjs.m.call(void 0, _chunkG4V2KWTVjs.k.publicApi.userPanelLogin),{mutateAsync:d}=_chunkG4V2KWTVjs.m.call(void 0, _chunkG4V2KWTVjs.k.publicApi.userPanelLoginWithCode),c=_react3.useMemo.call(void 0, ()=>({async send(h){try{let y=await i({email:h});return y.result.case==="success"?{ok:!0,retryIn:y.result.value.retryIn||void 0,challengeId:y.result.value.challengeId||void 0}:{ok:!1,kind:dr(y.result.case==="failure"?y.result.value:0)}}catch(y){return{ok:!1,kind:_chunkZATPBYOAjs.a.call(void 0, y),cause:y}}},async verify({email:h,code:y,challengeId:u}){try{let m=await d({code:parseInt(y,10),email:h,challengeId:u});return m.result.case==="accessToken"&&m.result.value?{ok:!0,value:{accessToken:m.result.value}}:{ok:!1,kind:dr(m.result.case==="failure"?m.result.value:0)}}catch(m){return{ok:!1,kind:_chunkZATPBYOAjs.a.call(void 0, m),cause:m}}}}),[i,d]),l=_chunkZATPBYOAjs.j.call(void 0, {adapter:c,texts:e,storageKey:_chunkZATPBYOAjs.f.call(void 0, "panel",t,n),onVerified:({accessToken:h},y)=>{o.track("panel_login",{}),_chunkVNV5BD4Xjs.l.call(void 0, t,h,y,n);let u=typeof window<"u"?Ye():null;setTimeout(()=>{if(u){window.location.href=Ze(u,h);return}window.location.reload()},100)}}),b=l.step==="code",P=b&&!l.needsEmail?e.codeTitle:e.title,w=b&&!l.needsEmail?e.codeDescription:e.description;return _jsxruntime.jsx.call(void 0, "main",{className:"mx-auto flex w-full max-w-sm flex-1 flex-col justify-start pt-4 sm:pt-[12vh]",children:_jsxruntime.jsxs.call(void 0, Ee,{children:[_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.c,{projectId:t,locale:a,className:"px-4 sm:px-6",...r}),_jsxruntime.jsxs.call(void 0, Oe,{className:"px-4 sm:px-6",children:[_jsxruntime.jsx.call(void 0, Ue,{role:"heading","aria-level":1,className:"text-2xl",children:P}),_jsxruntime.jsx.call(void 0, Tn,{children:w})]}),_jsxruntime.jsx.call(void 0, Te,{className:"px-4 sm:px-6",children:_jsxruntime.jsx.call(void 0, Ln,{login:l,texts:e,emailInputId:"email",codeInputId:"verify-code"})})]})})},pa=({analytics:e,texts:t,locale:n,showLogo:a,logoUrl:r,logoDarkUrl:o})=>{let{theme:i,allowedReturnOrigins:d,projectID:c,host:l}=_chunkVNV5BD4Xjs.j.call(void 0, ),b=_chunkDP2NOHCIjs.n.call(void 0, c,e,"panel"),P=_react3.useMemo.call(void 0, ()=>Rn(_nullishCoalesce(n, () => (_chunk7RXW6XFYjs.f.call(void 0, ))),t),[n,t]),w={"--button-background-color":_nullishCoalesce(_optionalChain([i, 'optionalAccess', _5 => _5.colors, 'optionalAccess', _6 => _6.brand]), () => ("#FFFFFF")),"--button-background-color-dark":_nullishCoalesce(_optionalChain([i, 'optionalAccess', _7 => _7.colors, 'optionalAccess', _8 => _8.brandDark]), () => ("#000000")),"--button-text-color":_nullishCoalesce(_optionalChain([i, 'optionalAccess', _9 => _9.colors, 'optionalAccess', _10 => _10.brandDark]), () => ("#000000")),"--button-text-color-dark":_nullishCoalesce(_optionalChain([i, 'optionalAccess', _11 => _11.colors, 'optionalAccess', _12 => _12.brand]), () => ("#FFFFFF"))},[h]=_react.useAutoAnimate.call(void 0, {duration:300,easing:"ease-in-out",disrespectUserMotionPreference:!1});return _react3.useEffect.call(void 0, ()=>{typeof window>"u"||_chunkVNV5BD4Xjs.k.call(void 0, c,l)!=null&&(window.location.href=window.location.href.replaceAll("login",""))},[c,l]),_react3.useEffect.call(void 0, ()=>{if(typeof window>"u"||window.parent!==window)return;let y=gt(window.location.search);y&&yt(y);let u=_nullishCoalesce(y, () => (Ye()));if(!u)return;let m=_chunkVNV5BD4Xjs.k.call(void 0, c,l);m&&(window.location.href=Ze(u,m))},[d,c,l]),_jsxruntime.jsx.call(void 0, _chunkDP2NOHCIjs.l,{value:b,children:_jsxruntime.jsx.call(void 0, "div",{className:"bg-white text-black dark:bg-black dark:text-white",children:_jsxruntime.jsx.call(void 0, "div",{className:"font-inter flex min-h-screen w-full flex-col p-4",style:w,ref:h,children:_jsxruntime.jsx.call(void 0, ua,{texts:P,projectID:c,host:l,locale:n,logo:{showLogo:a,logoUrl:_nullishCoalesce(r, () => (_optionalChain([i, 'optionalAccess', _13 => _13.logoURL]))),logoDarkUrl:_nullishCoalesce(o, () => (_optionalChain([i, 'optionalAccess', _14 => _14.logoDarkURL])))}})})})})},ma= exports.k =(e={})=>_jsxruntime.jsx.call(void 0, pa,{...e});function Un(e){let[t,n]=_react3.useState.call(void 0, ()=>{if(typeof window>"u")return e;let r=new URLSearchParams(window.location.search),o={};return Object.keys(e).forEach(i=>{let d=r.get(i);if(d!==null)try{o[i]=JSON.parse(d)}catch (e3){o[i]=d}}),{...e,...o}}),a=_react3.useCallback.call(void 0, r=>{n(o=>{let i={...o,...r};if(typeof window<"u"){let d=new URLSearchParams;Object.keys(i).forEach(l=>{let b=i[l];b!=null&&d.set(l,JSON.stringify(b))});let c=`${window.location.pathname}?${d.toString()}`;window.history.pushState({},"",c)}return i})},[]);return _react3.useEffect.call(void 0, ()=>{let r=()=>{let o=new URLSearchParams(window.location.search),i={};Object.keys(e).forEach(d=>{let c=o.get(d);if(c!==null)try{i[d]=JSON.parse(c)}catch (e4){i[d]=c}}),n({...e,...i})};return window.addEventListener("popstate",r),()=>window.removeEventListener("popstate",r)},[e]),[t,a]}function _n(e,t){if(e!=null)return e;let n=_optionalChain([t, 'optionalAccess', _15 => _15.trim, 'call', _16 => _16()]);if(!(n==null||n===""))return{tokens:_chunkG4V2KWTVjs.t.call(void 0, n)}}var ha={pl:{returnsNavLabel:"Zwroty",openCourse:"Otw\xF3rz kurs",libraryNavLabel:"Biblioteka",ordersNavLabel:"Zam\xF3wienia",accountNavLabel:"Konto",navigationLabel:"Panel klienta",logout:"Wyloguj si\u0119",profileHeading:"Profil",emailLabel:"E-mail",noData:"Brak danych",languageLabel:"J\u0119zyk",polishLanguage:"Polski",englishLanguage:"English",plansHeading:"Plany",plansUnavailable:"Plany nie s\u0105 obecnie dost\u0119pne w panelu.",notificationsHeading:"Powiadomienia",notificationsUnavailable:"Ustawienia powiadomie\u0144 nie s\u0105 obecnie dost\u0119pne w panelu.",ordersHeading:"Historia zam\xF3wie\u0144",ordersDescription:"Twoje zam\xF3wienia",ordersEmpty:"Brak zam\xF3wie\u0144.",ordersError:"Nie uda\u0142o si\u0119 pobra\u0107 zam\xF3wie\u0144.",retry:"Spr\xF3buj ponownie",orderLabel:"Zam\xF3wienie",customerLabel:"Klient",dateLabel:"Data",ordersEnd:"To ju\u017C wszystkie Twoje zam\xF3wienia.",previousPage:"Poprzednia strona",nextPage:"Nast\u0119pna strona",paginationLabel:"Strony zam\xF3wie\u0144",statusDraft:"Szkic",statusUnpaid:"Nieop\u0142acone",statusPaid:"Op\u0142acone",statusOverdue:"Zaleg\u0142e",statusCancelled:"Anulowane",statusCompleted:"Zako\u0144czone",statusProcessing:"Przetwarzane",statusRefunded:"Zwr\xF3cone"},en:{returnsNavLabel:"Returns",openCourse:"Open the course",libraryNavLabel:"Library",ordersNavLabel:"Orders",accountNavLabel:"Account",navigationLabel:"Customer panel",logout:"Log out",profileHeading:"Profile",emailLabel:"Email",noData:"No data",languageLabel:"Language",polishLanguage:"Polski",englishLanguage:"English",plansHeading:"Plans",plansUnavailable:"Plans are currently unavailable in the panel.",notificationsHeading:"Notifications",notificationsUnavailable:"Notification settings are currently unavailable in the panel.",ordersHeading:"Order history",ordersDescription:"Your orders",ordersEmpty:"No orders yet.",ordersError:"Could not load your orders.",retry:"Try again",orderLabel:"Order",customerLabel:"Customer",dateLabel:"Date",ordersEnd:"You\u2019ve reached the end of your orders.",previousPage:"Previous page",nextPage:"Next page",paginationLabel:"Order pages",statusDraft:"Draft",statusUnpaid:"Unpaid",statusPaid:"Paid",statusOverdue:"Overdue",statusCancelled:"Cancelled",statusCompleted:"Completed",statusProcessing:"Processing",statusRefunded:"Refunded"}};function ue(e=_chunk7RXW6XFYjs.f.call(void 0, )){return _chunk7RXW6XFYjs.a.call(void 0, ha,e)}function ur({}){let e=ue();return _jsxruntime.jsxs.call(void 0, "section",{children:[_jsxruntime.jsx.call(void 0, "h3",{className:"text-2xl",children:e.notificationsHeading}),_jsxruntime.jsx.call(void 0, "p",{className:"mt-6 text-sm text-neutral-600 dark:text-neutral-400",children:e.notificationsUnavailable})]})}var va=e=>new Date(e*1e3).toLocaleDateString(_chunk7RXW6XFYjs.f.call(void 0, ),{year:"numeric",month:"short",day:"numeric"}),ka=(e,t)=>new Intl.NumberFormat(_chunk7RXW6XFYjs.f.call(void 0, ),{style:"currency",currency:t.toUpperCase()}).format(e/100),xa={draft:"text-neutral-600 dark:text-neutral-400",unpaid:"text-amber-700 dark:text-amber-300",paid:"text-green-700 dark:text-green-400",overdue:"text-red-700 dark:text-red-400",cancelled:"text-neutral-600 line-through dark:text-neutral-400",completed:"text-green-700 dark:text-green-400",processing:"text-blue-700 dark:text-blue-400",refunded:"text-purple-700 dark:text-purple-400"};function wa({openOrderDetails:e,projectID:t,accessToken:n}){let a=ue(),r={draft:a.statusDraft,unpaid:a.statusUnpaid,paid:a.statusPaid,overdue:a.statusOverdue,cancelled:a.statusCancelled,completed:a.statusCompleted,processing:a.statusProcessing,refunded:a.statusRefunded},[o,i]=_react3.useState.call(void 0, 0),d=20,{data:c,isFetching:l,isError:b,refetch:P}=_chunkG4V2KWTVjs.l.call(void 0, _chunkG4V2KWTVjs.k.publicApi.getOrders,{projectId:t,accessToken:n,offset:o,limit:d}),w=_nullishCoalesce(_optionalChain([c, 'optionalAccess', _17 => _17.orders]), () => ([])),h=_nullishCoalesce(_optionalChain([c, 'optionalAccess', _18 => _18.totalCount]), () => (0)),y=Math.floor(o/d)+1,u=Math.ceil(h/d),m=p=>{i(p)};return _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, "h3",{className:"text-2xl",children:a.ordersHeading}),_jsxruntime.jsx.call(void 0, "p",{className:"text-sm text-neutral-500 dark:text-neutral-400",children:a.ordersDescription}),l?_jsxruntime.jsx.call(void 0, "div",{className:"mt-6 flex w-full flex-col gap-3",children:[...Array(5)].map((p,x)=>_jsxruntime.jsxs.call(void 0, "div",{className:"rounded-xl bg-white p-4 shadow-sm dark:bg-neutral-800",children:[_jsxruntime.jsxs.call(void 0, "div",{className:"flex items-center justify-between gap-3",children:[_jsxruntime.jsxs.call(void 0, "div",{className:"space-y-2",children:[_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.u,{className:"h-4 w-24"}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.u,{className:"h-3 w-32"})]}),_jsxruntime.jsxs.call(void 0, "div",{className:"space-y-2 text-right",children:[_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.u,{className:"ml-auto h-4 w-16"}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.u,{className:"ml-auto h-3 w-12"})]})]}),_jsxruntime.jsx.call(void 0, "div",{className:"mt-3",children:_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.u,{className:"h-3 w-40"})})]},x))}):b?_jsxruntime.jsxs.call(void 0, "div",{role:"alert",className:"mt-6 space-y-3",children:[_jsxruntime.jsx.call(void 0, "p",{children:a.ordersError}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{onClick:()=>void P(),className:"min-h-11 focus-visible:outline-2 focus-visible:outline-current",children:a.retry})]}):w.length===0?_jsxruntime.jsx.call(void 0, "div",{className:"mt-6 text-sm text-neutral-600 dark:text-neutral-400",children:a.ordersEmpty}):_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "div",{className:"mt-6 flex w-full flex-col gap-3",children:w.map(p=>_jsxruntime.jsxs.call(void 0, "button",{onClick:()=>e(p.id),className:"block min-h-11 focus-visible:outline-2 focus-visible:outline-current rounded-xl bg-white p-4 text-left shadow-sm transition-colors hover:bg-neutral-50 dark:bg-neutral-800 dark:hover:bg-neutral-700",children:[_jsxruntime.jsxs.call(void 0, "div",{className:"flex items-center justify-between gap-3",children:[_jsxruntime.jsxs.call(void 0, "div",{className:"min-w-0 break-words",children:[_jsxruntime.jsxs.call(void 0, "p",{className:"font-medium",children:[a.orderLabel," #",p.id]}),_jsxruntime.jsx.call(void 0, "p",{className:"text-xs text-neutral-500 dark:text-neutral-400",children:p.customerName||a.customerLabel})]}),_jsxruntime.jsxs.call(void 0, "div",{className:"shrink-0 text-right",children:[_jsxruntime.jsx.call(void 0, "p",{className:"font-semibold",children:ka(p.totalAmount,p.currency)}),_jsxruntime.jsx.call(void 0, "p",{className:`text-xs font-medium ${_nullishCoalesce(xa[p.status], () => ("text-neutral-400"))}`,children:_nullishCoalesce(r[p.status], () => (p.status))})]})]}),_jsxruntime.jsx.call(void 0, "div",{className:"mt-2 flex items-center justify-between gap-3 text-xs text-neutral-500 dark:text-neutral-400",children:_jsxruntime.jsxs.call(void 0, "span",{children:[a.dateLabel,":"," ",p.createdAt?va(Number(p.createdAt.seconds)):"-"]})})]},p.id))}),y>=u&&_jsxruntime.jsx.call(void 0, "p",{className:"mt-6 text-center text-sm text-neutral-600 dark:text-neutral-400",children:a.ordersEnd}),u>1&&_jsxruntime.jsxs.call(void 0, "nav",{"aria-label":a.paginationLabel,className:"mt-4 flex flex-wrap items-center justify-center gap-2",children:[y>1&&_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{variant:"outline",className:"min-h-11",onClick:()=>m(o-d),children:a.previousPage}),Array.from(new Set([1,y-1,y,y+1,u])).filter(p=>p>0&&p<=u).sort((p,x)=>p-x).map(p=>_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{variant:p===y?"secondary":"ghost",className:"min-h-11 min-w-11","aria-current":p===y?"page":void 0,onClick:()=>m((p-1)*d),children:p},p)),y<u&&_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{variant:"outline",className:"min-h-11",onClick:()=>m(o+d),children:a.nextPage})]})]})]})}var jn=wa;function pr({projectID:e}){let t=ue();return _jsxruntime.jsxs.call(void 0, "section",{children:[_jsxruntime.jsx.call(void 0, "h3",{className:"text-2xl",children:t.plansHeading}),_jsxruntime.jsx.call(void 0, "p",{className:"mt-6 text-sm text-neutral-600 dark:text-neutral-400",children:t.plansUnavailable})]})}function Sa(e,t,n,a){typeof window>"u"||(t&&_chunkVNV5BD4Xjs.n.call(void 0, n,a),window.location.href=e)}function Ea({projectID:e,host:t,loginURL:n,screen:a,params:r,setParams:o,setActiveScreen:i}){let{status:d,exchangeError:c}=_chunkZATPBYOAjs.t.call(void 0, "PanelReturns"),l=_chunkZATPBYOAjs.r.call(void 0, ),b=d==="anonymous"&&(c==null||_chunkZATPBYOAjs.p.call(void 0, c));_react3.useEffect.call(void 0, ()=>{b&&Sa(n,c!=null,e,t)},[b,n,c,e,t]);let[P,w]=_react3.useState.call(void 0, "orders"),[h,y]=_react3.useState.call(void 0, {items:[],note:""}),[u,m]=_react3.useState.call(void 0, );if(d==="anonymous"&&!b)return _jsxruntime.jsxs.call(void 0, "div",{role:"alert",className:"flex flex-col items-start gap-3",children:[_jsxruntime.jsx.call(void 0, "p",{className:"text-sm",children:l(_chunkZATPBYOAjs.q.call(void 0, c))}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{type:"button",onClick:()=>window.location.reload(),children:l("errorRetry")})]});if(d!=="authenticated")return _jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.C,{});let p=x=>{w(x),o({state:"returns",orderId:void 0,returnId:void 0}),i("returns")};if(a==="return-details"&&r.returnId)return _jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.K,{returnId:r.returnId,onBack:()=>p("myReturns")});if(P==="myReturns")return _jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.J,{onBack:()=>p("orders"),onSelectReturn:x=>{o({state:"return-details",returnId:x,orderId:void 0}),i("return-details")}});if(P==="result"&&u!=null)return _jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.I,{returnId:u,onContinue:()=>p("orders"),onOpenMyReturns:()=>p("myReturns")});if(r.orderId){let x=r.orderId;return P==="confirmation"?_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.H,{orderId:x,items:h.items,note:h.note,onBack:()=>w("orders"),onSubmitted:U=>{m(U),y({items:[],note:""}),w("result"),o({orderId:void 0})}}):_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.G,{orderId:x,initialItems:h.items.length>0?h.items:void 0,initialNote:h.note,onBack:()=>{y({items:[],note:""}),o({orderId:void 0})},onContinue:U=>{y(U),w("confirmation")}})}return _jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.F,{showLogout:!1,onSelectOrder:x=>{y({items:[],note:""}),w("orders"),o({orderId:x})},onOpenMyReturns:()=>p("myReturns")})}function fr({accessToken:e,appearance:t,texts:n,...a}){return _jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.u,{projectID:a.projectID,host:a.host,appearance:t,texts:n,panelAccessToken:e,children:_jsxruntime.jsx.call(void 0, Ea,{...a})})}var La={hello:"Hej \u{1F44B}",intro:"Poni\u017Cej znajdziesz swoje produkty",loading:"\u0141adowanie produkt\xF3w\u2026",empty:"Nie masz jeszcze produkt\xF3w w tym sklepie. Twoje zakupy pojawi\u0105 si\u0119 tutaj.",audio:"Audio",files:"Pliki",course:"Kurs",ticket:"Bilet",listen:"S\u0142uchaj",openCourse:"Otw\xF3rz kurs",downloadFiles:"Pobierz pliki",showTicket:"Poka\u017C bilet",back:"Wr\xF3\u0107",yourFiles:"Twoje pliki",download:"Pobierz",retry:"Spr\xF3buj ponownie",fileError:"Nie uda\u0142o si\u0119 wczyta\u0107 plik\xF3w.",noFiles:"Brak plik\xF3w do pobrania.",ticketInfo:"Tw\xF3j zakupiony bilet",file:"Plik"},Ra={hello:"Hi \u{1F44B}",intro:"Your products are below",loading:"Loading products\u2026",empty:"You have no products in this shop yet. Your purchases will show up here.",audio:"Audio",files:"Files",course:"Course",ticket:"Ticket",listen:"Listen",openCourse:"Open course",downloadFiles:"Download files",showTicket:"Show ticket",back:"Back",yourFiles:"Your files",download:"Download",retry:"Try again",fileError:"Your files could not be loaded.",noFiles:"No files to download.",ticketInfo:"Your purchased ticket",file:"File"};function Qe(){return _chunk7RXW6XFYjs.f.call(void 0, ).toLowerCase().startsWith("en")?Ra:La}var Aa=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g,Da=e=>[...e.matchAll(Aa)].map(n=>({url:n[0],startIndex:n.index,endIndex:n.index+n[0].length-1})),Ma=(e,t)=>{let n="",a=0;t.sort((r,o)=>r.startIndex-o.startIndex);for(let{startIndex:r,endIndex:o,replacementText:i}of t)n+=e.slice(a,r),n+=i,a=o+1;return n+=e.slice(a),n},Hn=e=>{let t=Da(e);return _jsxruntime.jsx.call(void 0, "p",{dangerouslySetInnerHTML:{__html:Ma(e,t.map(n=>(n.replacementText=`<a key=${n.url} href=${n.url} style="text-decoration: underline;" target="_blank">
2
- ${n.url}
3
- </a>`,n)))}})};var _protobuf = require('@bufbuild/protobuf');var _hlsjs = require('hls.js'); var _hlsjs2 = _interopRequireDefault(_hlsjs);function Ua(){return _jsxruntime.jsxs.call(void 0, "div",{className:"flex items-center gap-2",children:[_jsxruntime.jsx.call(void 0, "div",{className:"h-3 w-3 animate-bounce rounded-full bg-current [animation-delay:-0.3s]"}),_jsxruntime.jsx.call(void 0, "div",{className:"h-3 w-3 animate-bounce rounded-full bg-current [animation-delay:-0.15s]"}),_jsxruntime.jsx.call(void 0, "div",{className:"h-3 w-3 animate-bounce rounded-full bg-current"})]})}var _e=Ua;var ja=[401,403],$n="networkError",qn="mediaError";function Fa(e,t){if(e==null||e.fatal!==!0)return{action:"ignore"};let n=_optionalChain([e, 'access', _19 => _19.response, 'optionalAccess', _20 => _20.code]),a=e.type===$n?"network":e.type===qn?"media":"unknown",r=n==null?{kind:a}:{kind:a,status:n};return n!=null&&ja.includes(n)?{action:"expired",error:{kind:"network",status:n}}:e.type===$n&&!t.network?{action:"restart-load"}:e.type===qn&&!t.media?{action:"recover-media"}:{action:"fail",error:r}}function Bn(e){let t=_nullishCoalesce(e.HlsCtor, () => (_hlsjs2.default)),n=new t,a,r=!1,o=!1;return n.attachMedia(e.media),n.on(t.Events.ERROR,(i,d)=>{let c=Fa(d,{network:r,media:o});switch(c.action){case"expired":_optionalChain([e, 'access', _21 => _21.handlers, 'optionalAccess', _22 => _22.onExpiredUrl, 'optionalCall', _23 => _23()]),_optionalChain([e, 'access', _24 => _24.handlers, 'optionalAccess', _25 => _25.onError, 'optionalCall', _26 => _26(c.error)]);break;case"restart-load":r=!0,n.startLoad();break;case"recover-media":o=!0,n.recoverMediaError();break;case"fail":_optionalChain([e, 'access', _27 => _27.handlers, 'optionalAccess', _28 => _28.onError, 'optionalCall', _29 => _29(c.error)]);break;case"ignore":break}}),{load(i){a=i,r=!1,o=!1,n.loadSource(i)},retry(){a!=null&&(r=!1,o=!1,n.loadSource(a))},destroy(){n.destroy()},get src(){return a}}}function Kn(e){try{return e.canPlayType("application/vnd.apple.mpegurl")!==""}catch (e5){return!1}}function Gn(e){switch(_optionalChain([e, 'optionalAccess', _30 => _30.code])){case 2:return{kind:"network"};case 3:case 4:return{kind:"media"};default:return{kind:"unknown"}}}var Ha={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",webp:"image/webp",gif:"image/gif",avif:"image/avif",svg:"image/svg+xml"},yr="512x512";function Xe(){return typeof navigator<"u"&&typeof navigator.mediaSession<"u"}function $a(e){if(typeof e!="string"||e.length===0)return{src:e,sizes:yr};let t=e.split(/[?#]/)[0],n=t.includes(".")?t.slice(t.lastIndexOf(".")+1).toLowerCase():"",a=Ha[n],r={src:e,sizes:yr};return a!=null&&(r.type=a),r}function qa(e){if(e==null)return;let t=Array.isArray(e)?e:[e],n=[];for(let a of t){if(typeof a=="string"){a.length>0&&n.push($a(a));continue}a!=null&&a.src.length>0&&n.push({src:a.src,sizes:_nullishCoalesce(a.sizes, () => (yr)),...a.type!=null?{type:a.type}:{}})}return n.length>0?n:void 0}function hr(e){!Xe()||typeof MediaMetadata>"u"||(navigator.mediaSession.metadata=new MediaMetadata({title:e.title,album:e.album,artist:e.artist,artwork:qa(e.artwork)}))}function Wn(){Xe()&&(navigator.mediaSession.playbackState="playing")}function Vn(){Xe()&&(navigator.mediaSession.playbackState="paused")}function Jn(e,t,n=1){if(!Xe()||e==null||!Number.isFinite(e)||e<=0||t!=null&&isNaN(t))return;let a=Math.min(Math.max(_nullishCoalesce(t, () => (0)),0),e),r=Number.isFinite(n)&&n>0?n:1;try{navigator.mediaSession.setPositionState({playbackRate:r,duration:e,position:a})}catch (e6){}}var Yn=["play","pause","stop","seekbackward","seekforward","seekto","previoustrack","nexttrack"];function Zn(e){if(Xe()){hr({title:e.title,album:e.album,artist:e.artist,artwork:e.artwork});for(let t of Yn)try{navigator.mediaSession.setActionHandler(t,n=>{e.action(n)})}catch (e7){}}}function Qn(){if(Xe()){navigator.mediaSession.metadata=null;for(let e of Yn)try{navigator.mediaSession.setActionHandler(e,null)}catch (e8){}}}var Ga={play:"Odtw\xF3rz",pause:"Wstrzymaj",previous:"Poprzedni rozdzia\u0142",next:"Nast\u0119pny rozdzia\u0142",rewind:"Cofnij o 10 sekund",forward:"Przewi\u0144 o 10 sekund",progress:"Post\u0119p odtwarzania",of:"z",speed:"Pr\u0119dko\u015B\u0107",sleep:"Wy\u0142\u0105cznik czasowy",off:"Wy\u0142\u0105czony",end:"Koniec rozdzia\u0142u",cancel:"Anuluj wy\u0142\u0105cznik",error:"Nie uda\u0142o si\u0119 odtworzy\u0107 nagrania.",retry:"Spr\xF3buj ponownie",left:"zosta\u0142o",book:"ca\u0142a ksi\u0105\u017Cka",chapter:"rozdzia\u0142",chapters:"Rozdzia\u0142y",loading:"\u0141adowanie rozdzia\u0142\xF3w\u2026",empty:"Brak rozdzia\u0142\xF3w do wy\u015Bwietlenia.",resume:"Kontynuuj",chapterName:"Rozdzia\u0142",download:"Pobierz rozdzia\u0142",playing:"Teraz odtwarzane",played:"Ods\u0142uchane"},Wa={play:"Play",pause:"Pause",previous:"Previous chapter",next:"Next chapter",rewind:"Rewind 10 seconds",forward:"Forward 10 seconds",progress:"Playback progress",of:"of",speed:"Speed",sleep:"Sleep timer",off:"Off",end:"End of chapter",cancel:"Cancel timer",error:"The recording could not be played.",retry:"Try again",left:"left",book:"whole book",chapter:"chapter",chapters:"Chapters",loading:"Loading chapters\u2026",empty:"No chapters to display.",resume:"Continue",chapterName:"Chapter",download:"Download chapter",playing:"Now playing",played:"Played"};function At(e){let[t,n]=_react3.useState.call(void 0, "pl");return _react3.useEffect.call(void 0, ()=>{try{n(_chunk7RXW6XFYjs.f.call(void 0, ))}catch (e9){}},[]),(_nullishCoalesce(e, () => (t))).toLowerCase().startsWith("en")?Wa:Ga}function ve(e){let t=Number.isFinite(e)?Math.max(0,Math.floor(e)):0;return`${t>=3600?`${Math.floor(t/3600)}:`:""}${String(Math.floor(t/60)%60).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`}var W={get(e){try{return localStorage.getItem(e)}catch (e10){return null}},set(e,t){try{localStorage.setItem(e,t)}catch (e11){}},remove(e){try{localStorage.removeItem(e)}catch (e12){}}},br="__player__speed",Dt=[.75,1,1.25,1.5,1.75,2];var ri=_react3.forwardRef.call(void 0, ({chapters:e,locale:t,styles:n,updateCurrentTime:a,setCurrentTimeHandler:r,title:o,imageURL:i,coverShownBeside:d,author:c,uniqueProductID:l,onChapterChange:b,onError:P,onExpiredUrl:w,onFinished:h},y)=>{let u=At(t),[m,p]=_react3.useState.call(void 0, 1),x=_react3.useRef.call(void 0, 1),[U,le]=_react3.useState.call(void 0, ),[E,de]=_react3.useState.call(void 0, "off"),[Ce,ee]=_react3.useState.call(void 0, 0),A=_react3.useRef.call(void 0, {mode:"off",deadline:0});function fe(){A.current={mode:"off",deadline:0},de("off"),ee(0)}function J(s){let g=Number(s)*60;A.current={mode:s,deadline:Number.isFinite(g)?Date.now()+g*1e3:0},de(s),ee(Number.isFinite(g)?g:0)}function He(s){Dt.includes(s)&&(p(s),x.current=s,W.set(br,String(s)),_.current&&(_.current.playbackRate=s),B())}_react3.useEffect.call(void 0, ()=>{let s=Number(W.get(br));Dt.includes(s)&&He(s);let g=setInterval(()=>{let{mode:k,deadline:T}=A.current;if(k==="off"||k==="chapter")return;let be=Math.max(0,Math.ceil((T-Date.now())/1e3));ee(be),be===0&&(Me.current=!1,xt(),fe())},1e3);return()=>clearInterval(g)},[]);let Y;(k=>(k[k.Playing=0]="Playing",k[k.Paused=1]="Paused"))(Y||={});let[De,lt]=_react3.useState.call(void 0, 1),[Ht,Ne]=_react3.useState.call(void 0, void 0),[C,ge]=_react3.useState.call(void 0, void 0),[$e,ce]=_react3.useState.call(void 0, !1),[vt,Fr]=_react3.useState.call(void 0, null),_=_react3.useRef.call(void 0, null),ye=_react3.useRef.call(void 0, null),kt=_react3.useRef.call(void 0, void 0),Go=_react3.useRef.call(void 0, null),te=_react3.useRef.call(void 0, null),$t=_react3.useRef.call(void 0, null),Me=_react3.useRef.call(void 0, !1),qe=_react3.useRef.call(void 0, !1),dt=_react3.useRef.call(void 0, null),qt=_react3.useRef.call(void 0, null),Bt=_react3.useRef.call(void 0, e),Hr=_react3.useRef.call(void 0, null),re=_react3.useRef.call(void 0, {onChapterChange:b,onError:P,onExpiredUrl:w,onFinished:h,updateCurrentTime:a,title:o,imageURL:i,author:c});re.current={onChapterChange:b,onError:P,onExpiredUrl:w,onFinished:h,updateCurrentTime:a,title:o,imageURL:i,author:c};function Kt(s){!qe.current||!Number.isFinite(s)||s<0||W.set(`__player__${l}_${_optionalChain([te, 'access', _31 => _31.current, 'optionalAccess', _32 => _32.id])}`,`${Math.floor(s)}`)}function Wo(){let s=W.get(`__player__${l}_${_optionalChain([te, 'access', _33 => _33.current, 'optionalAccess', _34 => _34.id])}`);if(s!=null)try{let g=parseInt(s);return isNaN(g)||g<0?void 0:g}catch (e13){return}}function Vo(){let s=W.get(`__player__${l}_last_chapter`);if(s!=null)return s}function $r(s){W.set(`__player__${l}_last_chapter`,s)}function qr(s){W.remove(`__player__${l}_${s}`)}function Gt(s){hr({title:_nullishCoalesce(_nullishCoalesce(_optionalChain([s, 'optionalAccess', _35 => _35.name]), () => (re.current.title)), () => ("")),album:re.current.title,artist:re.current.author,artwork:re.current.imageURL})}function Br(s){$t.current=s,Fr(s),ce(!1),_optionalChain([re, 'access', _36 => _36.current, 'access', _37 => _37.onError, 'optionalCall', _38 => _38(s)])}function Kr(){$t.current=null,Fr(null)}function Gr(){let s=_.current;if(s==null)return;let g=s.play();g!=null&&typeof g.catch=="function"&&g.catch(()=>{}),B()}function Wr(){Gr()}function xt(){_optionalChain([_, 'access', _39 => _39.current, 'optionalAccess', _40 => _40.pause, 'call', _41 => _41()]),B()}function Jo(){if(De===0){xt();return}Wr()}function Ie(s){let g=_.current;if(g==null||!Number.isFinite(s))return;let k=Number.isFinite(g.duration)?g.duration:0,T=k>0?Math.min(Math.max(s,0),k):Math.max(s,0);Ne(T),g.currentTime=T,B()}function wt(s){let g=_.current;if(g==null)return;let k=Number.isFinite(g.duration)?g.duration:void 0,T=Math.max(g.currentTime+s,0);k!=null&&T>k&&(T=k),Ie(T)}function Wt(s){let g=_.current;if(g!=null){if(Kr(),ce(!0),Kn(g)){Vt(),g.src=s,g.load();return}if(_hlsjs2.default.isSupported()){ye.current==null&&(ye.current=Bn({media:g,handlers:{onError:k=>{Br(k)},onExpiredUrl:()=>{_optionalChain([re, 'access', _42 => _42.current, 'access', _43 => _43.onExpiredUrl, 'optionalCall', _44 => _44()])}}})),ye.current.load(s);return}Vt(),g.src=s,g.load()}}function Vt(){_optionalChain([ye, 'access', _45 => _45.current, 'optionalAccess', _46 => _46.destroy, 'call', _47 => _47()]),ye.current=null}function Ct(s,g){let k=_optionalChain([g, 'optionalAccess', _48 => _48.play])===!0;te.current&&_.current&&!_.current.ended&&Kt(_.current.currentTime),qe.current=!1,dt.current=null,Me.current=k,te.current=s,le(s.id),Ne(0),ge(s.duration),Wt(s.publicUrl),Gt(s),_optionalChain([re, 'access', _49 => _49.current, 'access', _50 => _50.onChapterChange, 'optionalCall', _51 => _51(s)]),$r(s.id)}function Jt(s){if(s.length===0)return;let g=Vo(),k=_nullishCoalesce((g!=null?s.find(T=>T.id===g):void 0), () => (s[0]));Ct(k,{play:!1})}function Yt(){let s=Bt.current,g=te.current;if(s==null||s.length===0||g==null)return;let k=s.findIndex(be=>be.id===g.id);if(k===-1)return;let T=k+1;if(T>=s.length){Yo(g);return}Ct(s[T],{play:!0})}function Vr(){let s=Bt.current,g=te.current;if(g==null)return;let k=_.current;if(k!=null&&k.currentTime>3){Ie(0);return}let T=s==null?-1:s.findIndex(be=>be.id===g.id);if(T>0){Ct(s[T-1],{play:!0});return}Ie(0)}function Yo(s){qr(s.id),Me.current=!1,_optionalChain([_, 'access', _52 => _52.current, 'optionalAccess', _53 => _53.pause, 'call', _54 => _54()]),lt(1),_optionalChain([re, 'access', _55 => _55.current, 'access', _56 => _56.onFinished, 'optionalCall', _57 => _57()])}function Jr(){let s=te.current;if(s!=null){if(W.set(`__player__${l}_${s.id}_completed`,"true"),qr(s.id),A.current.mode==="chapter"){Me.current=!1,xt(),fe();return}Yt(),B()}}function Yr(){let s=_.current;if(s!=null){if(ce(!1),s.playbackRate=x.current,qt.current=null,!qe.current){qe.current=!0;let g=dt.current;if(dt.current=null,g!=null)Ie(g);else{let k=Wo();k!=null&&Ie(k)}}Me.current&&(Me.current=!1,Gr())}}function Zr(){let s=_optionalChain([_, 'access', _58 => _58.current, 'optionalAccess', _59 => _59.error]),g=_optionalChain([te, 'access', _60 => _60.current, 'optionalAccess', _61 => _61.publicUrl]);(_optionalChain([s, 'optionalAccess', _62 => _62.code])===2||_optionalChain([s, 'optionalAccess', _63 => _63.code])===4)&&ye.current==null&&g!=null&&qt.current!==g&&(qt.current=g,_optionalChain([re, 'access', _64 => _64.current, 'access', _65 => _65.onExpiredUrl, 'optionalCall', _66 => _66()])),Br(Gn(s))}function Qr(){let g=_nullishCoalesce(_optionalChain([te, 'access', _67 => _67.current, 'optionalAccess', _68 => _68.publicUrl]), () => (_optionalChain([ye, 'access', _69 => _69.current, 'optionalAccess', _70 => _70.src])));if(g==null)return;let T=_nullishCoalesce(_optionalChain([_, 'access', _71 => _71.current, 'optionalAccess', _72 => _72.currentTime]), () => (0));Kr(),qe.current=!1,dt.current=T>0?T:null,Ne(T),ye.current!=null?ye.current.retry():Wt(g)}function Zo(s){switch(s.action){case"play":Wr();break;case"pause":case"stop":xt();break;case"seekbackward":wt(-(_nullishCoalesce(s.seekOffset, () => (10))));break;case"seekforward":wt(_nullishCoalesce(s.seekOffset, () => (10)));break;case"seekto":s.seekTime!=null&&Ie(s.seekTime);break;case"previoustrack":Vr();break;case"nexttrack":Yt();break;default:break}}_react3.useImperativeHandle.call(void 0, y,()=>({selectChapter:s=>{Ct(s,{play:!0})},retry:Qr,getError:()=>$t.current}));function B(){let s=_.current;s!=null&&(lt(s.paused?1:0),ge(s.duration),Ne(s.currentTime),s.ended||Kt(s.currentTime),Jn(s.duration,s.currentTime,s.playbackRate),s.networkState===s.NETWORK_LOADING&&s.readyState<=s.HAVE_FUTURE_DATA?ce(!0):ce(!1),_optionalChain([re, 'access', _73 => _73.current, 'access', _74 => _74.updateCurrentTime, 'optionalCall', _75 => _75(s.currentTime)]))}_react3.useEffect.call(void 0, ()=>(Zn({title:_nullishCoalesce(o, () => ("")),album:o,artist:c,artwork:i,action:Zo}),()=>{Qn()}),[]),_react3.useEffect.call(void 0, ()=>{Gt(te.current)},[o,c,i]),_react3.useEffect.call(void 0, ()=>{let s=_.current;if(s!=null)return s.addEventListener("loadeddata",Yr),s.addEventListener("ended",Jr),s.addEventListener("error",Zr),s.addEventListener("timeupdate",B),s.addEventListener("play",B),s.addEventListener("pause",B),s.addEventListener("ratechange",B),B(),kt.current=setInterval(B,500),()=>{s.removeEventListener("loadeddata",Yr),s.removeEventListener("ended",Jr),s.removeEventListener("error",Zr),s.removeEventListener("timeupdate",B),s.removeEventListener("play",B),s.removeEventListener("pause",B),s.removeEventListener("ratechange",B),kt.current!=null&&(clearInterval(kt.current),kt.current=void 0),s.ended||Kt(s.currentTime),Ne(void 0),s.pause(),Vt(),s.removeAttribute("src"),s.load()}},[]),_react3.useEffect.call(void 0, ()=>{_optionalChain([r, 'optionalCall', _76 => _76(Ie)])},[]);let Zt=e.map(s=>`${s.id}|${_nullishCoalesce(s.publicUrl, () => (""))}`).join(`
4
- `);_react3.useEffect.call(void 0, ()=>{Bt.current=e;let s=Hr.current;if(s===Zt)return;if(Hr.current=Zt,s==null){Jt(e);return}let g=te.current;if(g==null){Jt(e);return}let k=e.find(T=>T.id===g.id);if(!(k!=null&&k.publicUrl===g.publicUrl)){if(k!=null){let T=_.current,be=_nullishCoalesce(_optionalChain([T, 'optionalAccess', _77 => _77.currentTime]), () => (0)),Xo=T!=null&&!T.paused;te.current=k,qe.current=!1,dt.current=be>0?be:null,Me.current=Xo,Wt(k.publicUrl),Gt(k),_optionalChain([re, 'access', _78 => _78.current, 'access', _79 => _79.onChapterChange, 'optionalCall', _80 => _80(k)]),$r(k.id);return}Jt(e)}},[Zt]),_react3.useEffect.call(void 0, ()=>{switch(De){case 0:Wn();break;case 1:Vn();break}},[De]);let Be=e.findIndex(s=>s.id===U),he=Number.isFinite(C)&&C>0?C:_nullishCoalesce(_optionalChain([e, 'access', _81 => _81[Be], 'optionalAccess', _82 => _82.duration]), () => (0)),ct=Math.min(Math.max(_nullishCoalesce(Ht, () => (0)),0),he||1/0),Xr=e.length>0&&e.every(s=>Number.isFinite(s.duration)&&s.duration>0),Qo=Math.max(0,he-ct+(Xr?e.slice(Be+1).reduce((s,g)=>s+g.duration,0):0))/m,Qt=Math.ceil(Qo/60),en=`${Math.floor(Qt/60)>0?`${Math.floor(Qt/60)} h `:""}${Qt%60} min`;return _jsxruntime.jsxs.call(void 0, "div",{id:"audio-player-container",className:"bitsnap-audio-player flex min-w-0 flex-col gap-3 text-neutral-900 dark:text-neutral-100",style:{...n,"--seek-before-width":`${he>0?ct/he*100:0}%`},ref:Go,"data-player-error":_optionalChain([vt, 'optionalAccess', _83 => _83.kind]),children:[_jsxruntime.jsx.call(void 0, "video",{ref:_,className:"hidden",poster:i,title:o}),_jsxruntime.jsxs.call(void 0, "div",{className:_chunk4HGZZJELjs.g.call(void 0, "flex min-w-0 items-center gap-3",d&&"lg:hidden"),children:[i&&_jsxruntime.jsx.call(void 0, "img",{src:i,alt:"",className:"h-16 w-16 shrink-0 rounded object-contain"}),_jsxruntime.jsxs.call(void 0, "div",{className:"min-w-0 break-words",children:[_jsxruntime.jsx.call(void 0, "p",{className:"font-semibold",children:_nullishCoalesce(_optionalChain([e, 'access', _84 => _84[Be], 'optionalAccess', _85 => _85.name]), () => (o))}),c&&_jsxruntime.jsx.call(void 0, "p",{className:"text-sm text-neutral-600 dark:text-neutral-300",children:c})]})]}),vt&&_jsxruntime.jsxs.call(void 0, "div",{role:"alert",className:"rounded-lg bg-red-50 p-3 text-red-800 dark:bg-red-950 dark:text-red-200",children:[_jsxruntime.jsx.call(void 0, "p",{children:u.error}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{variant:"outline",onClick:Qr,children:u.retry})]}),_jsxruntime.jsx.call(void 0, "input",{type:"range",min:"0",max:he||100,value:ct,disabled:!he,"aria-label":u.progress,"aria-valuetext":`${ve(ct)} ${u.of} ${ve(he)}`,onChange:s=>Ie(Number(s.target.value))}),_jsxruntime.jsxs.call(void 0, "section",{className:"flex w-full justify-between text-sm tabular-nums",children:[_jsxruntime.jsx.call(void 0, "span",{id:"current-time",children:ve(ct)}),_jsxruntime.jsx.call(void 0, "span",{id:"duration",children:ve(he)})]}),he>0&&_jsxruntime.jsxs.call(void 0, "p",{className:"text-sm text-neutral-600 dark:text-neutral-300",children:[u.left==="left"?`${en} ${u.left}`:`${u.left} ${en}`," ","\xB7 ",Xr?u.book:u.chapter," (",m,"\xD7)"]}),_jsxruntime.jsxs.call(void 0, "div",{className:"flex flex-wrap items-center justify-center gap-2",children:[_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{variant:"outline",onClick:Vr,disabled:Be<0,"aria-label":u.previous,children:_jsxruntime.jsx.call(void 0, _lucidereact.SkipBack,{className:"h-5 w-5"})}),_jsxruntime.jsxs.call(void 0, _chunkG4V2KWTVjs.q,{variant:"outline",onClick:()=>wt(-10),"aria-label":u.rewind,children:["\u2212",10]}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{variant:"outline",onClick:Jo,"aria-label":De===1?u.play:u.pause,children:De===1?_jsxruntime.jsx.call(void 0, _lucidereact.Play,{className:"h-5 w-5"}):_jsxruntime.jsx.call(void 0, _lucidereact.Pause,{className:"h-5 w-5"})}),_jsxruntime.jsxs.call(void 0, _chunkG4V2KWTVjs.q,{variant:"outline",onClick:()=>wt(10),"aria-label":u.forward,children:["+",10]}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{variant:"outline",onClick:Yt,disabled:Be<0||Be>=e.length-1,"aria-label":u.next,children:_jsxruntime.jsx.call(void 0, _lucidereact.SkipForward,{className:"h-5 w-5"})})]}),_jsxruntime.jsxs.call(void 0, "div",{className:"flex flex-wrap gap-3 md:grid md:grid-cols-2",children:[_jsxruntime.jsxs.call(void 0, "label",{className:"flex flex-1 items-center gap-2 text-sm md:flex-col md:items-start md:whitespace-nowrap",children:[u.speed,_jsxruntime.jsx.call(void 0, "select",{"aria-label":u.speed,value:m,onChange:s=>He(Number(s.target.value)),children:Dt.map(s=>_jsxruntime.jsxs.call(void 0, "option",{value:s,children:[s,"\xD7"]},s))})]}),_jsxruntime.jsxs.call(void 0, "label",{className:"flex flex-1 items-center gap-2 text-sm md:flex-col md:items-start md:whitespace-nowrap",children:[u.sleep,_jsxruntime.jsxs.call(void 0, "select",{"aria-label":u.sleep,value:E,onChange:s=>J(s.target.value),children:[_jsxruntime.jsx.call(void 0, "option",{value:"off",children:u.off}),[15,30,45,60].map(s=>_jsxruntime.jsxs.call(void 0, "option",{value:s,children:[s," min"]},s)),_jsxruntime.jsx.call(void 0, "option",{value:"chapter",children:u.end})]})]})]}),E!=="off"&&_jsxruntime.jsxs.call(void 0, "div",{className:"flex items-center justify-between gap-2 text-sm",children:[_jsxruntime.jsx.call(void 0, "span",{role:"timer",children:E==="chapter"?u.end:ve(Ce)}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{variant:"outline",onClick:fe,children:u.cancel})]}),$e&&_jsxruntime.jsx.call(void 0, "div",{role:"status",className:"flex justify-center",children:_jsxruntime.jsx.call(void 0, _e,{})})]})}),Xn=ri;function Pr({chapters:e,currentID:t,productID:n,onSelect:a,downloadable:r,onDownload:o,loading:i,locale:d}){let c=At(d),[l,b]=_react3.useState.call(void 0, null),[P,w]=_react3.useState.call(void 0, []);_react3.useEffect.call(void 0, ()=>{let u=`__player__${n}_`,m=W.get(`${u}last_chapter`),p=Number(m&&W.get(`${u}${m}`));b(m&&p>0&&Number.isFinite(p)?{id:m,time:p}:null),w((_nullishCoalesce(e, () => ([]))).filter(x=>W.get(`${u}${x.id}_completed`)==="true"||Number(W.get(`${u}${x.id}`))>0).map(x=>x.id))},[e,n,t]);let h=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _86 => _86.findIndex, 'call', _87 => _87(u=>u.id===_optionalChain([l, 'optionalAccess', _88 => _88.id]))]), () => (-1)),y=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _89 => _89.findIndex, 'call', _90 => _90(u=>u.id===t)]), () => (-1));return _jsxruntime.jsxs.call(void 0, "div",{className:"max-h-96 w-full overflow-y-auto",children:[_jsxruntime.jsx.call(void 0, "h2",{className:"mb-3 text-xl font-semibold",children:c.chapters}),i?_jsxruntime.jsx.call(void 0, "p",{role:"status",children:c.loading}):_optionalChain([e, 'optionalAccess', _91 => _91.length])?_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[l&&h>=0&&_jsxruntime.jsxs.call(void 0, "button",{type:"button",className:"mb-3 min-h-11 rounded-lg border border-neutral-300 px-3 py-2 text-left dark:border-neutral-600",onClick:()=>a(e[h]),children:[c.resume,": ",c.chapterName," ",h+1,","," ",ve(l.time)]}),_jsxruntime.jsx.call(void 0, "ul",{className:"flex w-full flex-col gap-2",children:e.map((u,m)=>{let p=u.id===t,x=m<y||P.includes(u.id);return _jsxruntime.jsxs.call(void 0, "li",{className:"flex min-w-0 items-center gap-2",children:[_jsxruntime.jsxs.call(void 0, "button",{type:"button","aria-current":p?"true":void 0,className:`min-h-11 min-w-0 flex-1 rounded-lg p-3 text-left hover:bg-neutral-200 dark:hover:bg-neutral-700 ${p?"bg-neutral-200 dark:bg-neutral-700":"bg-neutral-100 dark:bg-neutral-800"}`,onClick:()=>a(u),children:[_jsxruntime.jsxs.call(void 0, "span",{className:"flex items-center gap-2",children:[p?_jsxruntime.jsx.call(void 0, _lucidereact.Play,{className:"size-4 shrink-0","aria-label":c.playing}):x?_jsxruntime.jsx.call(void 0, _lucidereact.Check,{className:"size-4 shrink-0","aria-label":c.played}):null,_jsxruntime.jsx.call(void 0, "span",{className:"min-w-0 flex-1 break-words text-sm font-medium",children:u.name}),!!u.duration&&_jsxruntime.jsx.call(void 0, "span",{className:"shrink-0 text-xs tabular-nums text-neutral-600 dark:text-neutral-300",children:ve(u.duration)})]}),u.description&&_jsxruntime.jsx.call(void 0, "span",{className:"mt-2 block text-xs",children:u.description})]}),r&&u.downloadableUrl&&_jsxruntime.jsx.call(void 0, "a",{href:u.downloadableUrl,onClick:o,"aria-label":`${c.download} ${m+1}`,className:"inline-flex min-h-11 min-w-11 items-center justify-center rounded focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2",children:_jsxruntime.jsx.call(void 0, _lucidereact.Download,{className:"size-4","aria-hidden":"true"})})]},u.id)})})]}):_jsxruntime.jsx.call(void 0, "p",{children:c.empty})]})}function xe(e,...t){console.warn(e,...t)}function vr(e){console.error(e)}var ui=({accessToken:e,product:t,styles:n,reveal:a})=>{let r=Qe(),o=t.productType,i=_chunkDP2NOHCIjs.m.call(void 0, ),d=()=>i.track("panel_download",{},{product_id:t.productId.length<=64?t.productId:null}),c=_react3.useRef.call(void 0, null),[l]=_react.useAutoAnimate.call(void 0, ),[b,P]=_react3.useState.call(void 0, !1),[w,h]=_react3.useState.call(void 0, null),{mutateAsync:y,isPending:u}=_chunkG4V2KWTVjs.m.call(void 0, _chunkG4V2KWTVjs.k.publicApi.userPanelGetFileDetails),m=_react3.useRef.call(void 0, void 0),[p,x]=_react3.useState.call(void 0, null),[U,le]=_react3.useState.call(void 0, null),[E,de]=_react3.useState.call(void 0, !1),{mutateAsync:Ce,isPending:ee}=_chunkG4V2KWTVjs.m.call(void 0, _chunkG4V2KWTVjs.k.publicApi.userPanelGetAudiobookDetails),{mutateAsync:A,isPending:fe}=_chunkG4V2KWTVjs.m.call(void 0, _chunkG4V2KWTVjs.k.publicApi.userPanelGetAudiobookDetailsDownloadURLs),[J,He]=_react3.useState.call(void 0, null),[Y,De]=_react3.useState.call(void 0, null);async function lt(){P(!1);try{let C=await y({accessId:t.accessId,accessToken:e});if(C.result.case==="success"){h(C.result.value.files);return}else P(!0),xe("Pobranie plik\xF3w nie powiod\u0142o si\u0119. Zalecamy kontakt."),xe("Kod b\u0142\u0119du: ",C.result.value)}catch(C){P(!0),xe("Nieoczekiwany b\u0142\u0105d. Spr\xF3buj ponownie za chwil\u0119."),vr("B\u0142\u0105d podczas pobierania danych:"+C)}}async function Ht(){try{let C=await Ce({accessId:t.accessId,accessToken:e});if(C.result.case==="audiobook"){x(C.result.value);return}else xe("Pobranie plik\xF3w nie powiod\u0142o si\u0119. Zalecamy kontakt."),xe("Kod b\u0142\u0119du: ",C.result.value)}catch(C){xe("Nieoczekiwany b\u0142\u0105d. Spr\xF3buj ponownie za chwil\u0119."),vr("B\u0142\u0105d podczas pobierania danych:"+C)}}async function Ne(){try{let C=await A({accessId:t.accessId,accessToken:e,isBrowser:!0});if(C.result.case==="success"){le(C.result.value.audiobookDownloadDetails),de(C.result.value.isAvailableToDownloadInMobileApp===!0);return}else xe("Pobranie plik\xF3w nie powiod\u0142o si\u0119. Zalecamy kontakt."),xe("Kod b\u0142\u0119du: ",C.result.value)}catch(C){xe("Nieoczekiwany b\u0142\u0105d. Spr\xF3buj ponownie za chwil\u0119."),vr("B\u0142\u0105d podczas pobierania danych:"+C)}}return _react3.useEffect.call(void 0, ()=>{o===2&&lt(),o===1&&(Ht().then().catch(),Ne().then().catch())},[]),_react3.useEffect.call(void 0, ()=>{if(p!=null&&U!=null){let C=p.chapters;if(!C)return;let ge=C.map($e=>{let ce=_optionalChain([U, 'optionalAccess', _92 => _92.find, 'call', _93 => _93(vt=>vt.chapterId===$e.id)]);if(ce!=null)return{...$e,publicUrl:ce.publicUrl,downloadableUrl:ce.downloadableUrl,duration:ce.duration}}).filter($e=>$e!=null);ge!=null&&ge.length>0&&De(ge)}},[p,U]),_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "div",{className:"mb-3 space-y-4 rounded bg-white p-4 dark:bg-black",children:_jsxruntime.jsxs.call(void 0, _chunkG4V2KWTVjs.q,{onClick:()=>a(),variant:"ghost",className:"min-h-11 w-fit",children:[_jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft,{className:"h-6 w-6"}),_jsxruntime.jsx.call(void 0, "span",{className:"font-inter text-sm font-medium",children:r.back})]})}),_jsxruntime.jsxs.call(void 0, "main",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[_jsxruntime.jsxs.call(void 0, "header",{className:"flex min-w-0 flex-col gap-4 rounded-xl border border-neutral-200 bg-white p-4 dark:border-neutral-700 dark:bg-neutral-900 lg:row-span-2 lg:self-start",children:[_jsxruntime.jsx.call(void 0, "img",{src:t.productImageUrl,alt:t.productName,width:384,height:384,draggable:!1,className:"aspect-square max-h-72 w-full object-contain"}),_jsxruntime.jsx.call(void 0, "h2",{className:"text-2xl font-semibold",children:t.productName})]}),_jsxruntime.jsxs.call(void 0, "div",{className:"flex min-w-0 flex-col gap-6",children:[o===2&&_jsxruntime.jsxs.call(void 0, "section",{ref:l,className:"flex flex-col gap-4 rounded-xl border border-neutral-200 bg-white p-4 dark:border-neutral-700 dark:bg-neutral-900",children:[_jsxruntime.jsx.call(void 0, "h3",{className:"text-xl font-semibold",children:r.yourFiles}),u&&_jsxruntime.jsx.call(void 0, "div",{role:"status","aria-label":r.loading,children:_jsxruntime.jsx.call(void 0, _e,{})}),b&&_jsxruntime.jsxs.call(void 0, "div",{role:"alert",children:[_jsxruntime.jsx.call(void 0, "p",{children:r.fileError}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{className:"min-h-11",onClick:lt,children:r.retry})]}),_optionalChain([w, 'optionalAccess', _94 => _94.length])===0&&_jsxruntime.jsx.call(void 0, "p",{children:r.noFiles}),w&&_jsxruntime.jsx.call(void 0, "ul",{className:"flex flex-col gap-3",children:w.map((C,ge)=>_jsxruntime.jsxs.call(void 0, "li",{className:"flex min-w-0 flex-wrap items-center justify-between gap-3",children:[_jsxruntime.jsx.call(void 0, "span",{className:"min-w-0 break-all text-sm",children:no(C)||`${r.file} ${ge+1}`}),_jsxruntime.jsxs.call(void 0, "a",{target:"_blank",rel:"noopener noreferrer",href:C,download:!0,onClick:d,className:"inline-flex min-h-11 items-center gap-2 rounded-md bg-neutral-900 px-3 py-2 text-sm text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 dark:bg-neutral-100 dark:text-neutral-900","aria-label":`${r.download}: ${no(C)||`${r.file} ${ge+1}`}`,children:[r.download,_jsxruntime.jsx.call(void 0, _lucidereact.Download,{className:"size-4","aria-hidden":"true"})]})]},C))})]}),o===3&&_jsxruntime.jsxs.call(void 0, "section",{className:"rounded-xl border border-neutral-200 bg-white p-4 dark:border-neutral-700 dark:bg-neutral-900",children:[_jsxruntime.jsx.call(void 0, "h3",{className:"text-lg font-semibold",children:r.ticket}),_jsxruntime.jsx.call(void 0, "p",{className:"mt-2 font-medium",children:t.productName}),_jsxruntime.jsx.call(void 0, "p",{className:"mt-2 text-sm text-neutral-600 dark:text-neutral-300",children:r.ticketInfo})]}),o===1&&_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:_jsxruntime.jsxs.call(void 0, "div",{className:"flex flex-col space-y-6 rounded-xl bg-white p-3 drop-shadow-xl dark:bg-neutral-900 dark:drop-shadow-none",children:[_jsxruntime.jsx.call(void 0, "h4",{className:"text-xl font-semibold",children:_nullishCoalesce(_optionalChain([J, 'optionalAccess', _95 => _95.name]), () => ("Odtwarzacz"))}),_optionalChain([J, 'optionalAccess', _96 => _96.description])&&_jsxruntime.jsx.call(void 0, "p",{className:"text-sm",children:_optionalChain([J, 'optionalAccess', _97 => _97.description])}),_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:ee?_jsxruntime.jsxs.call(void 0, "div",{className:"flex gap-2",children:[_jsxruntime.jsx.call(void 0, _e,{}),_jsxruntime.jsx.call(void 0, "p",{className:"text-xl font-semibold",children:"Trwa pobierania audiobooka..."})]}):_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:Y!=null?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:_jsxruntime.jsx.call(void 0, Xn,{ref:c,coverShownBeside:!0,chapters:Y,author:typeof _optionalChain([p, 'optionalAccess', _98 => _98.author])=="string"?p.author:void 0,onExpiredUrl:()=>{Ne()},title:_nullishCoalesce(_nullishCoalesce(_optionalChain([p, 'optionalAccess', _99 => _99.name]), () => (t.productName)), () => (void 0)),imageURL:_nullishCoalesce(_nullishCoalesce(_optionalChain([p, 'optionalAccess', _100 => _100.coverImage]), () => (t.productImageUrl)), () => (void 0)),styles:n,setCurrentTimeHandler:C=>{m.current=C},uniqueProductID:t.productId,onChapterChange:C=>{He(C)}})}):_jsxruntime.jsx.call(void 0, "p",{className:"mt-2",children:"Wybierz rozdzia\u0142, kt\xF3ry ci\u0119 interesuje."})})}),_jsxruntime.jsxs.call(void 0, "div",{className:"rounded-xl bg-neutral-100 p-3 dark:bg-neutral-800",children:[_jsxruntime.jsx.call(void 0, "p",{className:"mt-3 mb-3 text-xs",children:E?"Mo\u017Cesz s\u0142ucha\u0107 tego audiobooka w aplikacji r\xF3wnie\u017C bez dost\u0119pu do internetu.":"Mo\u017Cesz s\u0142ucha\u0107 tego audiobooka w aplikacji."}),_jsxruntime.jsxs.call(void 0, "div",{className:"flex gap-3",children:[_jsxruntime.jsx.call(void 0, "a",{href:"https://apps.apple.com/us/app/bitsnap/id6741902807",children:_jsxruntime.jsx.call(void 0, "img",{width:"100",src:"https://bitsnap.pl/appstore.svg",alt:"Pobierz aplikacje z AppStore"})}),_jsxruntime.jsx.call(void 0, "a",{href:"https://play.google.com/store/apps/details?id=com.bitsnap.Bitsnap",children:_jsxruntime.jsx.call(void 0, "img",{width:"100",src:"https://bitsnap.pl/playstore.svg",alt:"Pobierz aplikacj\u0119 z GooglePlay"})})]})]})]})}),_jsxruntime.jsx.call(void 0, "div",{className:"flex items-center justify-center rounded-xl bg-white p-3 drop-shadow-xl dark:bg-neutral-900 dark:drop-shadow-none",children:o===1&&_jsxruntime.jsx.call(void 0, Pr,{chapters:Y,currentID:_optionalChain([J, 'optionalAccess', _101 => _101.id]),productID:t.productId,loading:ee,downloadable:_optionalChain([p, 'optionalAccess', _102 => _102.isDownloadable])===!0,onDownload:d,onSelect:C=>_optionalChain([c, 'access', _103 => _103.current, 'optionalAccess', _104 => _104.selectChapter, 'call', _105 => _105(C)])})})]}),_jsxruntime.jsx.call(void 0, "section",{className:"rounded-xl border border-neutral-200 bg-white p-4 dark:border-neutral-700 dark:bg-neutral-900",children:_jsxruntime.jsx.call(void 0, "p",{className:"whitespace-pre-wrap text-sm text-neutral-600 dark:text-neutral-300",children:t.productDescription})})]})]})},oo=ui;function no(e){try{return decodeURIComponent(new URL(e,"https://bitsnap.pl").pathname.split("/").pop()||"")}catch (e14){return""}}var _connectquery = require('@connectrpc/connect-query');function ao(e,t){let n=_connectquery.useTransport.call(void 0, ),[a,r]=_react3.useState.call(void 0, {status:"loading"});return _react3.useEffect.call(void 0, ()=>{if(!e){r({status:"hidden"});return}let o=!1;return r({status:"loading"}),Promise.resolve().then(() => _interopRequireWildcard(require("./model-files-client-P4PORZJ6.js"))).then(({listModelFiles:i})=>i(n,e,t)).catch(()=>({status:"hidden"})).then(i=>{o||r(i)}),()=>{o=!0}},[n,e,t]),a}var wi=_react3.lazy.call(void 0, ()=>Promise.resolve().then(() => _interopRequireWildcard(require("./PanelModelFiles-7HPXWONN.js")))),Ci=({accessToken:e,projectID:t,loginURL:n,styles:a,activeScreen:r,params:o,setParams:i,openCourse:d})=>{let{host:c}=_chunkVNV5BD4Xjs.j.call(void 0, ),{data:l,isLoading:b,error:P,refetch:w}=_chunkG4V2KWTVjs.l.call(void 0, _chunkG4V2KWTVjs.k.publicApi.userPanelGetProducts,{accessToken:e}),h=ao(e,t),y=Ni({products:b?{status:"loading"}:P!=null?{status:"error"}:_optionalChain([l, 'optionalAccess', _106 => _106.result, 'access', _107 => _107.case])==="success"?{status:"ok",count:l.result.value.products.length}:_optionalChain([l, 'optionalAccess', _108 => _108.result, 'access', _109 => _109.case])==="failure"?{status:"failure",unauthorized:l.result.value===9}:{status:"error"},modelFiles:h});if(_react3.useEffect.call(void 0, ()=>{y.kind==="signed-out"&&(_chunkVNV5BD4Xjs.n.call(void 0, t,c),window.location.href=n)},[y.kind,t,c,n]),y.kind==="loading"||y.kind==="signed-out")return _jsxruntime.jsx.call(void 0, "div",{role:"status","aria-label":Qe().loading,"aria-busy":"true",className:"grid grid-cols-2 gap-4 sm:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5",children:Array.from({length:6},(x,U)=>_jsxruntime.jsx.call(void 0, "div",{"aria-hidden":"true",className:"h-72 rounded-xl bg-neutral-100 motion-safe:animate-pulse dark:bg-neutral-800"},U))});let u=l&&l.result.case==="success"?l.result.value.products:[],m=h.status==="ready"?h.models:[],p=m.length>0?_jsxruntime.jsx.call(void 0, _react3.Suspense,{fallback:null,children:_jsxruntime.jsx.call(void 0, wi,{accessToken:e,models:m,buttonStyle:a})}):null;return y.kind==="error"?_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, Si,{onRetry:()=>void w()}),p]}):y.kind==="empty"?_jsxruntime.jsx.call(void 0, Ii,{}):_jsxruntime.jsx.call(void 0, Ei,{accessToken:e,products:u,styles:a,activeScreen:r,params:o,setParams:i,openCourse:d,filesSection:p})};function Ni({products:e,modelFiles:t}){if(e.status==="failure"&&e.unauthorized)return{kind:"signed-out"};if(e.status==="loading")return{kind:"loading"};if(e.status==="ok"&&e.count>0)return{kind:"list"};if(t.status==="loading")return{kind:"loading"};if(e.status==="failure"||e.status==="error")return t.status==="unauthorized"?{kind:"signed-out"}:{kind:"error"};let n=t.status==="ready"?t.models.length:0;return e.count===0&&n===0?{kind:"empty"}:{kind:"list"}}function Ii(){let e=Qe();return _jsxruntime.jsxs.call(void 0, "div",{className:"flex flex-col items-start gap-1","data-testid":"panel-empty",children:[_jsxruntime.jsx.call(void 0, "h3",{className:"text-2xl",children:e.hello}),_jsxruntime.jsx.call(void 0, "p",{className:"text-sm text-neutral-500",children:e.empty})]})}function Si({onRetry:e}){let t=_chunk7RXW6XFYjs.f.call(void 0, ).toLowerCase().startsWith("en");return _jsxruntime.jsxs.call(void 0, "div",{className:"flex flex-col items-start gap-3",role:"alert","data-testid":"panel-error",children:[_jsxruntime.jsx.call(void 0, "p",{className:"text-sm text-neutral-600 dark:text-neutral-300",children:t?"Your products could not be loaded.":"Nie uda\u0142o si\u0119 wczyta\u0107 Twoich produkt\xF3w."}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{type:"button",onClick:e,className:"text-sm",children:t?"Try again":"Spr\xF3buj ponownie"})]})}var so=Ci,Ei=({accessToken:e,products:t,styles:n,filesSection:a,activeScreen:r,params:o,setParams:i,openCourse:d})=>{let c=Qe(),[l,b]=_react3.useState.call(void 0, ()=>io(o.product,t));_react3.useEffect.call(void 0, ()=>{b(io(o.product,t))},[o.product,t]);let P=h=>{b(h),i({product:h?h.accessId||h.productId:void 0,state:"products"})};_react3.useEffect.call(void 0, ()=>{r==="products"&&_optionalChain([l, 'optionalAccess', _110 => _110.productType])===4&&d(l.accessId)},[r,l,d]);function w(h){if(h.productType===4){d(h.accessId);return}P(h)}return r==="products"&&_optionalChain([l, 'optionalAccess', _111 => _111.productType])===4?null:r==="products"&&l!=null?_jsxruntime.jsx.call(void 0, oo,{accessToken:e,product:l,styles:n,reveal:P,onOpenCourse:d}):_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, "h3",{className:"text-2xl",children:c.hello}),t.length>0&&_jsxruntime.jsx.call(void 0, "p",{className:"text-sm text-neutral-500 dark:text-neutral-400",children:c.intro}),_jsxruntime.jsx.call(void 0, "div",{className:"mt-6 grid grid-cols-2 gap-4 sm:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5",children:t.map(h=>{let[y,u,m]=h.productType===1?[c.audio,c.listen,_lucidereact.Headphones]:h.productType===4?[c.course,c.openCourse,_lucidereact.BookOpen]:h.productType===3?[c.ticket,c.showTicket,_lucidereact.Ticket]:[c.files,c.downloadFiles,_lucidereact.Files];return _jsxruntime.jsxs.call(void 0, "button",{type:"button",onClick:()=>w(h),className:"flex min-h-11 min-w-0 flex-col overflow-hidden rounded-xl border border-neutral-200 bg-white text-left text-neutral-900 transition-colors hover:border-neutral-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-neutral-500 dark:border-neutral-700 dark:bg-neutral-900 dark:text-neutral-50 dark:hover:border-neutral-500",children:[_jsxruntime.jsxs.call(void 0, "span",{className:"flex w-full flex-col gap-3 bg-neutral-100 p-3 dark:bg-neutral-800",children:[_jsxruntime.jsxs.call(void 0, "span",{className:"flex w-fit items-center gap-1.5 rounded-md bg-white px-2 py-1 text-xs font-medium dark:bg-neutral-900",children:[_jsxruntime.jsx.call(void 0, m,{className:"size-4","aria-hidden":"true"}),y]}),_jsxruntime.jsx.call(void 0, "img",{src:h.productImageUrl,alt:h.productName,draggable:!1,className:"aspect-square w-full object-contain"})]}),_jsxruntime.jsxs.call(void 0, "span",{className:"flex flex-1 flex-col gap-3 p-3",children:[_jsxruntime.jsx.call(void 0, "span",{className:"line-clamp-2 font-semibold",children:h.productName}),_jsxruntime.jsx.call(void 0, "span",{className:"line-clamp-2 text-sm text-neutral-600 dark:text-neutral-300",children:Hn(h.productDescription)}),_jsxruntime.jsx.call(void 0, "span",{className:"mt-auto pt-2 text-sm font-medium underline underline-offset-4",children:u})]})]},h.accessId||h.productId)})}),a]})};function io(e,t){if(!e)return;let n=t.find(a=>(a.accessId||a.productId)===e||a.productId===e);if(n)return n;try{let a=_protobuf.fromJsonString.call(void 0, _chunkG4V2KWTVjs.e,e);return t.find(r=>a.accessId?r.accessId===a.accessId:r.productId===a.productId)}catch (e15){return}}var co=[{screen:"products",label:"libraryNavLabel",icon:_lucidereact.Library},{screen:"orders",label:"ordersNavLabel",icon:_lucidereact.Receipt},{screen:"returns",label:"returnsNavLabel",icon:_lucidereact.Undo2},{screen:"profile",label:"accountNavLabel",icon:_lucidereact.User}];function uo(e){return e==="course"?"products":e==="order-details"?"orders":e==="return-details"?"returns":e}function xr({activeScreen:e,setActiveScreen:t,setParams:n,theme:a,logout:r,email:o,projectID:i}){let d=ue(),{data:c}=_chunkZATPBYOAjs.b.call(void 0, _nullishCoalesce(i, () => ("")),!!i);return _jsxruntime.jsxs.call(void 0, "header",{className:"flex h-14 shrink-0 items-center border-b border-neutral-200 bg-white px-4 md:h-dvh md:w-56 md:flex-col md:items-stretch md:border-r md:border-b-0 md:py-5 dark:border-neutral-800 dark:bg-neutral-900",children:[_jsxruntime.jsxs.call(void 0, "div",{className:"flex min-w-0 items-center gap-3 md:mb-6 md:flex-col md:items-start",children:[_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.c,{projectId:i,logoUrl:_optionalChain([a, 'optionalAccess', _112 => _112.logoURL]),logoDarkUrl:_optionalChain([a, 'optionalAccess', _113 => _113.logoDarkURL]),name:_optionalChain([c, 'optionalAccess', _114 => _114.name]),className:"shrink-0"}),_optionalChain([c, 'optionalAccess', _115 => _115.name])&&_jsxruntime.jsx.call(void 0, "span",{title:c.name,className:"truncate text-sm font-medium md:line-clamp-2 md:whitespace-normal",children:c.name})]}),_jsxruntime.jsx.call(void 0, "nav",{"aria-label":d.navigationLabel,className:"fixed inset-x-0 bottom-0 z-10 flex h-[calc(56px+env(safe-area-inset-bottom))] items-start justify-around border-t border-neutral-200 bg-white pb-[env(safe-area-inset-bottom)] md:static md:h-auto md:flex-1 md:flex-col md:justify-start md:gap-2 md:border-0 md:bg-transparent md:pb-0 dark:border-neutral-800 dark:bg-neutral-900",children:co.map(({screen:l,label:b,icon:P})=>{let w=uo(e)===l;return _jsxruntime.jsxs.call(void 0, "button",{type:"button","aria-current":w?"page":void 0,onClick:()=>{t(l),n({product:void 0,state:l})},className:_chunk4HGZZJELjs.g.call(void 0, "flex h-14 min-h-11 min-w-0 flex-1 flex-col items-center justify-center gap-1 px-1 text-[11px] focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-current md:h-11 md:w-full md:flex-none md:flex-row md:justify-start md:gap-3 md:rounded-md md:px-3 md:text-sm",w?"bg-neutral-100 font-semibold text-black dark:bg-neutral-800 dark:text-white":"text-neutral-600 hover:bg-neutral-100 dark:text-neutral-400 dark:hover:bg-neutral-800"),children:[_jsxruntime.jsx.call(void 0, P,{className:"h-5 w-5 shrink-0","aria-hidden":"true"}),_jsxruntime.jsx.call(void 0, "span",{children:d[b]})]},l)})}),_jsxruntime.jsxs.call(void 0, "div",{className:"hidden border-t border-neutral-200 pt-4 md:block dark:border-neutral-800",children:[o&&_jsxruntime.jsx.call(void 0, "p",{title:o,className:"mb-3 truncate text-sm text-neutral-600 dark:text-neutral-400",children:o}),_jsxruntime.jsxs.call(void 0, "button",{type:"button",onClick:r,className:"flex min-h-11 w-full items-center gap-3 rounded-md px-3 text-sm text-red-700 hover:bg-red-50 focus-visible:outline-2 focus-visible:outline-current dark:text-red-400 dark:hover:bg-neutral-800",children:[_jsxruntime.jsx.call(void 0, _lucidereact.LogOut,{className:"h-4 w-4","aria-hidden":"true"}),d.logout]})]})]})}function wr({email:e,logout:t,onLocaleChange:n}){let[a,r]=_react3.useState.call(void 0, _chunk7RXW6XFYjs.f),o=ue(a);return _jsxruntime.jsxs.call(void 0, "section",{className:"w-full max-w-xl",children:[_jsxruntime.jsx.call(void 0, "h3",{className:"text-2xl",children:o.accountNavLabel}),_jsxruntime.jsx.call(void 0, "h4",{className:"mt-6 mb-2 text-sm font-medium text-neutral-600 dark:text-neutral-400",children:o.profileHeading}),_jsxruntime.jsxs.call(void 0, "div",{className:"divide-y divide-neutral-200 rounded-lg border border-neutral-200 bg-white dark:divide-neutral-800 dark:border-neutral-800 dark:bg-neutral-900",children:[_jsxruntime.jsxs.call(void 0, "div",{className:"p-4",children:[_jsxruntime.jsx.call(void 0, "p",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:o.emailLabel}),_jsxruntime.jsx.call(void 0, "p",{className:"mt-1 break-words",children:e||o.noData})]}),_jsxruntime.jsxs.call(void 0, "label",{className:"flex min-h-11 flex-wrap items-center justify-between gap-3 p-4",children:[_jsxruntime.jsx.call(void 0, "span",{children:o.languageLabel}),_jsxruntime.jsxs.call(void 0, "select",{value:a.toLowerCase().startsWith("en")?"en-US":"pl-PL",onChange:i=>{_chunk7RXW6XFYjs.e.call(void 0, i.target.value),r(i.target.value),_optionalChain([n, 'optionalCall', _116 => _116()])},className:"min-h-11 rounded-md border border-neutral-300 bg-white px-3 focus-visible:outline-2 focus-visible:outline-current dark:border-neutral-700 dark:bg-neutral-900",children:[_jsxruntime.jsx.call(void 0, "option",{value:"pl-PL",children:o.polishLanguage}),_jsxruntime.jsx.call(void 0, "option",{value:"en-US",children:o.englishLanguage})]})]})]}),_jsxruntime.jsxs.call(void 0, "button",{type:"button",onClick:t,className:"mt-6 flex min-h-11 w-full items-center gap-3 rounded-lg border border-neutral-200 bg-white px-4 py-3 text-red-700 hover:bg-red-50 focus-visible:outline-2 focus-visible:outline-current dark:border-neutral-800 dark:bg-neutral-900 dark:text-red-400 dark:hover:bg-neutral-800",children:[_jsxruntime.jsx.call(void 0, _lucidereact.LogOut,{className:"h-5 w-5","aria-hidden":"true"}),o.logout]})]})}var zi=_react3.lazy.call(void 0, ()=>Promise.resolve().then(() => _interopRequireWildcard(require("./course.js"))).then(e=>({default:e.PanelCourse})));function Cr(e){return _jsxruntime.jsx.call(void 0, _react3.Suspense,{fallback:_jsxruntime.jsx.call(void 0, "div",{className:"flex items-center gap-2 p-2",role:"status",children:_jsxruntime.jsx.call(void 0, _e,{})}),children:_jsxruntime.jsx.call(void 0, "div",{className:"[--course-mobile-bottom:calc(56px+env(safe-area-inset-bottom))] md:[--course-mobile-bottom:0px]",children:_jsxruntime.jsx.call(void 0, zi,{...e})})})}function $i({status:e}){let t={created:{color:"bg-neutral-100 text-neutral-700",icon:null},paid:{color:"bg-green-100 text-green-700",icon:_lucidereact.CheckCircle2},completed:{color:"bg-blue-100 text-blue-700",icon:_lucidereact.CheckCircle2},canceled:{color:"bg-red-100 text-red-700",icon:_lucidereact.AlertCircle},sent:{color:"bg-purple-100 text-purple-700",icon:_lucidereact.Truck},processing:{color:"bg-yellow-100 text-yellow-700",icon:_lucidereact.Loader2}},n=t[e]||t.created,a=n.icon,r={created:"Utworzone",paid:"Op\u0142acone",completed:"Zako\u0144czone",canceled:"Anulowane",sent:"Wys\u0142ane",processing:"Przetwarzane"};return _jsxruntime.jsxs.call(void 0, "span",{className:`inline-flex items-center gap-1 rounded-full px-3 py-1 text-sm font-medium ${n.color}`,children:[a&&_jsxruntime.jsx.call(void 0, a,{className:"h-4 w-4"}),r[e]||e]})}function qi({orderID:e,email:t}){let[n,a]=_react3.useState.call(void 0, ""),r=_chunkG4V2KWTVjs.m.call(void 0, _chunkG4V2KWTVjs.k.publicApi.addPublicOrderComment);return _jsxruntime.jsxs.call(void 0, "form",{onSubmit:async i=>{if(i.preventDefault(),!!n.trim())try{await r.mutateAsync({projectId:"",orderId:e,message:n.trim(),accessToken:t}),a("")}catch(d){console.error("Failed to add comment:",d)}},className:"mt-4 space-y-2",children:[_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.d,{htmlFor:"comment",children:"Dodaj komentarz"}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.v,{id:"comment",value:n,onChange:i=>a(i.target.value),placeholder:"Wpisz komentarz...",rows:3,disabled:r.isPending}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{type:"submit",disabled:!n.trim()||r.isPending,children:r.isPending?_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, _lucidereact.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"Wysy\u0142anie..."]}):"Dodaj komentarz"})]})}function fo(e){return e?new Date(Number(e.seconds)*1e3).toLocaleDateString("pl-PL",{year:"numeric",month:"long",day:"numeric"}):"N/A"}function go(e,t){return new Intl.NumberFormat("pl-PL",{style:"currency",currency:t.toUpperCase()}).format(e/100)}function Bi({orderID:e,initialEmail:t,onBack:n,accessToken:a,analytics:r}){let{theme:o,projectID:i}=_chunkVNV5BD4Xjs.j.call(void 0, ),d=_chunkDP2NOHCIjs.n.call(void 0, i,r,"order"),[c,l]=_react3.useState.call(void 0, t||""),[b,P]=_react3.useState.call(void 0, !1),{data:w,isLoading:h,error:y,refetch:u}=_chunkG4V2KWTVjs.l.call(void 0, _chunkG4V2KWTVjs.k.publicApi.getPublicOrderDetails,{projectId:_nullishCoalesce(i, () => ("")),orderId:e,email:c||void 0,accessToken:a},{enabled:!!e}),m=_optionalChain([w, 'optionalAccess', _117 => _117.result, 'access', _118 => _118.case])==="order"?w.result.value:null,p=_nullishCoalesce(_optionalChain([m, 'optionalAccess', _119 => _119.isVerified]), () => (!1)),x=m!=null;_react3.useEffect.call(void 0, ()=>{x&&d.track("panel_order_viewed",{},{order_ref:null})},[d,x]);let U=()=>{u(),P(!1)},le={"--button-background-color":_nullishCoalesce(_optionalChain([o, 'optionalAccess', _120 => _120.colors, 'optionalAccess', _121 => _121.brand]), () => ("#000000")),"--button-background-color-dark":_nullishCoalesce(_optionalChain([o, 'optionalAccess', _122 => _122.colors, 'optionalAccess', _123 => _123.brandDark]), () => ("#ffffff")),"--button-text-color":_nullishCoalesce(_optionalChain([o, 'optionalAccess', _124 => _124.colors, 'optionalAccess', _125 => _125.brandDark]), () => ("#000000")),"--button-text-color-dark":_nullishCoalesce(_optionalChain([o, 'optionalAccess', _126 => _126.colors, 'optionalAccess', _127 => _127.brand]), () => ("#000000"))};return h?_jsxruntime.jsx.call(void 0, "div",{className:"flex min-h-screen items-center justify-center",children:_jsxruntime.jsxs.call(void 0, "div",{className:"text-center",children:[_jsxruntime.jsx.call(void 0, _lucidereact.Loader2,{className:"mx-auto h-8 w-8 animate-spin text-neutral-400"}),_jsxruntime.jsx.call(void 0, "p",{className:"mt-2 text-neutral-600 dark:text-neutral-400",children:"\u0141adowanie zam\xF3wienia..."})]})}):y||!m?_jsxruntime.jsx.call(void 0, "div",{className:"flex min-h-screen items-center justify-center",children:_jsxruntime.jsx.call(void 0, Ee,{className:"w-full max-w-md",children:_jsxruntime.jsx.call(void 0, Te,{className:"pt-6",children:_jsxruntime.jsxs.call(void 0, "div",{className:"text-center",children:[_jsxruntime.jsx.call(void 0, _lucidereact.AlertCircle,{className:"mx-auto h-12 w-12 text-red-500"}),_jsxruntime.jsx.call(void 0, "h2",{className:"mt-4 text-xl font-semibold",children:"Zam\xF3wienie nie znalezione"}),_jsxruntime.jsx.call(void 0, "p",{className:"mt-2 text-neutral-600 dark:text-neutral-400",children:"Nie znaleziono zam\xF3wienia o podanym numerze."})]})})})}):_jsxruntime.jsx.call(void 0, "div",{className:"w-full bg-white py-8 dark:bg-black",style:le,children:_jsxruntime.jsxs.call(void 0, "div",{className:"w-full px-4",children:[n&&_jsxruntime.jsxs.call(void 0, _chunkG4V2KWTVjs.q,{onClick:n,variant:"ghost",className:"mb-4 w-fit",children:[_jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft,{className:"h-4 w-4"}),"Wr\xF3\u0107 do historii zam\xF3wie\u0144"]}),_jsxruntime.jsxs.call(void 0, "div",{className:"mb-6 flex items-center gap-4",children:[_optionalChain([o, 'optionalAccess', _128 => _128.logoURL])&&_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, "img",{src:o.logoURL,alt:"Project logo",className:`h-12 w-auto ${o.logoDarkURL?"dark:hidden":""}`}),o.logoDarkURL&&_jsxruntime.jsx.call(void 0, "img",{src:o.logoDarkURL,alt:"Project logo",className:"hidden h-12 w-auto dark:block"})]}),_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "h1",{className:"text-3xl font-bold",children:"Zam\xF3wienie"}),_jsxruntime.jsxs.call(void 0, "p",{className:"text-neutral-600 dark:text-neutral-400",children:["Numer zam\xF3wienia: #",m.orderId]})]})]}),_jsxruntime.jsxs.call(void 0, Ee,{className:"mb-6",children:[_jsxruntime.jsx.call(void 0, Oe,{children:_jsxruntime.jsxs.call(void 0, Ue,{className:"flex items-center",children:[_jsxruntime.jsx.call(void 0, _lucidereact.Package,{className:"mr-2 h-5 w-5"}),"Status zam\xF3wienia"]})}),_jsxruntime.jsxs.call(void 0, Te,{className:"space-y-6",children:[_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsxs.call(void 0, "div",{className:"flex items-center gap-2",children:[_jsxruntime.jsx.call(void 0, $i,{status:m.status}),m.processingStatus&&_jsxruntime.jsxs.call(void 0, "span",{className:"text-sm text-neutral-600",children:["\xB7 ",m.processingStatus]})]}),_jsxruntime.jsxs.call(void 0, "p",{className:"mt-2 text-sm text-neutral-600",children:["Zam\xF3wienie z\u0142o\u017Cone ",fo(m.createdAt)]})]}),_jsxruntime.jsxs.call(void 0, "div",{className:"border-t pt-4",children:[_jsxruntime.jsx.call(void 0, "h3",{className:"mb-3 font-semibold",children:"Dane klienta"}),_jsxruntime.jsxs.call(void 0, "div",{className:"space-y-2",children:[_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "span",{className:"font-medium",children:"Imi\u0119 i nazwisko:"})," ",_jsxruntime.jsx.call(void 0, "span",{className:p?"":"text-neutral-500",children:m.customerName})]}),_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "span",{className:"font-medium",children:"Email:"})," ",_jsxruntime.jsx.call(void 0, "span",{className:p?"":"text-neutral-500",children:m.customerEmail})]}),m.customerPhone&&_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "span",{className:"font-medium",children:"Telefon:"})," ",_jsxruntime.jsx.call(void 0, "span",{className:p?"":"text-neutral-500",children:m.customerPhone})]})]})]}),!p&&_jsxruntime.jsx.call(void 0, "div",{className:"border-t pt-4",children:_jsxruntime.jsxs.call(void 0, _chunkG4V2KWTVjs.q,{onClick:()=>P(!0),variant:"outline",className:"w-full",children:[_jsxruntime.jsx.call(void 0, _lucidereact.Lock,{className:"mr-2 h-4 w-4"}),"Zweryfikuj sw\xF3j email"]})})]})]}),_jsxruntime.jsxs.call(void 0, Ee,{className:"mb-6",children:[_jsxruntime.jsx.call(void 0, Oe,{children:_jsxruntime.jsx.call(void 0, Ue,{children:"Produkty"})}),_jsxruntime.jsxs.call(void 0, Te,{className:"space-y-6",children:[_jsxruntime.jsx.call(void 0, "div",{className:"space-y-4",children:m.items.map((E,de)=>_jsxruntime.jsxs.call(void 0, "div",{className:"flex items-center gap-4",children:[E.imageUrl&&_jsxruntime.jsx.call(void 0, "img",{src:E.imageUrl,alt:E.name,className:"h-16 w-16 rounded object-cover"}),_jsxruntime.jsxs.call(void 0, "div",{className:"flex-1",children:[_jsxruntime.jsx.call(void 0, "p",{className:"font-medium",children:E.name}),_jsxruntime.jsxs.call(void 0, "p",{className:"text-sm text-neutral-600",children:["Ilo\u015B\u0107: ",E.quantity]})]}),_jsxruntime.jsx.call(void 0, "div",{className:"text-right",children:_jsxruntime.jsx.call(void 0, "p",{className:"font-medium",children:go(Number(E.price),E.currency)})})]},de))}),(m.deliveryAddress||m.deliveryMethod)&&_jsxruntime.jsxs.call(void 0, "div",{className:"border-t pt-4",children:[_jsxruntime.jsxs.call(void 0, "h3",{className:"mb-3 flex items-center font-semibold",children:[_jsxruntime.jsx.call(void 0, _lucidereact.Truck,{className:"mr-2 h-5 w-5"}),"Informacje o dostawie"]}),_jsxruntime.jsxs.call(void 0, "div",{className:"space-y-2",children:[m.deliveryAddress&&_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "span",{className:"font-medium",children:"Adres:"})," ",_jsxruntime.jsx.call(void 0, "span",{className:p?"":"text-neutral-500",children:m.deliveryAddress})]}),m.deliveryMethod&&_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "span",{className:"font-medium",children:"Metoda:"})," ",m.deliveryMethod]}),m.trackingNumber&&p&&_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "span",{className:"font-medium",children:"Tracking:"})," ",m.trackingNumber]})]})]}),_jsxruntime.jsx.call(void 0, "div",{className:"border-t pt-4",children:_jsxruntime.jsxs.call(void 0, "div",{className:"flex justify-between text-lg font-bold",children:[_jsxruntime.jsx.call(void 0, "span",{children:"Suma:"}),_jsxruntime.jsx.call(void 0, "span",{children:go(Number(m.totalAmount),m.currency)})]})})]})]}),_jsxruntime.jsxs.call(void 0, Ee,{children:[_jsxruntime.jsx.call(void 0, Oe,{children:_jsxruntime.jsxs.call(void 0, Ue,{children:["Komentarze ",m.commentCount>0&&`(${m.commentCount})`]})}),_jsxruntime.jsxs.call(void 0, Te,{children:[m.comments.length>0?_jsxruntime.jsx.call(void 0, "div",{className:"space-y-4",children:m.comments.map(E=>_jsxruntime.jsxs.call(void 0, "div",{className:"border-b pb-4 last:border-b-0",children:[_jsxruntime.jsxs.call(void 0, "div",{className:"mb-1 flex items-center gap-2",children:[_jsxruntime.jsx.call(void 0, "span",{className:"font-medium",children:E.authorName||"System"}),_jsxruntime.jsx.call(void 0, "span",{className:"text-xs text-neutral-500",children:fo(E.createdAt)}),E.authorType==="admin"&&_jsxruntime.jsx.call(void 0, "span",{className:"rounded bg-blue-100 px-2 py-0.5 text-xs text-blue-700",children:"Admin"})]}),_jsxruntime.jsx.call(void 0, "p",{className:p?"":"text-neutral-500",children:E.message})]},E.id))}):_jsxruntime.jsx.call(void 0, "p",{className:"text-neutral-600",children:"Brak komentarzy."}),p?_jsxruntime.jsx.call(void 0, qi,{orderID:m.orderId,email:c}):_jsxruntime.jsx.call(void 0, "div",{className:"mt-4",children:_jsxruntime.jsxs.call(void 0, _chunkG4V2KWTVjs.q,{onClick:()=>P(!0),variant:"outline",className:"w-full",children:[_jsxruntime.jsx.call(void 0, _lucidereact.Lock,{className:"mr-2 h-4 w-4"}),"Zweryfikuj sw\xF3j email"]})})]})]}),b&&_jsxruntime.jsx.call(void 0, "div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:_jsxruntime.jsxs.call(void 0, Ee,{className:"w-full max-w-md",children:[_jsxruntime.jsx.call(void 0, Oe,{children:_jsxruntime.jsx.call(void 0, Ue,{children:"Zweryfikuj sw\xF3j email"})}),_jsxruntime.jsxs.call(void 0, Te,{className:"space-y-4",children:[_jsxruntime.jsx.call(void 0, "p",{className:"text-sm text-neutral-700",children:"Podaj adres email u\u017Cyty przy sk\u0142adaniu zam\xF3wienia."}),_jsxruntime.jsxs.call(void 0, "div",{className:"space-y-2",children:[_jsxruntime.jsx.call(void 0, _chunkZATPBYOAjs.d,{htmlFor:"verify-email",children:"Adres email"}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.r,{id:"verify-email",type:"email",placeholder:"twoj@email.com",value:c,onChange:E=>l(E.target.value)})]}),_jsxruntime.jsxs.call(void 0, "div",{className:"flex gap-2",children:[_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{variant:"outline",onClick:()=>P(!1),className:"flex-1",children:"Anuluj"}),_jsxruntime.jsx.call(void 0, _chunkG4V2KWTVjs.q,{onClick:U,className:"flex-1",children:"Zweryfikuj"})]})]})]})})]})})}function Ki(e){return _jsxruntime.jsx.call(void 0, Bi,{...e})}var Sr=Ki;var Wi=({returnsAppearance:e,returnsTexts:t,analytics:n}={})=>{let{projectID:a,theme:r,loginURL:o,host:i}=_chunkVNV5BD4Xjs.j.call(void 0, ),[,d]=_react3.useState.call(void 0, 0),c=_chunkDP2NOHCIjs.n.call(void 0, a,n,"panel"),l=_chunkVNV5BD4Xjs.k.call(void 0, a,i),b=_chunkVNV5BD4Xjs.m.call(void 0, a,i),{mutateAsync:P}=_chunkG4V2KWTVjs.m.call(void 0, _chunkG4V2KWTVjs.k.publicApi.userPanelLogout);async function w(){l&&await P({accessToken:l}),typeof window<"u"&&(_chunkVNV5BD4Xjs.n.call(void 0, a,i),window.location.reload())}let[h]=_react.useAutoAnimate.call(void 0, ),y=A=>["products","notifications","profile","plans","orders","order-details","returns","return-details","course"].includes(A),[u,m]=Un({product:void 0,state:"products",orderId:void 0,returnId:void 0,course:void 0,item:void 0}),[p,x]=_react3.useState.call(void 0, y(u.state)?u.state:"products"),U=A=>{m({state:"order-details",orderId:A}),x("order-details")},le=()=>{m({state:"orders",orderId:void 0}),x("orders")},E=A=>m({orderId:void 0,returnId:void 0,course:void 0,item:void 0,...A}),de=A=>{m({state:"course",course:A,item:void 0,product:void 0}),x("course")},Ce=()=>{m({state:"products",course:void 0,item:void 0,product:void 0}),x("products")};_react3.useEffect.call(void 0, ()=>{y(u.state)&&(u.state==="course"||p==="course")&&x(u.state)},[u.state]);let ee={"--button-background-color":_nullishCoalesce(_optionalChain([r, 'optionalAccess', _129 => _129.colors, 'optionalAccess', _130 => _130.brand]), () => ("#000000")),"--button-background-color-dark":_nullishCoalesce(_optionalChain([r, 'optionalAccess', _131 => _131.colors, 'optionalAccess', _132 => _132.brandDark]), () => ("#ffffff")),"--button-text-color":_nullishCoalesce(_optionalChain([r, 'optionalAccess', _133 => _133.colors, 'optionalAccess', _134 => _134.brandDark]), () => ("#000000")),"--button-text-color-dark":_nullishCoalesce(_optionalChain([r, 'optionalAccess', _135 => _135.colors, 'optionalAccess', _136 => _136.brand]), () => ("#000000"))};return _react3.useEffect.call(void 0, ()=>{if(l==null||l.length===0){window.location.href=_nullishCoalesce(o, () => ("/panel/login"));return}},[]),_react3.useEffect.call(void 0, ()=>{if(l==null||l.length===0){window.location.href=_nullishCoalesce(o, () => ("/panel/login"));return}},[p]),_react3.useEffect.call(void 0, ()=>{if(typeof window>"u"||window.parent!==window||!l)return;let A=gt(window.location.search);A&&yt(A);let fe=_nullishCoalesce(A, () => (Ye()));fe&&(window.location.href=Ze(fe,l))},[l]),_jsxruntime.jsx.call(void 0, _chunkDP2NOHCIjs.l,{value:c,children:_jsxruntime.jsxs.call(void 0, "div",{ref:h,className:"font-inter relative flex h-dvh w-full flex-col bg-beige-100 text-black dark:bg-black dark:text-white md:flex-row",children:[_jsxruntime.jsx.call(void 0, xr,{activeScreen:p,setActiveScreen:x,setParams:E,styles:ee,theme:r,logout:w,email:b,projectID:a}),_jsxruntime.jsxs.call(void 0, "main",{className:"flex min-h-0 min-w-0 flex-1 flex-col overflow-y-auto w-full p-5 pb-[calc(76px+env(safe-area-inset-bottom))] md:pb-5",children:[p==="products"&&_jsxruntime.jsx.call(void 0, so,{projectID:_nullishCoalesce(a, () => ("")),accessToken:l,loginURL:_nullishCoalesce(o, () => ("/panel/login")),styles:ee,activeScreen:p,params:u,setParams:m,openCourse:de}),p==="course"&&u.course&&l&&_jsxruntime.jsx.call(void 0, Cr,{accessId:u.course,accessToken:l,theme:r,itemId:u.item,onItemChange:A=>m({item:A}),onBack:Ce}),p==="notifications"&&_jsxruntime.jsx.call(void 0, ur,{}),p==="plans"&&_jsxruntime.jsx.call(void 0, pr,{projectID:_nullishCoalesce(a, () => (""))}),p==="orders"&&_jsxruntime.jsx.call(void 0, jn,{projectID:_nullishCoalesce(a, () => ("")),accessToken:_nullishCoalesce(l, () => ("")),openOrderDetails:U}),p==="order-details"&&u.orderId&&_jsxruntime.jsx.call(void 0, Sr,{orderID:u.orderId,onBack:le}),(p==="returns"||p==="return-details")&&l&&_jsxruntime.jsx.call(void 0, fr,{projectID:_nullishCoalesce(a, () => ("")),host:i,accessToken:l,loginURL:_nullishCoalesce(o, () => ("/panel/login")),appearance:_n(e,_optionalChain([r, 'optionalAccess', _137 => _137.colors, 'optionalAccess', _138 => _138.brand])),texts:t,screen:p,params:u,setParams:m,setActiveScreen:x}),p==="profile"&&_jsxruntime.jsx.call(void 0, wr,{email:b,logout:w,onLocaleChange:()=>d(A=>A+1)})]})]})})},Vi= exports.m =Wi;var _reactquery = require('@tanstack/react-query');var _connect = require('@connectrpc/connect');var _connectweb = require('@connectrpc/connect-web');var me;(a=>{function e(r){return _connect.createClient.call(void 0, _chunkG4V2KWTVjs.f,n(r))}a.get=e;let t=new Map;function n(r){let o=t.get(r);return o==null&&(o=_connectweb.createConnectTransport.call(void 0, {useBinaryFormat:!0,baseUrl:r+"/api/rpc",interceptors:[_chunk4HGZZJELjs.b]}),t.set(r,o)),o}})(me = exports.a||={});var _zod = require('zod'); var _zod2 = _interopRequireDefault(_zod);function z(e,t=2){return+(Math.round(+(e+"e+"+t))+"e-"+t)}function ko(e,t){let n=typeof navigator>"u"?"pl-PL":navigator.language;return Intl.NumberFormat(n,{style:"currency",currency:t,currencyDisplay:"symbol"}).format(e/100)}var ju=_zod2.default.object({event:_zod2.default.enum(["purchase","addToCart","customizeProduct","viewCart","removeFromCart","initiateCheckout","lead"]),step:_zod2.default.string().optional(),value:_zod2.default.number().optional(),currency:_zod2.default.string().optional(),content_name:_zod2.default.string().optional(),items:_zod2.default.array(_zod2.default.object({id:_zod2.default.string(),name:_zod2.default.string(),price:_zod2.default.number().default(0),currency:_zod2.default.string().default("PLN"),quantity:_zod2.default.number().default(1)})).optional()});function Er(e){typeof window>"u"||(Zi(e),Xi(e),es(e))}function Zi(e){try{typeof window.dataLayer>"u"&&(window.dataLayer=[]);let t=Qi(e);window.dataLayer.push(t)}catch(t){console.warn("cannot send google analytics event",t)}}function Qi(e){let t=_nullishCoalesce(_nullishCoalesce(e.value, () => (_optionalChain([e, 'access', _139 => _139.items, 'optionalAccess', _140 => _140.reduce, 'call', _141 => _141((o,i)=>o+(i.price||0)*(i.quantity||1),0)]))), () => (0)),n=_optionalChain([e, 'access', _142 => _142.items, 'optionalAccess', _143 => _143.map, 'call', _144 => _144(o=>({item_id:o.id,item_name:o.name||o.id,price:z((o.price||0)/100,2),quantity:o.quantity||1}))]),a={currency:e.currency||"PLN",value:z(t/100,2)};n&&n.length>0&&(a.items=n);let r;switch(e.event){case"purchase":r="purchase",a.transaction_id=e.step||`txn_${Date.now()}`;break;case"addToCart":r="add_to_cart";break;case"viewCart":r="view_cart";break;case"removeFromCart":r="remove_from_cart";break;case"initiateCheckout":r="begin_checkout";break;case"customizeProduct":r="customize_product";break;default:r=e.event}return{event:r,ecommerce:a,...e.step&&{step:e.step},...e.content_name&&{content_name:e.content_name}}}function Xi(e){if(typeof window.fbq>"u")return;let t="",n="",a={};switch(e.event){case"purchase":t="track",n="Purchase",a={category_name:e.step,...e};break;case"lead":t="track",n="Lead",a={category_name:e.step,...e};break;case"addToCart":t="track",n="Add to Cart",a={category_name:e.step,...e};break;case"customizeProduct":t="track",n="Customize Product",a={category_name:e.step,...e};break;case"viewCart":t="track",n="View Cart",a={category_name:e.step,...e};break;case"removeFromCart":t="track",n="Remove from Cart",a={category_name:e.step,...e};break;case"initiateCheckout":t="track",n="Initiate Checkout",a={category_name:e.step,...e};break;default:break}window.location.search.includes("analytics")&&console.log("Pushing FB event",t,n,a),window.fbq(t,n,a)}function es(e){try{if(typeof window.ttq>"u")return;let t=ts(e);if(!t)return;window.location.search.includes("analytics")&&console.log("Pushing TikTok event",t.eventName,t.eventPayload),window.ttq.track(t.eventName,t.eventPayload)}catch(t){console.warn("cannot send tiktok analytics event",t)}}function ts(e){let t=_nullishCoalesce(_nullishCoalesce(e.value, () => (_optionalChain([e, 'access', _145 => _145.items, 'optionalAccess', _146 => _146.reduce, 'call', _147 => _147((o,i)=>o+(i.price||0)*(i.quantity||1),0)]))), () => (0)),n=_optionalChain([e, 'access', _148 => _148.items, 'optionalAccess', _149 => _149.map, 'call', _150 => _150(o=>({content_id:o.id,content_type:"product",content_name:o.name||o.id,quantity:o.quantity||1,price:z((o.price||0)/100,2)}))])||[];n.length===0&&e.content_name&&n.push({content_id:e.step||"unknown",content_type:"product",content_name:e.content_name,quantity:1,price:z(t/100,2)});let a={currency:e.currency||"PLN",value:z(t/100,2)};n.length>0&&(a.contents=n);let r=null;switch(e.event){case"purchase":r="Purchase";break;case"addToCart":r="AddToCart";break;case"initiateCheckout":r="InitiateCheckout";break;case"customizeProduct":r="CustomizeProduct";break;case"viewCart":return;case"removeFromCart":return;case"lead":return;default:return null}return{eventName:r,eventPayload:a}}function xo(e){let{items:t,googlePayConfig:n,checkout:a,result:r,cartRequiresShipping:o}=e,i=_nullishCoalesce(e.locale, () => (_chunk7RXW6XFYjs.f.call(void 0, )));if(r.totalAmount==null)return;let d=[];return o&&(d.push("SHIPPING_ADDRESS"),d.push("SHIPPING_OPTION")),{apiVersion:2,apiVersionMinor:0,callbackIntents:d,allowedPaymentMethods:[{type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:["MASTERCARD","VISA"]},tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:n.gateway,gatewayMerchantId:n.gatewayId}}}],emailRequired:!0,shippingAddressParameters:{phoneNumberRequired:o},shippingAddressRequired:o,shippingOptionRequired:o,shippingOptionParameters:o?{shippingOptions:r.methods.slice(0,5).map(l=>({id:l.id,label:l.name+` - ${ko(l.amount,r.currency)}`,description:_nullishCoalesce(l.description, () => (""))})),defaultSelectedOptionId:r.selectedDeliveryMethod}:void 0,merchantInfo:{merchantId:n.merchantId+"",merchantName:n.merchantName},transactionInfo:{totalPriceStatus:"FINAL",totalPriceLabel:_chunk7RXW6XFYjs.c.call(void 0, "paymentForCart",i,e.texts),totalPrice:`${z(r.totalAmount/100,2)}`,currencyCode:r.currency,countryCode:r.country,checkoutOption:"COMPLETE_IMMEDIATE_PURCHASE",displayItems:rs(t,r.methods,_nullishCoalesce(r.selectedDeliveryMethod, () => ((r.methods.length>0?r.methods[0].id:void 0))),a.couponCode,r.couponValue,_chunk7RXW6XFYjs.c.call(void 0, "coupon",i,e.texts))}}}function rs(e,t,n,a,r,o="Coupon"){let i=[],d=0;for(let l of e){if(l.details==null)continue;let b=_nullishCoalesce(_optionalChain([l, 'access', _151 => _151.details, 'access', _152 => _152.pricing, 'optionalAccess', _153 => _153.effectivePrice]), () => (l.details.price));d+=b*l.quantity,i.push({label:l.details.name+" x "+l.quantity,price:`${z(b/100,2)}`,type:"LINE_ITEM",status:"FINAL"})}let c=t.find(l=>l.id===n);return c!=null&&i.push({label:c.name,price:`${z(c.amount/100,2)}`,type:"SHIPPING_OPTION",status:"FINAL"}),a!=null&&r!=null&&i.push({label:`${o} ${a}`,price:`${z(r/100,2)}`,type:"DISCOUNT",status:"FINAL"}),d>0&&i.push({label:"Subtotal",price:`${z(d/100,2)}`,type:"SUBTOTAL",status:"FINAL"}),i}function nt(e,t){return`${_chunk4HGZZJELjs.e}/api/integrations/${e}/public-commerce${t}`}function Ae(e){return typeof e=="object"&&e!=null&&"ERR"in e}function q(e,t,n){return{ERR:!0,error:e,type:t,data:n}}function wo(e,t){return _optionalChain([t, 'optionalAccess', _154 => _154.find, 'call', _155 => _155(n=>n.id===e||(_nullishCoalesce(_optionalChain([n, 'access', _156 => _156.variants, 'optionalAccess', _157 => _157.some, 'call', _158 => _158(a=>a.id===e)]), () => (!1))))])}function Co(e,t){let n=new Set(t.map(a=>a.productID));return Array.from(new Set(e.filter(a=>!n.has(a))))}function No(e,t){let n=_optionalChain([e, 'optionalAccess', _159 => _159.trim, 'call', _160 => _160()]);if(!(n==null||n.length===0))try{let a=new URL(n,t);return a.protocol!=="http:"&&a.protocol!=="https:"?void 0:a.href}catch (e16){return}}var _zustand = require('zustand');var ot=_zustand.create.call(void 0, e=>({isCartVisible:!1,notice:void 0,setNotice:t=>e(n=>({...n,notice:t})),numberOfProductsInCart:0,showCart:()=>e(t=>({...t,isCartVisible:!0})),hideCart:()=>e(t=>({...t,isCartVisible:!1})),setNumberOfProductsInCart:t=>e(n=>({...n,numberOfProductsInCart:t}))}));var Ut=_react3.createContext.call(void 0, {});function ep({texts:e,locale:t,children:n}){let a=_react3.useMemo.call(void 0, ()=>({texts:e,locale:t}),[e,t]);return _jsxruntime.jsx.call(void 0, Ut.Provider,{value:a,children:n})}function So(){return _react3.useContext.call(void 0, Ut)}function tp(e){let{texts:t,locale:n}=_react3.useContext.call(void 0, Ut);return _chunk7RXW6XFYjs.c.call(void 0, e,_nullishCoalesce(n, () => (_chunk7RXW6XFYjs.f.call(void 0, ))),t)}function rp(){let{texts:e,locale:t}=_react3.useContext.call(void 0, Ut),n=_nullishCoalesce(t, () => (_chunk7RXW6XFYjs.f.call(void 0, )));return _react3.useMemo.call(void 0, ()=>a=>_chunk7RXW6XFYjs.c.call(void 0, a,n,e),[n,e])}var Rr="bitsnap-pending-order";function Lo(e,t){let n=new Map;for(let r of t)n.set(r.id,(_nullishCoalesce(n.get(r.id), () => (0)))+r.quantity);let a=[];for(let r of e){let o=n.get(r.id);o==null?a.push(r):r.quantity>o&&a.push({...r,quantity:r.quantity-o})}return a}var is=60*1e3;function Ro(e,t=Date.now,n=is){let a;return r=>{let o=`${r.orderId}:${r.ts}`,i=t();return _optionalChain([a, 'optionalAccess', _161 => _161.key])===o&&i-a.at<n?Promise.reject(new Error("pending order was asked about recently")):(a={key:o,at:i},e(r))}}function ss(e){if(!(e==null||e.length===0))try{let t=new URL(e,"https://bitsnap.invalid").pathname,n=/\/payment\/common\/([^/]+)\/([^/]+)\/?$/.exec(t);return n==null?void 0:{projectId:decodeURIComponent(n[1]),orderId:decodeURIComponent(n[2])}}catch (e17){return}}function ls(e){if(e==null||e.length===0)return!1;try{let t=new URL(e,"https://bitsnap.invalid").pathname;return/\/payment\/manualPayment\/[^/]+\/[^/]+\/?$/.test(t)}catch (e18){return!1}}function ds(e,t=Date.now(),n={}){if(ls(e.url))return;let a=ss(e.url),r=_nullishCoalesce(Eo(e.orderId), () => (_optionalChain([a, 'optionalAccess', _162 => _162.orderId]))),o=_nullishCoalesce(Eo(e.projectId), () => (_optionalChain([a, 'optionalAccess', _163 => _163.projectId])));if(!(r==null||o==null))return{orderId:r,projectId:o,...n.cartProjectId!=null?{cartProjectId:n.cartProjectId}:{},lines:_nullishCoalesce(n.lines, () => ([])),ts:t}}function ap(e,t={}){let n=ds(e,t.now,t);return n!=null&&cs(n,t.storage)}function Eo(e){return e!=null&&e.length>0?e:void 0}function _t(){try{return typeof localStorage>"u"?void 0:localStorage}catch (e19){return}}function cs(e,t=_t()){try{return _optionalChain([t, 'optionalAccess', _164 => _164.setItem, 'call', _165 => _165(Rr,JSON.stringify(e))]),t!=null}catch (e20){return!1}}function To(e=_t()){try{let t=_optionalChain([e, 'optionalAccess', _166 => _166.getItem, 'call', _167 => _167(Rr)]);if(t==null)return;let n=JSON.parse(t);if(typeof n=="object"&&n!=null&&typeof n.orderId=="string"&&typeof n.projectId=="string"&&typeof n.ts=="number"&&n.orderId.length>0){let{orderId:a,projectId:r,cartProjectId:o,ts:i,lines:d}=n;return{orderId:a,projectId:r,...typeof o=="string"?{cartProjectId:o}:{},lines:Array.isArray(d)?d.filter(c=>typeof _optionalChain([c, 'optionalAccess', _168 => _168.id])=="string"&&typeof c.quantity=="number"):[],ts:i}}}catch (e21){}Lr(e)}function Lr(e=_t()){try{_optionalChain([e, 'optionalAccess', _169 => _169.removeItem, 'call', _170 => _170(Rr)])}catch (e22){}}function Ao(e){let t=_nullishCoalesce(_optionalChain([e, 'access', _171 => _171.details, 'optionalAccess', _172 => _172.status]), () => (us(_optionalChain([e, 'access', _173 => _173.details, 'optionalAccess', _174 => _174.$unknown]))));return t==="created"||t==="placed"||t==="paid"||t==="canceled"?t:"unknown"}function us(e){if(Array.isArray(e)){for(let t of e)if(_optionalChain([t, 'optionalAccess', _175 => _175.no])===3&&t.wireType===2&&t.data instanceof Uint8Array){let n=0,a=0;for(let r=0;a<t.data.length&&r<35;r+=7){let o=t.data[a++];if(n|=(o&127)<<r,!(o&128))break}if(a+n!==t.data.length)return;try{return new TextDecoder().decode(t.data.subarray(a))}catch (e23){return}}}}async function Do(e){let t=_nullishCoalesce(e.storage, () => (_t())),n=To(t);if(n==null)return"none";if((_nullishCoalesce(e.now, () => (Date.now)))()-n.ts>864e5)return Lr(t),"expired";if(e.projectId!=null&&n.cartProjectId!=null&&n.cartProjectId!==e.projectId)return"pending";let r;try{r=await e.fetchStatus(n)}catch (e24){return"pending"}let o=To(t);if(_optionalChain([o, 'optionalAccess', _176 => _176.orderId])!==n.orderId||o.ts!==n.ts)return"pending";if(r==="paid"||r==="placed"){try{await e.removeLines(n.lines)}catch (e25){return"pending"}return Lr(t),"paid"}return"pending"}var hs="__m_a",jo=_react3.createContext.call(void 0, void 0),Or= exports.I =void 0;function Rp(e){_chunkVNV5BD4Xjs.a.call(void 0, {projectID:e}),Or= exports.I =e,typeof window<"u"&&_chunkVNV5BD4Xjs.g.call(void 0, [window.location.origin])}function st(){return _nullishCoalesce(_nullishCoalesce(Or, () => (_optionalChain([document, 'access', _177 => _177.querySelector, 'call', _178 => _178('script[data-id][data-name="internal-cart"]'), 'optionalAccess', _179 => _179.getAttribute, 'call', _180 => _180("data-id")]))), () => (void 0))}function bs(){return _nullishCoalesce(_optionalChain([document, 'access', _181 => _181.querySelector, 'call', _182 => _182('script[data-id][data-name="internal-cart"]'), 'optionalAccess', _183 => _183.getAttribute, 'call', _184 => _184("data-custom-host")]), () => (void 0))}var Ps=({children:e,locale:t})=>{let[n]=_react3.useState.call(void 0, ()=>new _reactquery.QueryClient),a=So();_react3.useEffect.call(void 0, ()=>{it()},[]);let r=st();if(_react3.useEffect.call(void 0, ()=>{if(r==null)return;let i=()=>{xs(r).then(c=>{c==="paid"&&n.invalidateQueries({queryKey:["cart"]})})},d=()=>{document.visibilityState==="visible"&&i()};return i(),window.addEventListener("pageshow",i),document.addEventListener("visibilitychange",d),()=>{window.removeEventListener("pageshow",i),document.removeEventListener("visibilitychange",d)}},[r,n]),r==null)return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{});let o=_r(r,_nullishCoalesce(t, () => (a.locale)),a.texts);return _jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider,{client:n,children:_jsxruntime.jsx.call(void 0, jo.Provider,{value:o,children:e})})},Ar,vs=Ro(async e=>Ao(await me.get(_chunk4HGZZJELjs.e).getOrder({id:e.orderId,projectId:e.projectId})));function Ap(){let{country:e,couponCode:t,selectedDeliveryMethod:n,postalCode:a}=_nullishCoalesce(R(), () => (jt));return{country:e,couponCode:t,selectedDeliveryMethod:n,postalCode:a}}function Dp(){return(_nullishCoalesce(_optionalChain([R, 'call', _185 => _185(), 'optionalAccess', _186 => _186.products]), () => ([]))).map(e=>({id:e.id,quantity:e.quantity}))}function ks(e){let t=R();ne({...t,products:Lo(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _187 => _187.products]), () => ([])),e)}),it()}function xs(e){return Ar??=Do({projectId:e,fetchStatus:vs,removeLines:ks}).catch(t=>{console.warn("cannot check the pending order",t)}).finally(()=>{Ar=void 0}),Ar}var at=async(e,t)=>{let n=[];_optionalChain([t, 'optionalAccess', _188 => _188.items])!=null&&t.items.length>0?n=t.items:n=_nullishCoalesce(_optionalChain([R, 'call', _189 => _189(), 'optionalAccess', _190 => _190.products]), () => ([]));let a=Array.from(new Set(n.map(i=>i.productID)));if(a.length===0)return[];let r=new URLSearchParams;r.set("ids",a.join(",")),r.set("locale",_nullishCoalesce(_optionalChain([t, 'optionalAccess', _191 => _191.locale]), () => (_chunk7RXW6XFYjs.f.call(void 0, ))));let o;try{let i=await fetch(_chunk4HGZZJELjs.c.call(void 0, nt(e,`/products?${r.toString()}`)),{method:"GET"});if(i.status!=200)return q("products-load-failed","internal");o=await i.json()}catch(i){return console.warn("cannot load the products of the cart",i),q("products-load-failed","internal")}return n.flatMap(i=>{let d=wo(i.productID,o.result);return d==null?[]:[{...i,details:Es(i.productID,d),catalogProductID:d.id}]})},Mp= exports.O =()=>{let e=_react3.useContext.call(void 0, jo);if(e===void 0)throw new Error("useCartProvider must be used within a CartProvider");return e},Op= exports.P =Ps,ws=_zod2.default.object({isAvailable:_zod2.default.boolean(),merchantId:_zod2.default.string(),merchantName:_zod2.default.string(),gateway:_zod2.default.string(),gatewayId:_zod2.default.string()}),Cs=_zod2.default.object({id:_zod2.default.string(),productID:_zod2.default.string(),quantity:_zod2.default.number(),priceVersion:_zod2.default.string().optional(),metadata:_zod2.default.record(_zod2.default.string(),_zod2.default.string().optional()).optional(),url:_zod2.default.string().optional()}),Ns=_zod2.default.object({country:_zod2.default.string().optional(),couponCode:_zod2.default.string().optional(),selectedDeliveryMethod:_zod2.default.string().optional(),postalCode:_zod2.default.string().optional(),email:_zod2.default.string().optional(),products:_zod2.default.array(Cs).optional(),googlePayConfig:ws.optional()}),jt={country:void 0,couponCode:void 0,email:void 0,selectedDeliveryMethod:void 0,postalCode:void 0,products:[],googlePayConfig:void 0},Fo="checkout";function R(){try{let e=localStorage.getItem(Fo);return e==null?jt:Ns.parse(JSON.parse(e))}catch (e26){return jt}}async function Oo(e,t){let n=await at(e,{items:t.map((o,i)=>({...o,id:`price-check-${i}`}))});if(Ae(n))return n;let a=Co(t.map(o=>o.productID),n);if(a.length>0)return q("item-ids-not-found","notFound",a);let r=R();r.products==null&&(r.products=[]),r.products.push(...t.map(o=>({id:Math.random().toString(36).substring(7),productID:o.productID,quantity:o.quantity,priceVersion:_optionalChain([n, 'access', _192 => _192.find, 'call', _193 => _193(i=>i.productID===o.productID), 'optionalAccess', _194 => _194.details, 'optionalAccess', _195 => _195.pricing, 'optionalAccess', _196 => _196.priceVersion]),metadata:o.metadata,url:No(o.url,typeof window<"u"?window.location.href:void 0)}))),Is(t,n),Er({event:"addToCart",currency:"PLN",items:t.map(o=>({id:o.productID,name:_nullishCoalesce(o.name, () => ("")),price:_nullishCoalesce(o.price, () => (0)),quantity:o.quantity,currency:_nullishCoalesce(o.currency, () => ("PLN"))}))}),ne(r),it()}function Is(e,t){for(let n of e)try{let a=t.find(d=>d.productID===n.productID),r=_nullishCoalesce(_nullishCoalesce(_optionalChain([a, 'optionalAccess', _197 => _197.details, 'optionalAccess', _198 => _198.pricing, 'optionalAccess', _199 => _199.effectivePrice]), () => (_optionalChain([a, 'optionalAccess', _200 => _200.details, 'optionalAccess', _201 => _201.price]))), () => (n.price)),o=_nullishCoalesce(_optionalChain([a, 'optionalAccess', _202 => _202.details, 'optionalAccess', _203 => _203.currency]), () => (n.currency));if(r==null||o==null)continue;let i=_nullishCoalesce(_optionalChain([a, 'optionalAccess', _204 => _204.catalogProductID]), () => (n.productID));(_nullishCoalesce(n.analytics, () => (_chunkDP2NOHCIjs.o.call(void 0, )))).track("add_to_cart",{qty:n.quantity,value_minor:Math.round(r*n.quantity),currency:o},{product_id:i,variant_id:i!==n.productID?n.productID:null})}catch (e27){}}function Uo(e){let t=R(),n={...t,products:_optionalChain([t, 'optionalAccess', _205 => _205.products, 'optionalAccess', _206 => _206.filter, 'call', _207 => _207(a=>!e.includes(a.productID)&&!e.includes(a.id))])};Er({event:"removeFromCart",items:e.map(a=>({id:a,name:"",price:0,quantity:1,currency:"PLN"}))}),ne(n),it()}function ne(e){localStorage.setItem(Fo,JSON.stringify(e))}function _o(e,t){if(e.products==null||e.products.length==0)return;let n=e.products.reduce((a,r)=>(r.metadata!=null&&Object.keys(r.metadata).forEach(o=>{let i=_optionalChain([r, 'access', _208 => _208.metadata, 'optionalAccess', _209 => _209[o]]);i!=null&&(a[o]=i)}),a),{});return{items:e.products.map(a=>({id:a.productID,quantity:a.quantity,priceVersion:a.priceVersion})),askForNote:!0,countries:e.country?[e.country]:void 0,metadata:n,locale:t}}var _r=(e,t=_chunk7RXW6XFYjs.f.call(void 0, ),n)=>{let a=bs();return a!=null&&_chunk4HGZZJELjs.f.call(void 0, a),{async checkIfApplePayIsAvailable(){if(typeof window>"u"||typeof document>"u"||!("ApplePaySession"in window))return!1;try{return(await me.get(_chunk4HGZZJELjs.e).isOneClickPaymentAvailable({projectId:e})).applePay}catch(r){return console.error("Error checking if Apple Pay is available",r),!1}},async getGooglePayConfiguration(r){if(typeof window>"u"||typeof document>"u")return{isAvailable:!1};try{let o=await Ss(e);if(_optionalChain([o, 'optionalAccess', _210 => _210.isAvailable])!=!0)return{isAvailable:!1};let i=R();if(i==null)return console.log("checkout is null"),{isAvailable:!1};let d=await at(e,{locale:t,items:r.items.map(P=>({id:Math.random().toString(36).substring(7),quantity:P.quantity,metadata:P.metadata,productID:P.productID}))});if(Ae(d))return{isAvailable:!1};let c=await me.get(_chunk4HGZZJELjs.e).getPreOrderDetails({items:d.map(P=>_protobuf.create.call(void 0, _chunkG4V2KWTVjs.c,{id:P.productID,quantity:P.quantity})),projectId:e,postCode:i.postalCode,couponCode:i.couponCode,countryCode:i.country,selectedDeliveryMethod:i.selectedDeliveryMethod});if(c.totalAmount==null)return{isAvailable:!1};let l=d.find(P=>_optionalChain([P, 'access', _211 => _211.details, 'optionalAccess', _212 => _212.isDeliverable])==!0)!=null,b=await xo({items:d,googlePayConfig:o,checkout:i,cartRequiresShipping:l,result:c,locale:t,texts:n});return b==null?{isAvailable:!1}:{isAvailable:!0,config:b}}catch(o){return console.error("Error resolving Google Pay configuration",o),{isAvailable:!1}}},async clearCart(){let r=structuredClone(jt);r.country=_optionalChain([R, 'call', _213 => _213(), 'optionalAccess', _214 => _214.country]),ne(r),it()},async getAvailableCountries(){let r=await fetch(_chunk4HGZZJELjs.c.call(void 0, nt(e,"/countries")),{method:"GET"});if(r.status!=200)return[];try{return _zod2.default.array(_zod2.default.object({name:_zod2.default.string(),code:_zod2.default.string()})).parse(await r.json())}catch(o){return q(o.toString(),"internal")}},async getCountry(){let r=_optionalChain([R, 'call', _215 => _215(), 'optionalAccess', _216 => _216.country]);if(r==null){r="PL";let o=R();o.country=r,ne(o)}return r},async getNumberOfElementsInCart(){return _nullishCoalesce(_optionalChain([R, 'call', _217 => _217(), 'optionalAccess', _218 => _218.products, 'optionalAccess', _219 => _219.reduce, 'call', _220 => _220((r,o)=>r+o.quantity,0)]), () => (0))},async getProducts(){return await at(e,{locale:t})},async removeProductFromCart(r){return Uo([r.id])},async setCountry(r){let o=R();o.country=r,ne(o)},async setCouponCodeIfPossible(r){let o=R();o.couponCode=r,ne(o)},async setPostalCode(r){let o=R();o.postalCode=r,ne(o)},async setDeliveryMethod(r){let o=R();o.selectedDeliveryMethod=r,ne(o)},async setEmail(r){let o=R();o.email=r,ne(o)},async addProduct(r){return await Oo(e,[r])},async updateQuantity(r){let o=R();o.products=_optionalChain([o, 'access', _221 => _221.products, 'optionalAccess', _222 => _222.map, 'call', _223 => _223(i=>(i.id===r.id&&(i.quantity=r.quantity),i))]),ne(o),it()},async getPaymentMethodChoice(){let r=_o(R(),t);return r==null?null:zo(r)},async redirectToNextStep(r){let o=_o(R(),t);if(o==null)return q("cart-is-empty","badInput");_optionalChain([r, 'optionalAccess', _224 => _224.paymentMethod])!=null&&(o.paymentMethod=r.paymentMethod);let i=await Mr(o);return Ae(i)?(console.warn("cannot create payment URL",i.error),i):{url:i.url,...i.orderId!=null?{orderId:i.orderId}:{},...i.projectId!=null?{projectId:i.projectId}:{}}},async justRedirectToPayment(r){let o={items:[{id:r.productID,quantity:1}],askForNote:!1,details:r.email||r.name?{name:r.name,email:r.email}:void 0,locale:_nullishCoalesce(r.locale, () => (t))};o=Ur(o),r.country==null&&(r.country="pl"),o.details==null&&(o.details={}),o.details.address==null&&(o.details.address={}),o.details.address.country=r.country,r.marketingAgreement===!0&&(o.additionalAgreements=[{id:hs,name:"",required:!0,answer:!0}]);let i=await Mr(o);return Ae(i)?i:{url:i.url}},async getApplePayPreview(r){let o=R();try{let i=await me.get(_chunk4HGZZJELjs.e).getPreOrderDetails({items:r.items.map(d=>_protobuf.create.call(void 0, _chunkG4V2KWTVjs.c,{id:d.productID,quantity:d.quantity})),projectId:e,postCode:o.postalCode,couponCode:o.couponCode,countryCode:o.country,selectedDeliveryMethod:o.selectedDeliveryMethod});return i.totalAmount==null||i.currency.length===0?q("pre-order-unavailable","internal"):{countryCode:i.country||o.country||"PL",currencyCode:i.currency,totalAmount:`${z(i.totalAmount/100,2)}`}}catch(i){return console.warn("cannot load the Apple Pay preview",i),q("pre-order-unavailable","internal")}},async completeApplePayPayment(r){let o=R();if(o==null)return q("Checkout not found");let i=await at(e,{locale:t});if(Ae(i))return i;try{let d=_optionalChain([r, 'access', _225 => _225.shippingContact, 'optionalAccess', _226 => _226.givenName]);_optionalChain([r, 'access', _227 => _227.shippingContact, 'optionalAccess', _228 => _228.familyName])!=null?d+=" "+_optionalChain([r, 'access', _229 => _229.shippingContact, 'optionalAccess', _230 => _230.familyName]):_optionalChain([r, 'access', _231 => _231.billingContact, 'optionalAccess', _232 => _232.familyName])!=null&&(d+=" "+_optionalChain([r, 'access', _233 => _233.billingContact, 'optionalAccess', _234 => _234.familyName]));let c={},l=zt();l!=null&&(c.ref=l);let b=await me.get(_chunk4HGZZJELjs.e).authorizeOneClickPayment({gateway:0,paymentData:JSON.stringify(r.token.paymentData),paymentMethod:JSON.stringify(r.token.paymentMethod),transactionIdentifier:r.token.transactionIdentifier,order:_protobuf.create.call(void 0, _chunkG4V2KWTVjs.d,{items:i.map(P=>({id:P.productID,quantity:P.quantity})),couponCode:o.couponCode,email:_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([r, 'access', _235 => _235.shippingContact, 'optionalAccess', _236 => _236.emailAddress]), () => (_optionalChain([r, 'access', _237 => _237.billingContact, 'optionalAccess', _238 => _238.emailAddress]))), () => (o.email)), () => (void 0)),phone:_nullishCoalesce(_nullishCoalesce(_optionalChain([r, 'access', _239 => _239.shippingContact, 'optionalAccess', _240 => _240.phoneNumber]), () => (_optionalChain([r, 'access', _241 => _241.billingContact, 'optionalAccess', _242 => _242.phoneNumber]))), () => (void 0)),selectedDeliveryMethod:o.selectedDeliveryMethod,postCode:o.postalCode,projectId:e}),shippingAddress:_protobuf.create.call(void 0, _chunkG4V2KWTVjs.a,{line1:_nullishCoalesce(_optionalChain([r, 'access', _243 => _243.shippingContact, 'optionalAccess', _244 => _244.addressLines, 'optionalAccess', _245 => _245[0]]), () => ("")),city:_nullishCoalesce(_optionalChain([r, 'access', _246 => _246.shippingContact, 'optionalAccess', _247 => _247.locality]), () => ("")),country:_nullishCoalesce(_optionalChain([r, 'access', _248 => _248.shippingContact, 'optionalAccess', _249 => _249.countryCode]), () => ("")),zipCode:_nullishCoalesce(_optionalChain([r, 'access', _250 => _250.shippingContact, 'optionalAccess', _251 => _251.postalCode]), () => ("")),name:d}),billingAddress:_protobuf.create.call(void 0, _chunkG4V2KWTVjs.b,{name:_nullishCoalesce(_optionalChain([r, 'access', _252 => _252.billingContact, 'optionalAccess', _253 => _253.givenName]), () => (" "+(_nullishCoalesce(_optionalChain([r, 'access', _254 => _254.billingContact, 'optionalAccess', _255 => _255.familyName]), () => (""))))),line1:_nullishCoalesce(_optionalChain([r, 'access', _256 => _256.billingContact, 'optionalAccess', _257 => _257.addressLines, 'optionalAccess', _258 => _258[0]]), () => ("")),city:_nullishCoalesce(_optionalChain([r, 'access', _259 => _259.billingContact, 'optionalAccess', _260 => _260.locality]), () => ("")),country:_nullishCoalesce(_optionalChain([r, 'access', _261 => _261.billingContact, 'optionalAccess', _262 => _262.countryCode]), () => ("")),zipCode:_nullishCoalesce(_optionalChain([r, 'access', _263 => _263.billingContact, 'optionalAccess', _264 => _264.postalCode]), () => (""))}),metadata:Object.keys(c).length>0?JSON.stringify(c):void 0});return{isSuccess:b.isSuccess,redirectURL:b.redirectUrl}}catch(d){return console.error(d),q("Failed to authorize payment")}},async completeGooglePayPayment(r){let o=R();if(o==null)return q("Checkout not found");let i=await at(e,{locale:t});if(Ae(i))return i;try{let d=_optionalChain([r, 'access', _265 => _265.paymentData, 'access', _266 => _266.shippingAddress, 'optionalAccess', _267 => _267.name]),c={},l=zt();l!=null&&(c.ref=l);let b=await me.get(_chunk4HGZZJELjs.e).authorizeOneClickPayment({gateway:1,paymentData:r.paymentData.paymentMethodData.tokenizationData.token,paymentMethod:r.paymentData.paymentMethodData.type,transactionIdentifier:"",order:_protobuf.create.call(void 0, _chunkG4V2KWTVjs.d,{items:i.map(P=>({id:P.productID,quantity:P.quantity})),couponCode:o.couponCode,email:_nullishCoalesce(r.paymentData.email, () => (void 0)),phone:_nullishCoalesce(_optionalChain([r, 'access', _268 => _268.paymentData, 'access', _269 => _269.shippingAddress, 'optionalAccess', _270 => _270.phoneNumber]), () => (void 0)),selectedDeliveryMethod:_nullishCoalesce(_optionalChain([r, 'access', _271 => _271.paymentData, 'access', _272 => _272.shippingOptionData, 'optionalAccess', _273 => _273.id]), () => (o.selectedDeliveryMethod)),postCode:_optionalChain([r, 'access', _274 => _274.paymentData, 'access', _275 => _275.shippingAddress, 'optionalAccess', _276 => _276.postalCode]),projectId:e}),shippingAddress:_protobuf.create.call(void 0, _chunkG4V2KWTVjs.a,{line1:_nullishCoalesce(_optionalChain([r, 'access', _277 => _277.paymentData, 'access', _278 => _278.shippingAddress, 'optionalAccess', _279 => _279.address1]), () => ("")),city:_nullishCoalesce(_optionalChain([r, 'access', _280 => _280.paymentData, 'access', _281 => _281.shippingAddress, 'optionalAccess', _282 => _282.locality]), () => ("")),country:_nullishCoalesce(_optionalChain([r, 'access', _283 => _283.paymentData, 'access', _284 => _284.shippingAddress, 'optionalAccess', _285 => _285.countryCode]), () => ("")),zipCode:_nullishCoalesce(_optionalChain([r, 'access', _286 => _286.paymentData, 'access', _287 => _287.shippingAddress, 'optionalAccess', _288 => _288.postalCode]), () => ("")),name:d}),billingAddress:_protobuf.create.call(void 0, _chunkG4V2KWTVjs.b,{name:_optionalChain([r, 'access', _289 => _289.paymentData, 'access', _290 => _290.paymentMethodData, 'access', _291 => _291.info, 'optionalAccess', _292 => _292.billingAddress, 'optionalAccess', _293 => _293.name]),line1:_nullishCoalesce(_optionalChain([r, 'access', _294 => _294.paymentData, 'access', _295 => _295.paymentMethodData, 'access', _296 => _296.info, 'optionalAccess', _297 => _297.billingAddress, 'optionalAccess', _298 => _298.address1]), () => ("")),city:_nullishCoalesce(_optionalChain([r, 'access', _299 => _299.paymentData, 'access', _300 => _300.paymentMethodData, 'access', _301 => _301.info, 'optionalAccess', _302 => _302.billingAddress, 'optionalAccess', _303 => _303.locality]), () => ("")),country:_nullishCoalesce(_optionalChain([r, 'access', _304 => _304.paymentData, 'access', _305 => _305.paymentMethodData, 'access', _306 => _306.info, 'optionalAccess', _307 => _307.billingAddress, 'optionalAccess', _308 => _308.countryCode]), () => ("")),zipCode:_nullishCoalesce(_optionalChain([r, 'access', _309 => _309.paymentData, 'access', _310 => _310.paymentMethodData, 'access', _311 => _311.info, 'optionalAccess', _312 => _312.billingAddress, 'optionalAccess', _313 => _313.postalCode]), () => (""))}),metadata:Object.keys(c).length>0?JSON.stringify(c):void 0});return{isSuccess:b.isSuccess,redirectURL:b.redirectUrl}}catch(d){return console.error(d),q("Failed to authorize payment")}return{isSuccess:!0}},async getApplePayPaymentRequest(r){let o=R();if(o==null)return q("Checkout not found");r&&r.expectedItems!=null&&r.expectedItems.length>0&&(o.products&&Uo(o.products.map(l=>l.productID)),await Oo(e,r.expectedItems));let i=await at(e,{locale:t});if(Ae(i))return i;let d=await me.get(_chunk4HGZZJELjs.e).getPreOrderDetails({items:i.map(l=>_protobuf.create.call(void 0, _chunkG4V2KWTVjs.c,{id:l.productID,quantity:l.quantity})),projectId:e,postCode:o.postalCode,couponCode:o.couponCode,countryCode:o.country,selectedDeliveryMethod:o.selectedDeliveryMethod}),c=i.map(l=>({amount:`${z(l.quantity*(_nullishCoalesce(_nullishCoalesce(_optionalChain([l, 'access', _314 => _314.details, 'optionalAccess', _315 => _315.pricing, 'optionalAccess', _316 => _316.effectivePrice]), () => (_optionalChain([l, 'access', _317 => _317.details, 'optionalAccess', _318 => _318.price]))), () => (0)))/100,2)}`,label:_optionalChain([l, 'access', _319 => _319.details, 'optionalAccess', _320 => _320.name])+" - "+l.quantity,type:"final"}));if(d.selectedDeliveryMethod!=null){let l=d.methods.find(b=>b.id==d.selectedDeliveryMethod);l!=null&&c.push({amount:`${z(l.amount/100,2)}`,label:l.name,type:"final"})}return d.couponCode!=null&&d.couponValue!=null&&c.push({amount:`-${z(d.couponValue/100,2)}`,label:d.couponCode,type:"final"}),{countryCode:d.country||o.country||"PL",merchantCapabilities:["supports3DS","supportsCredit","supportsDebit"],supportedNetworks:["visa","masterCard"],total:{amount:`${z((_nullishCoalesce(d.totalAmount, () => (0)))/100,2)}`,label:_chunk7RXW6XFYjs.c.call(void 0, "paymentForCart",t,n),type:"final"},shippingMethods:d.methods.map(l=>({amount:`${z(l.amount/100,2)}`,detail:_nullishCoalesce(l.description, () => ("")),identifier:l.id,label:l.name,dateComponentsRange:{startDateComponents:{days:_nullishCoalesce(l.minDays, () => (1)),hours:0,months:0,years:0},endDateComponents:{days:_nullishCoalesce(l.maxDays, () => (14)),hours:0,months:0,years:0}}})),lineItems:c,currencyCode:d.currency||_optionalChain([i, 'access', _321 => _321[0], 'optionalAccess', _322 => _322.details, 'optionalAccess', _323 => _323.currency])||"PLN"}}}};async function Ss(e){let t=R();if(_optionalChain([t, 'access', _324 => _324.googlePayConfig, 'optionalAccess', _325 => _325.isAvailable])!=!0){let n=await me.get(_chunk4HGZZJELjs.e).isOneClickPaymentAvailable({projectId:e});n.googlePay==!0&&n.googlePayConfig!=null?t.googlePayConfig={isAvailable:!0,gateway:n.googlePayConfig.gateway,gatewayId:n.googlePayConfig.gatewayMerchantId,merchantName:n.googlePayConfig.merchantName,merchantId:n.googlePayConfig.merchantId}:t.googlePayConfig={isAvailable:!1,gateway:"",gatewayId:"",merchantName:"",merchantId:""}}return ne(t),t.googlePayConfig}function Es(e,t){if(e==t.id){let a=_optionalChain([t, 'access', _326 => _326.variants, 'optionalAccess', _327 => _327.findIndex, 'call', _328 => _328(r=>r.id===e)]);if(a!=null&&a!=-1){let r=t.variants[a];return{...t,availableQuantity:r.availableQuantity,isDeliverable:r.isDeliverable,images:_nullishCoalesce(r.images, () => (t.images)),name:t.name+" "+r.name,baseName:t.name,variantName:r.name,price:r.price,currency:r.currency,pricing:r.pricing}}return t}let n=_optionalChain([t, 'access', _329 => _329.variants, 'optionalAccess', _330 => _330.find, 'call', _331 => _331(a=>a.id===e)]);return n==null?t:{...t,id:n.id,name:t.name+" "+n.name,baseName:t.name,variantName:n.name,price:n.price,currency:n.currency,pricing:n.pricing,metadata:t.metadata,availableQuantity:n.availableQuantity,isDeliverable:n.isDeliverable,images:_nullishCoalesce(n.images, () => (t.images))}}function it(){let e=R(),t=0;if(e==null){ot.setState(n=>({...n,numberOfProductsInCart:t}));return}t=_nullishCoalesce(_optionalChain([e, 'access', _332 => _332.products, 'optionalAccess', _333 => _333.reduce, 'call', _334 => _334((n,a)=>n+a.quantity,0)]), () => (0)),ot.setState(n=>({...n,numberOfProductsInCart:t}))}var Ls=200,Rs= exports.r ="item-ids-not-found",Pt="internal-error",Ho={"no-payment-gateway":"noPaymentGateway","gateway-not-configured":"gatewayNotConfigured","shipping-not-configured":"shippingNotConfigured","mixed-recurring":"mixedRecurring","currency-unsupported":"currencyUnsupported","price-changed":"priceChanged","product-not-found":"unavailableProducts","product-not-available":"unavailableProducts"},As=new Set(["internal","invalid-request"]),Ds=new Set(["product-not-available","product-not-found"]);function Ms(e){return typeof e=="string"&&Object.hasOwn(Ho,e)?Ho[e]:void 0}function Os(e){return/<\/?[a-z!?][^>]*>/i.test(e)}function Us(e){return/^[A-Za-z][A-Za-z0-9]*(?:[-_.:][A-Za-z0-9]+)*$/.test(e)&&!/^[A-Z][a-z]+$/.test(e)||/^\[object \w+\]$|^(?:undefined|null)$/.test(e)}function _s(e){return/Error:/.test(e)||/\n\s+at /.test(e)}function zr(e){let t=e.trim();if(!(t.length===0||t.length>Ls||/[\r\n]/.test(t)||Os(t)||Us(t)||_s(t)))return t}var zs=3;function Ft(e,t=0){if(typeof e=="object"&&e!=null){if(Array.isArray(e)||t>=zs)return{};let n=e,a=Ft(n.error,t+1);if(a.message==null&&n.message!=null){let r=Ft(n.message,t+1);a={...r,code:_nullishCoalesce(a.code, () => (r.code))}}return typeof n.code=="string"&&n.code.length>0&&(a.code=n.code),a}if(typeof e!="string")return{};try{let n=JSON.parse(e);return typeof n=="object"&&n!=null?Ft(n,t+1):{}}catch (e28){}return{message:zr(e)}}function js(e){let t;try{t=JSON.parse(e)}catch (e29){return{code:Pt,message:zr(e)}}if(typeof t=="string")return{code:Pt,message:zr(t)};if(typeof t!="object"||t==null)return{code:Pt};let n=t,{message:a,code:r}=Ft(n.error),o={code:typeof n.code=="string"&&n.code.length>0?n.code:_nullishCoalesce(r, () => (Pt)),message:a};return Array.isArray(n.itemIds)&&(o.itemIds=n.itemIds.filter(i=>typeof i=="string")),o}function jr(e,t){let{code:n,message:a,itemIds:r}=js(t),o=r!=null&&r.length>0;if(o&&(n===Pt||Ds.has(n)))return q(Rs,"badInput",r);let i={message:a};return o&&(i.itemIds=r),q(n,e>=500?"internal":"badInput",i)}function Fp(e,t){let n=Ms(e.error);if(n!=null)return t(n);if(e.type==="internal"||typeof e.error=="string"&&As.has(e.error))return t("checkoutFailed");let a=_optionalChain([e, 'access', _335 => _335.data, 'optionalAccess', _336 => _336.message]);return typeof a=="string"&&a.length>0?a:t("checkoutFailed")}var Fs=["online","manual","cod"],Hs=["bankTransfer","blik"];function $o(e,t){if(!Array.isArray(e))return[];let n=[];for(let a of e)t.includes(a)&&!n.includes(a)&&n.push(a);return n}function $s(e){if(typeof e!="object"||e==null)return null;let t=e.choice;if(typeof t!="object"||t==null)return null;let n=$o(t.methods,Fs);return n.length<2?null:{methods:n,manualAccountTypes:$o(t.manualAccountTypes,Hs)}}function $p(e){if(e==null)return null;let t=e.methods.filter(n=>n!=="cod");return t.length<2?null:{...e,methods:t}}function qp(e,t){return t!=null&&e.methods.includes(t)?t:e.methods[0]}function Bp(e){let t=e.includes("bankTransfer"),n=e.includes("blik");return n&&!t?"paymentMethodManualBlik":t&&!n?"paymentMethodManualTransfer":"paymentMethodManualBoth"}async function qo(e,t,n=5e3){let a=typeof AbortController>"u"?void 0:new AbortController,r=setTimeout(()=>_optionalChain([a, 'optionalAccess', _337 => _337.abort, 'call', _338 => _338()]),n);try{let o=await fetch(e,{method:"POST",headers:t.headers,body:t.body,signal:_optionalChain([a, 'optionalAccess', _339 => _339.signal])});return o.ok?$s(await o.json()):null}catch (e30){return null}finally{clearTimeout(r)}}var qs;(a=>{async function e(r,o=1,i,d){let c=st();if(c==null)throw new Error("No project ID found");let b=await _r(c).addProduct({productID:r,quantity:o,metadata:i,...d});if(b!=null)return b}a.addProductToCart=e;function t(){ot.setState({isCartVisible:!0})}a.showCart=t;function n(){ot.setState({isCartVisible:!1})}a.hideCart=n})(qs = exports.x||={});async function Bo(e){try{return await e.text()}catch (e31){return""}}function Ko(e,t){return t=Ur(t),t.locale??=_chunk7RXW6XFYjs.f.call(void 0, ),{headers:{..._chunk4HGZZJELjs.a,..._chunkDP2NOHCIjs.h.call(void 0, e),"Content-Type":"application/json"},body:JSON.stringify(t)}}async function zo(e){let t=st();return t==null?null:qo(nt(t,"/payment-methods"),Ko(t,e))}async function Mr(e){let t=st();if(t==null)throw new Error("No project ID found");let n=await fetch(nt(t,"/buy"),{method:"POST",...Ko(t,e)});if(n.status!=200){let r=jr(n.status,await Bo(n));return console.warn("cannot create payment URL",n.status,r.error),r}let a=await n.json();return{url:a.url,...a.orderId!=null?{orderId:a.orderId}:{},...a.projectId!=null?{projectId:a.projectId}:{}}}async function em(e){let t=st();if(t==null)throw new Error("No project ID found");let n={..._chunk4HGZZJELjs.a,..._chunkDP2NOHCIjs.h.call(void 0, t),"Content-Type":"application/json",...e.apiKey!=null?{Authorization:`Bearer ${e.apiKey}`}:{}},a=e.testMode?`/api/payment/link/auto/${t}/test`:`/api/payment/link/auto/${t}`;delete e.apiKey,delete e.testMode,e.locale??=_chunk7RXW6XFYjs.f.call(void 0, );let r=await fetch(_chunk4HGZZJELjs.e+a,{method:"POST",headers:n,body:JSON.stringify(e)});return r.ok?{status:"ok",redirectURL:(await r.json()).url}:{...jr(r.status,await Bo(r)),status:"error"}}function zt(){if(typeof localStorage>"u")return;let e=localStorage.getItem("bitsnap-ref");if(e!=null)return e}function Ur(e){let t=zt();return t==null||(e.metadata==null&&(e.metadata={}),e.metadata.ref=t),e}exports.a = me; exports.b = Ee; exports.c = Oe; exports.d = Ue; exports.e = Te; exports.f = Ln; exports.g = gt; exports.h = yt; exports.i = Ye; exports.j = Ze; exports.k = ma; exports.l = Sr; exports.m = Vi; exports.n = z; exports.o = ko; exports.p = Er; exports.q = Ae; exports.r = Rs; exports.s = Fp; exports.t = $p; exports.u = qp; exports.v = Bp; exports.w = ot; exports.x = qs; exports.y = zo; exports.z = Mr; exports.A = em; exports.B = zt; exports.C = Ur; exports.D = ep; exports.E = tp; exports.F = rp; exports.G = ap; exports.H = hs; exports.I = Or; exports.J = Rp; exports.K = st; exports.L = Ap; exports.M = Dp; exports.N = xs; exports.O = Mp; exports.P = Op; exports.Q = _r;
5
- //# sourceMappingURL=chunk-V5ECGBFW.js.map