bitsnap-react 1.20.0 → 1.21.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 (117) hide show
  1. package/dist/BitsnapCart-73ESTTTH.mjs +2 -0
  2. package/dist/BitsnapCart-TWT7LVGJ.js +2 -0
  3. package/dist/BitsnapCart-TWT7LVGJ.js.map +1 -0
  4. package/dist/{CartProvider-G7FQUPXL.mjs → CartProvider-4WXJPQJB.mjs} +2 -2
  5. package/dist/CartProvider-CPF2E7JA.js +2 -0
  6. package/dist/CartProvider-CPF2E7JA.js.map +1 -0
  7. package/dist/PanelModelFiles-EKQRLF46.js.map +1 -1
  8. package/dist/analytics.js +1 -1
  9. package/dist/analytics.js.map +1 -1
  10. package/dist/analytics.mjs +1 -1
  11. package/dist/catalog.js +1 -1
  12. package/dist/catalog.js.map +1 -1
  13. package/dist/catalog.mjs +1 -1
  14. package/dist/chat.d.mts +2 -2
  15. package/dist/chat.d.ts +2 -2
  16. package/dist/chat.js +1 -1
  17. package/dist/chat.js.map +1 -1
  18. package/dist/chat.mjs +1 -1
  19. package/dist/chat.mjs.map +1 -1
  20. package/dist/{chunk-IXQCN7MR.mjs → chunk-27JN2GIQ.mjs} +2 -2
  21. package/dist/{chunk-URQBHNJK.mjs → chunk-6ALA5M44.mjs} +2 -2
  22. package/dist/{chunk-4Y233NII.js → chunk-6DEKVABT.js} +2 -2
  23. package/dist/chunk-6DEKVABT.js.map +1 -0
  24. package/dist/chunk-6Q3VGPSF.js.map +1 -1
  25. package/dist/{chunk-AQYHQY2Y.js → chunk-E5MMKBC4.js} +2 -2
  26. package/dist/chunk-E5MMKBC4.js.map +1 -0
  27. package/dist/chunk-EFN4OW2C.js.map +1 -1
  28. package/dist/{chunk-IRZJIPUF.js → chunk-EK3D44XW.js} +2 -2
  29. package/dist/chunk-EK3D44XW.js.map +1 -0
  30. package/dist/{chunk-BTERIY6N.mjs → chunk-EXC5Z5VM.mjs} +2 -2
  31. package/dist/{chunk-RJPQMDIQ.js → chunk-EZGL6DPG.js} +2 -2
  32. package/dist/chunk-EZGL6DPG.js.map +1 -0
  33. package/dist/{chunk-HP3I6D2R.js → chunk-FORZ5AH4.js} +2 -2
  34. package/dist/chunk-FORZ5AH4.js.map +1 -0
  35. package/dist/{chunk-KO7ZERN5.mjs → chunk-HLULQA3B.mjs} +2 -2
  36. package/dist/{chunk-YPA6MMGJ.js → chunk-I2RHVELR.js} +2 -2
  37. package/dist/chunk-I2RHVELR.js.map +1 -0
  38. package/dist/{chunk-GHBRR665.js → chunk-IKKMSLKC.js} +2 -2
  39. package/dist/chunk-IKKMSLKC.js.map +1 -0
  40. package/dist/{chunk-TW25G7XX.mjs → chunk-J6WKSO33.mjs} +2 -2
  41. package/dist/{chunk-TW25G7XX.mjs.map → chunk-J6WKSO33.mjs.map} +1 -1
  42. package/dist/chunk-JSDGZ4NY.js.map +1 -1
  43. package/dist/{chunk-IXX6SUMB.mjs → chunk-KO7Z3E23.mjs} +2 -2
  44. package/dist/chunk-KOYBZORL.js.map +1 -1
  45. package/dist/chunk-KYSMT6ZK.js +2 -0
  46. package/dist/chunk-KYSMT6ZK.js.map +1 -0
  47. package/dist/{chunk-LHQEM3CU.mjs → chunk-LRUBBPTV.mjs} +2 -2
  48. package/dist/chunk-MDAFPGPA.js.map +1 -1
  49. package/dist/chunk-Q337IQNA.js.map +1 -1
  50. package/dist/{chunk-5M3OUOMU.mjs → chunk-T5JO4SP7.mjs} +2 -2
  51. package/dist/{chunk-C736F727.js → chunk-TM3E3L57.js} +2 -2
  52. package/dist/chunk-TM3E3L57.js.map +1 -0
  53. package/dist/{chunk-LHNTSQYO.mjs → chunk-TMEII7BM.mjs} +2 -2
  54. package/dist/chunk-W3RGQYPD.js.map +1 -1
  55. package/dist/{chunk-A2ZDFN3J.mjs → chunk-WOA6W5RM.mjs} +2 -2
  56. package/dist/{chunk-KZWCVKLU.js → chunk-XMRGA5AN.js} +3 -3
  57. package/dist/chunk-XMRGA5AN.js.map +1 -0
  58. package/dist/chunk-Z3YOJ6NZ.js.map +1 -1
  59. package/dist/consent.js.map +1 -1
  60. package/dist/course.js +1 -1
  61. package/dist/course.js.map +1 -1
  62. package/dist/course.mjs +1 -1
  63. package/dist/embed/analytics.js +1 -1
  64. package/dist/errors.js.map +1 -1
  65. package/dist/index.css +1 -1
  66. package/dist/index.css.map +1 -1
  67. package/dist/index.d.mts +2 -2
  68. package/dist/index.d.ts +2 -2
  69. package/dist/index.js +1 -1
  70. package/dist/index.js.map +1 -1
  71. package/dist/index.mjs +1 -1
  72. package/dist/index.mjs.map +1 -1
  73. package/dist/internal.js.map +1 -1
  74. package/dist/methods-43RQLLWD.mjs +2 -0
  75. package/dist/methods-SZVF3HMF.js +2 -0
  76. package/dist/methods-SZVF3HMF.js.map +1 -0
  77. package/dist/model-files-client-P4PORZJ6.js.map +1 -1
  78. package/dist/models.js.map +1 -1
  79. package/dist/returns.js +1 -1
  80. package/dist/returns.js.map +1 -1
  81. package/dist/returns.mjs +1 -1
  82. package/dist/viewer3d.js.map +1 -1
  83. package/dist/viewer3d.mjs +1 -1
  84. package/dist/{widgets-Bsojw94g.d.ts → widgets-BL6pCMdc.d.ts} +34 -2
  85. package/dist/{widgets-u7xMJbsY.d.mts → widgets-DmHlIbp8.d.mts} +34 -2
  86. package/package.json +1 -1
  87. package/dist/BitsnapCart-V4S4EXYV.js +0 -2
  88. package/dist/BitsnapCart-V4S4EXYV.js.map +0 -1
  89. package/dist/BitsnapCart-Z6JFYNH2.mjs +0 -2
  90. package/dist/CartProvider-5NP4WACK.js +0 -2
  91. package/dist/CartProvider-5NP4WACK.js.map +0 -1
  92. package/dist/chunk-4Y233NII.js.map +0 -1
  93. package/dist/chunk-AQYHQY2Y.js.map +0 -1
  94. package/dist/chunk-C736F727.js.map +0 -1
  95. package/dist/chunk-GHBRR665.js.map +0 -1
  96. package/dist/chunk-HP3I6D2R.js.map +0 -1
  97. package/dist/chunk-IRZJIPUF.js.map +0 -1
  98. package/dist/chunk-KDL35KEI.js +0 -2
  99. package/dist/chunk-KDL35KEI.js.map +0 -1
  100. package/dist/chunk-KZWCVKLU.js.map +0 -1
  101. package/dist/chunk-RJPQMDIQ.js.map +0 -1
  102. package/dist/chunk-YPA6MMGJ.js.map +0 -1
  103. package/dist/methods-33CWGKNA.mjs +0 -2
  104. package/dist/methods-4GB652MQ.js +0 -2
  105. package/dist/methods-4GB652MQ.js.map +0 -1
  106. /package/dist/{BitsnapCart-Z6JFYNH2.mjs.map → BitsnapCart-73ESTTTH.mjs.map} +0 -0
  107. /package/dist/{CartProvider-G7FQUPXL.mjs.map → CartProvider-4WXJPQJB.mjs.map} +0 -0
  108. /package/dist/{chunk-IXQCN7MR.mjs.map → chunk-27JN2GIQ.mjs.map} +0 -0
  109. /package/dist/{chunk-URQBHNJK.mjs.map → chunk-6ALA5M44.mjs.map} +0 -0
  110. /package/dist/{chunk-BTERIY6N.mjs.map → chunk-EXC5Z5VM.mjs.map} +0 -0
  111. /package/dist/{chunk-KO7ZERN5.mjs.map → chunk-HLULQA3B.mjs.map} +0 -0
  112. /package/dist/{chunk-IXX6SUMB.mjs.map → chunk-KO7Z3E23.mjs.map} +0 -0
  113. /package/dist/{chunk-LHQEM3CU.mjs.map → chunk-LRUBBPTV.mjs.map} +0 -0
  114. /package/dist/{chunk-5M3OUOMU.mjs.map → chunk-T5JO4SP7.mjs.map} +0 -0
  115. /package/dist/{chunk-LHNTSQYO.mjs.map → chunk-TMEII7BM.mjs.map} +0 -0
  116. /package/dist/{chunk-A2ZDFN3J.mjs.map → chunk-WOA6W5RM.mjs.map} +0 -0
  117. /package/dist/{methods-33CWGKNA.mjs.map → methods-43RQLLWD.mjs.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{d as a}from"./chunk-27JN2GIQ.mjs";import"./chunk-T5JO4SP7.mjs";import"./chunk-6ALA5M44.mjs";import"./chunk-KO7Z3E23.mjs";import"./chunk-WOA6W5RM.mjs";import"./chunk-EMR4YXNY.mjs";import"./chunk-KOVKUJAW.mjs";import"./chunk-LRUBBPTV.mjs";import"./chunk-TMEII7BM.mjs";import"./chunk-HKRH6FI6.mjs";import"./chunk-HLULQA3B.mjs";import"./chunk-XEXPQFKN.mjs";import"./chunk-CUPG4B5W.mjs";import"./chunk-2G46TAUX.mjs";import"./chunk-5R6AGO3Z.mjs";import"./chunk-EXC5Z5VM.mjs";import"./chunk-J6WKSO33.mjs";import"./chunk-MDCP5JNP.mjs";import"./chunk-OFPRIENJ.mjs";import"./chunk-U6FLIRIV.mjs";export{a as default};
2
+ //# sourceMappingURL=BitsnapCart-73ESTTTH.mjs.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkEZGL6DPGjs = require('./chunk-EZGL6DPG.js');require('./chunk-XMRGA5AN.js');require('./chunk-E5MMKBC4.js');require('./chunk-FORZ5AH4.js');require('./chunk-IKKMSLKC.js');require('./chunk-KOYBZORL.js');require('./chunk-KYSMT6ZK.js');require('./chunk-I2RHVELR.js');require('./chunk-Z3YOJ6NZ.js');require('./chunk-TM3E3L57.js');require('./chunk-MDAFPGPA.js');require('./chunk-EFN4OW2C.js');require('./chunk-6DEKVABT.js');require('./chunk-EK3D44XW.js');require('./chunk-W3RGQYPD.js');require('./chunk-Q337IQNA.js');require('./chunk-JSDGZ4NY.js');exports.default = _chunkEZGL6DPGjs.d;
2
+ //# sourceMappingURL=BitsnapCart-TWT7LVGJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/emems/.t3/worktrees/bitsnap-react/chat-attachments/dist/BitsnapCart-TWT7LVGJ.js"],"names":[],"mappings":"AAAA,+HAAuC,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,qCAAqB","file":"/home/emems/.t3/worktrees/bitsnap-react/chat-attachments/dist/BitsnapCart-TWT7LVGJ.js"}
@@ -1,2 +1,2 @@
1
- import{H as c,I as d,J as e,K as f,L as g,M as h,N as i,O as j,P as k,Q as l,R as m,S as n,T as o,U as p,V as q,W as r,X as s,Y as t,Z as u}from"./chunk-5M3OUOMU.mjs";import"./chunk-IXX6SUMB.mjs";import"./chunk-KOVKUJAW.mjs";import"./chunk-LHQEM3CU.mjs";import"./chunk-LHNTSQYO.mjs";import"./chunk-HKRH6FI6.mjs";import"./chunk-XEXPQFKN.mjs";import"./chunk-CUPG4B5W.mjs";import"./chunk-2G46TAUX.mjs";import"./chunk-5R6AGO3Z.mjs";import"./chunk-BTERIY6N.mjs";import"./chunk-TW25G7XX.mjs";import"./chunk-MDCP5JNP.mjs";import{e as a,f as b}from"./chunk-OFPRIENJ.mjs";import"./chunk-U6FLIRIV.mjs";export{c as MARKETING_AGREEMENT_ID,q as appendLocalCartLines,d as bitsnapProjectID,n as buildLocalCartUpload,t as cartLinkRequest,k as default,h as getCartLines,u as getCheckoutMethods,g as getCheckoutSelection,b as getLocale,f as getProjectID,s as localCartVersionSnapshot,l as readLocalCartLines,m as readLocalCartSignature,i as reconcileOrderOfLastPayment,p as removeLocalCartLines,o as replaceLocalCartLines,a as setLocale,e as setProjectID,r as subscribeToLocalCart,j as useCartProvider};
2
- //# sourceMappingURL=CartProvider-G7FQUPXL.mjs.map
1
+ import{H as c,I as d,J as e,K as f,L as g,M as h,N as i,O as j,P as k,Q as l,R as m,S as n,T as o,U as p,V as q,W as r,X as s,Y as t,Z as u}from"./chunk-T5JO4SP7.mjs";import"./chunk-KO7Z3E23.mjs";import"./chunk-KOVKUJAW.mjs";import"./chunk-LRUBBPTV.mjs";import"./chunk-TMEII7BM.mjs";import"./chunk-HKRH6FI6.mjs";import"./chunk-XEXPQFKN.mjs";import"./chunk-CUPG4B5W.mjs";import"./chunk-2G46TAUX.mjs";import"./chunk-5R6AGO3Z.mjs";import"./chunk-EXC5Z5VM.mjs";import"./chunk-J6WKSO33.mjs";import"./chunk-MDCP5JNP.mjs";import{e as a,f as b}from"./chunk-OFPRIENJ.mjs";import"./chunk-U6FLIRIV.mjs";export{c as MARKETING_AGREEMENT_ID,q as appendLocalCartLines,d as bitsnapProjectID,n as buildLocalCartUpload,t as cartLinkRequest,k as default,h as getCartLines,u as getCheckoutMethods,g as getCheckoutSelection,b as getLocale,f as getProjectID,s as localCartVersionSnapshot,l as readLocalCartLines,m as readLocalCartSignature,i as reconcileOrderOfLastPayment,p as removeLocalCartLines,o as replaceLocalCartLines,a as setLocale,e as setProjectID,r as subscribeToLocalCart,j as useCartProvider};
2
+ //# sourceMappingURL=CartProvider-4WXJPQJB.mjs.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXMRGA5ANjs = require('./chunk-XMRGA5AN.js');require('./chunk-FORZ5AH4.js');require('./chunk-KOYBZORL.js');require('./chunk-KYSMT6ZK.js');require('./chunk-I2RHVELR.js');require('./chunk-Z3YOJ6NZ.js');require('./chunk-MDAFPGPA.js');require('./chunk-EFN4OW2C.js');require('./chunk-6DEKVABT.js');require('./chunk-EK3D44XW.js');require('./chunk-W3RGQYPD.js');var _chunkQ337IQNAjs = require('./chunk-Q337IQNA.js');require('./chunk-JSDGZ4NY.js');exports.MARKETING_AGREEMENT_ID = _chunkXMRGA5ANjs.H; exports.appendLocalCartLines = _chunkXMRGA5ANjs.V; exports.bitsnapProjectID = _chunkXMRGA5ANjs.I; exports.buildLocalCartUpload = _chunkXMRGA5ANjs.S; exports.cartLinkRequest = _chunkXMRGA5ANjs.Y; exports.default = _chunkXMRGA5ANjs.P; exports.getCartLines = _chunkXMRGA5ANjs.M; exports.getCheckoutMethods = _chunkXMRGA5ANjs.Z; exports.getCheckoutSelection = _chunkXMRGA5ANjs.L; exports.getLocale = _chunkQ337IQNAjs.f; exports.getProjectID = _chunkXMRGA5ANjs.K; exports.localCartVersionSnapshot = _chunkXMRGA5ANjs.X; exports.readLocalCartLines = _chunkXMRGA5ANjs.Q; exports.readLocalCartSignature = _chunkXMRGA5ANjs.R; exports.reconcileOrderOfLastPayment = _chunkXMRGA5ANjs.N; exports.removeLocalCartLines = _chunkXMRGA5ANjs.U; exports.replaceLocalCartLines = _chunkXMRGA5ANjs.T; exports.setLocale = _chunkQ337IQNAjs.e; exports.setProjectID = _chunkXMRGA5ANjs.J; exports.subscribeToLocalCart = _chunkXMRGA5ANjs.W; exports.useCartProvider = _chunkXMRGA5ANjs.O;
2
+ //# sourceMappingURL=CartProvider-CPF2E7JA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/emems/.t3/worktrees/bitsnap-react/chat-attachments/dist/CartProvider-CPF2E7JA.js"],"names":[],"mappings":"AAAA,+HAAqK,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,sDAA+C,+BAA4B,i/BAA6e","file":"/home/emems/.t3/worktrees/bitsnap-react/chat-attachments/dist/CartProvider-CPF2E7JA.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/emems/.t3/worktrees/bitsnap-react/chat-free-pwyw/dist/PanelModelFiles-EKQRLF46.js","../src/panel/components/PanelModelFiles.tsx"],"names":["COPY","formatSize","bytes","en","value","mb","fmt"],"mappings":"AAAA,uuBAA8C,sDAAwC,+BAA4B,8CCArF,yDACA,8BACkB,+CAsG3C,IAhEEA,CAAAA,CAA+B,CACnC,EAAA,CAAI,CACF,KAAA,CAAO,UAAA,CACP,QAAA,CAAU,mDAAA,CACV,QAAA,CAAU,SAAA,CACV,SAAA,CAAW,yBAAA,CACX,OAAA,CAAS,UAAA,CACT,SAAA,CAAW,SAAA,CACX,WAAA,CAAa,gBAAA,CACb,OAAA,CAAS,uCAAA,CACT,OAAA,CAAS,sBAAA,CACT,OAAA,CAAS,kCAAA,CACT,OAAA,CAAS,CACN,CAAA,CAAoC,gDAAA,CACpC,CAAA,CAAiC,uCAAA,CACjC,CAAA,CAAgC,uDAAA,CAChC,CAAA,CAA+B,mCAAA,CAC/B,CAAA,CAA+B,uCAAA,CAC/B,CAAA,CAA8B,uCACjC,CAAA,CACA,KAAA,CAAO,iEACT,CAAA,CACA,EAAA,CAAI,CACF,KAAA,CAAO,UAAA,CACP,QAAA,CAAU,sDAAA,CACV,QAAA,CAAU,UAAA,CACV,SAAA,CAAW,iBAAA,CACX,OAAA,CAAS,SAAA,CACT,SAAA,CAAW,WAAA,CACX,WAAA,CAAa,cAAA,CACb,OAAA,CAAS,+BAAA,CACT,OAAA,CAAS,oBAAA,CACT,OAAA,CAAS,8BAAA,CACT,OAAA,CAAS,CACN,CAAA,CAAoC,0CAAA,CACpC,CAAA,CAAiC,8BAAA,CACjC,CAAA,CAAgC,qCAAA,CAChC,CAAA,CAA+B,+BAAA,CAC/B,CAAA,CAA+B,+BAAA,CAC/B,CAAA,CAA8B,wBACjC,CAAA,CACA,KAAA,CAAO,8CACT,CACF,CAAA,CAEA,SAASC,CAAAA,CAAWC,CAAAA,CAAeC,CAAAA,CAAqB,CACtD,IAAMC,CAAAA,CAAQ,MAAA,CAAOF,CAAK,CAAA,CAC1B,EAAA,CAAI,CAAC,MAAA,CAAO,QAAA,CAASE,CAAK,CAAA,EAAKA,CAAAA,EAAS,CAAA,CAAG,MAAO,EAAA,CAClD,IAAMC,CAAAA,CAAKD,CAAAA,CAAAA,CAAS,IAAA,CAAO,IAAA,CAAA,CACrBE,CAAAA,CAAM,IAAI,IAAA,CAAK,YAAA,CAAaH,CAAAA,CAAK,OAAA,CAAU,OAAA,CAAS,CACxD,qBAAA,CAAuB,CACzB,CAAC,CAAA,CACD,OAAOE,CAAAA,EAAM,CAAA,CAAI,CAAA,EAAA","file":"/home/emems/.t3/worktrees/bitsnap-react/chat-free-pwyw/dist/PanelModelFiles-EKQRLF46.js","sourcesContent":[null,"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=\"grid grid-cols-1 gap-4 p-4 sm:grid-cols-2 xl:grid-cols-3\">\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 min-w-0 flex-col gap-4 rounded-xl border border-neutral-200 p-4 dark:border-neutral-700\"\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={title}\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=\"break-words 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=\"min-h-11 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"]}
1
+ {"version":3,"sources":["/home/emems/.t3/worktrees/bitsnap-react/chat-attachments/dist/PanelModelFiles-EKQRLF46.js","../src/panel/components/PanelModelFiles.tsx"],"names":["COPY","formatSize","bytes","en","value","mb","fmt"],"mappings":"AAAA,uuBAA8C,sDAAwC,+BAA4B,8CCArF,yDACA,8BACkB,+CAsG3C,IAhEEA,CAAAA,CAA+B,CACnC,EAAA,CAAI,CACF,KAAA,CAAO,UAAA,CACP,QAAA,CAAU,mDAAA,CACV,QAAA,CAAU,SAAA,CACV,SAAA,CAAW,yBAAA,CACX,OAAA,CAAS,UAAA,CACT,SAAA,CAAW,SAAA,CACX,WAAA,CAAa,gBAAA,CACb,OAAA,CAAS,uCAAA,CACT,OAAA,CAAS,sBAAA,CACT,OAAA,CAAS,kCAAA,CACT,OAAA,CAAS,CACN,CAAA,CAAoC,gDAAA,CACpC,CAAA,CAAiC,uCAAA,CACjC,CAAA,CAAgC,uDAAA,CAChC,CAAA,CAA+B,mCAAA,CAC/B,CAAA,CAA+B,uCAAA,CAC/B,CAAA,CAA8B,uCACjC,CAAA,CACA,KAAA,CAAO,iEACT,CAAA,CACA,EAAA,CAAI,CACF,KAAA,CAAO,UAAA,CACP,QAAA,CAAU,sDAAA,CACV,QAAA,CAAU,UAAA,CACV,SAAA,CAAW,iBAAA,CACX,OAAA,CAAS,SAAA,CACT,SAAA,CAAW,WAAA,CACX,WAAA,CAAa,cAAA,CACb,OAAA,CAAS,+BAAA,CACT,OAAA,CAAS,oBAAA,CACT,OAAA,CAAS,8BAAA,CACT,OAAA,CAAS,CACN,CAAA,CAAoC,0CAAA,CACpC,CAAA,CAAiC,8BAAA,CACjC,CAAA,CAAgC,qCAAA,CAChC,CAAA,CAA+B,+BAAA,CAC/B,CAAA,CAA+B,+BAAA,CAC/B,CAAA,CAA8B,wBACjC,CAAA,CACA,KAAA,CAAO,8CACT,CACF,CAAA,CAEA,SAASC,CAAAA,CAAWC,CAAAA,CAAeC,CAAAA,CAAqB,CACtD,IAAMC,CAAAA,CAAQ,MAAA,CAAOF,CAAK,CAAA,CAC1B,EAAA,CAAI,CAAC,MAAA,CAAO,QAAA,CAASE,CAAK,CAAA,EAAKA,CAAAA,EAAS,CAAA,CAAG,MAAO,EAAA,CAClD,IAAMC,CAAAA,CAAKD,CAAAA,CAAAA,CAAS,IAAA,CAAO,IAAA,CAAA,CACrBE,CAAAA,CAAM,IAAI,IAAA,CAAK,YAAA,CAAaH,CAAAA,CAAK,OAAA,CAAU,OAAA,CAAS,CACxD,qBAAA,CAAuB,CACzB,CAAC,CAAA,CACD,OAAOE,CAAAA,EAAM,CAAA,CAAI,CAAA,EAAA","file":"/home/emems/.t3/worktrees/bitsnap-react/chat-attachments/dist/PanelModelFiles-EKQRLF46.js","sourcesContent":[null,"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=\"grid grid-cols-1 gap-4 p-4 sm:grid-cols-2 xl:grid-cols-3\">\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 min-w-0 flex-col gap-4 rounded-xl border border-neutral-200 p-4 dark:border-neutral-700\"\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={title}\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=\"break-words 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=\"min-h-11 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"]}
package/dist/analytics.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkIRZJIPUFjs = require('./chunk-IRZJIPUF.js');require('./chunk-W3RGQYPD.js');require('./chunk-JSDGZ4NY.js');exports.BitsnapAnalyticsProvider = _chunkIRZJIPUFjs.i; exports.DEFAULT_ENDPOINT = _chunkIRZJIPUFjs.c; exports.InstrumentProvider = _chunkIRZJIPUFjs.l; exports.createTracker = _chunkIRZJIPUFjs.d; exports.getTracker = _chunkIRZJIPUFjs.f; exports.initTracker = _chunkIRZJIPUFjs.e; exports.noopInstrument = _chunkIRZJIPUFjs.k; exports.resetTracker = _chunkIRZJIPUFjs.g; exports.scoreBucket = _chunkIRZJIPUFjs.r; exports.startAutoPageViews = _chunkIRZJIPUFjs.b; exports.useAnalytics = _chunkIRZJIPUFjs.j; exports.useInstrument = _chunkIRZJIPUFjs.n; exports.useInstrumentContext = _chunkIRZJIPUFjs.m;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkEK3D44XWjs = require('./chunk-EK3D44XW.js');require('./chunk-W3RGQYPD.js');require('./chunk-JSDGZ4NY.js');exports.BitsnapAnalyticsProvider = _chunkEK3D44XWjs.i; exports.DEFAULT_ENDPOINT = _chunkEK3D44XWjs.c; exports.InstrumentProvider = _chunkEK3D44XWjs.l; exports.createTracker = _chunkEK3D44XWjs.d; exports.getTracker = _chunkEK3D44XWjs.f; exports.initTracker = _chunkEK3D44XWjs.e; exports.noopInstrument = _chunkEK3D44XWjs.k; exports.resetTracker = _chunkEK3D44XWjs.g; exports.scoreBucket = _chunkEK3D44XWjs.r; exports.startAutoPageViews = _chunkEK3D44XWjs.b; exports.useAnalytics = _chunkEK3D44XWjs.j; exports.useInstrument = _chunkEK3D44XWjs.n; exports.useInstrumentContext = _chunkEK3D44XWjs.m;
2
2
  //# sourceMappingURL=analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/emems/.t3/worktrees/bitsnap-react/chat-free-pwyw/dist/analytics.js"],"names":[],"mappings":"AAAA,+HAAsH,+BAA4B,+BAA4B,klBAAsR","file":"/home/emems/.t3/worktrees/bitsnap-react/chat-free-pwyw/dist/analytics.js"}
1
+ {"version":3,"sources":["/home/emems/.t3/worktrees/bitsnap-react/chat-attachments/dist/analytics.js"],"names":[],"mappings":"AAAA,+HAAsH,+BAA4B,+BAA4B,klBAAsR","file":"/home/emems/.t3/worktrees/bitsnap-react/chat-attachments/dist/analytics.js"}
@@ -1,2 +1,2 @@
1
- import{b as e,c as t,d as r,e as n,f as o,g as a,i as s,j as p,k as c,l as i,m,n as u,r as v}from"./chunk-TW25G7XX.mjs";import"./chunk-MDCP5JNP.mjs";import"./chunk-U6FLIRIV.mjs";export{s as BitsnapAnalyticsProvider,t as DEFAULT_ENDPOINT,i as InstrumentProvider,r as createTracker,o as getTracker,n as initTracker,c as noopInstrument,a as resetTracker,v as scoreBucket,e as startAutoPageViews,p as useAnalytics,u as useInstrument,m as useInstrumentContext};
1
+ import{b as e,c as t,d as r,e as n,f as o,g as a,i as s,j as p,k as c,l as i,m,n as u,r as v}from"./chunk-J6WKSO33.mjs";import"./chunk-MDCP5JNP.mjs";import"./chunk-U6FLIRIV.mjs";export{s as BitsnapAnalyticsProvider,t as DEFAULT_ENDPOINT,i as InstrumentProvider,r as createTracker,o as getTracker,n as initTracker,c as noopInstrument,a as resetTracker,v as scoreBucket,e as startAutoPageViews,p as useAnalytics,u as useInstrument,m as useInstrumentContext};
2
2
  //# sourceMappingURL=analytics.mjs.map
package/dist/catalog.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkGHBRR665js = require('./chunk-GHBRR665.js');require('./chunk-KOYBZORL.js');require('./chunk-C736F727.js');require('./chunk-4Y233NII.js');require('./chunk-IRZJIPUF.js');require('./chunk-W3RGQYPD.js');require('./chunk-Q337IQNA.js');require('./chunk-JSDGZ4NY.js');exports.PRODUCT_LIST_SLOT_NAMES = _chunkGHBRR665js.a; exports.ProductList = _chunkGHBRR665js.d; exports.formatProductPrice = _chunkGHBRR665js.b; exports.useProducts = _chunkGHBRR665js.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkIKKMSLKCjs = require('./chunk-IKKMSLKC.js');require('./chunk-KOYBZORL.js');require('./chunk-TM3E3L57.js');require('./chunk-6DEKVABT.js');require('./chunk-EK3D44XW.js');require('./chunk-W3RGQYPD.js');require('./chunk-Q337IQNA.js');require('./chunk-JSDGZ4NY.js');exports.PRODUCT_LIST_SLOT_NAMES = _chunkIKKMSLKCjs.a; exports.ProductList = _chunkIKKMSLKCjs.d; exports.formatProductPrice = _chunkIKKMSLKCjs.b; exports.useProducts = _chunkIKKMSLKCjs.c;
2
2
  //# sourceMappingURL=catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/emems/.t3/worktrees/bitsnap-react/chat-free-pwyw/dist/catalog.js"],"names":[],"mappings":"AAAA,+HAA4D,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,0LAA+F","file":"/home/emems/.t3/worktrees/bitsnap-react/chat-free-pwyw/dist/catalog.js"}
1
+ {"version":3,"sources":["/home/emems/.t3/worktrees/bitsnap-react/chat-attachments/dist/catalog.js"],"names":[],"mappings":"AAAA,+HAA4D,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,+BAA4B,0LAA+F","file":"/home/emems/.t3/worktrees/bitsnap-react/chat-attachments/dist/catalog.js"}
package/dist/catalog.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{a as o,b as e,c as f}from"./chunk-A2ZDFN3J.mjs";import{a as r}from"./chunk-EMR4YXNY.mjs";import"./chunk-KOVKUJAW.mjs";import"./chunk-KO7ZERN5.mjs";import"./chunk-5R6AGO3Z.mjs";import"./chunk-BTERIY6N.mjs";import"./chunk-TW25G7XX.mjs";import"./chunk-MDCP5JNP.mjs";import"./chunk-OFPRIENJ.mjs";import"./chunk-U6FLIRIV.mjs";export{o as PRODUCT_LIST_SLOT_NAMES,f as ProductList,r as formatProductPrice,e as useProducts};
1
+ import{a as o,b as e,c as f}from"./chunk-WOA6W5RM.mjs";import{a as r}from"./chunk-EMR4YXNY.mjs";import"./chunk-KOVKUJAW.mjs";import"./chunk-HLULQA3B.mjs";import"./chunk-5R6AGO3Z.mjs";import"./chunk-EXC5Z5VM.mjs";import"./chunk-J6WKSO33.mjs";import"./chunk-MDCP5JNP.mjs";import"./chunk-OFPRIENJ.mjs";import"./chunk-U6FLIRIV.mjs";export{o as PRODUCT_LIST_SLOT_NAMES,f as ProductList,r as formatProductPrice,e as useProducts};
2
2
  //# sourceMappingURL=catalog.mjs.map
package/dist/chat.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { C as ChatTexts } from './widgets-u7xMJbsY.mjs';
2
- export { n as CHAT_TEXT_TABLES, a as Channel, c as ChannelProps, d as ChatBuyRequest, r as ChatChannelEntitlement, t as ChatChannelSummary, i as ChatClient, j as ChatClientOptions, g as ChatError, v as ChatLiveMode, w as ChatMe, x as ChatMessage, y as ChatMessagePage, z as ChatPack, A as ChatPackEntitlement, B as ChatRealtimeEvent, E as ChatRealtimeToken, F as ChatReportReason, G as ChatSendResult, b as ChatThread, e as ChatThreadProps, H as ChatThreadState, I as ChatThreadSummary, f as ChatWidgetBaseProps, k as ConversationLock, l as ConversationMessage, m as ConversationTarget, D as DEFAULT_CHAT_API_URL, q as DEFAULT_CHAT_REALTIME_URL, L as LiveOptions, U as UseConversationOptions, h as createChatClient, o as getChatTexts, p as parseRealtimeEvent, s as startLive, u as useConversation } from './widgets-u7xMJbsY.mjs';
1
+ import { C as ChatTexts } from './widgets-DmHlIbp8.mjs';
2
+ export { n as CHAT_TEXT_TABLES, a as Channel, c as ChannelProps, w as ChatAttachment, d as ChatBuyRequest, t as ChatChannelEntitlement, v as ChatChannelSummary, i as ChatClient, j as ChatClientOptions, g as ChatError, x as ChatLiveMode, y as ChatMe, z as ChatMessage, A as ChatMessagePage, B as ChatPack, E as ChatPackEntitlement, F as ChatRealtimeEvent, G as ChatRealtimeToken, H as ChatReportReason, I as ChatSendResult, b as ChatThread, e as ChatThreadProps, J as ChatThreadState, K as ChatThreadSummary, f as ChatWidgetBaseProps, k as ConversationLock, l as ConversationMessage, m as ConversationTarget, D as DEFAULT_CHAT_API_URL, q as DEFAULT_CHAT_ATTACHMENTS_URL, r as DEFAULT_CHAT_REALTIME_URL, L as LiveOptions, U as UseConversationOptions, h as createChatClient, o as getChatTexts, p as parseRealtimeEvent, s as startLive, u as useConversation } from './widgets-DmHlIbp8.mjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { Message } from '@bufbuild/protobuf';
5
5
  import './texts-9kfgClsA.mjs';
package/dist/chat.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { C as ChatTexts } from './widgets-Bsojw94g.js';
2
- export { n as CHAT_TEXT_TABLES, a as Channel, c as ChannelProps, d as ChatBuyRequest, r as ChatChannelEntitlement, t as ChatChannelSummary, i as ChatClient, j as ChatClientOptions, g as ChatError, v as ChatLiveMode, w as ChatMe, x as ChatMessage, y as ChatMessagePage, z as ChatPack, A as ChatPackEntitlement, B as ChatRealtimeEvent, E as ChatRealtimeToken, F as ChatReportReason, G as ChatSendResult, b as ChatThread, e as ChatThreadProps, H as ChatThreadState, I as ChatThreadSummary, f as ChatWidgetBaseProps, k as ConversationLock, l as ConversationMessage, m as ConversationTarget, D as DEFAULT_CHAT_API_URL, q as DEFAULT_CHAT_REALTIME_URL, L as LiveOptions, U as UseConversationOptions, h as createChatClient, o as getChatTexts, p as parseRealtimeEvent, s as startLive, u as useConversation } from './widgets-Bsojw94g.js';
1
+ import { C as ChatTexts } from './widgets-BL6pCMdc.js';
2
+ export { n as CHAT_TEXT_TABLES, a as Channel, c as ChannelProps, w as ChatAttachment, d as ChatBuyRequest, t as ChatChannelEntitlement, v as ChatChannelSummary, i as ChatClient, j as ChatClientOptions, g as ChatError, x as ChatLiveMode, y as ChatMe, z as ChatMessage, A as ChatMessagePage, B as ChatPack, E as ChatPackEntitlement, F as ChatRealtimeEvent, G as ChatRealtimeToken, H as ChatReportReason, I as ChatSendResult, b as ChatThread, e as ChatThreadProps, J as ChatThreadState, K as ChatThreadSummary, f as ChatWidgetBaseProps, k as ConversationLock, l as ConversationMessage, m as ConversationTarget, D as DEFAULT_CHAT_API_URL, q as DEFAULT_CHAT_ATTACHMENTS_URL, r as DEFAULT_CHAT_REALTIME_URL, L as LiveOptions, U as UseConversationOptions, h as createChatClient, o as getChatTexts, p as parseRealtimeEvent, s as startLive, u as useConversation } from './widgets-BL6pCMdc.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { Message } from '@bufbuild/protobuf';
5
5
  import './texts-9kfgClsA.js';