bitsnap-react 1.16.0 → 1.18.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 (125) hide show
  1. package/AGENTS.md +5 -0
  2. package/README.md +87 -0
  3. package/dist/CartProvider-ECQQH3PS.css +2 -0
  4. package/dist/CartProvider-ECQQH3PS.css.map +1 -0
  5. package/dist/CartProvider-OEI526IN.js +2 -0
  6. package/dist/{CartProvider-VGZMDVFJ.js.map → CartProvider-OEI526IN.js.map} +1 -1
  7. package/dist/CartProvider-RYAA3JDA.mjs +2 -0
  8. package/dist/{PanelModelFiles-NYCOFPLY.js → PanelModelFiles-7HPXWONN.js} +2 -2
  9. package/dist/{PanelModelFiles-NYCOFPLY.js.map → PanelModelFiles-7HPXWONN.js.map} +1 -1
  10. package/dist/PanelModelFiles-JZFSF7BF.mjs +2 -0
  11. package/dist/PanelModelFiles-JZFSF7BF.mjs.map +1 -0
  12. package/dist/analytics.d.mts +2 -2
  13. package/dist/analytics.d.ts +2 -2
  14. package/dist/analytics.js +1 -1
  15. package/dist/analytics.mjs +1 -1
  16. package/dist/catalog.css +1 -1
  17. package/dist/catalog.css.map +1 -1
  18. package/dist/catalog.d.mts +3 -1
  19. package/dist/catalog.d.ts +3 -1
  20. package/dist/catalog.js +1 -1
  21. package/dist/catalog.mjs +1 -1
  22. package/dist/{chunk-GXUNRJ5S.js → chunk-4HGZZJEL.js} +2 -2
  23. package/dist/{chunk-GXUNRJ5S.js.map → chunk-4HGZZJEL.js.map} +1 -1
  24. package/dist/chunk-4OVOKGGS.mjs +2 -0
  25. package/dist/chunk-4OVOKGGS.mjs.map +1 -0
  26. package/dist/chunk-5X7TP3TQ.mjs +2 -0
  27. package/dist/{chunk-SULHGFYN.mjs.map → chunk-5X7TP3TQ.mjs.map} +1 -1
  28. package/dist/{chunk-QQQ2JSPQ.mjs → chunk-CF45RDMD.mjs} +2 -2
  29. package/dist/{chunk-QQQ2JSPQ.mjs.map → chunk-CF45RDMD.mjs.map} +1 -1
  30. package/dist/{chunk-GQJDFLSL.js → chunk-DP2NOHCI.js} +2 -2
  31. package/dist/{chunk-GQJDFLSL.js.map → chunk-DP2NOHCI.js.map} +1 -1
  32. package/dist/chunk-EVIDNS22.mjs +2 -0
  33. package/dist/chunk-EVIDNS22.mjs.map +1 -0
  34. package/dist/chunk-G4V2KWTV.js +2 -0
  35. package/dist/chunk-G4V2KWTV.js.map +1 -0
  36. package/dist/{chunk-SXKJ26OA.mjs → chunk-GEBRXFT3.mjs} +2 -2
  37. package/dist/chunk-GWF3MRUP.js +2 -0
  38. package/dist/chunk-GWF3MRUP.js.map +1 -0
  39. package/dist/chunk-JA62KNAQ.js +2 -0
  40. package/dist/chunk-JA62KNAQ.js.map +1 -0
  41. package/dist/chunk-JHJ3ZZF4.mjs +2 -0
  42. package/dist/chunk-JHJ3ZZF4.mjs.map +1 -0
  43. package/dist/{chunk-WKE6ECID.mjs → chunk-UPAOIY4R.mjs} +2 -2
  44. package/dist/chunk-V5ECGBFW.js +5 -0
  45. package/dist/chunk-V5ECGBFW.js.map +1 -0
  46. package/dist/{chunk-SRQOFCMO.js → chunk-VNV5BD4X.js} +2 -2
  47. package/dist/{chunk-SRQOFCMO.js.map → chunk-VNV5BD4X.js.map} +1 -1
  48. package/dist/chunk-WJO5GSY3.mjs +5 -0
  49. package/dist/chunk-WJO5GSY3.mjs.map +1 -0
  50. package/dist/chunk-ZATPBYOA.js +2 -0
  51. package/dist/chunk-ZATPBYOA.js.map +1 -0
  52. package/dist/chunk-ZHTMK5TA.mjs +2 -0
  53. package/dist/chunk-ZHTMK5TA.mjs.map +1 -0
  54. package/dist/course.d.mts +13 -3
  55. package/dist/course.d.ts +13 -3
  56. package/dist/course.js +1 -1
  57. package/dist/course.js.map +1 -1
  58. package/dist/course.mjs +1 -1
  59. package/dist/course.mjs.map +1 -1
  60. package/dist/embed/analytics.js +1 -1
  61. package/dist/index.css +1 -1
  62. package/dist/index.css.map +1 -1
  63. package/dist/index.d.mts +41 -12
  64. package/dist/index.d.ts +41 -12
  65. package/dist/index.js +1 -1
  66. package/dist/index.js.map +1 -1
  67. package/dist/index.mjs +1 -1
  68. package/dist/index.mjs.map +1 -1
  69. package/dist/{instrument-BE8ktMUv.d.mts → instrument-eXaC8hc2.d.mts} +1 -1
  70. package/dist/{instrument-BE8ktMUv.d.ts → instrument-eXaC8hc2.d.ts} +1 -1
  71. package/dist/methods-AULQDKVS.mjs +2 -0
  72. package/dist/methods-OJEZREBK.css +2 -0
  73. package/dist/methods-OJEZREBK.css.map +1 -0
  74. package/dist/methods-PMH5VQ25.js +2 -0
  75. package/dist/{methods-WRONKK3D.js.map → methods-PMH5VQ25.js.map} +1 -1
  76. package/dist/returns.d.mts +19 -10
  77. package/dist/returns.d.ts +19 -10
  78. package/dist/returns.js +1 -1
  79. package/dist/returns.js.map +1 -1
  80. package/dist/returns.mjs +1 -1
  81. package/dist/{texts-tQtAGJCT.d.mts → texts-LGhuQfA9.d.mts} +28 -3
  82. package/dist/{texts-CIEFbJTN.d.ts → texts-m6XQGZ6w.d.ts} +28 -3
  83. package/dist/types-ClFCVzk_.d.ts +121 -0
  84. package/dist/types-D6LsoycW.d.mts +121 -0
  85. package/dist/viewer3d.css +1 -1
  86. package/dist/viewer3d.css.map +1 -1
  87. package/dist/viewer3d.mjs +1 -1
  88. package/package.json +2 -2
  89. package/dist/CartProvider-PDEV6GCV.css +0 -2
  90. package/dist/CartProvider-PDEV6GCV.css.map +0 -1
  91. package/dist/CartProvider-VGZMDVFJ.js +0 -2
  92. package/dist/CartProvider-ZY5OLTAF.mjs +0 -2
  93. package/dist/PanelModelFiles-RV7OHUUZ.mjs +0 -2
  94. package/dist/PanelModelFiles-RV7OHUUZ.mjs.map +0 -1
  95. package/dist/chunk-5AYH23UJ.mjs +0 -4
  96. package/dist/chunk-5AYH23UJ.mjs.map +0 -1
  97. package/dist/chunk-AGYS7Z6G.mjs +0 -2
  98. package/dist/chunk-AGYS7Z6G.mjs.map +0 -1
  99. package/dist/chunk-DPKWYLN7.mjs +0 -2
  100. package/dist/chunk-DPKWYLN7.mjs.map +0 -1
  101. package/dist/chunk-I3QXJJ7U.mjs +0 -2
  102. package/dist/chunk-I3QXJJ7U.mjs.map +0 -1
  103. package/dist/chunk-LL7ASBGY.js +0 -2
  104. package/dist/chunk-LL7ASBGY.js.map +0 -1
  105. package/dist/chunk-OZHXRKMX.js +0 -2
  106. package/dist/chunk-OZHXRKMX.js.map +0 -1
  107. package/dist/chunk-QERYM7RC.js +0 -2
  108. package/dist/chunk-QERYM7RC.js.map +0 -1
  109. package/dist/chunk-QXGK337V.mjs +0 -2
  110. package/dist/chunk-QXGK337V.mjs.map +0 -1
  111. package/dist/chunk-SULHGFYN.mjs +0 -2
  112. package/dist/chunk-WPOXLITY.js +0 -2
  113. package/dist/chunk-WPOXLITY.js.map +0 -1
  114. package/dist/chunk-Y5KWVTXT.js +0 -4
  115. package/dist/chunk-Y5KWVTXT.js.map +0 -1
  116. package/dist/methods-NJEP64AG.mjs +0 -2
  117. package/dist/methods-QAZED7TJ.css +0 -2
  118. package/dist/methods-QAZED7TJ.css.map +0 -1
  119. package/dist/methods-WRONKK3D.js +0 -2
  120. package/dist/types-DP1vxo5E.d.mts +0 -53
  121. package/dist/types-u8VwmC3j.d.ts +0 -53
  122. /package/dist/{CartProvider-ZY5OLTAF.mjs.map → CartProvider-RYAA3JDA.mjs.map} +0 -0
  123. /package/dist/{chunk-SXKJ26OA.mjs.map → chunk-GEBRXFT3.mjs.map} +0 -0
  124. /package/dist/{chunk-WKE6ECID.mjs.map → chunk-UPAOIY4R.mjs.map} +0 -0
  125. /package/dist/{methods-NJEP64AG.mjs.map → methods-AULQDKVS.mjs.map} +0 -0
package/dist/viewer3d.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import{a as it,b as oe,e as xe,g as st,h as O}from"./chunk-5ED7FWNY.mjs";import{e as De,f as Pe}from"./chunk-WKE6ECID.mjs";import{b as _}from"./chunk-CUPG4B5W.mjs";import{c as he,e as j}from"./chunk-SXKJ26OA.mjs";import"./chunk-QQQ2JSPQ.mjs";import{f as we}from"./chunk-VNYHJT6V.mjs";import"./chunk-MDCP5JNP.mjs";import"./chunk-U6FLIRIV.mjs";import{useState as Mt}from"react";var Se={sectionLabel:"Model 3D",show:e=>`Poka\u017C model 3D (${e})`,heroPill:"Zobacz w 3D",heroPillWithSize:e=>`Zobacz w 3D (${e})`,loading:"Wczytywanie modelu 3D\u2026",loadingProgress:e=>`Wczytywanie modelu 3D: ${e}%`,error:"Nie uda\u0142o si\u0119 wczyta\u0107 modelu 3D",retry:"Spr\xF3buj ponownie",unsupported:"Ta przegl\u0105darka nie wy\u015Bwietli modelu 3D.",hintDrag:"Przeci\u0105gnij, aby obr\xF3ci\u0107",hintTap:"Dotknij, aby obraca\u0107",touchDone:"Gotowe",reset:"Reset widoku",fullscreen:"Pe\u0142ny ekran",closeFullscreen:"Zamknij pe\u0142ny ekran",disclaimer:"Model 3D jest pogl\u0105dowy; kolory i detale mog\u0105 si\u0119 r\xF3\u017Cni\u0107 od produktu.",report:"Zg\u0142o\u015B ten model",factsTitle:"Szczeg\xF3\u0142y modelu",factsFormat:"Format",factsFileSize:"Rozmiar pliku",factsTriangles:"Tr\xF3jk\u0105ty",factsDimensions:"Wymiary",triangles:e=>e,licence:"Licencja",licenceShow:"Warunki licencji",licenceOpen:"Otw\xF3rz licencj\u0119",licenceClose:"Zamknij",licenceDefaultName:"Licencja sprzedawcy",units:{meters:"m",centimeters:"cm",millimeters:"mm",inches:"in"},addToCart:"Dodaj do koszyka",addingToCart:"Dodawanie\u2026",addedToCart:"Dodano do koszyka",addToCartError:"Nie uda\u0142o si\u0119 doda\u0107 do koszyka. Spr\xF3buj ponownie."},Ee={sectionLabel:"3D model",show:e=>`Show 3D model (${e})`,heroPill:"View in 3D",heroPillWithSize:e=>`View in 3D (${e})`,loading:"Loading the 3D model\u2026",loadingProgress:e=>`Loading the 3D model: ${e}%`,error:"The 3D model could not be loaded",retry:"Try again",unsupported:"This browser cannot show the 3D model.",hintDrag:"Drag to rotate",hintTap:"Tap to rotate",touchDone:"Done",reset:"Reset view",fullscreen:"Full screen",closeFullscreen:"Close full screen",disclaimer:"The 3D model is illustrative; colours and details may differ from the product.",report:"Report this model",factsTitle:"Model details",factsFormat:"Format",factsFileSize:"File size",factsTriangles:"Triangles",factsDimensions:"Dimensions",triangles:e=>e,licence:"Licence",licenceShow:"Licence terms",licenceOpen:"Open the licence",licenceClose:"Close",licenceDefaultName:"Seller's licence",units:{meters:"m",centimeters:"cm",millimeters:"mm",inches:"in"},addToCart:"Add to cart",addingToCart:"Adding\u2026",addedToCart:"Added to cart",addToCartError:"Could not add to the cart. Try again."};function H(e,t){let r=e?.toLowerCase().startsWith("en")?Ee:Se;return t?{...r,...t}:r}function z(e){return e?.toLowerCase().startsWith("en")?"en-GB":"pl-PL"}import{Box as _e,Hand as Ae,Maximize2 as pt,Rotate3d as mt,RotateCcw as Ue,X as ft}from"lucide-react";import{useCallback as W,useEffect as h,useId as gt,useReducer as bt,useRef as ie,useState as P}from"react";import{createPortal as vt}from"react-dom";var at={meters:1e3,centimeters:10,millimeters:1,inches:25.4};function dt(e,t,r,o){if(e.length!==3)return;let i=new Intl.NumberFormat(z(o),{maximumFractionDigits:t==="millimeters"?0:2}),m=at[t]??1e3;return`${e.map(a=>i.format(a/m)).join(" \xD7 ")} ${r.units[t]}`}function ke(e,t,r){let o=[{label:t.factsFormat,value:"GLB"}];e.fileSize>0&&o.push({label:t.factsFileSize,value:O(e.fileSize,z(r))}),e.triangleCount>0&&o.push({label:t.factsTriangles,value:t.triangles(new Intl.NumberFormat(z(r)).format(e.triangleCount))});let i=dt(e.dimensionsMm,e.unit,t,r);return i&&o.push({label:t.factsDimensions,value:i}),o}import{useCallback as Me,useEffect as B,useRef as lt,useState as ct}from"react";function ut(e){return e!=null&&typeof e.requestFullscreen=="function"&&document.fullscreenEnabled===!0}function Ve(e){let[t,r]=ct(null),o=lt(0),i=Me(()=>{if(document.fullscreenElement!=null){document.exitFullscreen().catch(()=>r(null));return}r(null)},[]),m=Me(()=>{let a=e.current;if(o.current=window.scrollY,ut(a)){a.requestFullscreen({navigationUI:"hide"}).then(()=>r("native")).catch(()=>r("overlay"));return}r("overlay")},[e]);return B(()=>{let a=()=>{document.fullscreenElement==null&&r(d=>d==="native"?null:d)};return document.addEventListener("fullscreenchange",a),()=>document.removeEventListener("fullscreenchange",a)},[]),B(()=>{if(t!=="native")return;let a=d=>{d.key==="Escape"&&document.fullscreenElement!=null&&document.exitFullscreen().catch(()=>r(null))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[t]),B(()=>{if(t!=="overlay")return;let{body:a,documentElement:d}=document,p={overflow:a.style.overflow,rootOverflow:d.style.overflow};a.style.overflow="hidden",d.style.overflow="hidden";let f=u=>{u.key==="Escape"&&r(null)};return window.addEventListener("keydown",f),()=>{window.removeEventListener("keydown",f),a.style.overflow=p.overflow,d.style.overflow=p.rootOverflow}},[t]),B(()=>{if(t==null&&o.current>0){let a=o.current;o.current=0,requestAnimationFrame(()=>window.scrollTo({top:a,behavior:"instant"}))}},[t]),{mode:t,isFullscreen:t!=null,enter:m,exit:i}}var Ce="bitsnap:viewer3d:gesture-hint-seen";function Te(){try{return typeof window>"u"?void 0:window.localStorage}catch{return}}function Re(e=Te()){try{return e?.getItem(Ce)==="1"}catch{return!1}}function Le(e=Te()){try{e?.setItem(Ce,"1")}catch{}}function Ne(e,t){return oe(e.size)?"awaiting-click":t?"loading":"poster"}function $e(e){return{status:Ne(e,!1),model:e,progress:0,attempt:0}}function ze(e,t){switch(t.type){case"NO_WEBGL":return e.status==="ready"?e:{...e,status:"unsupported"};case"VISIBLE":return e.status==="poster"?{...e,status:"loading",progress:0}:e;case"REQUEST":return e.status==="poster"||e.status==="awaiting-click"?{...e,status:"loading",progress:0}:e.status==="error"?{...e,status:"loading",progress:0,attempt:e.attempt+1}:e;case"RETRY":return e.status==="error"?{...e,status:"loading",progress:0,attempt:e.attempt+1}:e;case"PROGRESS":{if(e.status!=="loading"||t.key!==e.model.key)return e;let r=t.total>0?Math.min(1,Math.max(0,t.loaded/t.total)):0;return r===e.progress?e:{...e,progress:r}}case"LOADED":return e.status!=="loading"||t.key!==e.model.key?e:{...e,status:"ready",progress:1};case"FAILED":return e.status!=="loading"||t.key!==e.model.key?e:{...e,status:"error"};case"MODEL_CHANGED":return t.model.key===e.model.key?t.model.size===e.model.size?e:{...e,model:t.model}:e.status==="unsupported"?{...e,model:t.model}:{status:Ne(t.model,t.visible),model:t.model,progress:0,attempt:0}}}function Fe(e){return e==="loading"||e==="ready"}var Ie="bitsnap-react-viewer3d",T="[data-bitsnap-viewer3d]",k="var(--bitsnap-viewer3d-background,#ffffff)",g="var(--bitsnap-viewer3d-foreground,#171717)",G="var(--bitsnap-viewer3d-border,#e5e5e5)",ne="var(--bitsnap-viewer3d-radius,0.75rem)",Oe=`
1
+ import{a as it,b as oe,e as xe,g as st,h as O}from"./chunk-5ED7FWNY.mjs";import{e as De,f as Pe}from"./chunk-UPAOIY4R.mjs";import{b as _}from"./chunk-CUPG4B5W.mjs";import{c as he,e as j}from"./chunk-GEBRXFT3.mjs";import"./chunk-CF45RDMD.mjs";import{f as we}from"./chunk-VNYHJT6V.mjs";import"./chunk-MDCP5JNP.mjs";import"./chunk-U6FLIRIV.mjs";import{useState as Mt}from"react";var Se={sectionLabel:"Model 3D",show:e=>`Poka\u017C model 3D (${e})`,heroPill:"Zobacz w 3D",heroPillWithSize:e=>`Zobacz w 3D (${e})`,loading:"Wczytywanie modelu 3D\u2026",loadingProgress:e=>`Wczytywanie modelu 3D: ${e}%`,error:"Nie uda\u0142o si\u0119 wczyta\u0107 modelu 3D",retry:"Spr\xF3buj ponownie",unsupported:"Ta przegl\u0105darka nie wy\u015Bwietli modelu 3D.",hintDrag:"Przeci\u0105gnij, aby obr\xF3ci\u0107",hintTap:"Dotknij, aby obraca\u0107",touchDone:"Gotowe",reset:"Reset widoku",fullscreen:"Pe\u0142ny ekran",closeFullscreen:"Zamknij pe\u0142ny ekran",disclaimer:"Model 3D jest pogl\u0105dowy; kolory i detale mog\u0105 si\u0119 r\xF3\u017Cni\u0107 od produktu.",report:"Zg\u0142o\u015B ten model",factsTitle:"Szczeg\xF3\u0142y modelu",factsFormat:"Format",factsFileSize:"Rozmiar pliku",factsTriangles:"Tr\xF3jk\u0105ty",factsDimensions:"Wymiary",triangles:e=>e,licence:"Licencja",licenceShow:"Warunki licencji",licenceOpen:"Otw\xF3rz licencj\u0119",licenceClose:"Zamknij",licenceDefaultName:"Licencja sprzedawcy",units:{meters:"m",centimeters:"cm",millimeters:"mm",inches:"in"},addToCart:"Dodaj do koszyka",addingToCart:"Dodawanie\u2026",addedToCart:"Dodano do koszyka",addToCartError:"Nie uda\u0142o si\u0119 doda\u0107 do koszyka. Spr\xF3buj ponownie."},Ee={sectionLabel:"3D model",show:e=>`Show 3D model (${e})`,heroPill:"View in 3D",heroPillWithSize:e=>`View in 3D (${e})`,loading:"Loading the 3D model\u2026",loadingProgress:e=>`Loading the 3D model: ${e}%`,error:"The 3D model could not be loaded",retry:"Try again",unsupported:"This browser cannot show the 3D model.",hintDrag:"Drag to rotate",hintTap:"Tap to rotate",touchDone:"Done",reset:"Reset view",fullscreen:"Full screen",closeFullscreen:"Close full screen",disclaimer:"The 3D model is illustrative; colours and details may differ from the product.",report:"Report this model",factsTitle:"Model details",factsFormat:"Format",factsFileSize:"File size",factsTriangles:"Triangles",factsDimensions:"Dimensions",triangles:e=>e,licence:"Licence",licenceShow:"Licence terms",licenceOpen:"Open the licence",licenceClose:"Close",licenceDefaultName:"Seller's licence",units:{meters:"m",centimeters:"cm",millimeters:"mm",inches:"in"},addToCart:"Add to cart",addingToCart:"Adding\u2026",addedToCart:"Added to cart",addToCartError:"Could not add to the cart. Try again."};function H(e,t){let r=e?.toLowerCase().startsWith("en")?Ee:Se;return t?{...r,...t}:r}function z(e){return e?.toLowerCase().startsWith("en")?"en-GB":"pl-PL"}import{Box as _e,Hand as Ae,Maximize2 as pt,Rotate3d as mt,RotateCcw as Ue,X as ft}from"lucide-react";import{useCallback as W,useEffect as h,useId as gt,useReducer as bt,useRef as ie,useState as P}from"react";import{createPortal as vt}from"react-dom";var at={meters:1e3,centimeters:10,millimeters:1,inches:25.4};function dt(e,t,r,o){if(e.length!==3)return;let i=new Intl.NumberFormat(z(o),{maximumFractionDigits:t==="millimeters"?0:2}),m=at[t]??1e3;return`${e.map(a=>i.format(a/m)).join(" \xD7 ")} ${r.units[t]}`}function ke(e,t,r){let o=[{label:t.factsFormat,value:"GLB"}];e.fileSize>0&&o.push({label:t.factsFileSize,value:O(e.fileSize,z(r))}),e.triangleCount>0&&o.push({label:t.factsTriangles,value:t.triangles(new Intl.NumberFormat(z(r)).format(e.triangleCount))});let i=dt(e.dimensionsMm,e.unit,t,r);return i&&o.push({label:t.factsDimensions,value:i}),o}import{useCallback as Me,useEffect as B,useRef as lt,useState as ct}from"react";function ut(e){return e!=null&&typeof e.requestFullscreen=="function"&&document.fullscreenEnabled===!0}function Ve(e){let[t,r]=ct(null),o=lt(0),i=Me(()=>{if(document.fullscreenElement!=null){document.exitFullscreen().catch(()=>r(null));return}r(null)},[]),m=Me(()=>{let a=e.current;if(o.current=window.scrollY,ut(a)){a.requestFullscreen({navigationUI:"hide"}).then(()=>r("native")).catch(()=>r("overlay"));return}r("overlay")},[e]);return B(()=>{let a=()=>{document.fullscreenElement==null&&r(d=>d==="native"?null:d)};return document.addEventListener("fullscreenchange",a),()=>document.removeEventListener("fullscreenchange",a)},[]),B(()=>{if(t!=="native")return;let a=d=>{d.key==="Escape"&&document.fullscreenElement!=null&&document.exitFullscreen().catch(()=>r(null))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[t]),B(()=>{if(t!=="overlay")return;let{body:a,documentElement:d}=document,p={overflow:a.style.overflow,rootOverflow:d.style.overflow};a.style.overflow="hidden",d.style.overflow="hidden";let f=u=>{u.key==="Escape"&&r(null)};return window.addEventListener("keydown",f),()=>{window.removeEventListener("keydown",f),a.style.overflow=p.overflow,d.style.overflow=p.rootOverflow}},[t]),B(()=>{if(t==null&&o.current>0){let a=o.current;o.current=0,requestAnimationFrame(()=>window.scrollTo({top:a,behavior:"instant"}))}},[t]),{mode:t,isFullscreen:t!=null,enter:m,exit:i}}var Ce="bitsnap:viewer3d:gesture-hint-seen";function Te(){try{return typeof window>"u"?void 0:window.localStorage}catch{return}}function Re(e=Te()){try{return e?.getItem(Ce)==="1"}catch{return!1}}function Le(e=Te()){try{e?.setItem(Ce,"1")}catch{}}function Ne(e,t){return oe(e.size)?"awaiting-click":t?"loading":"poster"}function $e(e){return{status:Ne(e,!1),model:e,progress:0,attempt:0}}function ze(e,t){switch(t.type){case"NO_WEBGL":return e.status==="ready"?e:{...e,status:"unsupported"};case"VISIBLE":return e.status==="poster"?{...e,status:"loading",progress:0}:e;case"REQUEST":return e.status==="poster"||e.status==="awaiting-click"?{...e,status:"loading",progress:0}:e.status==="error"?{...e,status:"loading",progress:0,attempt:e.attempt+1}:e;case"RETRY":return e.status==="error"?{...e,status:"loading",progress:0,attempt:e.attempt+1}:e;case"PROGRESS":{if(e.status!=="loading"||t.key!==e.model.key)return e;let r=t.total>0?Math.min(1,Math.max(0,t.loaded/t.total)):0;return r===e.progress?e:{...e,progress:r}}case"LOADED":return e.status!=="loading"||t.key!==e.model.key?e:{...e,status:"ready",progress:1};case"FAILED":return e.status!=="loading"||t.key!==e.model.key?e:{...e,status:"error"};case"MODEL_CHANGED":return t.model.key===e.model.key?t.model.size===e.model.size?e:{...e,model:t.model}:e.status==="unsupported"?{...e,model:t.model}:{status:Ne(t.model,t.visible),model:t.model,progress:0,attempt:0}}}function Fe(e){return e==="loading"||e==="ready"}var Ie="bitsnap-react-viewer3d",T="[data-bitsnap-viewer3d]",k="var(--bitsnap-viewer3d-background,#ffffff)",g="var(--bitsnap-viewer3d-foreground,#171717)",G="var(--bitsnap-viewer3d-border,#e5e5e5)",ne="var(--bitsnap-viewer3d-radius,0.75rem)",Oe=`
2
2
  ${T}{container-type:inline-size;display:flex;flex-direction:column;gap:.75rem;font-family:inherit;color:${g}}
3
3
  ${T} *{box-sizing:border-box}
4
4
  ${T} .bsv3d-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bitsnap-react",
3
- "version": "1.16.0",
3
+ "version": "1.18.0",
4
4
  "description": "This is Bitsnap React library for easy integration with any website which is using React framework",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -14,7 +14,7 @@
14
14
  "clean": "rimraf ./dist",
15
15
  "dev": "node scripts/write-version.mjs && tsup --watch",
16
16
  "dev:publish": "pnpm dev --env.publish",
17
- "test": "tsup src/components/checkout/appearance.test.ts src/components/checkout/texts.test.ts src/components/checkout/buy-error.test.ts src/components/checkout/cart-buy-error.test.tsx src/lib/appearance-core.test.ts src/lib/texts.test.ts src/components/returns/appearance.test.ts src/components/returns/texts.test.ts src/components/returns/errors.test.ts src/components/returns/money.test.ts src/components/returns/session-storage.test.ts src/components/returns/state-machine.test.ts src/components/returns/selection.test.ts src/components/returns/legacy.test.ts src/panel/returns-appearance.test.ts src/components/products/appearance.test.ts src/components/products/texts.test.ts src/components/products/format.test.ts src/components/products/fetch.test.ts src/components/products/useProducts.test.ts src/components/products/cart-target.test.ts src/components/checkout/cart-items.test.ts src/components/checkout/pending-order.test.ts src/components/checkout/quantity.test.ts src/components/checkout/cart-a11y.test.tsx src/components/checkout/payment-method.test.ts src/components/checkout/cart-payment-method.test.tsx src/course/logic.test.ts src/course/accent.test.ts src/course/texts.test.ts src/course/datasource.test.ts src/course/sanitize.test.ts src/course/VideoPlayer.test.tsx src/course/PanelCourse.test.tsx src/consent/core/cookie.test.ts src/consent/core/texts.test.ts src/consent/core/activate.test.ts src/consent/core/gcm.test.ts src/consent/core/contrast.test.ts src/consent/core/controller.test.ts src/consent/embed.test.ts src/consent/react.test.tsx src/consent/react-shown.test.tsx src/analytics/core.test.ts src/analytics/embed.test.ts src/analytics/instrument.test.tsx src/analytics/page-views.test.tsx src/analytics/visitor.test.ts src/components/checkout/visitor-header.test.ts src/components/products/impressions.test.ts src/components/products/ProductList.analytics.test.tsx src/components/checkout/cart-analytics.test.tsx src/components/checkout/apple-pay-analytics.test.tsx src/components/notifications/notifications-analytics.test.tsx src/components/returns/returns-analytics.test.tsx src/panel/panel-analytics.test.tsx src/course/course-analytics.test.tsx src/viewer3d/viewer3d.test.ts src/viewer3d/Model3DViewer.test.tsx src/panel/panel-products.test.tsx --format esm --out-dir .test-dist --no-config --external jsdom --silent && node --test --test-force-exit \".test-dist/**/*.test.mjs\"",
17
+ "test": "tsup src/components/checkout/appearance.test.ts src/components/checkout/texts.test.ts src/components/checkout/buy-error.test.ts src/components/checkout/cart-buy-error.test.tsx src/lib/appearance-core.test.ts src/lib/texts.test.ts src/components/returns/appearance.test.ts src/components/returns/texts.test.ts src/components/returns/errors.test.ts src/components/returns/money.test.ts src/components/returns/session-storage.test.ts src/components/returns/state-machine.test.ts src/components/returns/selection.test.ts src/components/returns/legacy.test.ts src/panel/returns-appearance.test.ts src/components/products/appearance.test.ts src/components/products/texts.test.ts src/components/products/format.test.ts src/components/products/fetch.test.ts src/components/products/useProducts.test.ts src/components/products/cart-target.test.ts src/components/checkout/cart-items.test.ts src/components/checkout/pending-order.test.ts src/components/checkout/quantity.test.ts src/components/checkout/cart-a11y.test.tsx src/components/checkout/payment-method.test.ts src/components/checkout/cart-payment-method.test.tsx src/course/logic.test.ts src/course/accent.test.ts src/course/texts.test.ts src/course/datasource.test.ts src/course/sanitize.test.ts src/course/VideoPlayer.test.tsx src/course/PanelCourse.test.tsx src/consent/core/cookie.test.ts src/consent/core/texts.test.ts src/consent/core/activate.test.ts src/consent/core/gcm.test.ts src/consent/core/contrast.test.ts src/consent/core/controller.test.ts src/consent/embed.test.ts src/consent/react.test.tsx src/consent/react-shown.test.tsx src/analytics/core.test.ts src/analytics/embed.test.ts src/analytics/instrument.test.tsx src/analytics/page-views.test.tsx src/analytics/visitor.test.ts src/components/checkout/visitor-header.test.ts src/components/products/impressions.test.ts src/components/products/ProductList.analytics.test.tsx src/components/checkout/cart-analytics.test.tsx src/components/checkout/apple-pay-analytics.test.tsx src/components/notifications/notifications-analytics.test.tsx src/components/returns/returns-analytics.test.tsx src/panel/panel-analytics.test.tsx src/course/course-analytics.test.tsx src/viewer3d/viewer3d.test.ts src/viewer3d/Model3DViewer.test.tsx src/panel/panel-products.test.tsx src/ui/email-code-login/email-code-login.test.tsx src/ui/email-code-login/login-brand-logo.test.tsx src/panel/panel-login.test.tsx src/components/returns/returns-login.test.tsx src/components/notifications/notifications-login.test.tsx src/panel/audio-player/audio-player.test.tsx --format esm --out-dir .test-dist --no-config --external jsdom --silent && node --test --test-force-exit \".test-dist/**/*.test.mjs\"",
18
18
  "test:types": "tsc -p test/consumer/tsconfig.json",
19
19
  "test:package": "node test/consumer/verify-package.mjs"
20
20
  },
@@ -1,2 +0,0 @@
1
- .bitsnap-react #audio-player-container{--seek-before-width: 0%;--buffered-width: 0%}.bitsnap-react input[type=range]{position:relative;-webkit-appearance:none;width:100%;margin:0;padding:0;height:19px;float:left;outline:none;background:transparent}.bitsnap-react input[type=range]::-webkit-slider-runnable-track{width:100%;height:3px;cursor:pointer;background:#d9d9d9}.bitsnap-react input[type=range]:before{position:absolute;content:"";top:8px;left:0;width:var(--seek-before-width);height:3px;background-color:#8c8c8c;cursor:pointer}.bitsnap-react input[type=range]::-webkit-slider-thumb{position:relative;-webkit-appearance:none;box-sizing:content-box;border:1px solid #d9d9d9;height:15px;width:15px;border-radius:50%;background-color:#8c8c8c;cursor:pointer;margin:-7px 0 0}.bitsnap-react input[type=range]:active::-webkit-slider-thumb{transform:scale(1.2);background:#e2e8f0}.bitsnap-react input[type=range]::-moz-range-track{width:100%;height:3px;cursor:pointer;background:linear-gradient(to right,rgba(0,125,181,.6) var(--buffered-width),rgba(0,125,181,.2) var(--buffered-width))}.bitsnap-react input[type=range]::-moz-range-progress{background-color:#007db5}.bitsnap-react input[type=range]::-moz-focus-outer{border:0}.bitsnap-react input[type=range]::-moz-range-thumb{box-sizing:content-box;border:1px solid #007db5;height:15px;width:15px;border-radius:50%;background-color:#fff;cursor:pointer}.bitsnap-react input[type=range]:active::-moz-range-thumb{transform:scale(1.2);background:#007db5}.bitsnap-react input[type=range]::-ms-track{width:100%;height:3px;cursor:pointer;background:transparent;border:solid transparent;color:transparent}.bitsnap-react input[type=range]::-ms-fill-lower{background-color:#007db5}.bitsnap-react input[type=range]::-ms-fill-upper{background:linear-gradient(to right,rgba(0,125,181,.6) var(--buffered-width),rgba(0,125,181,.2) var(--buffered-width))}.bitsnap-react input[type=range]::-ms-thumb{box-sizing:content-box;border:1px solid #007db5;height:15px;width:15px;border-radius:50%;background-color:#fff;cursor:pointer}.bitsnap-react input[type=range]:active::-ms-thumb{transform:scale(1.2);background:#007db5}.bitsnap-react .SliderRoot{position:relative;display:flex;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;width:200px;height:20px}.bitsnap-react .SliderTrack{background-color:var(--black-a10);position:relative;flex-grow:1;border-radius:9999px;height:3px}.bitsnap-react .SliderRange{position:absolute;background-color:#fff;border-radius:9999px;height:100%}.bitsnap-react .SliderThumb{display:block;width:20px;height:20px;background-color:#fff;box-shadow:0 2px 10px var(--black-a7);border-radius:10px}.bitsnap-react .SliderThumb:hover{background-color:var(--violet-3)}.bitsnap-react .SliderThumb:focus{outline:none;box-shadow:0 0 0 5px var(--black-a8)}
2
- /*# sourceMappingURL=CartProvider-PDEV6GCV.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/panel/audio-player/audio-player.css"],"sourcesContent":[".bitsnap-react #audio-player-container {\n --seek-before-width: 0%;\n --buffered-width: 0%;\n}\n\n.bitsnap-react input[type=\"range\"] {\n position: relative;\n -webkit-appearance: none;\n width: 100%;\n margin: 0;\n padding: 0;\n height: 19px;\n float: left;\n outline: none;\n background: transparent;\n}\n.bitsnap-react input[type=\"range\"]::-webkit-slider-runnable-track {\n width: 100%;\n height: 3px;\n cursor: pointer;\n /*background: linear-gradient(to right, rgba(0, 125, 181, 0.6) var(--buffered-width), rgba(0, 125, 181, 0.2) var(--buffered-width));*/\n background: #d9d9d9;\n}\n.bitsnap-react input[type=\"range\"]::before {\n position: absolute;\n content: \"\";\n top: 8px;\n left: 0;\n width: var(--seek-before-width);\n height: 3px;\n background-color: #8c8c8c;\n cursor: pointer;\n}\n.bitsnap-react input[type=\"range\"]::-webkit-slider-thumb {\n position: relative;\n -webkit-appearance: none;\n box-sizing: content-box;\n border: 1px solid #d9d9d9;\n height: 15px;\n width: 15px;\n border-radius: 50%;\n background-color: #8c8c8c;\n cursor: pointer;\n margin: -7px 0 0 0;\n}\n.bitsnap-react input[type=\"range\"]:active::-webkit-slider-thumb {\n transform: scale(1.2);\n background: #e2e8f0;\n}\n.bitsnap-react input[type=\"range\"]::-moz-range-track {\n width: 100%;\n height: 3px;\n cursor: pointer;\n background: linear-gradient(\n to right,\n rgba(0, 125, 181, 0.6) var(--buffered-width),\n rgba(0, 125, 181, 0.2) var(--buffered-width)\n );\n}\n.bitsnap-react input[type=\"range\"]::-moz-range-progress {\n background-color: #007db5;\n}\n.bitsnap-react input[type=\"range\"]::-moz-focus-outer {\n border: 0;\n}\n.bitsnap-react input[type=\"range\"]::-moz-range-thumb {\n box-sizing: content-box;\n border: 1px solid #007db5;\n height: 15px;\n width: 15px;\n border-radius: 50%;\n background-color: #fff;\n cursor: pointer;\n}\n.bitsnap-react input[type=\"range\"]:active::-moz-range-thumb {\n transform: scale(1.2);\n background: #007db5;\n}\n.bitsnap-react input[type=\"range\"]::-ms-track {\n width: 100%;\n height: 3px;\n cursor: pointer;\n background: transparent;\n border: solid transparent;\n color: transparent;\n}\n.bitsnap-react input[type=\"range\"]::-ms-fill-lower {\n background-color: #007db5;\n}\n.bitsnap-react input[type=\"range\"]::-ms-fill-upper {\n background: linear-gradient(\n to right,\n rgba(0, 125, 181, 0.6) var(--buffered-width),\n rgba(0, 125, 181, 0.2) var(--buffered-width)\n );\n}\n.bitsnap-react input[type=\"range\"]::-ms-thumb {\n box-sizing: content-box;\n border: 1px solid #007db5;\n height: 15px;\n width: 15px;\n border-radius: 50%;\n background-color: #fff;\n cursor: pointer;\n}\n.bitsnap-react input[type=\"range\"]:active::-ms-thumb {\n transform: scale(1.2);\n background: #007db5;\n}\n\n.bitsnap-react .SliderRoot {\n position: relative;\n display: flex;\n align-items: center;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n touch-action: none;\n width: 200px;\n height: 20px;\n}\n\n.bitsnap-react .SliderTrack {\n background-color: var(--black-a10);\n position: relative;\n flex-grow: 1;\n border-radius: 9999px;\n height: 3px;\n}\n\n.bitsnap-react .SliderRange {\n position: absolute;\n background-color: white;\n border-radius: 9999px;\n height: 100%;\n}\n\n.bitsnap-react .SliderThumb {\n display: block;\n width: 20px;\n height: 20px;\n background-color: white;\n box-shadow: 0 2px 10px var(--black-a7);\n border-radius: 10px;\n}\n.bitsnap-react .SliderThumb:hover {\n background-color: var(--violet-3);\n}\n.bitsnap-react .SliderThumb:focus {\n outline: none;\n box-shadow: 0 0 0 5px var(--black-a8);\n}\n"],"mappings":"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","names":[]}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkY5KWVTXTjs = require('./chunk-Y5KWVTXT.js');require('./chunk-QERYM7RC.js');require('./chunk-KOYBZORL.js');require('./chunk-SRQOFCMO.js');require('./chunk-WPOXLITY.js');require('./chunk-GXUNRJ5S.js');require('./chunk-GQJDFLSL.js');var _chunk7RXW6XFYjs = require('./chunk-7RXW6XFY.js');require('./chunk-W3RGQYPD.js');require('./chunk-JSDGZ4NY.js');exports.MARKETING_AGREEMENT_ID = _chunkY5KWVTXTjs.L; exports.bitsnapProjectID = _chunkY5KWVTXTjs.M; exports.default = _chunkY5KWVTXTjs.T; exports.getCartLines = _chunkY5KWVTXTjs.Q; exports.getCheckoutMethods = _chunkY5KWVTXTjs.U; exports.getCheckoutSelection = _chunkY5KWVTXTjs.P; exports.getLocale = _chunk7RXW6XFYjs.f; exports.getProjectID = _chunkY5KWVTXTjs.O; exports.reconcileOrderOfLastPayment = _chunkY5KWVTXTjs.R; exports.setLocale = _chunk7RXW6XFYjs.e; exports.setProjectID = _chunkY5KWVTXTjs.N; exports.useCartProvider = _chunkY5KWVTXTjs.S;
2
- //# sourceMappingURL=CartProvider-VGZMDVFJ.js.map
@@ -1,2 +0,0 @@
1
- import{L as c,M as d,N as e,O as f,P as g,Q as h,R as i,S as j,T as k,U as l}from"./chunk-5AYH23UJ.mjs";import"./chunk-QXGK337V.mjs";import"./chunk-KOVKUJAW.mjs";import"./chunk-SULHGFYN.mjs";import"./chunk-CUPG4B5W.mjs";import"./chunk-AGYS7Z6G.mjs";import"./chunk-5R6AGO3Z.mjs";import"./chunk-SXKJ26OA.mjs";import"./chunk-QQQ2JSPQ.mjs";import{e as a,f as b}from"./chunk-VNYHJT6V.mjs";import"./chunk-MDCP5JNP.mjs";import"./chunk-U6FLIRIV.mjs";export{c as MARKETING_AGREEMENT_ID,d as bitsnapProjectID,k as default,h as getCartLines,l as getCheckoutMethods,g as getCheckoutSelection,b as getLocale,f as getProjectID,i as reconcileOrderOfLastPayment,a as setLocale,e as setProjectID,j as useCartProvider};
2
- //# sourceMappingURL=CartProvider-ZY5OLTAF.mjs.map
@@ -1,2 +0,0 @@
1
- import{a as w,b as v}from"./chunk-6YIRRDCL.mjs";import{f as N}from"./chunk-VNYHJT6V.mjs";import"./chunk-U6FLIRIV.mjs";import{createClient as I}from"@connectrpc/connect";import{useTransport as $}from"@connectrpc/connect-query";import{useCallback as P,useMemo as z,useState as y}from"react";import{Fragment as L,jsx as r,jsxs as n}from"react/jsx-runtime";var k={pl:{title:"Pliki 3D",subtitle:"Pobierasz zawsze aktualn\u0105 wersj\u0119 pliku.",download:"Pobierz",preparing:"Przygotowuj\u0119\u2026",licence:"Licencja",purchased:"Kupiono",accessUntil:"Dost\u0119p do",removed:"Sprzedawca usun\u0105\u0142 ten plik.",contact:"Napisz do sprzedawcy",expired:"Dost\u0119p do pliku wygas\u0142",failure:{1:"Sesja wygas\u0142a. Zaloguj si\u0119 ponownie.",2:"Nie znale\u017Ali\u015Bmy tego pliku.",3:"Zam\xF3wienie zosta\u0142o zwr\xF3cone lub anulowane.",4:"Dost\u0119p do pliku wygas\u0142.",5:"Sprzedawca usun\u0105\u0142 ten plik.",6:"Zam\xF3wienie nie jest op\u0142acone."},error:"Nie uda\u0142o si\u0119 pobra\u0107 pliku. Spr\xF3buj ponownie."},en:{title:"3D files",subtitle:"You always download the current version of the file.",download:"Download",preparing:"Preparing\u2026",licence:"Licence",purchased:"Purchased",accessUntil:"Access until",removed:"The seller removed this file.",contact:"Contact the seller",expired:"Access to the file has ended",failure:{1:"Your session has expired. Sign in again.",2:"We could not find this file.",3:"The order was refunded or canceled.",4:"Access to the file has ended.",5:"The seller removed this file.",6:"The order is not paid."},error:"The file could not be downloaded. Try again."}};function A(i,o){let c=Number(i);if(!Number.isFinite(c)||c<=0)return"";let l=c/(1024*1024),t=new Intl.NumberFormat(o?"en-GB":"pl-PL",{maximumFractionDigits:1});return l>=1?`${t.format(l)} MB`:`${t.format(c/1024)} KB`}function m(i,o){return i==null||i<=0n?"":new Intl.DateTimeFormat(o?"en-GB":"pl-PL",{dateStyle:"medium"}).format(new Date(Number(i)*1e3))}function U({className:i}){return n("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,className:i,"aria-hidden":!0,children:[r("path",{d:"M12 2.5 3.5 7v10L12 21.5 20.5 17V7L12 2.5Z",strokeLinejoin:"round"}),r("path",{d:"M3.5 7 12 11.5 20.5 7M12 11.5v10",strokeLinejoin:"round"})]})}function M({accessToken:i,models:o,buttonStyle:c}){let l=N().toLowerCase().startsWith("en"),t=l?k.en:k.pl,f=$(),g=z(()=>I(v,f),[f]),[x,b]=y(null),[h,p]=y({}),D=P(async(e,d)=>{let s=`${e.orderId}:${e.lineId}:${d}`;b(s),p(a=>({...a,[s]:""}));try{let a=await g.getModelFileDownloadUrl({accessToken:i,orderId:e.orderId,lineId:e.lineId,fileIndex:d});if(a.result.case==="success")window.location.assign(a.result.value.url);else{let u=a.result.case==="failure"?a.result.value:void 0;p(E=>({...E,[s]:(u!=null?t.failure[u]:void 0)??t.error}))}}catch{p(a=>({...a,[s]:t.error}))}finally{b(null)}},[g,i,t]);return o.length===0?null:r("section",{"aria-labelledby":"bitsnap-panel-model-files",className:"mt-10 w-full max-w-5xl","data-testid":"model-files",children:n("div",{className:"rounded-2xl border border-neutral-200 bg-white dark:border-neutral-800 dark:bg-neutral-900",children:[n("header",{className:"border-b border-neutral-200 px-5 py-4 dark:border-neutral-800",children:[r("h2",{id:"bitsnap-panel-model-files",className:"text-lg font-semibold text-neutral-900 dark:text-neutral-50",children:t.title}),r("p",{className:"mt-0.5 text-sm text-neutral-500 dark:text-neutral-400",children:t.subtitle})]}),r("ul",{className:"divide-y divide-neutral-200 dark:divide-neutral-800",children:o.map(e=>{let d=e.variantName?`${e.productName} \u2013 ${e.variantName}`:e.productName;return n("li",{className:"flex flex-col gap-3 px-5 py-4 sm:flex-row sm:items-center","data-state":w[e.state],children:[n("div",{className:"flex min-w-0 flex-1 items-center gap-4",children:[r("div",{className:"flex size-14 shrink-0 items-center justify-center overflow-hidden rounded-xl bg-neutral-100 text-neutral-400 dark:bg-neutral-800",children:e.thumbnailUrl?r("img",{src:e.thumbnailUrl,alt:"",className:"size-full object-contain",loading:"lazy"}):r(U,{className:"size-7"})}),n("div",{className:"min-w-0",children:[r("p",{className:"truncate font-medium text-neutral-900 dark:text-neutral-50",children:d}),r("p",{className:"mt-0.5 text-sm text-neutral-500 dark:text-neutral-400",children:[e.files[0]?`${e.files[0].format.toUpperCase()} \xB7 ${A(e.files[0].fileSize,l)}`:"",`${t.purchased} ${m(e.purchasedAt,l)}`,e.accessExpiresAt!=null&&e.state===1?`${t.accessUntil} ${m(e.accessExpiresAt,l)}`:""].filter(Boolean).join(" \xB7 ")}),e.licence&&n("p",{className:"mt-0.5 text-sm text-neutral-600 dark:text-neutral-300",children:[t.licence,":"," ",e.licence.url?r("a",{href:e.licence.url,target:"_blank",rel:"noopener noreferrer",className:"underline underline-offset-2 hover:text-neutral-900 dark:hover:text-neutral-50",children:e.licence.name}):e.licence.name]}),e.state===2&&n("p",{className:"mt-1 text-sm text-neutral-700 dark:text-neutral-200","data-model-removed":"",children:[t.removed,e.seller?.email&&n(L,{children:[" ",t.contact,e.seller.name?` (${e.seller.name})`:"",":"," ",r("a",{className:"font-medium underline underline-offset-2",href:`mailto:${e.seller.email}`,children:e.seller.email})]})]}),e.state===3&&n("p",{className:"mt-1 text-sm text-neutral-700 dark:text-neutral-200",children:[t.expired,e.accessExpiresAt!=null?` ${m(e.accessExpiresAt,l)}`:"","."]})]})]}),e.state===1&&e.files.map(s=>{let a=`${e.orderId}:${e.lineId}:${s.index}`,u=x===a;return n("div",{className:"flex flex-col items-start gap-1 sm:items-end",children:[r("button",{type:"button",onClick:()=>void D(e,s.index),disabled:x!=null,"aria-busy":u||void 0,"aria-label":`${t.download}: ${s.fileName}`,"data-model-download":"",style:c,className:"inline-flex h-10 items-center justify-center rounded-lg bg-neutral-900 px-4 text-sm font-medium text-white transition-opacity hover:opacity-90 disabled:opacity-60 dark:bg-neutral-50 dark:text-neutral-900",children:u?t.preparing:t.download}),h[a]&&r("p",{className:"text-sm text-red-700 dark:text-red-400",role:"alert",children:h[a]})]},a)})]},`${e.orderId}:${e.lineId}`)})})]})})}export{M as default};
2
- //# sourceMappingURL=PanelModelFiles-RV7OHUUZ.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/panel/components/PanelModelFiles.tsx"],"sourcesContent":["import { createClient } from \"@connectrpc/connect\";\nimport { useTransport } from \"@connectrpc/connect-query\";\nimport { useCallback, useMemo, useState } from \"react\";\n\nimport { getLocale } from \"../../components/checkout/locale\";\nimport {\n ModelDeliveryFailure,\n ModelDeliveryService,\n ModelFileState,\n type PurchasedModel,\n} from \"../../gen/proto/public/v1/model_delivery_pb\";\n\n/**\n * \"3D files\" of the customer panel: the 3D files of the buyer's paid orders in\n * this shop (`public.v1.ModelDeliveryService`), with a download button, the\n * licence and the \"seller removed the file\" state. The download URL is signed\n * on click and expires quickly, so it is never rendered into the page.\n *\n * Older Bitsnap servers have no such service: any transport error (404,\n * unimplemented, network) hides the section, so the panel looks as before.\n *\n * Loaded on demand (with `model-files-client.ts`) only when the buyer has 3D\n * files, so the main bundle carries just `model-files-load.ts`.\n */\n\ntype Copy = {\n title: string;\n subtitle: string;\n download: string;\n preparing: string;\n licence: string;\n purchased: string;\n accessUntil: string;\n removed: string;\n contact: string;\n expired: string;\n failure: Partial<Record<ModelDeliveryFailure, string>>;\n error: string;\n};\n\nconst COPY: { pl: Copy; en: Copy } = {\n pl: {\n title: \"Pliki 3D\",\n subtitle: \"Pobierasz zawsze aktualną wersję pliku.\",\n download: \"Pobierz\",\n preparing: \"Przygotowuję…\",\n licence: \"Licencja\",\n purchased: \"Kupiono\",\n accessUntil: \"Dostęp do\",\n removed: \"Sprzedawca usunął ten plik.\",\n contact: \"Napisz do sprzedawcy\",\n expired: \"Dostęp do pliku wygasł\",\n failure: {\n [ModelDeliveryFailure.UNAUTHORIZED]: \"Sesja wygasła. Zaloguj się ponownie.\",\n [ModelDeliveryFailure.NOT_FOUND]: \"Nie znaleźliśmy tego pliku.\",\n [ModelDeliveryFailure.REFUNDED]: \"Zamówienie zostało zwrócone lub anulowane.\",\n [ModelDeliveryFailure.EXPIRED]: \"Dostęp do pliku wygasł.\",\n [ModelDeliveryFailure.REMOVED]: \"Sprzedawca usunął ten plik.\",\n [ModelDeliveryFailure.UNPAID]: \"Zamówienie nie jest opłacone.\",\n },\n error: \"Nie udało się pobrać pliku. Spróbuj ponownie.\",\n },\n en: {\n title: \"3D files\",\n subtitle: \"You always download the current version of the file.\",\n download: \"Download\",\n preparing: \"Preparing…\",\n licence: \"Licence\",\n purchased: \"Purchased\",\n accessUntil: \"Access until\",\n removed: \"The seller removed this file.\",\n contact: \"Contact the seller\",\n expired: \"Access to the file has ended\",\n failure: {\n [ModelDeliveryFailure.UNAUTHORIZED]: \"Your session has expired. Sign in again.\",\n [ModelDeliveryFailure.NOT_FOUND]: \"We could not find this file.\",\n [ModelDeliveryFailure.REFUNDED]: \"The order was refunded or canceled.\",\n [ModelDeliveryFailure.EXPIRED]: \"Access to the file has ended.\",\n [ModelDeliveryFailure.REMOVED]: \"The seller removed this file.\",\n [ModelDeliveryFailure.UNPAID]: \"The order is not paid.\",\n },\n error: \"The file could not be downloaded. Try again.\",\n },\n};\n\nfunction formatSize(bytes: bigint, en: boolean): string {\n const value = Number(bytes);\n if (!Number.isFinite(value) || value <= 0) return \"\";\n const mb = value / (1024 * 1024);\n const fmt = new Intl.NumberFormat(en ? \"en-GB\" : \"pl-PL\", {\n maximumFractionDigits: 1,\n });\n return mb >= 1 ? `${fmt.format(mb)} MB` : `${fmt.format(value / 1024)} KB`;\n}\n\nfunction formatDate(seconds: bigint | undefined, en: boolean): string {\n if (seconds == null || seconds <= 0n) return \"\";\n return new Intl.DateTimeFormat(en ? \"en-GB\" : \"pl-PL\", {\n dateStyle: \"medium\",\n }).format(new Date(Number(seconds) * 1000));\n}\n\nfunction CubeIcon({ className }: { className?: string }) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n className={className}\n aria-hidden\n >\n <path d=\"M12 2.5 3.5 7v10L12 21.5 20.5 17V7L12 2.5Z\" strokeLinejoin=\"round\" />\n <path d=\"M3.5 7 12 11.5 20.5 7M12 11.5v10\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\nexport default function PanelModelFiles({\n accessToken,\n models,\n buttonStyle,\n}: {\n accessToken: string;\n models: PurchasedModel[];\n buttonStyle?: React.CSSProperties;\n}) {\n const en = getLocale().toLowerCase().startsWith(\"en\");\n const t = en ? COPY.en : COPY.pl;\n const transport = useTransport();\n const client = useMemo(\n () => createClient(ModelDeliveryService, transport),\n [transport],\n );\n const [pending, setPending] = useState<string | null>(null);\n const [errors, setErrors] = useState<Record<string, string>>({});\n\n const download = useCallback(\n async (model: PurchasedModel, index: number) => {\n const key = `${model.orderId}:${model.lineId}:${index}`;\n setPending(key);\n setErrors((current) => ({ ...current, [key]: \"\" }));\n try {\n const response = await client.getModelFileDownloadUrl({\n accessToken,\n orderId: model.orderId,\n lineId: model.lineId,\n fileIndex: index,\n });\n if (response.result.case === \"success\") {\n // An attachment: the browser downloads it and stays on the panel.\n window.location.assign(response.result.value.url);\n } else {\n const failure =\n response.result.case === \"failure\" ? response.result.value : undefined;\n setErrors((current) => ({\n ...current,\n [key]: (failure != null ? t.failure[failure] : undefined) ?? t.error,\n }));\n }\n } catch {\n setErrors((current) => ({ ...current, [key]: t.error }));\n } finally {\n setPending(null);\n }\n },\n [client, accessToken, t],\n );\n\n if (models.length === 0) return null;\n\n return (\n <section\n aria-labelledby=\"bitsnap-panel-model-files\"\n className=\"mt-10 w-full max-w-5xl\"\n data-testid=\"model-files\"\n >\n <div className=\"rounded-2xl border border-neutral-200 bg-white dark:border-neutral-800 dark:bg-neutral-900\">\n <header className=\"border-b border-neutral-200 px-5 py-4 dark:border-neutral-800\">\n <h2\n id=\"bitsnap-panel-model-files\"\n className=\"text-lg font-semibold text-neutral-900 dark:text-neutral-50\"\n >\n {t.title}\n </h2>\n <p className=\"mt-0.5 text-sm text-neutral-500 dark:text-neutral-400\">\n {t.subtitle}\n </p>\n </header>\n <ul className=\"divide-y divide-neutral-200 dark:divide-neutral-800\">\n {models.map((model) => {\n const title = model.variantName\n ? `${model.productName} – ${model.variantName}`\n : model.productName;\n return (\n <li\n key={`${model.orderId}:${model.lineId}`}\n className=\"flex flex-col gap-3 px-5 py-4 sm:flex-row sm:items-center\"\n data-state={ModelFileState[model.state]}\n >\n <div className=\"flex min-w-0 flex-1 items-center gap-4\">\n <div className=\"flex size-14 shrink-0 items-center justify-center overflow-hidden rounded-xl bg-neutral-100 text-neutral-400 dark:bg-neutral-800\">\n {model.thumbnailUrl ? (\n <img\n src={model.thumbnailUrl}\n alt=\"\"\n className=\"size-full object-contain\"\n loading=\"lazy\"\n />\n ) : (\n <CubeIcon className=\"size-7\" />\n )}\n </div>\n <div className=\"min-w-0\">\n <p className=\"truncate font-medium text-neutral-900 dark:text-neutral-50\">\n {title}\n </p>\n <p className=\"mt-0.5 text-sm text-neutral-500 dark:text-neutral-400\">\n {[\n model.files[0]\n ? `${model.files[0].format.toUpperCase()} · ${formatSize(model.files[0].fileSize, en)}`\n : \"\",\n `${t.purchased} ${formatDate(model.purchasedAt, en)}`,\n model.accessExpiresAt != null &&\n model.state === ModelFileState.AVAILABLE\n ? `${t.accessUntil} ${formatDate(model.accessExpiresAt, en)}`\n : \"\",\n ]\n .filter(Boolean)\n .join(\" · \")}\n </p>\n {model.licence && (\n <p className=\"mt-0.5 text-sm text-neutral-600 dark:text-neutral-300\">\n {t.licence}:{\" \"}\n {model.licence.url ? (\n <a\n href={model.licence.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"underline underline-offset-2 hover:text-neutral-900 dark:hover:text-neutral-50\"\n >\n {model.licence.name}\n </a>\n ) : (\n model.licence.name\n )}\n </p>\n )}\n {model.state === ModelFileState.REMOVED && (\n <p\n className=\"mt-1 text-sm text-neutral-700 dark:text-neutral-200\"\n data-model-removed=\"\"\n >\n {t.removed}\n {model.seller?.email && (\n <>\n {\" \"}\n {t.contact}\n {model.seller.name ? ` (${model.seller.name})` : \"\"}:{\" \"}\n <a\n className=\"font-medium underline underline-offset-2\"\n href={`mailto:${model.seller.email}`}\n >\n {model.seller.email}\n </a>\n </>\n )}\n </p>\n )}\n {model.state === ModelFileState.EXPIRED && (\n <p className=\"mt-1 text-sm text-neutral-700 dark:text-neutral-200\">\n {t.expired}\n {model.accessExpiresAt != null\n ? ` ${formatDate(model.accessExpiresAt, en)}`\n : \"\"}\n .\n </p>\n )}\n </div>\n </div>\n {model.state === ModelFileState.AVAILABLE &&\n model.files.map((file) => {\n const key = `${model.orderId}:${model.lineId}:${file.index}`;\n const busy = pending === key;\n return (\n <div\n key={key}\n className=\"flex flex-col items-start gap-1 sm:items-end\"\n >\n <button\n type=\"button\"\n onClick={() => void download(model, file.index)}\n disabled={pending != null}\n aria-busy={busy || undefined}\n aria-label={`${t.download}: ${file.fileName}`}\n data-model-download=\"\"\n style={buttonStyle}\n className=\"inline-flex h-10 items-center justify-center rounded-lg bg-neutral-900 px-4 text-sm font-medium text-white transition-opacity hover:opacity-90 disabled:opacity-60 dark:bg-neutral-50 dark:text-neutral-900\"\n >\n {busy ? t.preparing : t.download}\n </button>\n {errors[key] && (\n <p\n className=\"text-sm text-red-700 dark:text-red-400\"\n role=\"alert\"\n >\n {errors[key]}\n </p>\n )}\n </div>\n );\n })}\n </li>\n );\n })}\n </ul>\n </div>\n </section>\n );\n}\n"],"mappings":"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","names":["createClient","useTransport","useCallback","useMemo","useState","Fragment","jsx","jsxs","COPY","formatSize","bytes","en","value","mb","fmt","formatDate","seconds","CubeIcon","className","PanelModelFiles","accessToken","models","buttonStyle","getLocale","transport","useTransport","client","useMemo","createClient","ModelDeliveryService","pending","setPending","useState","errors","setErrors","download","useCallback","model","index","key","current","response","failure","title","ModelFileState","file","busy"]}
@@ -1,4 +0,0 @@
1
- import{A as Dn,a as Ie,g as vn,h as wn,i as kn,j as Cn,k as Nn,s as Sn,v as In,w as Rn,x as An,y as Tn,z as Ln}from"./chunk-QXGK337V.mjs";import{b as oe,c as Ye,d as yn,e as hn,f as Ee}from"./chunk-SULHGFYN.mjs";import{a as Ot,g as Ze,h as Je}from"./chunk-CUPG4B5W.mjs";import{a as At,b as Tt,c as st,d as Lt,e as Dt,f as mn,j as G,k as De,l as ee,p as gn,q as S,r as lt,t as Pn,u as Oe,v as bn}from"./chunk-AGYS7Z6G.mjs";import{a as x}from"./chunk-5R6AGO3Z.mjs";import{a as It,b as un,c as Rt,e as K,f as fn}from"./chunk-SXKJ26OA.mjs";import{h as Et,l as dt,m as ct,n as Le,o as pn}from"./chunk-QQQ2JSPQ.mjs";import{a as xn,c as Pe,f as F}from"./chunk-VNYHJT6V.mjs";import{useAutoAnimate as pa}from"@formkit/auto-animate/react";import{useEffect as jn,useState as ie}from"react";import{jsx as Qe}from"react/jsx-runtime";function me({className:e,...t}){return Qe("div",{"data-slot":"card",className:x("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...t})}function be({className:e,...t}){return Qe("div",{"data-slot":"card-header",className:x("@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 ve({className:e,...t}){return Qe("div",{"data-slot":"card-title",className:x("leading-none font-semibold",e),...t})}function Mt({className:e,...t}){return Qe("div",{"data-slot":"card-description",className:x("text-muted-foreground text-sm",e),...t})}function pe({className:e,...t}){return Qe("div",{"data-slot":"card-content",className:x("px-6",e),...t})}import*as En from"react";import{OTPInput as aa,OTPInputContext as oa}from"input-otp";import{MinusIcon as ia}from"lucide-react";import{jsx as Me,jsxs as sa}from"react/jsx-runtime";function On({className:e,containerClassName:t,...n}){return Me(aa,{"data-slot":"input-otp",containerClassName:x("flex items-center gap-2 has-disabled:opacity-50",t),className:x("disabled:cursor-not-allowed",e),...n})}function Ut({className:e,...t}){return Me("div",{"data-slot":"input-otp-group",className:x("flex items-center",e),...t})}function Re({index:e,className:t,...n}){let o=En.useContext(oa),{char:r,hasFakeCaret:a,isActive:i}=o?.slots[e]??{};return sa("div",{"data-slot":"input-otp-slot","data-active":i,className:x("data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]",t),...n,children:[r,a&&Me("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:Me("div",{className:"animate-caret-blink bg-foreground h-4 w-px duration-1000"})})]})}function Mn({...e}){return Me("div",{"data-slot":"input-otp-separator",role:"separator",...e,children:Me(ia,{})})}import{REGEXP_ONLY_DIGITS as fa}from"input-otp";import{jsx as jt,jsxs as ca}from"react/jsx-runtime";function da(){return ca("div",{className:"flex items-center gap-2",children:[jt("div",{className:"h-3 w-3 animate-bounce rounded-full bg-current [animation-delay:-0.3s]"}),jt("div",{className:"h-3 w-3 animate-bounce rounded-full bg-current [animation-delay:-0.15s]"}),jt("div",{className:"h-3 w-3 animate-bounce rounded-full bg-current"})]})}var Z=da;var la="return_url",_t="__return_url",ua="accessToken";function Xe(e){let t=new URLSearchParams(e).get(la);return t?Un(t):null}function et(e){typeof window>"u"||(e?window.sessionStorage.setItem(_t,e):window.sessionStorage.removeItem(_t))}function Ue(){if(typeof window>"u")return null;let e=window.sessionStorage.getItem(_t);return e?Un(e):null}function ma(e,t){return t.some(n=>{if(e===n)return!0;let o=new URL(n).hostname,r=new URL(e).hostname;return r.endsWith(`.${o}`)||r===o})}function Un(e){try{let t=new URL(e);return t.protocol!=="https:"&&t.protocol!=="http:"||!ma(t.origin,Je())?null:t.toString()}catch{return null}}function je(e,t){let n=new URL(e);return n.searchParams.set(ua,t),n.toString()}import{jsx as w,jsxs as M}from"react/jsx-runtime";if(typeof window<"u"){let t=[window.location.origin,"https://bitsnap.pl","https://kursy.bitsnap.pl"];Je().length===0&&Ze(Array.from(new Set(t)))}var ga=({projectID:e,host:t,reveal:n,email:o,setEmail:r,loginUser:a,isLoginLoading:i,errMsg:d})=>{let{projectID:c,host:l}=oe();if(typeof window<"u"&&Ye(e??c,t??l)!=null)return window.location.href=window.location.href.replaceAll("login",""),null;let[m,g]=ie(!1),k=s=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(s.trim())?g(!0):g(!1),u=s=>{let{value:P}=s.target;k(P),r(P)};function y(){n()}function C(s){s.preventDefault(),a()}return w("main",{className:"mx-auto flex max-w-sm flex-1 flex-col justify-center space-y-12",children:w("div",{className:x("flex min-w-sm flex-col gap-6"),children:M(me,{children:[M(be,{children:[w(ve,{className:"text-2xl",children:"Zaloguj si\u0119"}),w(Mt,{children:"Wy\u015Blemy do Ciebie kod na maila, dzi\u0119ki kt\xF3remu si\u0119 zalogujesz."})]}),w(pe,{children:M("form",{onSubmit:C,children:[M("div",{className:"flex flex-col gap-6",children:[M("div",{className:"grid gap-2",children:[w(Ie,{htmlFor:"email",children:"Email"}),w(lt,{id:"email",onChange:u,type:"email",placeholder:"m@example.com",required:!0}),w("span",{className:x(!m&&o.length>0?"font-bold text-red-500":"text-neutral-700 dark:text-neutral-400","text-xs"),children:!m&&o.length>0?"Nieprawid\u0142owy adres email":"Wpisz sw\xF3j adres email"})]}),M("div",{children:[M(S,{type:"submit",disabled:i,className:"relative w-full",onClick:a,children:[i&&w("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:w(Z,{})}),"Zaloguj si\u0119"]}),d.length>0&&w("p",{className:"text-xs font-medium text-red-500",children:d})]})]}),M("div",{className:"mt-4 text-center text-sm",children:["Masz ju\u017C kod?"," ",w("button",{type:"button",onClick:y,className:"underline underline-offset-4",children:"Mam ju\u017C kod"})]})]})})]})})})},ya=({projectID:e,host:t,email:n,reveal:o,setEmail:r,isLoginLoading:a,loginUserResponse:i,setLoginUserResponse:d,setResponseStatus:c,errMsg:l})=>{let m=ct(),{mutateAsync:g,isPending:k}=ee(G.publicApi.userPanelLoginWithCode),[u,y]=ie(""),[C,s]=ie(!1),[P,R]=ie(!1),[B,H]=ie(0),A=U=>/^\d+$/.test(U.trim())?s(!0):s(!1),O=U=>{A(U),y(U)};async function q(){if(R(!0),u.length==0){s(!1);return}let U=parseInt(u),X=await g({code:U}),he,Ne,re;if(X.result.case==="accessToken"?(s(!0),he="ok",Ne=void 0,re=X.result.value):(s(!1),he="error",Ne=X.result.value,re=void 0),he==="error"&&(s(!1),console.warn("error:",`Kod b\u0142\u0119du: ${Ne}`),console.warn("Nieprawid\u0142owy kod, spr\xF3buj ponownie.")),he==="ok"){m.track("panel_login",{}),re&&yn(e,re,n,t);let b=typeof window<"u"?Ue():null;setTimeout(()=>{if(re&&b){window.location.href=je(b,re);return}window.location.reload()},100)}}function L(){let U=setInterval(()=>{H(X=>X>0?X-1:(clearInterval(U),0))},1e3);return()=>{clearInterval(U)}}jn(()=>{i?.status==="ok"&&i?.retryIn>0&&(H(i.retryIn),L())},[i]);function V(){r(""),d(null),c("default"),o()}function ye(U){U.preventDefault(),q()}return w("main",{className:"mx-auto flex max-w-md flex-1 flex-col justify-center space-y-8",children:w("div",{className:x("flex min-w-sm flex-col gap-6"),children:M(me,{children:[M(be,{children:[w(ve,{className:"text-2xl",children:"Wpisz kod z maila"}),w(Mt,{children:"Sprawd\u017A czy przypadkiem nie wyl\u0105dowa\u0142 w spamie."})]}),M(pe,{children:[M("form",{onSubmit:ye,className:"flex flex-col gap-6",children:[w("div",{className:"grid gap-2",children:w("div",{className:"my-5 flex w-full items-center justify-center",children:M("div",{className:"flex flex-col gap-2",children:[M(On,{id:"verify-code",maxLength:6,pattern:fa,onChange:U=>{O(U)},children:[M(Ut,{children:[w(Re,{index:0}),w(Re,{index:1}),w(Re,{index:2})]}),w(Mn,{}),M(Ut,{children:[w(Re,{index:3}),w(Re,{index:4}),w(Re,{index:5})]})]}),w("span",{className:x(!C&&P?"text-red-500":"text-neutral-700 dark:text-neutral-400","text-xs"),children:!C&&P?u.length==0?"Kod nie mo\u017Ce by\u0107 pusty":"Kod musi sk\u0142ada\u0107 si\u0119 z cyfr":"Wpisz kod z maila"})]})})}),M("div",{children:[M(S,{type:"submit",disabled:a||k,className:"relative w-full",children:[(a||k)&&w("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:w(Z,{})}),"Zaloguj si\u0119"]}),l.length>0&&w("p",{className:"text-xs font-medium text-red-500",children:l})]})]}),M("div",{className:"mt-4 text-center text-sm",children:["Nie masz kodu?"," ",w("button",{type:"button",onClick:V,className:"underline underline-offset-4",children:"Wr\xF3\u0107"})]})]})]})})})},ha=({analytics:e})=>{let{theme:t,allowedReturnOrigins:n,projectID:o,host:r}=oe(),a=Le(o,e,"panel"),i={"--button-background-color":t?.colors?.brand??"#FFFFFF","--button-background-color-dark":t?.colors?.brandDark??"#000000","--button-text-color":t?.colors?.brandDark??"#000000","--button-text-color-dark":t?.colors?.brand??"#FFFFFF"},[d,c]=ie("login"),[l]=pa({duration:300,easing:"ease-in-out",disrespectUserMotionPreference:!1}),m=()=>c(O=>O==="login"?"verifyCode":"login"),[g,k]=ie(""),[u,y]=ie("default"),[C,s]=ie(null),{mutateAsync:P,isPending:R}=ee(G.publicApi.userPanelLogin),[B,H]=ie("");jn(()=>{if(typeof window>"u"||window.parent!==window)return;let O=Xe(window.location.search);O&&et(O);let q=O??Ue();if(!q)return;let L=Ye(o,r);L&&(window.location.href=je(q,L))},[n,o,r]);async function A(){H(""),y("default");let O=await P({email:g}),q=O.result.case==="success"?"ok":"error",L=0,V;O.result.case==="success"&&(L=O.result.value.retryIn),q==="error"&&(V="Nieprawid\u0142owy adres email, spr\xF3buj ponownie."),s({status:q,retryIn:L,message:V}),q==="ok"&&d==="login"?m():q==="ok"&&d==="verifyCode"?y("success"):q==="error"&&H(V??"Nieprawid\u0142owy adres email, spr\xF3buj ponownie.")}return w(dt,{value:a,children:w("div",{className:"bg-white text-black dark:bg-black dark:text-white",children:M("div",{className:"font-inter flex h-screen w-screen flex-col p-4",style:i,ref:l,children:[M("header",{children:[t?.logoDarkURL&&w("img",{src:t?.logoDarkURL,className:"hidden dark:inline",alt:"Company Logo",draggable:!1}),t?.logoURL&&w("img",{src:t?.logoURL,className:"dark:hidden",alt:"Company Logo",draggable:!1})]}),d==="login"&&w(ga,{projectID:o,host:r,reveal:m,email:g,setEmail:k,loginUser:A,isLoginLoading:R,errMsg:B}),d==="verifyCode"&&w(ya,{projectID:o,host:r,email:g,reveal:m,setEmail:k,loginUser:A,isLoginLoading:R,loginUserResponse:C,setLoginUserResponse:s,responseStatus:u,setResponseStatus:y,errMsg:B})]})})})},Pa=({analytics:e}={})=>w(ha,{analytics:e});import{useAutoAnimate as zo}from"@formkit/auto-animate/react";import{useEffect as bt,useState as Fo}from"react";import{useState as ba,useCallback as va,useEffect as wa}from"react";function _n(e){let[t,n]=ba(()=>{if(typeof window>"u")return e;let r=new URLSearchParams(window.location.search),a={};return Object.keys(e).forEach(i=>{let d=r.get(i);if(d!==null)try{a[i]=JSON.parse(d)}catch{a[i]=d}}),{...e,...a}}),o=va(r=>{n(a=>{let i={...a,...r};if(typeof window<"u"){let d=new URLSearchParams;Object.keys(i).forEach(l=>{let m=i[l];m!=null&&d.set(l,JSON.stringify(m))});let c=`${window.location.pathname}?${d.toString()}`;window.history.pushState({},"",c)}return i})},[]);return wa(()=>{let r=()=>{let a=new URLSearchParams(window.location.search),i={};Object.keys(e).forEach(d=>{let c=a.get(d);if(c!==null)try{i[d]=JSON.parse(c)}catch{i[d]=c}}),n({...e,...i})};return window.addEventListener("popstate",r),()=>window.removeEventListener("popstate",r)},[e]),[t,o]}function zn(e,t){if(e!=null)return e;let n=t?.trim();if(!(n==null||n===""))return{tokens:Pn(n)}}import*as ut from"@radix-ui/react-switch";import{jsx as Fn}from"react/jsx-runtime";function qn({className:e,...t}){return Fn(ut.Root,{"data-slot":"switch",className:x("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:Fn(ut.Thumb,{"data-slot":"switch-thumb",className:x("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}import{useState as xa}from"react";import{Fragment as Ca,jsx as tt,jsxs as zt}from"react/jsx-runtime";function ka({}){let[e,t]=xa({disableAll:!1});return zt(Ca,{children:[tt("h3",{className:"text-2xl",children:"Powiadomienia"}),tt("p",{className:"text-sm text-neutral-500",children:"Zarz\u0105dzaj swoimi powiadomieniami"}),tt("div",{className:"mt-6",children:zt("div",{className:"flex items-center space-x-2",children:[tt(qn,{id:"disable-all-notifications",checked:e.disableAll,onCheckedChange:n=>t(o=>({...o,disableAll:n}))}),zt(Ie,{htmlFor:"disable-all-notifications",className:"flex flex-col gap-1 text-base",children:["Wszystkie powiadomienia",tt("span",{className:"text-xs font-normal text-neutral-500 md:text-sm",children:"Ten przycisk mo\u017Ce wy\u0142\u0105czy\u0107 wszystkie powiadomienia"})]})]})})]})}var Bn=ka;import{ChevronLeftIcon as Na,ChevronRightIcon as Sa,MoreHorizontalIcon as Ia}from"lucide-react";import{jsx as se,jsxs as qt}from"react/jsx-runtime";function Hn({className:e,...t}){return se("nav",{role:"navigation","aria-label":"pagination","data-slot":"pagination",className:x("mx-auto flex w-full justify-center",e),...t})}function Gn({className:e,...t}){return se("ul",{"data-slot":"pagination-content",className:x("flex flex-row items-center gap-1",e),...t})}function we({...e}){return se("li",{"data-slot":"pagination-item",...e})}function _e({className:e,isActive:t,size:n="icon",...o}){return se("a",{"aria-current":t?"page":void 0,"data-slot":"pagination-link","data-active":t,className:x(gn({variant:t?"outline":"ghost",size:n}),e),...o})}function $n({className:e,...t}){return qt(_e,{"aria-label":"Go to previous page",size:"default",className:x("gap-1 px-2.5 sm:pl-2.5",e),...t,children:[se(Na,{}),se("span",{className:"hidden sm:block",children:"Previous"})]})}function Vn({className:e,...t}){return qt(_e,{"aria-label":"Go to next page",size:"default",className:x("gap-1 px-2.5 sm:pr-2.5",e),...t,children:[se("span",{className:"hidden sm:block",children:"Next"}),se(Sa,{})]})}function Ft({className:e,...t}){return qt("span",{"aria-hidden":!0,"data-slot":"pagination-ellipsis",className:x("flex size-9 items-center justify-center",e),...t,children:[se(Ia,{className:"size-4"}),se("span",{className:"sr-only",children:"More pages"})]})}import{useState as Ra}from"react";import{Fragment as Oa,jsx as N,jsxs as J}from"react/jsx-runtime";var Aa=e=>new Date(e*1e3).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),Ta=(e,t)=>new Intl.NumberFormat("en-US",{style:"currency",currency:t.toUpperCase()}).format(e/100),La={draft:"Szkic",unpaid:"Nieop\u0142acona",paid:"Op\u0142acona",overdue:"Zaleg\u0142a",cancelled:"Anulowana",completed:"Zako\u0144czone",processing:"Przetwarzane",refunded:"Zwr\xF3cone"},Da={draft:"text-neutral-400",unpaid:"text-yellow-500",paid:"text-green-600",overdue:"text-red-500",cancelled:"text-neutral-400 line-through",completed:"text-green-600",processing:"text-blue-500",refunded:"text-purple-500"};function Ea({openOrderDetails:e,projectID:t,accessToken:n}){let[o,r]=Ra(0),a=20,{data:i,isFetching:d}=De(G.publicApi.getOrders,{projectId:t,accessToken:n,offset:o,limit:a}),c=i?.orders??[],l=i?.totalCount??0,m=Math.floor(o/a)+1,g=Math.ceil(l/a),k=u=>{r(u)};return J(Oa,{children:[N("h3",{className:"text-2xl",children:"Historia zam\xF3wie\u0144"}),N("p",{className:"text-sm text-neutral-500 dark:text-neutral-400",children:"Twoje zam\xF3wienia"}),d?N("div",{className:"mt-6 flex w-full flex-col gap-3",children:[...Array(5)].map((u,y)=>J("div",{className:"rounded-xl bg-white p-4 shadow-sm dark:bg-neutral-800",children:[J("div",{className:"flex items-center justify-between",children:[J("div",{className:"space-y-2",children:[N(Oe,{className:"h-4 w-24"}),N(Oe,{className:"h-3 w-32"})]}),J("div",{className:"space-y-2 text-right",children:[N(Oe,{className:"ml-auto h-4 w-16"}),N(Oe,{className:"ml-auto h-3 w-12"})]})]}),N("div",{className:"mt-3",children:N(Oe,{className:"h-3 w-40"})})]},y))}):c.length===0?N("div",{className:"mt-6 text-sm text-neutral-400",children:"Brak zam\xF3wie\u0144."}):J("div",{children:[N("div",{className:"mt-6 flex w-full flex-col gap-3",children:c.map(u=>J("button",{onClick:()=>e(u.id),className:"block 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:[J("div",{className:"flex items-center justify-between",children:[J("div",{children:[J("p",{className:"font-medium",children:["Zam\xF3wienie #",u.id]}),N("p",{className:"text-xs text-neutral-500 dark:text-neutral-400",children:u.customerName||"Klient"})]}),J("div",{className:"text-right",children:[N("p",{className:"font-semibold",children:Ta(u.totalAmount,u.currency)}),N("p",{className:`text-xs font-medium ${Da[u.status]??"text-neutral-400"}`,children:La[u.status]??u.status})]})]}),N("div",{className:"mt-2 flex items-center justify-between text-xs text-neutral-500 dark:text-neutral-400",children:J("span",{children:["Data:"," ",u.createdAt?Aa(Number(u.createdAt.seconds)):"-"]})})]},u.id))}),g>1&&!d&&N("div",{className:"mt-4 flex justify-center",children:N(Hn,{children:J(Gn,{children:[m>1&&N(we,{children:N($n,{onClick:()=>k(o-a)})}),m>2&&N(we,{children:N(_e,{onClick:()=>k(0),children:"1"})}),m>3&&N(we,{children:N(Ft,{})}),[m-1,m,m+1].filter(u=>u>0&&u<=g).map(u=>N(we,{children:N(_e,{onClick:()=>k((u-1)*a),isActive:m===u,children:u})},u)),m<g-2&&N(we,{children:N(Ft,{})}),m<g&&N(we,{children:N(_e,{onClick:()=>k((g-1)*a),children:g})}),m<g&&N(we,{children:N(Vn,{onClick:()=>k(o+a)})})]})})})]})]})}var Wn=Ea;import{useState as Kn}from"react";import{Fragment as _a,jsx as te,jsxs as xe}from"react/jsx-runtime";var Zn=e=>new Date(e*1e3).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),Ma={active:"Aktywny",cancelled:"Anulowany",paused:"Wstrzymany"},Ua={active:"text-green-600",cancelled:"text-red-500",paused:"text-yellow-500"};function ja({projectID:e}){let[t,n]=Kn([]),[o,r]=Kn(!0);return xe(_a,{children:[te("h3",{className:"text-2xl",children:"Plany"}),te("p",{className:"text-sm text-neutral-500",children:"Twoje aktywne subskrypcje"}),o?te("div",{className:"mt-6 text-sm text-neutral-400",children:"\u0141adowanie..."}):t.length===0?te("div",{className:"mt-6 text-sm text-neutral-400",children:"Brak aktywnych plan\xF3w."}):te("div",{className:"mt-6 flex flex-col gap-4",children:t.map(a=>xe("div",{className:"rounded-xl bg-white p-5 shadow-sm dark:bg-neutral-800",children:[xe("div",{className:"flex items-start justify-between",children:[xe("div",{children:[te("p",{className:"font-semibold",children:a.tierName}),a.configName&&te("p",{className:"text-sm text-neutral-500",children:a.configName})]}),te("span",{className:`text-sm font-medium ${Ua[a.status]??"text-neutral-500"}`,children:Ma[a.status]??a.status})]}),xe("div",{className:"mt-3 grid grid-cols-2 gap-2 text-sm text-neutral-600 dark:text-neutral-400",children:[xe("div",{children:[te("span",{className:"font-medium",children:"Dzie\u0144 rozliczenia:"})," ",a.billingDay]}),xe("div",{children:[te("span",{className:"font-medium",children:"Data startu:"})," ",Zn(a.startDate)]}),a.endDate&&xe("div",{children:[te("span",{className:"font-medium",children:"Data zako\u0144czenia:"})," ",Zn(a.endDate)]})]})]},a.id))})]})}var Jn=ja;import{useEffect as za,useState as Bt}from"react";import{jsx as ne,jsxs as Ba}from"react/jsx-runtime";function Fa(e,t,n,o){typeof window>"u"||(t&&Ee(n,o),window.location.href=e)}function qa({projectID:e,host:t,loginURL:n,screen:o,params:r,setParams:a,setActiveScreen:i}){let{status:d,exchangeError:c}=Cn("PanelReturns"),l=kn(),m=d==="anonymous"&&(c==null||vn(c));za(()=>{m&&Fa(n,c!=null,e,t)},[m,n,c,e,t]);let[g,k]=Bt("orders"),[u,y]=Bt({items:[],note:""}),[C,s]=Bt();if(d==="anonymous"&&!m)return Ba("div",{role:"alert",className:"flex flex-col items-start gap-3",children:[ne("p",{className:"text-sm",children:l(wn(c))}),ne(S,{type:"button",onClick:()=>window.location.reload(),children:l("errorRetry")})]});if(d!=="authenticated")return ne(Sn,{});let P=R=>{k(R),a({state:"returns",orderId:void 0,returnId:void 0}),i("returns")};if(o==="return-details"&&r.returnId)return ne(Dn,{returnId:r.returnId,onBack:()=>P("myReturns")});if(g==="myReturns")return ne(Ln,{onBack:()=>P("orders"),onSelectReturn:R=>{a({state:"return-details",returnId:R,orderId:void 0}),i("return-details")}});if(g==="result"&&C!=null)return ne(Tn,{returnId:C,onContinue:()=>P("orders"),onOpenMyReturns:()=>P("myReturns")});if(r.orderId){let R=r.orderId;return g==="confirmation"?ne(An,{orderId:R,items:u.items,note:u.note,onBack:()=>k("orders"),onSubmitted:B=>{s(B),y({items:[],note:""}),k("result"),a({orderId:void 0})}}):ne(Rn,{orderId:R,initialItems:u.items.length>0?u.items:void 0,initialNote:u.note,onBack:()=>{y({items:[],note:""}),a({orderId:void 0})},onContinue:B=>{y(B),k("confirmation")}})}return ne(In,{showLogout:!1,onSelectOrder:R=>{y({items:[],note:""}),k("orders"),a({orderId:R})},onOpenMyReturns:()=>P("myReturns")})}function Ht({accessToken:e,appearance:t,texts:n,...o}){return ne(Nn,{projectID:o.projectID,host:o.host,appearance:t,texts:n,panelAccessToken:e,children:ne(qa,{...o})})}import{lazy as io,Suspense as so,useEffect as co,useState as lo}from"react";import{jsx as Va}from"react/jsx-runtime";var Ha=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g,Ga=e=>[...e.matchAll(Ha)].map(n=>({url:n[0],startIndex:n.index,endIndex:n.index+n[0].length-1})),$a=(e,t)=>{let n="",o=0;t.sort((r,a)=>r.startIndex-a.startIndex);for(let{startIndex:r,endIndex:a,replacementText:i}of t)n+=e.slice(o,r),n+=i,o=a+1;return n+=e.slice(o),n},Yn=e=>{let t=Ga(e);return Va("p",{dangerouslySetInnerHTML:{__html:$a(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)))}})};import{fromJsonString as uo,toJsonString as mo}from"@bufbuild/protobuf";import{useAutoAnimate as eo}from"@formkit/auto-animate/react";import{ChevronLeft as to,Download as sr}from"lucide-react";import{useEffect as dr,useRef as cr,useState as Fe}from"react";import rr from"hls.js";import{Pause as Wa,Play as Ka}from"lucide-react";import{forwardRef as Za,useEffect as mt,useImperativeHandle as Ja,useRef as nt,useState as ze}from"react";function Qn(){typeof navigator>"u"||typeof navigator.mediaSession>"u"||(navigator.mediaSession.playbackState="playing")}function Xn(){typeof navigator>"u"||typeof navigator.mediaSession>"u"||(navigator.mediaSession.playbackState="paused")}function er(e,t){typeof navigator>"u"||typeof navigator.mediaSession>"u"||e!=null&&isNaN(e)||t!=null&&isNaN(t)||navigator.mediaSession.setPositionState({playbackRate:1,duration:e,position:t})}function tr(e){typeof navigator>"u"||typeof navigator.mediaSession>"u"||(navigator.mediaSession.metadata=new MediaMetadata({title:e.title,artwork:e.artwork?[{type:"image/png",src:e.artwork}]:void 0}),navigator.mediaSession.setActionHandler("play",t=>{e.action(t)}),navigator.mediaSession.setActionHandler("pause",t=>{e.action(t)}),navigator.mediaSession.setActionHandler("stop",t=>{e.action(t)}),navigator.mediaSession.setActionHandler("seekbackward",t=>{e.action(t)}),navigator.mediaSession.setActionHandler("seekforward",t=>{e.action(t)}),navigator.mediaSession.setActionHandler("seekto",t=>{e.action(t)}))}function nr(){navigator.mediaSession.metadata=null}import{jsx as de,jsxs as pt}from"react/jsx-runtime";var Ya=Za(({chapters:e,styles:t,updateCurrentTime:n,setCurrentTimeHandler:o,title:r,imageURL:a,uniqueProductID:i,onChapterChange:d},c)=>{let l;(W=>(W[W.Playing=0]="Playing",W[W.Paused=1]="Paused"))(l||={});let[m,g]=ze(1);mt(()=>{switch(m){case 0:Qn();break;case 1:Xn();break}},[m]),Ja(c,()=>({selectChapter:f=>{Ke(f)}}));let[k,u]=ze(void 0),[y,C]=ze(void 0),s=nt(null),P=nt(void 0),R=nt(void 0),B=nt(null),H=nt(null),[A,O]=ze(!0),[q,L]=ze(!1),[V,ye]=ze(!Qa());function U(f){f<10||localStorage.setItem(`__player__${i}_${H.current?.id}`,`${f}`)}function X(){let f=localStorage.getItem(`__player__${i}_${H.current?.id}`);if(f!=null)try{let j=parseInt(f);return isNaN(j)||j<0?void 0:j}catch{return}}function he(){let f=localStorage.getItem(`__player__${i}_last_chapter`);if(f!=null)return f}function Ne(f){localStorage.setItem(`__player__${i}_last_chapter`,f)}function re(f){localStorage.removeItem(`__player__${i}_${f}`)}function b(){s.current!=null&&(s.current.onloadeddata=()=>{if(s.current!=null){if(s.current.readyState<2&&ye(!0),s.current.readyState>=2&&ye(!1),!q){let f=X();f!=null&&it(f),L(!0)}if(A){O(!1);try{Nt()}catch(f){console.log("play error",f)}}}},s.current.onplay=()=>{},s.current.onseeked=()=>{},s.current.onseeking=()=>{},s.current.onpause=()=>{},s.current.onended=()=>{ae()},tr({title:r??"",artwork:a,action:f=>{switch(f.action){case"play":Nt();break;case"pause":St();break;case"seekbackward":ot(-15);break;case"seekforward":ot(15);break;case"seekto":f.seekTime&&it(f.seekTime);break;case"stop":St();break;default:break}}}),Se())}function ae(){if(e==null||e.length==0)return;let f=e.findIndex(W=>W.id==H.current?.id);f==-1||(re(e[f].id),f+1>=e.length)||Ke(e[f+1])}function Se(){Ae(),R.current==null&&(R.current=setTimeout(()=>{Ae(),R.current=void 0,Se()},500))}function We(){R.current!=null&&clearTimeout(R.current)}function Ae(){s.current!=null&&(g(s.current.paused?1:0),C(s.current.duration),u(s.current.currentTime),U(s.current.currentTime),er(s.current.duration,s.current.currentTime),s.current.networkState===s.current.NETWORK_LOADING&&s.current.readyState<=s.current.HAVE_FUTURE_DATA?ye(!0):ye(!1),n&&n(s.current.currentTime))}function Nt(){s.current?.play().then().catch(),Ae()}function St(){s.current?.pause(),Ae()}function Qr(){if(m===0){St();return}Nt()}function ot(f){if(s.current==null)return;let j=s.current.currentTime+f;if(j<0){s.current.currentTime=0;return}if(j>s.current.duration){s.current.currentTime=s.current.duration;return}s.current.currentTime+=f}function it(f){if(s.current!=null){if(u(f),f<0){s.current.currentTime=0;return}if(f>s.current.duration){s.current.currentTime=s.current.duration;return}s.current.currentTime=f}}function Xr(){s.current!=null&&(s.current.onplay=null,s.current.onseeked=null,s.current.onseeking=null,s.current.onpause=null,s.current.onended=null,s.current.src="",P.current?.destroy())}function cn(f){if(f.length==0)return;let j=he();if(j==null){Ke(f[0]);return}let W=f.find(Te=>Te.id==j);if(W==null){Ke(f[0]);return}Ke(W)}function Ke(f){L(!1),O(!0),H.current=f,ea(f.publicUrl),d?.(f),Ne(f.id)}function ea(f){s.current!=null&&(s.current.canPlayType("application/vnd.apple.mpegurl")?s.current.src=f:rr.isSupported()&&(P.current==null&&(P.current=new rr,P.current?.attachMedia(s.current)),P.current?.loadSource(f)))}mt(()=>{s.current!=null&&(b(),cn(e))},[s.current]),mt(()=>{cn(e)},[e]),mt(()=>(o?.(it),()=>{u(void 0),s.current?.pause(),Xr(),nr()}),[]);let ln=f=>{let j=Math.floor(f/3600),W=Math.floor(f/60)%60,Te=Math.floor(f%60),na=j>0?j<10?`0${j}:`:`${j}:`:"",ra=Te<10?`0${Te}`:`${Te}`;return isNaN(Te)||isNaN(W)||isNaN(j)?"":`${na}${W}:${ra}`},ta=f=>{let j=parseFloat(f.value)/parseFloat(f.max)*100;B.current.style.setProperty("--seek-before-width",j+"%");let W=y*j/100;it(W)};return pt("div",{id:"audio-player-container",className:"flex flex-col",style:t,ref:B,children:[de("video",{ref:s,className:"hidden",poster:a,title:r}),de("input",{type:"range",min:"0",max:y!=null?Math.floor(y).toString():100,value:k??0,onChange:f=>ta(f.target),className:"w-full"}),pt("section",{className:"flex w-full items-center justify-between text-sm font-medium",children:[de("span",{id:"current-time",children:ln(k)}),de("span",{id:"duration",children:ln(y)})]}),pt("div",{className:"mt-6 flex items-center justify-center gap-x-12",children:[de(S,{variant:"outline",onClick:()=>ot(-10),"aria-label":"Rewind 10 Seconds",children:"-10"}),pt(S,{variant:"outline",onClick:Qr,"aria-label":"Play Or Pause",children:[m===1&&de(Ka,{className:"h-5 w-5"}),m===0&&de(Wa,{className:"h-5 w-5"})]}),de(S,{variant:"outline",onClick:()=>ot(10),"aria-label":"Fast Forward 10 Seconds",children:"+10"})]}),V&&de("div",{className:"mt-2 flex w-full justify-center",children:de(Z,{})})]})});function Qa(){return navigator.userAgent.toLowerCase().indexOf("safari/")>-1}var ar=Ya;var Xa={pl:{returnsNavLabel:"Zwroty",openCourse:"Otw\xF3rz kurs"},en:{returnsNavLabel:"Returns",openCourse:"Open the course"}};function rt(e=F()){return xn(Xa,e)}import*as ft from"react";import{jsx as or}from"react/jsx-runtime";function ir(){let[e,t]=ft.useState(13);return ft.useEffect(()=>{let n=setTimeout(()=>t(66),500);return()=>clearTimeout(n)},[]),or("div",{className:"w-[60%] h-2 bg-gray-200 rounded-full overflow-hidden",children:or("div",{className:"h-full bg-blue-600 transition-all duration-300",style:{width:`${e}%`}})})}import{Fragment as gt,jsx as v,jsxs as _}from"react/jsx-runtime";function fe(e,...t){console.warn(e,...t)}function Gt(e){console.error(e)}var no=({accessToken:e,product:t,styles:n,reveal:o,onOpenCourse:r})=>{let a=t.productType,i=ct(),d=()=>i.track("panel_download",{},{product_id:t.productId.length<=64?t.productId:null}),c=cr(null),[l]=eo(),[m,g]=Fe(null),{mutateAsync:k,isPending:u}=ee(G.publicApi.userPanelGetFileDetails),y=cr(void 0),[C,s]=Fe(null),[P,R]=Fe(null),[B,H]=Fe(!1),{mutateAsync:A,isPending:O}=ee(G.publicApi.userPanelGetAudiobookDetails),{mutateAsync:q,isPending:L}=ee(G.publicApi.userPanelGetAudiobookDetailsDownloadURLs),[V,ye]=Fe(null),[U,X]=Fe(null);async function he(){try{let b=await k({accessId:t.accessId,accessToken:e});if(b.result.case==="success"){g(b.result.value.files);return}else fe("Pobranie plik\xF3w nie powiod\u0142o si\u0119. Zalecamy kontakt."),fe("Kod b\u0142\u0119du: ",b.result.value)}catch(b){fe("Nieoczekiwany b\u0142\u0105d. Spr\xF3buj ponownie za chwil\u0119."),Gt("B\u0142\u0105d podczas pobierania danych:"+b)}}async function Ne(){try{let b=await A({accessId:t.accessId,accessToken:e});if(b.result.case==="audiobook"){s(b.result.value);return}else fe("Pobranie plik\xF3w nie powiod\u0142o si\u0119. Zalecamy kontakt."),fe("Kod b\u0142\u0119du: ",b.result.value)}catch(b){fe("Nieoczekiwany b\u0142\u0105d. Spr\xF3buj ponownie za chwil\u0119."),Gt("B\u0142\u0105d podczas pobierania danych:"+b)}}async function re(){try{let b=await q({accessId:t.accessId,accessToken:e,isBrowser:!0});if(b.result.case==="success"){R(b.result.value.audiobookDownloadDetails),H(b.result.value.isAvailableToDownloadInMobileApp===!0);return}else fe("Pobranie plik\xF3w nie powiod\u0142o si\u0119. Zalecamy kontakt."),fe("Kod b\u0142\u0119du: ",b.result.value)}catch(b){fe("Nieoczekiwany b\u0142\u0105d. Spr\xF3buj ponownie za chwil\u0119."),Gt("B\u0142\u0105d podczas pobierania danych:"+b)}}return dr(()=>{a===1&&(Ne().then().catch(),re().then().catch())},[]),dr(()=>{if(C!=null&&P!=null){let b=C.chapters;if(!b)return;let ae=b.map(Se=>{let We=P?.find(Ae=>Ae.chapterId===Se.id);if(We!=null)return{...Se,publicUrl:We.publicUrl,downloadableUrl:We.downloadableUrl,duration:We.duration}}).filter(Se=>Se!=null);ae!=null&&ae.length>0&&X(ae)}},[C,P]),_("div",{children:[v("div",{className:"mb-3 space-y-4 rounded bg-white p-4 dark:bg-black",children:_(S,{onClick:()=>o(),variant:"ghost",className:"w-fit",children:[v(to,{className:"h-6 w-6"}),v("span",{className:"font-inter text-sm font-medium",children:"Wr\xF3\u0107"})]})}),_("main",{className:"grid grid-cols-1 justify-center gap-6 sm:justify-start lg:grid-cols-2",children:[_("div",{className:"flex w-full max-w-xl flex-col gap-6",children:[a===2&&_("div",{ref:l,className:"flex flex-col space-y-4 rounded bg-white p-6 drop-shadow-xl dark:border dark:border-neutral-700 dark:bg-neutral-800 dark:drop-shadow-none",children:[_("div",{className:"flex items-center justify-between gap-x-4",children:[v("h4",{className:"text-xl font-semibold",children:"Twoje pliki"}),(m==null||m.length==0)&&v(S,{onClick:he,"aria-label":"Download Product",className:"text-sm font-medium transition-opacity duration-300 ease-in-out hover:opacity-80 active:opacity-80",style:n,children:u?v(Z,{}):"Wy\u015Bwietl"})]}),u&&_("div",{className:"flex flex-col items-start gap-2",children:[v(ir,{}),v("p",{className:"font-bold transition hover:text-blue-600",children:"Trwa przygotowanie plik\xF3w..."})]}),m!=null&&m.length>0&&v("div",{className:"flex flex-col items-start justify-start gap-2",children:m.map((b,ae)=>_("a",{target:"_blank",className:"flex w-fit items-center gap-2 rounded-md bg-neutral-800 px-3 py-2 text-neutral-200 dark:bg-neutral-200 dark:text-neutral-800",href:b,download:!0,onClick:d,children:[`Plik numer ${ae+1}`,v(sr,{width:14,height:14})]},ae))})]}),a===4&&v("div",{className:"flex flex-col items-center justify-center rounded-xl bg-white p-6 drop-shadow-xl dark:bg-neutral-900 dark:drop-shadow-none",children:v(S,{onClick:()=>r(t.accessId),className:"text-sm font-medium transition-opacity duration-300 ease-in-out hover:opacity-80 active:opacity-80",style:n,children:rt().openCourse})}),a===1&&v(gt,{children:_("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:[v("h4",{className:"text-xl font-semibold",children:V?.name??"Odtwarzacz"}),V?.description&&v("p",{className:"text-sm",children:V?.description}),v(gt,{children:O?_("div",{className:"flex gap-2",children:[v(Z,{}),v("p",{className:"text-xl font-semibold",children:"Trwa pobierania audiobooka..."})]}):v(gt,{children:U!=null?v(gt,{children:v(ar,{ref:c,chapters:U,title:C?.name??t.productName??void 0,imageURL:C?.coverImage??t.productImageUrl??void 0,styles:n,setCurrentTimeHandler:b=>{y.current=b},uniqueProductID:t.productId,onChapterChange:b=>{ye(b)}})}):v("p",{className:"mt-2",children:"Wybierz rozdzia\u0142, kt\xF3ry ci\u0119 interesuje."})})}),_("div",{className:"rounded-xl bg-neutral-100 p-3 dark:bg-neutral-800",children:[v("p",{className:"mt-3 mb-3 text-xs",children:B?"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."}),_("div",{className:"flex gap-3",children:[v("a",{href:"https://apps.apple.com/us/app/bitsnap/id6741902807",children:v("img",{width:"100",src:"https://bitsnap.pl/appstore.svg",alt:"Pobierz aplikacje z AppStore"})}),v("a",{href:"https://docs.bitsnap.pl/guides/audiobook",children:v("img",{width:"100",src:"https://bitsnap.pl/playstore.svg",alt:"Pobierz aplikacj\u0119 z GooglePlay"})})]})]})]})}),v("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:a===1&&v("div",{className:"max-h-96 w-full overflow-y-auto",children:O?_("div",{className:"jusitfy-center flex flex-col items-center gap-2",children:[v(Z,{}),v("p",{children:"\u0141adowanie rozdzia\u0142\xF3w..."})]}):_("div",{children:[v("h2",{className:"mb-3 text-xl font-semibold",children:"Rozdzia\u0142y"}),U==null?v("p",{children:"Brak rozdzia\u0142\xF3w do wy\u015Bwietlenia."}):v("ul",{className:"flex w-full flex-col gap-2",children:U.map((b,ae)=>_("li",{className:"flex items-center justify-between",children:[_("button",{className:x("w-full rounded-lg p-2 text-left transition hover:bg-neutral-200 active:bg-neutral-200 dark:hover:bg-neutral-700 dark:active:bg-neutral-700",V?.id==b.id?"bg-neutral-200 dark:bg-neutral-700":"bg-neutral-100 dark:bg-neutral-800 dark:text-neutral-300"),onClick:()=>{c.current.selectChapter(b)},children:[_("div",{className:"flex items-center justify-between",children:[v("p",{className:"text-sm font-medium",children:b.name}),b.duration&&_("span",{className:"text-xs text-neutral-500",children:[Math.floor(b.duration/60),":",String(Math.floor(b.duration%60)).padStart(2,"0")]})]}),b.description&&v("p",{className:"mt-3 text-xs",children:b.description})]}),C&&C.isDownloadable&&b.downloadableUrl&&v("a",{href:b.downloadableUrl,onClick:d,children:v(sr,{width:14,height:14})})]},ae))})]})})})]}),_("div",{className:"w-full max-w-3xl space-y-6 rounded-xl bg-white p-6 drop-shadow-xl dark:bg-neutral-900 dark:drop-shadow-none",children:[v("h2",{className:"text-3xl font-semibold",children:t.productName}),v("p",{className:"text-sm font-normal text-neutral-600 dark:text-neutral-300",children:t.productDescription}),v("img",{src:t.productImageUrl,alt:"Product Photo",width:384,height:384,className:"max-h-sm max-w-sm",draggable:!1})]})]})]})},lr=no;import{useTransport as ro}from"@connectrpc/connect-query";import{useEffect as ao,useState as oo}from"react";function ur(e,t){let n=ro(),[o,r]=oo({status:"loading"});return ao(()=>{if(!e){r({status:"hidden"});return}let a=!1;return r({status:"loading"}),import("./model-files-client-HHDXJDTS.mjs").then(({listModelFiles:i})=>i(n,e,t)).catch(()=>({status:"hidden"})).then(i=>{a||r(i)}),()=>{a=!0}},[n,e,t]),o}import{Fragment as pr,jsx as E,jsxs as ke}from"react/jsx-runtime";var po=io(()=>import("./PanelModelFiles-RV7OHUUZ.mjs")),fo=({accessToken:e,projectID:t,loginURL:n,styles:o,activeScreen:r,params:a,setParams:i,openCourse:d})=>{let{host:c}=oe(),{data:l,isLoading:m,error:g,refetch:k}=De(G.publicApi.userPanelGetProducts,{accessToken:e}),u=ur(e,t),y=go({products:m?{status:"loading"}:g!=null?{status:"error"}:l?.result.case==="success"?{status:"ok",count:l.result.value.products.length}:l?.result.case==="failure"?{status:"failure",unauthorized:l.result.value===9}:{status:"error"},modelFiles:u});if(co(()=>{y.kind==="signed-out"&&(Ee(t,c),window.location.href=n)},[y.kind,t,c,n]),y.kind==="loading"||y.kind==="signed-out")return ke("div",{className:"flex items-center gap-2 bg-white p-2 dark:bg-black",children:[E("p",{className:"text-dark font-inter font-medium dark:text-white",children:F().toLowerCase().startsWith("en")?"Loading...":"\u0141adowanie..."}),E(Z,{})]});let C=l&&l.result.case==="success"?l.result.value.products:[],s=u.status==="ready"?u.models:[],P=s.length>0?E(so,{fallback:null,children:E(po,{accessToken:e,models:s,buttonStyle:o})}):null;return y.kind==="error"?ke(pr,{children:[E(ho,{onRetry:()=>void k()}),P]}):y.kind==="empty"?E(yo,{}):E(Po,{accessToken:e,products:C,styles:o,activeScreen:r,params:a,setParams:i,openCourse:d,filesSection:P})};function go({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 yo(){let e=F().toLowerCase().startsWith("en");return ke("div",{className:"flex flex-col items-start gap-1","data-testid":"panel-empty",children:[E("h3",{className:"text-2xl",children:e?"Hi \u{1F44B}":"Hej \u{1F44B}"}),E("p",{className:"text-sm text-neutral-500",children:e?"You have no products in this shop yet. Your purchases will show up here.":"Nie masz jeszcze produkt\xF3w w tym sklepie. Twoje zakupy pojawi\u0105 si\u0119 tutaj."})]})}function ho({onRetry:e}){let t=F().toLowerCase().startsWith("en");return ke("div",{className:"flex flex-col items-start gap-3",role:"alert","data-testid":"panel-error",children:[E("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."}),E(S,{type:"button",onClick:e,className:"text-sm",children:t?"Try again":"Spr\xF3buj ponownie"})]})}var mr=fo,Po=({accessToken:e,products:t,styles:n,filesSection:o,activeScreen:r,params:a,setParams:i,openCourse:d})=>{let[c,l]=lo(a.product?uo(Dt,a.product):void 0),m=u=>{u==null?(l(void 0),i({product:void 0,state:"products"})):i({product:mo(Dt,u),state:"products"})};function g(u){switch(u){case 1:return"Audio";case 2:return"Plik";case 3:return"Bilet";case 4:return"Kurs";default:return}}function k(u){if(u.productType===4){d(u.accessId);return}l(u),m(u)}return r==="products"&&c!=null?E(lr,{accessToken:e,product:c,styles:n,reveal:m,onOpenCourse:d}):ke(pr,{children:[E("h3",{className:"text-2xl",children:"Hej \u{1F44B}"}),t.length>0&&E("p",{className:"text-sm text-neutral-500",children:"Poni\u017Cej znajdziesz swoje produkty"}),E("div",{className:"mt-6 flex flex-wrap items-center justify-center gap-9 sm:justify-start",children:t?.map((u,y)=>ke("section",{onClick:()=>k(u),className:"w-full max-w-xs cursor-pointer rounded drop-shadow-xl dark:border dark:border-slate-600 dark:drop-shadow-none",children:[ke("section",{className:"flex flex-col items-center space-y-2 rounded bg-slate-100 p-4 dark:bg-neutral-900",children:[u.productType&&E("div",{className:"w-fit self-end rounded bg-red-900 px-4 py-1",children:E("span",{className:"text-sm font-medium text-white dark:text-slate-100",children:g(u.productType)})}),E("div",{className:"jusitfy-center flex max-h-40 items-center",children:E("img",{src:u.productImageUrl,alt:`Product ${y} Photo`,draggable:!1,className:"aspect-auto max-h-40"})})]}),ke("div",{className:"space-y-4 rounded bg-white p-4 dark:bg-black",children:[E("h2",{className:"text-xl font-semibold",children:u.productName}),E("p",{title:u.productDescription,className:"line-clamp-3 text-sm font-normal text-neutral-600 dark:text-neutral-300",children:Yn(u.productDescription)}),E(S,{onClick:C=>{C.stopPropagation(),k(u)},className:"w-full text-sm font-medium transition-opacity duration-300 ease-in-out hover:opacity-80 active:opacity-80",style:n,children:"Zobacz"})]})]},y))}),o]})};import{useAutoAnimate as bo}from"@formkit/auto-animate/react";import{LogOut as vo,Undo2 as gr}from"lucide-react";import{useState as wo}from"react";import{Fragment as hr,jsx as I,jsxs as ce}from"react/jsx-runtime";function xo({activeScreen:e,setActiveScreen:t,setParams:n,styles:o,theme:r,logout:a}){return ce("header",{className:"md:border-r-neutral-150 md:bg-beige-50 fixed right-0 bottom-0 left-0 z-10 flex h-12 w-full items-center bg-neutral-800 md:static md:z-0 md:min-h-screen md:w-auto md:border-r dark:md:border-r-neutral-900",children:[I(ko,{activeScreen:e,setActiveScreen:t,setParams:n}),I(Co,{activeScreen:e,setActiveScreen:t,setParams:n,theme:r,logout:a})]})}var yr=xo;function ko({activeScreen:e,setActiveScreen:t,setParams:n}){let{returnsNavLabel:o}=rt();return ce("nav",{className:"flex w-full items-center justify-evenly gap-4 md:hidden",children:[I(yt,{panelScreen:"products",label:"Produkty",imageURL:"/icons/bitsnap-24x24.svg",activeScreen:e,setActiveScreen:t,setParams:n}),I(yt,{panelScreen:"orders",label:"Faktury",imageURL:"/icons/category-24x24.svg",activeScreen:e,setActiveScreen:t,setParams:n}),I(yt,{panelScreen:"returns",label:o,icon:I(gr,{className:"h-5 w-5 text-white","aria-hidden":!0}),activeScreen:e,setActiveScreen:t,setParams:n}),I(yt,{panelScreen:"profile",label:"Profil",imageURL:"/icons/profile-24x24.svg",activeScreen:e,setActiveScreen:t,setParams:n})]})}function yt({panelScreen:e,label:t,imageURL:n,icon:o,activeScreen:r,setActiveScreen:a,setParams:i}){return ce(S,{onClick:()=>{a(e),i({product:void 0,state:e})},"aria-label":t,variant:null,className:x("flex flex-col gap-0",r===e?"opacity-100":"opacity-50"),children:[o??I("img",{src:n,alt:t,className:"scale-75"}),I("span",{className:"text-xs font-normal text-white",children:t})]})}function ht({panelScreen:e,label:t,imageURL:n,darkImageURL:o,icon:r,activeScreen:a,setActiveScreen:i,setParams:d,isExpanded:c}){return ce(S,{onClick:()=>{i(e),d({product:void 0,state:e})},variant:a===e?"secondary":"ghost",className:"justify-start",children:[r!=null?I("span",{className:x("inline-flex h-5 w-5 items-center justify-center",c?"mr-4":"mr-2"),children:r}):ce(hr,{children:[I("img",{src:n,alt:t,className:x("aspect-auto h-5 w-5 dark:hidden",c?"mr-4":"mr-2")}),I("img",{src:o,alt:t,className:x("hidden aspect-auto h-5 w-5 dark:inline",c?"mr-4":"mr-2")})]}),c&&I("span",{className:"md:text-medium hidden md:inline",children:t})]})}function Co({activeScreen:e,setActiveScreen:t,setParams:n,theme:o,logout:r}){let[a]=bo(),[i,d]=wo(!0),{returnsNavLabel:c}=rt();return ce("div",{ref:a,className:x("hidden px-4 pt-4 pb-12 md:flex md:h-full md:flex-col dark:bg-neutral-900",i?"md:w-52":"md:w-16"),children:[I("div",{className:"flex items-center justify-between",children:I(No,{theme:o,isExpanded:i})}),I(fr,{className:"my-6"}),ce("div",{className:"flex flex-1 flex-col gap-2",children:[I(ht,{panelScreen:"products",label:"Produkty",imageURL:"/icons/bitsnap-dark-24x24.svg",darkImageURL:"/icons/bitsnap-24x24.svg",activeScreen:e,setActiveScreen:t,setParams:n,isExpanded:i}),I(ht,{panelScreen:"orders",label:"Zam\xF3wienia",imageURL:"/icons/category-dark-24x24.svg",darkImageURL:"/icons/category-24x24.svg",activeScreen:e,setActiveScreen:t,setParams:n,isExpanded:i}),I(ht,{panelScreen:"returns",label:c,icon:I(gr,{className:"h-5 w-5","aria-hidden":!0}),activeScreen:e,setActiveScreen:t,setParams:n,isExpanded:i}),I(ht,{panelScreen:"profile",label:"Profil",imageURL:"/icons/profile-dark-24x24.svg",darkImageURL:"/icons/profile-24x24.svg",activeScreen:e,setActiveScreen:t,setParams:n,isExpanded:i})]}),I(fr,{className:"mb-6"}),ce(S,{onClick:r,children:[I(vo,{className:"mr-2",width:16,height:16}),i&&I("p",{className:"md:text-medium hidden md:inline md:text-center",children:"Wyloguj si\u0119"})]})]})}function fr({className:e}){return ce("div",{className:x("relative h-px w-full bg-neutral-300",e),children:[I("div",{className:"absolute -top-px left-0 h-1 w-1 rounded-full bg-neutral-500"}),I("div",{className:"absolute -top-px right-0 h-1 w-1 rounded-full bg-neutral-500"})]})}function No({theme:e,isExpanded:t}){return ce(hr,{children:[e==null&&I("p",{className:"text-xl tracking-wider md:inline dark:text-neutral-200",children:"bitsnap."}),(e?.logoDarkURL||e?.logoURL)&&I("img",{src:e.logoDarkURL??e.logoURL,alt:"Company Logo",className:"hidden h-6 w-6 dark:inline",draggable:!1}),e?.logoURL&&I("img",{src:e.logoURL,alt:"Company Logo",className:"h-6 w-6 dark:hidden",draggable:!1})]})}import{LogOut as So}from"lucide-react";import{Fragment as Ro,jsx as qe,jsxs as $t}from"react/jsx-runtime";function Io({email:e,logout:t}){return $t(Ro,{children:[qe("h3",{className:"text-2xl",children:"Profil"}),$t("div",{className:"mt-6 flex-1 md:flex-none",children:[qe("span",{className:"text-sm text-neutral-500",children:"Email"}),qe("p",{className:"mt-2 text-base",children:e||"Brak danych"})]}),qe("div",{className:"flex w-full flex-col items-center space-y-2",children:$t(S,{onClick:t,className:"max-w-64 md:hidden",children:[qe(So,{className:"mr-2",width:16,height:16}),qe("p",{className:"text-medium inline text-center",children:"Wyloguj si\u0119"})]})})]})}var Pr=Io;import{lazy as Ao,Suspense as To}from"react";import{jsx as Pt}from"react/jsx-runtime";var Lo=Ao(()=>import("./course.mjs").then(e=>({default:e.PanelCourse})));function Vt(e){return Pt(To,{fallback:Pt("div",{className:"flex items-center gap-2 p-2",role:"status",children:Pt(Z,{})}),children:Pt(Lo,{...e})})}import{AlertCircle as kr,CheckCircle2 as br,ChevronLeft as Do,Loader2 as Kt,Lock as vr,Package as Eo,Truck as Cr}from"lucide-react";import{useEffect as Oo,useState as Wt}from"react";import{Fragment as Nr,jsx as p,jsxs as h}from"react/jsx-runtime";function Mo({status:e}){let t={created:{color:"bg-neutral-100 text-neutral-700",icon:null},paid:{color:"bg-green-100 text-green-700",icon:br},completed:{color:"bg-blue-100 text-blue-700",icon:br},canceled:{color:"bg-red-100 text-red-700",icon:kr},sent:{color:"bg-purple-100 text-purple-700",icon:Cr},processing:{color:"bg-yellow-100 text-yellow-700",icon:Kt}},n=t[e]||t.created,o=n.icon,r={created:"Utworzone",paid:"Op\u0142acone",completed:"Zako\u0144czone",canceled:"Anulowane",sent:"Wys\u0142ane",processing:"Przetwarzane"};return h("span",{className:`inline-flex items-center gap-1 rounded-full px-3 py-1 text-sm font-medium ${n.color}`,children:[o&&p(o,{className:"h-4 w-4"}),r[e]||e]})}function Uo({orderID:e,email:t}){let[n,o]=Wt(""),r=ee(G.publicApi.addPublicOrderComment);return h("form",{onSubmit:async i=>{if(i.preventDefault(),!!n.trim())try{await r.mutateAsync({projectId:"",orderId:e,message:n.trim(),accessToken:t}),o("")}catch(d){console.error("Failed to add comment:",d)}},className:"mt-4 space-y-2",children:[p(Ie,{htmlFor:"comment",children:"Dodaj komentarz"}),p(bn,{id:"comment",value:n,onChange:i=>o(i.target.value),placeholder:"Wpisz komentarz...",rows:3,disabled:r.isPending}),p(S,{type:"submit",disabled:!n.trim()||r.isPending,children:r.isPending?h(Nr,{children:[p(Kt,{className:"mr-2 h-4 w-4 animate-spin"}),"Wysy\u0142anie..."]}):"Dodaj komentarz"})]})}function wr(e){return e?new Date(Number(e.seconds)*1e3).toLocaleDateString("pl-PL",{year:"numeric",month:"long",day:"numeric"}):"N/A"}function xr(e,t){return new Intl.NumberFormat("pl-PL",{style:"currency",currency:t.toUpperCase()}).format(e/100)}function jo({orderID:e,initialEmail:t,onBack:n,accessToken:o,analytics:r}){let{theme:a,projectID:i}=oe(),d=Le(i,r,"order"),[c,l]=Wt(t||""),[m,g]=Wt(!1),{data:k,isLoading:u,error:y,refetch:C}=De(G.publicApi.getPublicOrderDetails,{projectId:i??"",orderId:e,email:c||void 0,accessToken:o},{enabled:!!e}),s=k?.result.case==="order"?k.result.value:null,P=s?.isVerified??!1,R=s!=null;Oo(()=>{R&&d.track("panel_order_viewed",{},{order_ref:null})},[d,R]);let B=()=>{C(),g(!1)},H={"--button-background-color":a?.colors?.brand??"#000000","--button-background-color-dark":a?.colors?.brandDark??"#ffffff","--button-text-color":a?.colors?.brandDark??"#000000","--button-text-color-dark":a?.colors?.brand??"#000000"};return u?p("div",{className:"flex min-h-screen items-center justify-center",children:h("div",{className:"text-center",children:[p(Kt,{className:"mx-auto h-8 w-8 animate-spin text-neutral-400"}),p("p",{className:"mt-2 text-neutral-600 dark:text-neutral-400",children:"\u0141adowanie zam\xF3wienia..."})]})}):y||!s?p("div",{className:"flex min-h-screen items-center justify-center",children:p(me,{className:"w-full max-w-md",children:p(pe,{className:"pt-6",children:h("div",{className:"text-center",children:[p(kr,{className:"mx-auto h-12 w-12 text-red-500"}),p("h2",{className:"mt-4 text-xl font-semibold",children:"Zam\xF3wienie nie znalezione"}),p("p",{className:"mt-2 text-neutral-600 dark:text-neutral-400",children:"Nie znaleziono zam\xF3wienia o podanym numerze."})]})})})}):p("div",{className:"w-full bg-white py-8 dark:bg-black",style:H,children:h("div",{className:"w-full px-4",children:[n&&h(S,{onClick:n,variant:"ghost",className:"mb-4 w-fit",children:[p(Do,{className:"h-4 w-4"}),"Wr\xF3\u0107 do historii zam\xF3wie\u0144"]}),h("div",{className:"mb-6 flex items-center gap-4",children:[a?.logoURL&&h(Nr,{children:[p("img",{src:a.logoURL,alt:"Project logo",className:`h-12 w-auto ${a.logoDarkURL?"dark:hidden":""}`}),a.logoDarkURL&&p("img",{src:a.logoDarkURL,alt:"Project logo",className:"hidden h-12 w-auto dark:block"})]}),h("div",{children:[p("h1",{className:"text-3xl font-bold",children:"Zam\xF3wienie"}),h("p",{className:"text-neutral-600 dark:text-neutral-400",children:["Numer zam\xF3wienia: #",s.orderId]})]})]}),h(me,{className:"mb-6",children:[p(be,{children:h(ve,{className:"flex items-center",children:[p(Eo,{className:"mr-2 h-5 w-5"}),"Status zam\xF3wienia"]})}),h(pe,{className:"space-y-6",children:[h("div",{children:[h("div",{className:"flex items-center gap-2",children:[p(Mo,{status:s.status}),s.processingStatus&&h("span",{className:"text-sm text-neutral-600",children:["\xB7 ",s.processingStatus]})]}),h("p",{className:"mt-2 text-sm text-neutral-600",children:["Zam\xF3wienie z\u0142o\u017Cone ",wr(s.createdAt)]})]}),h("div",{className:"border-t pt-4",children:[p("h3",{className:"mb-3 font-semibold",children:"Dane klienta"}),h("div",{className:"space-y-2",children:[h("div",{children:[p("span",{className:"font-medium",children:"Imi\u0119 i nazwisko:"})," ",p("span",{className:P?"":"text-neutral-500",children:s.customerName})]}),h("div",{children:[p("span",{className:"font-medium",children:"Email:"})," ",p("span",{className:P?"":"text-neutral-500",children:s.customerEmail})]}),s.customerPhone&&h("div",{children:[p("span",{className:"font-medium",children:"Telefon:"})," ",p("span",{className:P?"":"text-neutral-500",children:s.customerPhone})]})]})]}),!P&&p("div",{className:"border-t pt-4",children:h(S,{onClick:()=>g(!0),variant:"outline",className:"w-full",children:[p(vr,{className:"mr-2 h-4 w-4"}),"Zweryfikuj sw\xF3j email"]})})]})]}),h(me,{className:"mb-6",children:[p(be,{children:p(ve,{children:"Produkty"})}),h(pe,{className:"space-y-6",children:[p("div",{className:"space-y-4",children:s.items.map((A,O)=>h("div",{className:"flex items-center gap-4",children:[A.imageUrl&&p("img",{src:A.imageUrl,alt:A.name,className:"h-16 w-16 rounded object-cover"}),h("div",{className:"flex-1",children:[p("p",{className:"font-medium",children:A.name}),h("p",{className:"text-sm text-neutral-600",children:["Ilo\u015B\u0107: ",A.quantity]})]}),p("div",{className:"text-right",children:p("p",{className:"font-medium",children:xr(Number(A.price),A.currency)})})]},O))}),(s.deliveryAddress||s.deliveryMethod)&&h("div",{className:"border-t pt-4",children:[h("h3",{className:"mb-3 flex items-center font-semibold",children:[p(Cr,{className:"mr-2 h-5 w-5"}),"Informacje o dostawie"]}),h("div",{className:"space-y-2",children:[s.deliveryAddress&&h("div",{children:[p("span",{className:"font-medium",children:"Adres:"})," ",p("span",{className:P?"":"text-neutral-500",children:s.deliveryAddress})]}),s.deliveryMethod&&h("div",{children:[p("span",{className:"font-medium",children:"Metoda:"})," ",s.deliveryMethod]}),s.trackingNumber&&P&&h("div",{children:[p("span",{className:"font-medium",children:"Tracking:"})," ",s.trackingNumber]})]})]}),p("div",{className:"border-t pt-4",children:h("div",{className:"flex justify-between text-lg font-bold",children:[p("span",{children:"Suma:"}),p("span",{children:xr(Number(s.totalAmount),s.currency)})]})})]})]}),h(me,{children:[p(be,{children:h(ve,{children:["Komentarze ",s.commentCount>0&&`(${s.commentCount})`]})}),h(pe,{children:[s.comments.length>0?p("div",{className:"space-y-4",children:s.comments.map(A=>h("div",{className:"border-b pb-4 last:border-b-0",children:[h("div",{className:"mb-1 flex items-center gap-2",children:[p("span",{className:"font-medium",children:A.authorName||"System"}),p("span",{className:"text-xs text-neutral-500",children:wr(A.createdAt)}),A.authorType==="admin"&&p("span",{className:"rounded bg-blue-100 px-2 py-0.5 text-xs text-blue-700",children:"Admin"})]}),p("p",{className:P?"":"text-neutral-500",children:A.message})]},A.id))}):p("p",{className:"text-neutral-600",children:"Brak komentarzy."}),P?p(Uo,{orderID:s.orderId,email:c}):p("div",{className:"mt-4",children:h(S,{onClick:()=>g(!0),variant:"outline",className:"w-full",children:[p(vr,{className:"mr-2 h-4 w-4"}),"Zweryfikuj sw\xF3j email"]})})]})]}),m&&p("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:h(me,{className:"w-full max-w-md",children:[p(be,{children:p(ve,{children:"Zweryfikuj sw\xF3j email"})}),h(pe,{className:"space-y-4",children:[p("p",{className:"text-sm text-neutral-700",children:"Podaj adres email u\u017Cyty przy sk\u0142adaniu zam\xF3wienia."}),h("div",{className:"space-y-2",children:[p(Ie,{htmlFor:"verify-email",children:"Adres email"}),p(lt,{id:"verify-email",type:"email",placeholder:"twoj@email.com",value:c,onChange:A=>l(A.target.value)})]}),h("div",{className:"flex gap-2",children:[p(S,{variant:"outline",onClick:()=>g(!1),className:"flex-1",children:"Anuluj"}),p(S,{onClick:B,className:"flex-1",children:"Zweryfikuj"})]})]})]})})]})})}function _o(e){return p(jo,{...e})}var Zt=_o;import{jsx as le,jsxs as Sr}from"react/jsx-runtime";var qo=({returnsAppearance:e,returnsTexts:t,analytics:n}={})=>{let{projectID:o,theme:r,loginURL:a,host:i}=oe(),d=Le(o,n,"panel"),c=Ye(o,i),l=hn(o,i),{mutateAsync:m}=ee(G.publicApi.userPanelLogout);async function g(){c&&await m({accessToken:c}),typeof window<"u"&&(Ee(o,i),window.location.reload())}let[k]=zo(),u=L=>["products","notifications","profile","plans","orders","order-details","returns","return-details","course"].includes(L),[y,C]=_n({product:void 0,state:"products",orderId:void 0,returnId:void 0,course:void 0,item:void 0}),[s,P]=Fo(u(y.state)?y.state:"products"),R=L=>{C({state:"order-details",orderId:L}),P("order-details")},B=()=>{C({state:"orders",orderId:void 0}),P("orders")},H=L=>C({orderId:void 0,returnId:void 0,course:void 0,item:void 0,...L}),A=L=>{C({state:"course",course:L,item:void 0,product:void 0}),P("course")},O=()=>{C({state:"products",course:void 0,item:void 0,product:void 0}),P("products")};bt(()=>{u(y.state)&&(y.state==="course"||s==="course")&&P(y.state)},[y.state]);let q={"--button-background-color":r?.colors?.brand??"#000000","--button-background-color-dark":r?.colors?.brandDark??"#ffffff","--button-text-color":r?.colors?.brandDark??"#000000","--button-text-color-dark":r?.colors?.brand??"#000000"};return bt(()=>{if(c==null||c.length===0){window.location.href=a??"/panel/login";return}},[]),bt(()=>{if(c==null||c.length===0){window.location.href=a??"/panel/login";return}},[s]),bt(()=>{if(typeof window>"u"||window.parent!==window||!c)return;let L=Xe(window.location.search);L&&et(L);let V=L??Ue();V&&(window.location.href=je(V,c))},[c]),le(dt,{value:d,children:Sr("div",{ref:k,className:"font-inter relative min-h-screen w-screen bg-beige-100 text-black dark:bg-black dark:text-white md:flex",children:[le(yr,{activeScreen:s,setActiveScreen:P,setParams:H,styles:q,theme:r,logout:g}),Sr("main",{className:"flex h-[calc(100vh-80px)] flex-col overflow-y-auto w-full p-5 md:h-screen",children:[s==="products"&&le(mr,{projectID:o??"",accessToken:c,loginURL:a??"/panel/login",styles:q,activeScreen:s,params:y,setParams:C,openCourse:A}),s==="course"&&y.course&&c&&le(Vt,{accessId:y.course,accessToken:c,theme:r,itemId:y.item,onItemChange:L=>C({item:L}),onBack:O}),s==="notifications"&&le(Bn,{}),s==="plans"&&le(Jn,{projectID:o??""}),s==="orders"&&le(Wn,{projectID:o??"",accessToken:c??"",openOrderDetails:R}),s==="order-details"&&y.orderId&&le(Zt,{orderID:y.orderId,onBack:B}),(s==="returns"||s==="return-details")&&c&&le(Ht,{projectID:o??"",host:i,accessToken:c,loginURL:a??"/panel/login",appearance:zn(e,r?.colors?.brand),texts:t,screen:s,params:y,setParams:C,setActiveScreen:P}),s==="profile"&&le(Pr,{email:l,logout:g})]})]})})},Bo=qo;import{create as ge}from"@bufbuild/protobuf";import{QueryClient as ii,QueryClientProvider as si}from"@tanstack/react-query";import{createContext as di,useContext as ci,useEffect as Fr,useState as li}from"react";import{createClient as Ho}from"@connectrpc/connect";import{createConnectTransport as Go}from"@connectrpc/connect-web";var ue;(o=>{function e(r){return Ho(mn,n(r))}o.get=e;let t=new Map;function n(r){let a=t.get(r);return a==null&&(a=Go({useBinaryFormat:!0,baseUrl:r+"/api/rpc",interceptors:[un]}),t.set(r,a)),a}})(ue||={});import T from"zod";import Y from"zod";function z(e,t=2){return+(Math.round(+(e+"e+"+t))+"e-"+t)}function Ir(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 ll=Y.object({event:Y.enum(["purchase","addToCart","customizeProduct","viewCart","removeFromCart","initiateCheckout","lead"]),step:Y.string().optional(),value:Y.number().optional(),currency:Y.string().optional(),content_name:Y.string().optional(),items:Y.array(Y.object({id:Y.string(),name:Y.string(),price:Y.number().default(0),currency:Y.string().default("PLN"),quantity:Y.number().default(1)})).optional()});function Jt(e){typeof window>"u"||($o(e),Wo(e),Ko(e))}function $o(e){try{typeof window.dataLayer>"u"&&(window.dataLayer=[]);let t=Vo(e);window.dataLayer.push(t)}catch(t){console.warn("cannot send google analytics event",t)}}function Vo(e){let t=e.value??e.items?.reduce((a,i)=>a+(i.price||0)*(i.quantity||1),0)??0,n=e.items?.map(a=>({item_id:a.id,item_name:a.name||a.id,price:z((a.price||0)/100,2),quantity:a.quantity||1})),o={currency:e.currency||"PLN",value:z(t/100,2)};n&&n.length>0&&(o.items=n);let r;switch(e.event){case"purchase":r="purchase",o.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:o,...e.step&&{step:e.step},...e.content_name&&{content_name:e.content_name}}}function Wo(e){if(typeof window.fbq>"u")return;let t="",n="",o={};switch(e.event){case"purchase":t="track",n="Purchase",o={category_name:e.step,...e};break;case"lead":t="track",n="Lead",o={category_name:e.step,...e};break;case"addToCart":t="track",n="Add to Cart",o={category_name:e.step,...e};break;case"customizeProduct":t="track",n="Customize Product",o={category_name:e.step,...e};break;case"viewCart":t="track",n="View Cart",o={category_name:e.step,...e};break;case"removeFromCart":t="track",n="Remove from Cart",o={category_name:e.step,...e};break;case"initiateCheckout":t="track",n="Initiate Checkout",o={category_name:e.step,...e};break;default:break}window.location.search.includes("analytics")&&console.log("Pushing FB event",t,n,o),window.fbq(t,n,o)}function Ko(e){try{if(typeof window.ttq>"u")return;let t=Zo(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 Zo(e){let t=e.value??e.items?.reduce((a,i)=>a+(i.price||0)*(i.quantity||1),0)??0,n=e.items?.map(a=>({content_id:a.id,content_type:"product",content_name:a.name||a.id,quantity:a.quantity||1,price:z((a.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 o={currency:e.currency||"PLN",value:z(t/100,2)};n.length>0&&(o.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:o}}function Rr(e){let{items:t,googlePayConfig:n,checkout:o,result:r,cartRequiresShipping:a}=e,i=e.locale??F();if(r.totalAmount==null)return;let d=[];return a&&(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:a},shippingAddressRequired:a,shippingOptionRequired:a,shippingOptionParameters:a?{shippingOptions:r.methods.slice(0,5).map(l=>({id:l.id,label:l.name+` - ${Ir(l.amount,r.currency)}`,description:l.description??""})),defaultSelectedOptionId:r.selectedDeliveryMethod}:void 0,merchantInfo:{merchantId:n.merchantId+"",merchantName:n.merchantName},transactionInfo:{totalPriceStatus:"FINAL",totalPriceLabel:Pe("paymentForCart",i,e.texts),totalPrice:`${z(r.totalAmount/100,2)}`,currencyCode:r.currency,countryCode:r.country,checkoutOption:"COMPLETE_IMMEDIATE_PURCHASE",displayItems:Jo(t,r.methods,r.selectedDeliveryMethod??(r.methods.length>0?r.methods[0].id:void 0),o.couponCode,r.couponValue,Pe("coupon",i,e.texts))}}}function Jo(e,t,n,o,r,a="Coupon"){let i=[],d=0;for(let l of e){if(l.details==null)continue;let m=l.details.pricing?.effectivePrice??l.details.price;d+=m*l.quantity,i.push({label:l.details.name+" x "+l.quantity,price:`${z(m/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"}),o!=null&&r!=null&&i.push({label:`${a} ${o}`,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 Be(e,t){return`${K}/api/integrations/${e}/public-commerce${t}`}function Ce(e){return typeof e=="object"&&e!=null&&"ERR"in e}function $(e,t,n){return{ERR:!0,error:e,type:t,data:n}}function Ar(e,t){return t?.find(n=>n.id===e||(n.variants?.some(o=>o.id===e)??!1))}function Tr(e,t){let n=new Set(t.map(o=>o.productID));return Array.from(new Set(e.filter(o=>!n.has(o))))}function Lr(e,t){let n=e?.trim();if(!(n==null||n.length===0))try{let o=new URL(n,t);return o.protocol!=="http:"&&o.protocol!=="https:"?void 0:o.href}catch{return}}import{create as Yo}from"zustand";var He=Yo(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}))}));import{createContext as Qo,useContext as Yt,useMemo as Dr}from"react";import{jsx as Xo}from"react/jsx-runtime";var vt=Qo({});function Nl({texts:e,locale:t,children:n}){let o=Dr(()=>({texts:e,locale:t}),[e,t]);return Xo(vt.Provider,{value:o,children:n})}function Er(){return Yt(vt)}function Sl(e){let{texts:t,locale:n}=Yt(vt);return Pe(e,n??F(),t)}function Il(){let{texts:e,locale:t}=Yt(vt),n=t??F();return Dr(()=>o=>Pe(o,n,e),[n,e])}var Xt="bitsnap-pending-order";function Ur(e,t){let n=new Map;for(let r of t)n.set(r.id,(n.get(r.id)??0)+r.quantity);let o=[];for(let r of e){let a=n.get(r.id);a==null?o.push(r):r.quantity>a&&o.push({...r,quantity:r.quantity-a})}return o}var ei=60*1e3;function jr(e,t=Date.now,n=ei){let o;return r=>{let a=`${r.orderId}:${r.ts}`,i=t();return o?.key===a&&i-o.at<n?Promise.reject(new Error("pending order was asked about recently")):(o={key:a,at:i},e(r))}}function ti(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{return}}function ni(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{return!1}}function ri(e,t=Date.now(),n={}){if(ni(e.url))return;let o=ti(e.url),r=Or(e.orderId)??o?.orderId,a=Or(e.projectId)??o?.projectId;if(!(r==null||a==null))return{orderId:r,projectId:a,...n.cartProjectId!=null?{cartProjectId:n.cartProjectId}:{},lines:n.lines??[],ts:t}}function Tl(e,t={}){let n=ri(e,t.now,t);return n!=null&&ai(n,t.storage)}function Or(e){return e!=null&&e.length>0?e:void 0}function wt(){try{return typeof localStorage>"u"?void 0:localStorage}catch{return}}function ai(e,t=wt()){try{return t?.setItem(Xt,JSON.stringify(e)),t!=null}catch{return!1}}function Mr(e=wt()){try{let t=e?.getItem(Xt);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:o,projectId:r,cartProjectId:a,ts:i,lines:d}=n;return{orderId:o,projectId:r,...typeof a=="string"?{cartProjectId:a}:{},lines:Array.isArray(d)?d.filter(c=>typeof c?.id=="string"&&typeof c.quantity=="number"):[],ts:i}}}catch{}Qt(e)}function Qt(e=wt()){try{e?.removeItem(Xt)}catch{}}function _r(e){let t=e.details?.status??oi(e.details?.$unknown);return t==="created"||t==="placed"||t==="paid"||t==="canceled"?t:"unknown"}function oi(e){if(Array.isArray(e)){for(let t of e)if(t?.no===3&&t.wireType===2&&t.data instanceof Uint8Array){let n=0,o=0;for(let r=0;o<t.data.length&&r<35;r+=7){let a=t.data[o++];if(n|=(a&127)<<r,!(a&128))break}if(o+n!==t.data.length)return;try{return new TextDecoder().decode(t.data.subarray(o))}catch{return}}}}async function zr(e){let t=e.storage??wt(),n=Mr(t);if(n==null)return"none";if((e.now??Date.now)()-n.ts>864e5)return Qt(t),"expired";if(e.projectId!=null&&n.cartProjectId!=null&&n.cartProjectId!==e.projectId)return"pending";let r;try{r=await e.fetchStatus(n)}catch{return"pending"}let a=Mr(t);if(a?.orderId!==n.orderId||a.ts!==n.ts)return"pending";if(r==="paid"||r==="placed"){try{await e.removeLines(n.lines)}catch{return"pending"}return Qt(t),"paid"}return"pending"}import{Fragment as ki,jsx as tn}from"react/jsx-runtime";var ui="__m_a",$r=di(void 0),rn=void 0;function ru(e){Ot({projectID:e}),rn=e,typeof window<"u"&&Ze([window.location.origin])}function Ve(){return rn??document.querySelector('script[data-id][data-name="internal-cart"]')?.getAttribute("data-id")??void 0}function mi(){return document.querySelector('script[data-id][data-name="internal-cart"]')?.getAttribute("data-custom-host")??void 0}var pi=({children:e,locale:t})=>{let[n]=li(()=>new ii),o=Er();Fr(()=>{$e()},[]);let r=Ve();if(Fr(()=>{if(r==null)return;let i=()=>{yi(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 tn(ki,{});let a=on(r,t??o.locale,o.texts);return tn(si,{client:n,children:tn($r.Provider,{value:a,children:e})})},en,fi=jr(async e=>_r(await ue.get(K).getOrder({id:e.orderId,projectId:e.projectId})));function au(){let{country:e,couponCode:t,selectedDeliveryMethod:n,postalCode:o}=D()??kt;return{country:e,couponCode:t,selectedDeliveryMethod:n,postalCode:o}}function ou(){return(D()?.products??[]).map(e=>({id:e.id,quantity:e.quantity}))}function gi(e){let t=D();Q({...t,products:Ur(t?.products??[],e)}),$e()}function yi(e){return en??=zr({projectId:e,fetchStatus:fi,removeLines:gi}).catch(t=>{console.warn("cannot check the pending order",t)}).finally(()=>{en=void 0}),en}var Ge=async(e,t)=>{let n=[];t?.items!=null&&t.items.length>0?n=t.items:n=D()?.products??[];let o=Array.from(new Set(n.map(i=>i.productID)));if(o.length===0)return[];let r=new URLSearchParams;r.set("ids",o.join(",")),r.set("locale",t?.locale??F());let a;try{let i=await fetch(Rt(Be(e,`/products?${r.toString()}`)),{method:"GET"});if(i.status!=200)return $("products-load-failed","internal");a=await i.json()}catch(i){return console.warn("cannot load the products of the cart",i),$("products-load-failed","internal")}return n.flatMap(i=>{let d=Ar(i.productID,a.result);return d==null?[]:[{...i,details:xi(i.productID,d),catalogProductID:d.id}]})},iu=()=>{let e=ci($r);if(e===void 0)throw new Error("useCartProvider must be used within a CartProvider");return e},su=pi,hi=T.object({isAvailable:T.boolean(),merchantId:T.string(),merchantName:T.string(),gateway:T.string(),gatewayId:T.string()}),Pi=T.object({id:T.string(),productID:T.string(),quantity:T.number(),priceVersion:T.string().optional(),metadata:T.record(T.string(),T.string().optional()).optional(),url:T.string().optional()}),bi=T.object({country:T.string().optional(),couponCode:T.string().optional(),selectedDeliveryMethod:T.string().optional(),postalCode:T.string().optional(),email:T.string().optional(),products:T.array(Pi).optional(),googlePayConfig:hi.optional()}),kt={country:void 0,couponCode:void 0,email:void 0,selectedDeliveryMethod:void 0,postalCode:void 0,products:[],googlePayConfig:void 0},Vr="checkout";function D(){try{let e=localStorage.getItem(Vr);return e==null?kt:bi.parse(JSON.parse(e))}catch{return kt}}async function qr(e,t){let n=await Ge(e,{items:t.map((a,i)=>({...a,id:`price-check-${i}`}))});if(Ce(n))return n;let o=Tr(t.map(a=>a.productID),n);if(o.length>0)return $("item-ids-not-found","notFound",o);let r=D();r.products==null&&(r.products=[]),r.products.push(...t.map(a=>({id:Math.random().toString(36).substring(7),productID:a.productID,quantity:a.quantity,priceVersion:n.find(i=>i.productID===a.productID)?.details?.pricing?.priceVersion,metadata:a.metadata,url:Lr(a.url,typeof window<"u"?window.location.href:void 0)}))),vi(t,n),Jt({event:"addToCart",currency:"PLN",items:t.map(a=>({id:a.productID,name:a.name??"",price:a.price??0,quantity:a.quantity,currency:a.currency??"PLN"}))}),Q(r),$e()}function vi(e,t){for(let n of e)try{let o=t.find(d=>d.productID===n.productID),r=o?.details?.pricing?.effectivePrice??o?.details?.price??n.price,a=o?.details?.currency??n.currency;if(r==null||a==null)continue;let i=o?.catalogProductID??n.productID;(n.analytics??pn()).track("add_to_cart",{qty:n.quantity,value_minor:Math.round(r*n.quantity),currency:a},{product_id:i,variant_id:i!==n.productID?n.productID:null})}catch{}}function Br(e){let t=D(),n={...t,products:t?.products?.filter(o=>!e.includes(o.productID)&&!e.includes(o.id))};Jt({event:"removeFromCart",items:e.map(o=>({id:o,name:"",price:0,quantity:1,currency:"PLN"}))}),Q(n),$e()}function Q(e){localStorage.setItem(Vr,JSON.stringify(e))}function Hr(e,t){if(e.products==null||e.products.length==0)return;let n=e.products.reduce((o,r)=>(r.metadata!=null&&Object.keys(r.metadata).forEach(a=>{let i=r.metadata?.[a];i!=null&&(o[a]=i)}),o),{});return{items:e.products.map(o=>({id:o.productID,quantity:o.quantity,priceVersion:o.priceVersion})),askForNote:!0,countries:e.country?[e.country]:void 0,metadata:n,locale:t}}var on=(e,t=F(),n)=>{let o=mi();return o!=null&&fn(o),{async checkIfApplePayIsAvailable(){if(typeof window>"u"||typeof document>"u"||!("ApplePaySession"in window))return!1;try{return(await ue.get(K).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 a=await wi(e);if(a?.isAvailable!=!0)return{isAvailable:!1};let i=D();if(i==null)return console.log("checkout is null"),{isAvailable:!1};let d=await Ge(e,{locale:t,items:r.items.map(g=>({id:Math.random().toString(36).substring(7),quantity:g.quantity,metadata:g.metadata,productID:g.productID}))});if(Ce(d))return{isAvailable:!1};let c=await ue.get(K).getPreOrderDetails({items:d.map(g=>ge(st,{id:g.productID,quantity:g.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(g=>g.details?.isDeliverable==!0)!=null,m=await Rr({items:d,googlePayConfig:a,checkout:i,cartRequiresShipping:l,result:c,locale:t,texts:n});return m==null?{isAvailable:!1}:{isAvailable:!0,config:m}}catch(a){return console.error("Error resolving Google Pay configuration",a),{isAvailable:!1}}},async clearCart(){let r=structuredClone(kt);r.country=D()?.country,Q(r),$e()},async getAvailableCountries(){let r=await fetch(Rt(Be(e,"/countries")),{method:"GET"});if(r.status!=200)return[];try{return T.array(T.object({name:T.string(),code:T.string()})).parse(await r.json())}catch(a){return $(a.toString(),"internal")}},async getCountry(){let r=D()?.country;if(r==null){r="PL";let a=D();a.country=r,Q(a)}return r},async getNumberOfElementsInCart(){return D()?.products?.reduce((r,a)=>r+a.quantity,0)??0},async getProducts(){return await Ge(e,{locale:t})},async removeProductFromCart(r){return Br([r.id])},async setCountry(r){let a=D();a.country=r,Q(a)},async setCouponCodeIfPossible(r){let a=D();a.couponCode=r,Q(a)},async setPostalCode(r){let a=D();a.postalCode=r,Q(a)},async setDeliveryMethod(r){let a=D();a.selectedDeliveryMethod=r,Q(a)},async setEmail(r){let a=D();a.email=r,Q(a)},async addProduct(r){return await qr(e,[r])},async updateQuantity(r){let a=D();a.products=a.products?.map(i=>(i.id===r.id&&(i.quantity=r.quantity),i)),Q(a),$e()},async getPaymentMethodChoice(){let r=Hr(D(),t);return r==null?null:Gr(r)},async redirectToNextStep(r){let a=Hr(D(),t);if(a==null)return $("cart-is-empty","badInput");r?.paymentMethod!=null&&(a.paymentMethod=r.paymentMethod);let i=await nn(a);return Ce(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 a={items:[{id:r.productID,quantity:1}],askForNote:!1,details:r.email||r.name?{name:r.name,email:r.email}:void 0,locale:r.locale??t};a=an(a),r.country==null&&(r.country="pl"),a.details==null&&(a.details={}),a.details.address==null&&(a.details.address={}),a.details.address.country=r.country,r.marketingAgreement===!0&&(a.additionalAgreements=[{id:ui,name:"",required:!0,answer:!0}]);let i=await nn(a);return Ce(i)?i:{url:i.url}},async getApplePayPreview(r){let a=D();try{let i=await ue.get(K).getPreOrderDetails({items:r.items.map(d=>ge(st,{id:d.productID,quantity:d.quantity})),projectId:e,postCode:a.postalCode,couponCode:a.couponCode,countryCode:a.country,selectedDeliveryMethod:a.selectedDeliveryMethod});return i.totalAmount==null||i.currency.length===0?$("pre-order-unavailable","internal"):{countryCode:i.country||a.country||"PL",currencyCode:i.currency,totalAmount:`${z(i.totalAmount/100,2)}`}}catch(i){return console.warn("cannot load the Apple Pay preview",i),$("pre-order-unavailable","internal")}},async completeApplePayPayment(r){let a=D();if(a==null)return $("Checkout not found");let i=await Ge(e,{locale:t});if(Ce(i))return i;try{let d=r.shippingContact?.givenName;r.shippingContact?.familyName!=null?d+=" "+r.shippingContact?.familyName:r.billingContact?.familyName!=null&&(d+=" "+r.billingContact?.familyName);let c={},l=xt();l!=null&&(c.ref=l);let m=await ue.get(K).authorizeOneClickPayment({gateway:0,paymentData:JSON.stringify(r.token.paymentData),paymentMethod:JSON.stringify(r.token.paymentMethod),transactionIdentifier:r.token.transactionIdentifier,order:ge(Lt,{items:i.map(g=>({id:g.productID,quantity:g.quantity})),couponCode:a.couponCode,email:r.shippingContact?.emailAddress??r.billingContact?.emailAddress??a.email??void 0,phone:r.shippingContact?.phoneNumber??r.billingContact?.phoneNumber??void 0,selectedDeliveryMethod:a.selectedDeliveryMethod,postCode:a.postalCode,projectId:e}),shippingAddress:ge(At,{line1:r.shippingContact?.addressLines?.[0]??"",city:r.shippingContact?.locality??"",country:r.shippingContact?.countryCode??"",zipCode:r.shippingContact?.postalCode??"",name:d}),billingAddress:ge(Tt,{name:r.billingContact?.givenName??" "+(r.billingContact?.familyName??""),line1:r.billingContact?.addressLines?.[0]??"",city:r.billingContact?.locality??"",country:r.billingContact?.countryCode??"",zipCode:r.billingContact?.postalCode??""}),metadata:Object.keys(c).length>0?JSON.stringify(c):void 0});return{isSuccess:m.isSuccess,redirectURL:m.redirectUrl}}catch(d){return console.error(d),$("Failed to authorize payment")}},async completeGooglePayPayment(r){let a=D();if(a==null)return $("Checkout not found");let i=await Ge(e,{locale:t});if(Ce(i))return i;try{let d=r.paymentData.shippingAddress?.name,c={},l=xt();l!=null&&(c.ref=l);let m=await ue.get(K).authorizeOneClickPayment({gateway:1,paymentData:r.paymentData.paymentMethodData.tokenizationData.token,paymentMethod:r.paymentData.paymentMethodData.type,transactionIdentifier:"",order:ge(Lt,{items:i.map(g=>({id:g.productID,quantity:g.quantity})),couponCode:a.couponCode,email:r.paymentData.email??void 0,phone:r.paymentData.shippingAddress?.phoneNumber??void 0,selectedDeliveryMethod:r.paymentData.shippingOptionData?.id??a.selectedDeliveryMethod,postCode:r.paymentData.shippingAddress?.postalCode,projectId:e}),shippingAddress:ge(At,{line1:r.paymentData.shippingAddress?.address1??"",city:r.paymentData.shippingAddress?.locality??"",country:r.paymentData.shippingAddress?.countryCode??"",zipCode:r.paymentData.shippingAddress?.postalCode??"",name:d}),billingAddress:ge(Tt,{name:r.paymentData.paymentMethodData.info?.billingAddress?.name,line1:r.paymentData.paymentMethodData.info?.billingAddress?.address1??"",city:r.paymentData.paymentMethodData.info?.billingAddress?.locality??"",country:r.paymentData.paymentMethodData.info?.billingAddress?.countryCode??"",zipCode:r.paymentData.paymentMethodData.info?.billingAddress?.postalCode??""}),metadata:Object.keys(c).length>0?JSON.stringify(c):void 0});return{isSuccess:m.isSuccess,redirectURL:m.redirectUrl}}catch(d){return console.error(d),$("Failed to authorize payment")}return{isSuccess:!0}},async getApplePayPaymentRequest(r){let a=D();if(a==null)return $("Checkout not found");r&&r.expectedItems!=null&&r.expectedItems.length>0&&(a.products&&Br(a.products.map(l=>l.productID)),await qr(e,r.expectedItems));let i=await Ge(e,{locale:t});if(Ce(i))return i;let d=await ue.get(K).getPreOrderDetails({items:i.map(l=>ge(st,{id:l.productID,quantity:l.quantity})),projectId:e,postCode:a.postalCode,couponCode:a.couponCode,countryCode:a.country,selectedDeliveryMethod:a.selectedDeliveryMethod}),c=i.map(l=>({amount:`${z(l.quantity*(l.details?.pricing?.effectivePrice??l.details?.price??0)/100,2)}`,label:l.details?.name+" - "+l.quantity,type:"final"}));if(d.selectedDeliveryMethod!=null){let l=d.methods.find(m=>m.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||a.country||"PL",merchantCapabilities:["supports3DS","supportsCredit","supportsDebit"],supportedNetworks:["visa","masterCard"],total:{amount:`${z((d.totalAmount??0)/100,2)}`,label:Pe("paymentForCart",t,n),type:"final"},shippingMethods:d.methods.map(l=>({amount:`${z(l.amount/100,2)}`,detail:l.description??"",identifier:l.id,label:l.name,dateComponentsRange:{startDateComponents:{days:l.minDays??1,hours:0,months:0,years:0},endDateComponents:{days:l.maxDays??14,hours:0,months:0,years:0}}})),lineItems:c,currencyCode:d.currency||i[0]?.details?.currency||"PLN"}}}};async function wi(e){let t=D();if(t.googlePayConfig?.isAvailable!=!0){let n=await ue.get(K).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 Q(t),t.googlePayConfig}function xi(e,t){if(e==t.id){let o=t.variants?.findIndex(r=>r.id===e);if(o!=null&&o!=-1){let r=t.variants[o];return{...t,availableQuantity:r.availableQuantity,isDeliverable:r.isDeliverable,images: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=t.variants?.find(o=>o.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:n.images??t.images}}function $e(){let e=D(),t=0;if(e==null){He.setState(n=>({...n,numberOfProductsInCart:t}));return}t=e.products?.reduce((n,o)=>n+o.quantity,0)??0,He.setState(n=>({...n,numberOfProductsInCart:t}))}var Ci=200,Ni="item-ids-not-found",at="internal-error",Wr={"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"},Si=new Set(["internal","invalid-request"]),Ii=new Set(["product-not-available","product-not-found"]);function Ri(e){return typeof e=="string"&&Object.hasOwn(Wr,e)?Wr[e]:void 0}function Ai(e){return/<\/?[a-z!?][^>]*>/i.test(e)}function Ti(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 Li(e){return/Error:/.test(e)||/\n\s+at /.test(e)}function sn(e){let t=e.trim();if(!(t.length===0||t.length>Ci||/[\r\n]/.test(t)||Ai(t)||Ti(t)||Li(t)))return t}var Di=3;function Ct(e,t=0){if(typeof e=="object"&&e!=null){if(Array.isArray(e)||t>=Di)return{};let n=e,o=Ct(n.error,t+1);if(o.message==null&&n.message!=null){let r=Ct(n.message,t+1);o={...r,code:o.code??r.code}}return typeof n.code=="string"&&n.code.length>0&&(o.code=n.code),o}if(typeof e!="string")return{};try{let n=JSON.parse(e);return typeof n=="object"&&n!=null?Ct(n,t+1):{}}catch{}return{message:sn(e)}}function Ei(e){let t;try{t=JSON.parse(e)}catch{return{code:at,message:sn(e)}}if(typeof t=="string")return{code:at,message:sn(t)};if(typeof t!="object"||t==null)return{code:at};let n=t,{message:o,code:r}=Ct(n.error),a={code:typeof n.code=="string"&&n.code.length>0?n.code:r??at,message:o};return Array.isArray(n.itemIds)&&(a.itemIds=n.itemIds.filter(i=>typeof i=="string")),a}function dn(e,t){let{code:n,message:o,itemIds:r}=Ei(t),a=r!=null&&r.length>0;if(a&&(n===at||Ii.has(n)))return $(Ni,"badInput",r);let i={message:o};return a&&(i.itemIds=r),$(n,e>=500?"internal":"badInput",i)}function mu(e,t){let n=Ri(e.error);if(n!=null)return t(n);if(e.type==="internal"||typeof e.error=="string"&&Si.has(e.error))return t("checkoutFailed");let o=e.data?.message;return typeof o=="string"&&o.length>0?o:t("checkoutFailed")}var Oi=["online","manual","cod"],Mi=["bankTransfer","blik"];function Kr(e,t){if(!Array.isArray(e))return[];let n=[];for(let o of e)t.includes(o)&&!n.includes(o)&&n.push(o);return n}function Ui(e){if(typeof e!="object"||e==null)return null;let t=e.choice;if(typeof t!="object"||t==null)return null;let n=Kr(t.methods,Oi);return n.length<2?null:{methods:n,manualAccountTypes:Kr(t.manualAccountTypes,Mi)}}function fu(e){if(e==null)return null;let t=e.methods.filter(n=>n!=="cod");return t.length<2?null:{...e,methods:t}}function gu(e,t){return t!=null&&e.methods.includes(t)?t:e.methods[0]}function yu(e){let t=e.includes("bankTransfer"),n=e.includes("blik");return n&&!t?"paymentMethodManualBlik":t&&!n?"paymentMethodManualTransfer":"paymentMethodManualBoth"}async function Zr(e,t,n=5e3){let o=typeof AbortController>"u"?void 0:new AbortController,r=setTimeout(()=>o?.abort(),n);try{let a=await fetch(e,{method:"POST",headers:t.headers,body:t.body,signal:o?.signal});return a.ok?Ui(await a.json()):null}catch{return null}finally{clearTimeout(r)}}var ji;(o=>{async function e(r,a=1,i,d){let c=Ve();if(c==null)throw new Error("No project ID found");let m=await on(c).addProduct({productID:r,quantity:a,metadata:i,...d});if(m!=null)return m}o.addProductToCart=e;function t(){He.setState({isCartVisible:!0})}o.showCart=t;function n(){He.setState({isCartVisible:!1})}o.hideCart=n})(ji||={});async function Jr(e){try{return await e.text()}catch{return""}}function Yr(e,t){return t=an(t),t.locale??=F(),{headers:{...It,...Et(e),"Content-Type":"application/json"},body:JSON.stringify(t)}}async function Gr(e){let t=Ve();return t==null?null:Zr(Be(t,"/payment-methods"),Yr(t,e))}async function nn(e){let t=Ve();if(t==null)throw new Error("No project ID found");let n=await fetch(Be(t,"/buy"),{method:"POST",...Yr(t,e)});if(n.status!=200){let r=dn(n.status,await Jr(n));return console.warn("cannot create payment URL",n.status,r.error),r}let o=await n.json();return{url:o.url,...o.orderId!=null?{orderId:o.orderId}:{},...o.projectId!=null?{projectId:o.projectId}:{}}}async function Su(e){let t=Ve();if(t==null)throw new Error("No project ID found");let n={...It,...Et(t),"Content-Type":"application/json",...e.apiKey!=null?{Authorization:`Bearer ${e.apiKey}`}:{}},o=e.testMode?`/api/payment/link/auto/${t}/test`:`/api/payment/link/auto/${t}`;delete e.apiKey,delete e.testMode,e.locale??=F();let r=await fetch(K+o,{method:"POST",headers:n,body:JSON.stringify(e)});return r.ok?{status:"ok",redirectURL:(await r.json()).url}:{...dn(r.status,await Jr(r)),status:"error"}}function xt(){if(typeof localStorage>"u")return;let e=localStorage.getItem("bitsnap-ref");if(e!=null)return e}function an(e){let t=xt();return t==null||(e.metadata==null&&(e.metadata={}),e.metadata.ref=t),e}export{ue as a,me as b,be as c,ve as d,Mt as e,pe as f,On as g,Ut as h,Re as i,Xe as j,et as k,Ue as l,je as m,Pa as n,qn as o,Zt as p,Bo as q,z as r,Ir as s,Jt as t,Ce as u,Ni as v,mu as w,fu as x,gu as y,yu as z,He as A,ji as B,Gr as C,nn as D,Su as E,xt as F,an as G,Nl as H,Sl as I,Il as J,Tl as K,ui as L,rn as M,ru as N,Ve as O,au as P,ou as Q,yi as R,iu as S,su as T,on as U};
4
- //# sourceMappingURL=chunk-5AYH23UJ.mjs.map