@beamimpact/web-sdk 1.40.0 → 1.42.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 (320) hide show
  1. package/README.md +7 -11
  2. package/dist/chunks/_share-dialog-dependencies-0XZ9j6DF.esm.js +2 -0
  3. package/dist/chunks/_share-dialog-dependencies-0XZ9j6DF.esm.js.map +1 -0
  4. package/dist/chunks/_share-dialog-dependencies-cBi8GG00.esm.js +2 -0
  5. package/dist/chunks/_share-dialog-dependencies-cBi8GG00.esm.js.map +1 -0
  6. package/dist/chunks/cart-contents-h60geKWa.esm.js.map +1 -1
  7. package/dist/chunks/{cart-contents-3-9fB-7m.esm.d.ts → cart-contents-sUhfwLAz.esm.d.ts} +2 -1
  8. package/dist/chunks/checkbox-P2JYPqxl.esm.js +17 -0
  9. package/dist/chunks/checkbox-P2JYPqxl.esm.js.map +1 -0
  10. package/dist/chunks/{css-card-grid-7tObtoJx.esm.js → css-card-grid-r6wxRbPV.esm.js} +2 -2
  11. package/dist/chunks/{css-card-grid-7tObtoJx.esm.js.map → css-card-grid-r6wxRbPV.esm.js.map} +1 -1
  12. package/dist/chunks/enforce-config-HksNiOMu.esm.js +3 -0
  13. package/dist/chunks/enforce-config-HksNiOMu.esm.js.map +1 -0
  14. package/dist/chunks/enforce-config-er6B5Gkj.esm.js +3 -0
  15. package/dist/chunks/enforce-config-er6B5Gkj.esm.js.map +1 -0
  16. package/dist/chunks/{events-7cGXyV7_.esm.d.ts → events-QJc86_5Y.esm.d.ts} +2 -2
  17. package/dist/chunks/{events-Y8fYvSqM.esm.js → events-_4nImo3u.esm.js} +2 -2
  18. package/dist/chunks/{events-Y8fYvSqM.esm.js.map → events-_4nImo3u.esm.js.map} +1 -1
  19. package/dist/chunks/index--phjcEHh.esm.js +2 -0
  20. package/dist/chunks/index--phjcEHh.esm.js.map +1 -0
  21. package/dist/chunks/{index-uCfdsWtt.esm.js → index-1nI7l5vj.esm.js} +2 -2
  22. package/dist/chunks/{index-uCfdsWtt.esm.js.map → index-1nI7l5vj.esm.js.map} +1 -1
  23. package/dist/chunks/index-2K1cEtb1.esm.js +2 -0
  24. package/dist/chunks/index-2K1cEtb1.esm.js.map +1 -0
  25. package/dist/chunks/index-3-VTK-nH.esm.js +2 -0
  26. package/dist/chunks/index-3-VTK-nH.esm.js.map +1 -0
  27. package/dist/chunks/index-AQ8n9ODJ.esm.js +2 -0
  28. package/dist/chunks/{index-fINTvZVX.esm.js.map → index-AQ8n9ODJ.esm.js.map} +1 -1
  29. package/dist/chunks/index-E8H5A7Qq.esm.js +2 -0
  30. package/dist/chunks/index-E8H5A7Qq.esm.js.map +1 -0
  31. package/dist/chunks/index-FQExZDX9.esm.js +2 -0
  32. package/dist/chunks/index-FQExZDX9.esm.js.map +1 -0
  33. package/dist/chunks/index-JA-7NqMF.esm.js +2 -0
  34. package/dist/chunks/index-JA-7NqMF.esm.js.map +1 -0
  35. package/dist/chunks/{index-8KzbQIsU.esm.d.ts → index-M-0eAFA6.esm.d.ts} +1 -1
  36. package/dist/chunks/{index-phDmC-TS.esm.js → index-NOF_HeFP.esm.js} +2 -2
  37. package/dist/chunks/index-NOF_HeFP.esm.js.map +1 -0
  38. package/dist/chunks/index-PiMq5a49.esm.js +2 -0
  39. package/dist/chunks/index-PiMq5a49.esm.js.map +1 -0
  40. package/dist/chunks/{index-rFBYAk7m.esm.d.ts → index-VHXu2kRx.esm.d.ts} +1 -1
  41. package/dist/chunks/index-XCMf22lv.esm.js +2 -0
  42. package/dist/chunks/index-XCMf22lv.esm.js.map +1 -0
  43. package/dist/chunks/{index-0VcD5nhV.esm.d.ts → index-ZgCs6F4e.esm.d.ts} +4 -4
  44. package/dist/chunks/{index-TOzSFOvI.esm.d.ts → index-_Hgu38MH.esm.d.ts} +1 -1
  45. package/dist/chunks/{index-SxFKifVJ.esm.d.ts → index-_UuYsIe9.esm.d.ts} +1 -1
  46. package/dist/chunks/index-cUb-0Igl.esm.js +2 -0
  47. package/dist/chunks/{index-kxMe_AX1.esm.js.map → index-cUb-0Igl.esm.js.map} +1 -1
  48. package/dist/chunks/index-eHSdKArB.esm.js +2 -0
  49. package/dist/chunks/index-eHSdKArB.esm.js.map +1 -0
  50. package/dist/chunks/{index-HBDtoJlQ.esm.d.ts → index-euJMrXIc.esm.d.ts} +1 -1
  51. package/dist/chunks/{index-Hb-jziQs.esm.d.ts → index-hn6JhG_w.esm.d.ts} +7 -1
  52. package/dist/chunks/{index-6t9MtjyS.esm.d.ts → index-mTXm0DPh.esm.d.ts} +9 -1
  53. package/dist/chunks/{index-Q1vx4WtG.esm.js → index-mw70Caof.esm.js} +2 -2
  54. package/dist/chunks/{index-Q1vx4WtG.esm.js.map → index-mw70Caof.esm.js.map} +1 -1
  55. package/dist/chunks/{index-8yrr7ZZv.esm.js → index-n6QNFLXV.esm.js} +2 -2
  56. package/dist/chunks/index-n6QNFLXV.esm.js.map +1 -0
  57. package/dist/chunks/index-sOAq6oM0.esm.js +2 -0
  58. package/dist/chunks/index-sOAq6oM0.esm.js.map +1 -0
  59. package/dist/chunks/{index-uF-Qtewb.esm.js → index-x2kxA_Xo.esm.js} +2 -2
  60. package/dist/chunks/index-x2kxA_Xo.esm.js.map +1 -0
  61. package/dist/chunks/{index-Lw32NXij.esm.js → index-z8c9I9IQ.esm.js} +2 -2
  62. package/dist/chunks/index-z8c9I9IQ.esm.js.map +1 -0
  63. package/dist/chunks/{lit-qtGbjGnK.esm.js → lit-3QHn3fwl.esm.js} +5 -5
  64. package/dist/chunks/lit-3QHn3fwl.esm.js.map +1 -0
  65. package/dist/chunks/loading-template-mLjOGXMj.esm.js +2 -0
  66. package/dist/chunks/{loading-template-Av0IUyKF.esm.js.map → loading-template-mLjOGXMj.esm.js.map} +1 -1
  67. package/dist/chunks/localize-IRs8JglT.esm.js +29 -0
  68. package/dist/chunks/localize-IRs8JglT.esm.js.map +1 -0
  69. package/dist/chunks/localize-SsJbTmMj.esm.js +29 -0
  70. package/dist/chunks/localize-SsJbTmMj.esm.js.map +1 -0
  71. package/dist/chunks/{openapi-spec--MzXvfCC.esm.d.ts → openapi-spec--WoGcZgR.esm.d.ts} +232 -9
  72. package/dist/chunks/order-page-4qPr8vqZ.esm.js +2 -0
  73. package/dist/chunks/order-page-4qPr8vqZ.esm.js.map +1 -0
  74. package/dist/chunks/order-page-Ps8Qyjfg.esm.d.ts +74 -0
  75. package/dist/chunks/order-page-akvp5h2x.esm.js +2 -0
  76. package/dist/chunks/order-page-akvp5h2x.esm.js.map +1 -0
  77. package/dist/chunks/{progress-bar-Sn2QspHy.esm.js → progress-bar-HVG_n8_6.esm.js} +7 -6
  78. package/dist/chunks/progress-bar-HVG_n8_6.esm.js.map +1 -0
  79. package/dist/chunks/{promo-pill-label-j0A8qZ0c.esm.js → promo-pill-label-3Xtr5ALT.esm.js} +4 -3
  80. package/dist/chunks/{promo-pill-label-j0A8qZ0c.esm.js.map → promo-pill-label-3Xtr5ALT.esm.js.map} +1 -1
  81. package/dist/chunks/{responsive-aWj_7ZN_.esm.js → responsive-KbDsZM6S.esm.js} +2 -2
  82. package/dist/chunks/{responsive-aWj_7ZN_.esm.js.map → responsive-KbDsZM6S.esm.js.map} +1 -1
  83. package/dist/chunks/routes-qbvie7oI.esm.d.ts +445 -0
  84. package/dist/chunks/routes-r5D_LdgT.esm.js +2 -0
  85. package/dist/chunks/routes-r5D_LdgT.esm.js.map +1 -0
  86. package/dist/chunks/routes-rmhOokKz.esm.js +2 -0
  87. package/dist/chunks/routes-rmhOokKz.esm.js.map +1 -0
  88. package/dist/chunks/share-button-CqTd80g8.esm.js +2 -0
  89. package/dist/chunks/share-button-CqTd80g8.esm.js.map +1 -0
  90. package/dist/chunks/share-button-JqbM7N_4.esm.js +163 -0
  91. package/dist/chunks/share-button-JqbM7N_4.esm.js.map +1 -0
  92. package/dist/chunks/share-button-hDn8fnBI.esm.d.ts +22 -0
  93. package/dist/chunks/share-button-jpa1X3FA.esm.js +163 -0
  94. package/dist/chunks/share-button-jpa1X3FA.esm.js.map +1 -0
  95. package/dist/chunks/shoelace-components-NR11kwmz.esm.js +2 -0
  96. package/dist/chunks/shoelace-components-NR11kwmz.esm.js.map +1 -0
  97. package/dist/chunks/shoelace-components-yXqj8DyM.esm.js +2 -0
  98. package/dist/chunks/shoelace-components-yXqj8DyM.esm.js.map +1 -0
  99. package/dist/chunks/{types-CfbVJRfU.esm.d.ts → types-zbTZ8-KP.esm.d.ts} +4 -1
  100. package/dist/chunks/update-cart-05ZiT0Xf.esm.js +2 -0
  101. package/dist/chunks/update-cart-05ZiT0Xf.esm.js.map +1 -0
  102. package/dist/chunks/{update-cart-xaWdPxse.esm.d.ts → update-cart-SajqAoez.esm.d.ts} +2 -1
  103. package/dist/chunks/update-cart-lTgKV-Zu.esm.js +2 -0
  104. package/dist/chunks/update-cart-lTgKV-Zu.esm.js.map +1 -0
  105. package/dist/chunks/{vendor-jQ8cxMpw.esm.js → vendor--f7lkyBk.esm.js} +44 -44
  106. package/dist/chunks/vendor--f7lkyBk.esm.js.map +1 -0
  107. package/dist/components/beam-partner-logos.esm.js +2 -2
  108. package/dist/components/beam-partner-logos.esm.js.map +1 -1
  109. package/dist/components/beam-partner-logos.js +2 -2
  110. package/dist/components/beam-partner-logos.js.map +1 -1
  111. package/dist/components/community-impact.d.ts +1 -1
  112. package/dist/components/community-impact.esm.js +15 -9
  113. package/dist/components/community-impact.esm.js.map +1 -1
  114. package/dist/components/community-impact.js +15 -9
  115. package/dist/components/community-impact.js.map +1 -1
  116. package/dist/components/cumulative-impact.d.ts +1 -1
  117. package/dist/components/cumulative-impact.esm.js +1 -1
  118. package/dist/components/cumulative-impact.esm.js.map +1 -1
  119. package/dist/components/cumulative-impact.js +1 -1
  120. package/dist/components/cumulative-impact.js.map +1 -1
  121. package/dist/components/impact-overview.d.ts +16 -4
  122. package/dist/components/impact-overview.esm.js +29 -146
  123. package/dist/components/impact-overview.esm.js.map +1 -1
  124. package/dist/components/impact-overview.js +29 -146
  125. package/dist/components/impact-overview.js.map +1 -1
  126. package/dist/components/index.d.ts +8 -3
  127. package/dist/components/index.esm.js +1 -1
  128. package/dist/components/index.js +1 -1
  129. package/dist/components/post-purchase.d.ts +7 -4
  130. package/dist/components/post-purchase.esm.js +2 -1
  131. package/dist/components/post-purchase.esm.js.map +1 -1
  132. package/dist/components/post-purchase.js +2 -1
  133. package/dist/components/post-purchase.js.map +1 -1
  134. package/dist/components/product-details-page.d.ts +7 -1
  135. package/dist/components/product-details-page.esm.js +5 -5
  136. package/dist/components/product-details-page.esm.js.map +1 -1
  137. package/dist/components/product-details-page.js +5 -5
  138. package/dist/components/product-details-page.js.map +1 -1
  139. package/dist/components/redeem-transaction.d.ts +5 -4
  140. package/dist/components/redeem-transaction.esm.js +44 -55
  141. package/dist/components/redeem-transaction.esm.js.map +1 -1
  142. package/dist/components/redeem-transaction.js +44 -55
  143. package/dist/components/redeem-transaction.js.map +1 -1
  144. package/dist/components/select-nonprofit.d.ts +4 -4
  145. package/dist/components/select-nonprofit.esm.js +20 -16
  146. package/dist/components/select-nonprofit.esm.js.map +1 -1
  147. package/dist/components/select-nonprofit.js +20 -16
  148. package/dist/components/select-nonprofit.js.map +1 -1
  149. package/dist/components/select-subscription-nonprofit.d.ts +67 -0
  150. package/dist/components/select-subscription-nonprofit.esm.js +373 -0
  151. package/dist/components/select-subscription-nonprofit.esm.js.map +1 -0
  152. package/dist/components/select-subscription-nonprofit.js +373 -0
  153. package/dist/components/select-subscription-nonprofit.js.map +1 -0
  154. package/dist/components/shopify.d.ts +8 -6
  155. package/dist/components/shopify.esm.js +1 -1
  156. package/dist/components/shopify.esm.js.map +1 -1
  157. package/dist/components/shopify.js +1 -1
  158. package/dist/components/shopify.js.map +1 -1
  159. package/dist/components/social-share.d.ts +47 -0
  160. package/dist/components/social-share.esm.js +170 -0
  161. package/dist/components/social-share.esm.js.map +1 -0
  162. package/dist/components/social-share.js +170 -0
  163. package/dist/components/social-share.js.map +1 -0
  164. package/dist/components/subscription-impact.d.ts +179 -0
  165. package/dist/components/subscription-impact.esm.js +269 -0
  166. package/dist/components/subscription-impact.esm.js.map +1 -0
  167. package/dist/components/subscription-impact.js +269 -0
  168. package/dist/components/subscription-impact.js.map +1 -0
  169. package/dist/components/subscription-management.d.ts +143 -14
  170. package/dist/components/subscription-management.esm.js +267 -31
  171. package/dist/components/subscription-management.esm.js.map +1 -1
  172. package/dist/components/subscription-management.js +267 -31
  173. package/dist/components/subscription-management.js.map +1 -1
  174. package/dist/index.d.ts +23 -14
  175. package/dist/index.esm.js +1 -1
  176. package/dist/index.js +1 -1
  177. package/dist/integrations/beam.d.ts +1 -1
  178. package/dist/integrations/beam.esm.js +1 -1
  179. package/dist/integrations/beam.js +1 -1
  180. package/dist/integrations/cart.d.ts +3 -3
  181. package/dist/integrations/cart.esm.js +1 -1
  182. package/dist/integrations/cart.js +1 -1
  183. package/dist/integrations/index.d.ts +12 -10
  184. package/dist/integrations/index.esm.js +1 -1
  185. package/dist/integrations/index.js +1 -1
  186. package/dist/integrations/logs.d.ts +2 -2
  187. package/dist/integrations/logs.esm.js +1 -1
  188. package/dist/integrations/logs.js +1 -1
  189. package/dist/integrations/session.esm.js +1 -1
  190. package/dist/integrations/session.js +1 -1
  191. package/dist/integrations/shopify.d.ts +7 -5
  192. package/dist/integrations/shopify.esm.js +1 -1
  193. package/dist/integrations/shopify.js +1 -1
  194. package/dist/integrations/statsig.d.ts +1 -1
  195. package/dist/integrations/statsig.esm.js +14 -10
  196. package/dist/integrations/statsig.esm.js.map +1 -1
  197. package/dist/integrations/statsig.js +14 -10
  198. package/dist/integrations/statsig.js.map +1 -1
  199. package/dist/integrations/utils.d.ts +4 -4
  200. package/dist/integrations/utils.esm.js +1 -1
  201. package/dist/integrations/utils.js +1 -1
  202. package/dist/react/beam-partner-logos.esm.js +1 -1
  203. package/dist/react/beam-partner-logos.js +1 -1
  204. package/dist/react/community-impact.d.ts +1 -1
  205. package/dist/react/community-impact.esm.js +1 -1
  206. package/dist/react/community-impact.esm.js.map +1 -1
  207. package/dist/react/community-impact.js +1 -1
  208. package/dist/react/community-impact.js.map +1 -1
  209. package/dist/react/cumulative-impact.d.ts +1 -1
  210. package/dist/react/cumulative-impact.esm.js +1 -1
  211. package/dist/react/cumulative-impact.esm.js.map +1 -1
  212. package/dist/react/cumulative-impact.js +1 -1
  213. package/dist/react/cumulative-impact.js.map +1 -1
  214. package/dist/react/impact-overview.d.ts +2 -1
  215. package/dist/react/impact-overview.esm.js +1 -1
  216. package/dist/react/impact-overview.esm.js.map +1 -1
  217. package/dist/react/impact-overview.js +1 -1
  218. package/dist/react/impact-overview.js.map +1 -1
  219. package/dist/react/index.d.ts +14 -4
  220. package/dist/react/index.esm.js +1 -1
  221. package/dist/react/index.js +1 -1
  222. package/dist/react/post-purchase.d.ts +4 -3
  223. package/dist/react/post-purchase.esm.js +1 -1
  224. package/dist/react/post-purchase.esm.js.map +1 -1
  225. package/dist/react/post-purchase.js +1 -1
  226. package/dist/react/post-purchase.js.map +1 -1
  227. package/dist/react/product-details-page.esm.js +1 -1
  228. package/dist/react/product-details-page.esm.js.map +1 -1
  229. package/dist/react/product-details-page.js +1 -1
  230. package/dist/react/product-details-page.js.map +1 -1
  231. package/dist/react/redeem-transaction.d.ts +4 -4
  232. package/dist/react/redeem-transaction.esm.js +1 -1
  233. package/dist/react/redeem-transaction.esm.js.map +1 -1
  234. package/dist/react/redeem-transaction.js +1 -1
  235. package/dist/react/redeem-transaction.js.map +1 -1
  236. package/dist/react/select-nonprofit.d.ts +4 -4
  237. package/dist/react/select-nonprofit.esm.js +1 -1
  238. package/dist/react/select-nonprofit.esm.js.map +1 -1
  239. package/dist/react/select-nonprofit.js +1 -1
  240. package/dist/react/select-nonprofit.js.map +1 -1
  241. package/dist/react/select-subscription-nonprofit.d.ts +19 -0
  242. package/dist/react/select-subscription-nonprofit.esm.js +2 -0
  243. package/dist/react/select-subscription-nonprofit.esm.js.map +1 -0
  244. package/dist/react/select-subscription-nonprofit.js +2 -0
  245. package/dist/react/select-subscription-nonprofit.js.map +1 -0
  246. package/dist/react/social-share.d.ts +12 -0
  247. package/dist/react/social-share.esm.js +2 -0
  248. package/dist/react/social-share.esm.js.map +1 -0
  249. package/dist/react/social-share.js +2 -0
  250. package/dist/react/social-share.js.map +1 -0
  251. package/dist/react/subscription-impact.d.ts +13 -0
  252. package/dist/react/subscription-impact.esm.js +2 -0
  253. package/dist/react/subscription-impact.esm.js.map +1 -0
  254. package/dist/react/subscription-impact.js +2 -0
  255. package/dist/react/subscription-impact.js.map +1 -0
  256. package/dist/react/subscription-management.d.ts +9 -8
  257. package/dist/react/subscription-management.esm.js +1 -1
  258. package/dist/react/subscription-management.esm.js.map +1 -1
  259. package/dist/react/subscription-management.js +1 -1
  260. package/dist/react/subscription-management.js.map +1 -1
  261. package/dist/utils/events.d.ts +4 -4
  262. package/dist/utils/events.esm.js +1 -1
  263. package/dist/utils/events.js +1 -1
  264. package/dist/utils/index.d.ts +4 -4
  265. package/dist/utils/index.esm.js +1 -1
  266. package/dist/utils/index.js +1 -1
  267. package/dist/utils/network-listeners.esm.js +1 -1
  268. package/dist/utils/network-listeners.js +1 -1
  269. package/package.json +1 -1
  270. package/dist/chunks/_share-dialog-dependencies-1vD2dmjh.esm.js +0 -2
  271. package/dist/chunks/_share-dialog-dependencies-1vD2dmjh.esm.js.map +0 -1
  272. package/dist/chunks/_share-dialog-dependencies-jvbBs-cC.esm.js +0 -2
  273. package/dist/chunks/_share-dialog-dependencies-jvbBs-cC.esm.js.map +0 -1
  274. package/dist/chunks/index-8yrr7ZZv.esm.js.map +0 -1
  275. package/dist/chunks/index-EHubF2KN.esm.js +0 -2
  276. package/dist/chunks/index-EHubF2KN.esm.js.map +0 -1
  277. package/dist/chunks/index-FIfx75-P.esm.js +0 -2
  278. package/dist/chunks/index-FIfx75-P.esm.js.map +0 -1
  279. package/dist/chunks/index-GocMPeWn.esm.js +0 -2
  280. package/dist/chunks/index-GocMPeWn.esm.js.map +0 -1
  281. package/dist/chunks/index-HyzTMHYl.esm.js +0 -2
  282. package/dist/chunks/index-HyzTMHYl.esm.js.map +0 -1
  283. package/dist/chunks/index-LmCqzg5B.esm.js +0 -2
  284. package/dist/chunks/index-LmCqzg5B.esm.js.map +0 -1
  285. package/dist/chunks/index-Lw32NXij.esm.js.map +0 -1
  286. package/dist/chunks/index-V-BsPYtl.esm.js +0 -2
  287. package/dist/chunks/index-V-BsPYtl.esm.js.map +0 -1
  288. package/dist/chunks/index-bUooCSdc.esm.js +0 -2
  289. package/dist/chunks/index-bUooCSdc.esm.js.map +0 -1
  290. package/dist/chunks/index-cekgAcEE.esm.js +0 -2
  291. package/dist/chunks/index-cekgAcEE.esm.js.map +0 -1
  292. package/dist/chunks/index-fINTvZVX.esm.js +0 -2
  293. package/dist/chunks/index-iMRMlkF3.esm.js +0 -2
  294. package/dist/chunks/index-iMRMlkF3.esm.js.map +0 -1
  295. package/dist/chunks/index-kxMe_AX1.esm.js +0 -2
  296. package/dist/chunks/index-o7YiP4gC.esm.js +0 -2
  297. package/dist/chunks/index-o7YiP4gC.esm.js.map +0 -1
  298. package/dist/chunks/index-phDmC-TS.esm.js.map +0 -1
  299. package/dist/chunks/index-uF-Qtewb.esm.js.map +0 -1
  300. package/dist/chunks/lit-qtGbjGnK.esm.js.map +0 -1
  301. package/dist/chunks/loading-template-Av0IUyKF.esm.js +0 -2
  302. package/dist/chunks/localize-F31ae3j6.esm.js +0 -30
  303. package/dist/chunks/localize-F31ae3j6.esm.js.map +0 -1
  304. package/dist/chunks/localize-fH8KOrMi.esm.js +0 -30
  305. package/dist/chunks/localize-fH8KOrMi.esm.js.map +0 -1
  306. package/dist/chunks/order-page-0azkW5QD.esm.js +0 -2
  307. package/dist/chunks/order-page-0azkW5QD.esm.js.map +0 -1
  308. package/dist/chunks/order-page-DPx5SUKM.esm.d.ts +0 -255
  309. package/dist/chunks/order-page-n12hvsCN.esm.js +0 -2
  310. package/dist/chunks/order-page-n12hvsCN.esm.js.map +0 -1
  311. package/dist/chunks/progress-bar-Sn2QspHy.esm.js.map +0 -1
  312. package/dist/chunks/routes-31m626dW.esm.js +0 -2
  313. package/dist/chunks/routes-31m626dW.esm.js.map +0 -1
  314. package/dist/chunks/routes-sbqL3QFm.esm.js +0 -2
  315. package/dist/chunks/routes-sbqL3QFm.esm.js.map +0 -1
  316. package/dist/chunks/update-cart-NEt4A8dB.esm.js +0 -2
  317. package/dist/chunks/update-cart-NEt4A8dB.esm.js.map +0 -1
  318. package/dist/chunks/update-cart-XAwwFxhS.esm.js +0 -2
  319. package/dist/chunks/update-cart-XAwwFxhS.esm.js.map +0 -1
  320. package/dist/chunks/vendor-jQ8cxMpw.esm.js.map +0 -1
@@ -0,0 +1,47 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement } from 'lit';
3
+ import * as lit_html from 'lit-html';
4
+ import '../chunks/progress-bar-0VS_AmEf.esm.js';
5
+ import './beam-partner-logos.js';
6
+ import { T as TNumericId } from '../chunks/types-zbTZ8-KP.esm.js';
7
+ import { L as LANGUAGES } from '../chunks/types-aju0qrRe.esm.js';
8
+
9
+ type RequiredConfig = {
10
+ apiKey: string;
11
+ storeId: TNumericId;
12
+ nonprofitId: TNumericId;
13
+ };
14
+ declare class BeamSocialShare extends LitElement {
15
+ static tagName: string;
16
+ apiKey?: RequiredConfig["apiKey"];
17
+ storeId?: RequiredConfig["storeId"];
18
+ nonprofitId?: RequiredConfig["nonprofitId"];
19
+ baseUrl: string;
20
+ lang: LANGUAGES;
21
+ debug: boolean;
22
+ private brandName;
23
+ private shareImageUrl;
24
+ private dataUrl?;
25
+ private file?;
26
+ private isMobile;
27
+ private windowResized;
28
+ get configLang(): LANGUAGES;
29
+ connectedCallback(): void;
30
+ disconnectedCallback(): void;
31
+ checkViewport: () => void;
32
+ private fetchImpactData;
33
+ private updateImpactData;
34
+ firstUpdated(): Promise<void>;
35
+ private openSystemShareSheet;
36
+ private handleClickCopy;
37
+ private handleClickDownload;
38
+ render(): lit_html.TemplateResult<1>;
39
+ static styles: lit.CSSResult[];
40
+ }
41
+ declare global {
42
+ interface HTMLElementTagNameMap {
43
+ "beam-social-share": BeamSocialShare;
44
+ }
45
+ }
46
+
47
+ export { BeamSocialShare };
@@ -0,0 +1,170 @@
1
+ import{f as m,g as n,t as l,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/shoelace-components-NR11kwmz.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"./beam-partner-logos.esm.js";import{c as f,d as y,e as u}from"../chunks/enforce-config-HksNiOMu.esm.js";import{D as w,S as x,W as S,g as U}from"../chunks/routes-rmhOokKz.esm.js";import{_ as I}from"../chunks/loading-template-mLjOGXMj.esm.js";import{u as p,s as r}from"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";var k=Object.defineProperty,v=Object.getOwnPropertyDescriptor,i=(c,t,a,o)=>{for(var s=o>1?void 0:o?v(t,a):t,h=c.length-1,d;h>=0;h--)(d=c[h])&&(s=(o?d(t,a,s):d(s))||s);return o&&s&&k(t,a,s),s};class e extends g{constructor(){super(...arguments),this.baseUrl=w,this.lang="en",this.debug=!1,this.brandName=null,this.shareImageUrl=null,this.isMobile=!1,this.windowResized=!1,this.checkViewport=()=>{this.windowResized=window.innerWidth<=768}}get configLang(){return x[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.checkViewport),this.checkViewport()}disconnectedCallback(){window.removeEventListener("resize",this.checkViewport),super.disconnectedCallback()}async fetchImpactData(){u(["apiKey","storeId","nonprofitId"],this);try{return await U({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:S.community_impact,version:"1.0.0",lang:this.configLang}})}catch(t){throw this.debug&&console.error("Failed to fetch impact data",t),t}}async updateImpactData(){try{const t=await this.fetchImpactData();if(t){this.brandName=t.chain.name;const a=t.community[0];if(this.shareImageUrl=a?.share.imageUrl,this.shareImageUrl){const o=await p(this.shareImageUrl);this.file=o,this.dataUrl=URL.createObjectURL(o)}}}catch(t){this.debug&&console.error("Error updating impact data:",t)}}async firstUpdated(){await this.updateImpactData(),this.isMobile=/Mobi|Android/i.test(navigator.userAgent)||"ontouchstart"in window||navigator.maxTouchPoints>0}async openSystemShareSheet(t){if(t)try{const a=await p(t);navigator.share&&this.brandName&&await navigator.share({files:[a],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(a){this.debug&&console.error("Failed to open share sheet",a)}}async handleClickCopy(){if(this.file)try{await navigator.clipboard.write([new ClipboardItem({"image/png":this.file})])}catch(t){this.debug&&console.error("Failed to copy image to clipboard:",t)}}handleClickDownload(t){const a=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(a.href=this.dataUrl,a.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?I():b`
2
+ <div class="share-container ${this.windowResized||this.isMobile?"mobile":"desktop"}">
3
+ <h2 class="share-title">${r[this.lang].impactShareTitle()}</h2>
4
+ <p class="share-text">${r[this.lang].impactShareText({brandName:this.brandName})}</p>
5
+ <img src="${this.shareImageUrl}" alt="${r[this.lang].impactShareTitle()}" class="share-image" />
6
+ <div class="share-actions">
7
+ <button class="plain-button button share-action-button" @click="${this.handleClickCopy}">
8
+ <sl-icon
9
+ library="lucide"
10
+ name="copy"
11
+ label="${r[this.lang].impactShareCopy()}"
12
+ class="share-action-icon"
13
+ ></sl-icon>
14
+ <div class="share-action-text">${r[this.lang].impactShareCopy()}</div>
15
+ </button>
16
+ <a
17
+ class="plain-button button share-action-button plain-link"
18
+ download="${r[this.lang].impactShareTitle()}"
19
+ href="${this.dataUrl}"
20
+ @click="${this.handleClickDownload}"
21
+ >
22
+ <sl-icon
23
+ library="lucide"
24
+ name="download"
25
+ label="${r[this.lang].impactShareDownload()}"
26
+ class="share-action-icon"
27
+ ></sl-icon>
28
+ <div class="share-action-text">${r[this.lang].impactShareDownload()}</div>
29
+ </a>
30
+ </div>
31
+ </div>
32
+ `}}e.tagName="beam-social-share",e.styles=[f,m`
33
+ @font-face {
34
+ font-family: "Mabry-Bold";
35
+ src: url("../../../assets/fonts/mabry-bold.otf") format("opentype");
36
+ font-weight: bold;
37
+ font-style: normal;
38
+ }
39
+ @font-face {
40
+ font-family: "Mabry-Medium";
41
+ src: url("../../../assets/fonts/mabry-medium.otf") format("opentype");
42
+ font-weight: bold;
43
+ font-style: normal;
44
+ }
45
+ :host {
46
+ align-items: center;
47
+ justify-content: center;
48
+ display: flex;
49
+ box-sizing: border-box;
50
+ width: 100%;
51
+ }
52
+
53
+ .share-container {
54
+ display: flex;
55
+ flex-direction: column;
56
+ align-items: center;
57
+ justify-content: center;
58
+ max-width: 700px;
59
+ text-align: center;
60
+ }
61
+
62
+ .share-container.mobile {
63
+ padding: 1rem;
64
+ max-width: 100%;
65
+ }
66
+
67
+ .share-title {
68
+ font-family: "Mabry-Bold", sans-serif;
69
+ font-size: 2.5rem;
70
+ font-weight: bold;
71
+ word-break: break-word;
72
+ margin: 10px 0;
73
+ }
74
+
75
+ .share-title.mobile {
76
+ font-size: 1.5rem;
77
+ }
78
+
79
+ .share-text {
80
+ font-family: "Mabry-Medium", sans-serif;
81
+ font-size: 1.25rem;
82
+ line-height: 1.4;
83
+ word-break: break-word;
84
+ margin: 10px 0;
85
+ max-width: 500px;
86
+ }
87
+
88
+ .share-text.mobile {
89
+ font-size: 1rem;
90
+ }
91
+
92
+ .share-image {
93
+ border-radius: 8px;
94
+ width: 100%;
95
+ max-width: 300px;
96
+ height: auto;
97
+ display: block;
98
+ margin: 20px auto;
99
+ }
100
+
101
+ .share-actions {
102
+ display: flex;
103
+ flex-direction: row;
104
+ justify-content: center;
105
+ gap: 10px;
106
+ align-items: center;
107
+ margin: 20px 0;
108
+ }
109
+
110
+ .share-actions.mobile {
111
+ flex-direction: column;
112
+ }
113
+
114
+ .share-action-button {
115
+ display: flex;
116
+ justify-content: center;
117
+ align-items: center;
118
+ padding: 10px 20px;
119
+ border: 1px solid #ccc;
120
+ border-radius: 4px;
121
+ background-color: #fff;
122
+ text-decoration: none;
123
+ color: #333;
124
+ cursor: pointer;
125
+ transition: background-color 0.3s, border-color 0.3s;
126
+ }
127
+
128
+ .share-action-button:hover {
129
+ background-color: #f0f0f0;
130
+ border-color: #bbb;
131
+ }
132
+
133
+ .share-action-icon {
134
+ font-size: 1.25rem;
135
+ margin-right: 8px;
136
+ }
137
+
138
+ .share-action-text {
139
+ font-family: "Mabry-Medium", sans-serif;
140
+ font-size: 1rem;
141
+ line-height: 1.4;
142
+ margin-top: 5px;
143
+ }
144
+
145
+ @media (max-width: 600px) {
146
+ .share-title {
147
+ font-size: 1.5rem;
148
+ }
149
+
150
+ .share-text {
151
+ font-size: 1rem;
152
+ }
153
+
154
+ .share-image {
155
+ max-width: 240px;
156
+ }
157
+
158
+ .share-actions {
159
+ flex-direction: row;
160
+ width: 50%;
161
+ margin: 10px 0;
162
+ }
163
+
164
+ .share-action-button {
165
+ width: 100%;
166
+ margin: 5px 0;
167
+ }
168
+ }
169
+ `],i([n({type:String})],e.prototype,"apiKey",2),i([n({type:Number})],e.prototype,"storeId",2),i([n({type:Number})],e.prototype,"nonprofitId",2),i([n({type:String})],e.prototype,"baseUrl",2),i([n({type:String})],e.prototype,"lang",2),i([n({type:Boolean})],e.prototype,"debug",2),i([l()],e.prototype,"brandName",2),i([l()],e.prototype,"shareImageUrl",2),i([l()],e.prototype,"dataUrl",2),i([l()],e.prototype,"file",2),i([l()],e.prototype,"isMobile",2),i([l()],e.prototype,"windowResized",2),y(e);export{e as BeamSocialShare};
170
+ //# sourceMappingURL=social-share.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-share.esm.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n const communityImpact = data.community[0];\n this.shareImageUrl = communityImpact?.share.imageUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n const target = event.currentTarget as HTMLAnchorElement;\n\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","communityImpact","file","urlToFile","imageUrl","strings","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"myBAwBO,MAAMA,UAAwBC,CAAW,CAAzC,aAMuB,CAAA,MAAA,GAAA,SAAA,EAAA,KAAO,QAAUC,EACjB,KAAO,KAAkB,KACxB,KAAO,MAAQ,GAEnC,KAAQ,UAA2B,KACnC,KAAQ,cAA+B,KAGvC,KAAQ,SAAW,GACnB,KAAQ,cAAgB,GAiBjC,KAAgB,cAAA,IAAM,CACpB,KAAK,cAAgB,OAAO,YAAc,GAC5C,CAAA,CAjBA,IAAI,YAAa,CACf,OAAOC,EAAoB,KAAK,IAAI,GAAK,IAC3C,CAEA,mBAAoB,CAClB,MAAM,kBAAkB,EACxB,OAAO,iBAAiB,SAAU,KAAK,aAAa,EACpD,KAAK,eACP,CAEA,sBAAuB,CACrB,OAAO,oBAAoB,SAAU,KAAK,aAAa,EACvD,MAAM,qBAAqB,CAC7B,CAMA,MAAc,iBAAkB,CACzBC,EAA8B,CAAC,SAAU,UAAW,aAAa,EAAG,IAAI,EAG7E,GAAI,CAaF,OAZY,MAAMC,EAAU,CAC1B,QAAS,KAAK,QACd,QAAS,CAAE,cAAe,WAAW,KAAK,MAAM,EAAG,EACnD,YAAa,CACX,QAAS,KAAK,QACd,oBAAqB,EACrB,YAAa,KAAK,YAClB,WAAYC,EAAa,iBACzB,QAAS,QACT,KAAM,KAAK,UACb,CACF,CAAC,CAEH,OAASC,EAAO,CACd,MAAI,KAAK,OACP,QAAQ,MAAM,8BAA+BA,CAAK,EAE9CA,CACR,CACF,CAGA,MAAc,kBAAmB,CAC/B,GAAI,CACF,MAAMC,EAAO,MAAM,KAAK,kBACxB,GAAIA,EAAM,CACR,KAAK,UAAYA,EAAK,MAAM,KAC5B,MAAMC,EAAkBD,EAAK,UAAU,CAAC,EAGxC,GAFA,KAAK,cAAgBC,GAAiB,MAAM,SAExC,KAAK,cAAe,CACtB,MAAMC,EAAO,MAAMC,EAAU,KAAK,aAAa,EAC/C,KAAK,KAAOD,EACZ,KAAK,QAAU,IAAI,gBAAgBA,CAAI,CACzC,CACF,CACF,OAASH,EAAO,CACV,KAAK,OACP,QAAQ,MAAM,8BAA+BA,CAAK,CAEtD,CACF,CAEA,MAAM,cAAe,CACnB,MAAM,KAAK,mBACX,KAAK,SACH,gBAAgB,KAAK,UAAU,SAAS,GAAK,iBAAkB,QAAU,UAAU,eAAiB,CACxG,CAEA,MAAc,qBAAqBK,EAAkB,CACnD,GAAKA,EAEL,GAAI,CACF,MAAMF,EAAO,MAAMC,EAAUC,CAAQ,EACjC,UAAU,OAAS,KAAK,WAC1B,MAAM,UAAU,MAAM,CACpB,MAAO,CAACF,CAAI,EACZ,MAAOG,EAAQ,KAAK,IAAI,EAAE,iBAAiB,EAC3C,KAAMA,EAAQ,KAAK,IAAI,EAAE,gBAAgB,CAAE,UAAW,KAAK,SAAU,CAAC,CACxE,CAAC,CAEL,OAASN,EAAO,CACV,KAAK,OACP,QAAQ,MAAM,6BAA8BA,CAAK,CAErD,CACF,CAEA,MAAc,iBAAkB,CAC9B,GAAI,KAAK,KACP,GAAI,CACF,MAAM,UAAU,UAAU,MAAM,CAAC,IAAI,cAAc,CAAE,YAAa,KAAK,IAAK,CAAC,CAAC,CAAC,CACjF,OAASA,EAAO,CACV,KAAK,OACP,QAAQ,MAAM,qCAAsCA,CAAK,CAE7D,CAEJ,CAEQ,oBAAoBO,EAAc,CACxC,MAAMC,EAASD,EAAM,cAEjB,KAAK,UAAY,KAAK,eACxBA,EAAM,iBACN,KAAK,qBAAqB,KAAK,aAAa,GACnC,KAAK,UACdC,EAAO,KAAO,KAAK,QACnBA,EAAO,SAAWF,EAAQ,KAAK,IAAI,EAAE,iBAAiB,EAE1D,CAEA,QAAS,CACP,MAAI,CAAC,KAAK,WAAa,CAAC,KAAK,eAAiB,CAAC,KAAK,QAC3CG,EAGFC,EAAAA;AAAAA,oCACyB,KAAK,eAAiB,KAAK,SAAW,SAAW,SAAS;AAAA,kCAC5DJ,EAAQ,KAAK,IAAI,EAAE,kBAAkB;AAAA,gCACvCA,EAAQ,KAAK,IAAI,EAAE,gBAAgB,CAAE,UAAW,KAAK,SAAU,CAAC,CAAC;AAAA,oBAC7E,KAAK,aAAa,UAAUA,EAAQ,KAAK,IAAI,EAAE,kBAAkB;AAAA;AAAA,4EAET,KAAK,eAAe;AAAA;AAAA;AAAA;AAAA,uBAIzEA,EAAQ,KAAK,IAAI,EAAE,iBAAiB;AAAA;AAAA;AAAA,6CAGdA,EAAQ,KAAK,IAAI,EAAE,iBAAiB;AAAA;AAAA;AAAA;AAAA,wBAIzDA,EAAQ,KAAK,IAAI,EAAE,kBAAkB;AAAA,oBACzC,KAAK,OAAO;AAAA,sBACV,KAAK,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,uBAKvBA,EAAQ,KAAK,IAAI,EAAE,qBAAqB;AAAA;AAAA;AAAA,6CAGlBA,EAAQ,KAAK,IAAI,EAAE,qBAAqB;AAAA;AAAA;AAAA;AAAA,KAKnF,CA+IF,CAzTab,EACJ,QAAU,oBADNA,EA4KJ,OAAS,CACdkB,EACAC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KA0IF,EArTmCC,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,CAHf,EAAArB,EAGwB,sBACPoB,EAAA,CAA3BC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EAJfrB,EAIiB,UAAA,UAAA,CAAA,EACAoB,EAAA,CAA3BC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EALfrB,EAKiB,UACOoB,cAAAA,CAAAA,EAAAA,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EANfrB,EAMwB,UACAoB,UAAAA,CAAAA,EAAAA,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EAPfrB,EAOwB,UACCoB,OAAAA,CAAAA,EAAAA,EAAA,CAAnCC,EAAS,CAAE,KAAM,OAAQ,CAAC,GARhBrB,EAQyB,UAAA,QAAA,CAAA,EAEnBoB,EAAA,CAAhBE,EAAAA,GAVUtB,EAUM,UAAA,YAAA,CAAA,EACAoB,EAAA,CAAhBE,EAXU,CAAA,EAAAtB,EAWM,UACAoB,gBAAAA,CAAAA,EAAAA,EAAA,CAAhBE,EAAM,CAAA,EAZItB,EAYM,UACAoB,UAAAA,CAAAA,EAAAA,EAAA,CAAhBE,EAAM,CAAA,EAbItB,EAaM,UAAA,OAAA,CAAA,EACAoB,EAAA,CAAhBE,GAdU,EAAAtB,EAcM,wBACAoB,EAAA,CAAhBE,EAfU,CAAA,EAAAtB,EAeM,UA4SnBuB,gBAAAA,CAAAA,EAAAA,EAAoBvB,CAAe"}
@@ -0,0 +1,170 @@
1
+ import{f as m,g as n,t as l,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/shoelace-components-yXqj8DyM.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"./beam-partner-logos.js";import{c as f,d as y,e as u}from"../chunks/enforce-config-er6B5Gkj.esm.js";import{D as w,S as x,W as S,g as U}from"../chunks/routes-r5D_LdgT.esm.js";import{_ as I}from"../chunks/loading-template-mLjOGXMj.esm.js";import{u as p,s as r}from"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.js";var k=Object.defineProperty,v=Object.getOwnPropertyDescriptor,i=(c,t,a,o)=>{for(var s=o>1?void 0:o?v(t,a):t,h=c.length-1,d;h>=0;h--)(d=c[h])&&(s=(o?d(t,a,s):d(s))||s);return o&&s&&k(t,a,s),s};class e extends g{constructor(){super(...arguments),this.baseUrl=w,this.lang="en",this.debug=!1,this.brandName=null,this.shareImageUrl=null,this.isMobile=!1,this.windowResized=!1,this.checkViewport=()=>{this.windowResized=window.innerWidth<=768}}get configLang(){return x[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.checkViewport),this.checkViewport()}disconnectedCallback(){window.removeEventListener("resize",this.checkViewport),super.disconnectedCallback()}async fetchImpactData(){u(["apiKey","storeId","nonprofitId"],this);try{return await U({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:S.community_impact,version:"1.0.0",lang:this.configLang}})}catch(t){throw this.debug&&console.error("Failed to fetch impact data",t),t}}async updateImpactData(){try{const t=await this.fetchImpactData();if(t){this.brandName=t.chain.name;const a=t.community[0];if(this.shareImageUrl=a?.share.imageUrl,this.shareImageUrl){const o=await p(this.shareImageUrl);this.file=o,this.dataUrl=URL.createObjectURL(o)}}}catch(t){this.debug&&console.error("Error updating impact data:",t)}}async firstUpdated(){await this.updateImpactData(),this.isMobile=/Mobi|Android/i.test(navigator.userAgent)||"ontouchstart"in window||navigator.maxTouchPoints>0}async openSystemShareSheet(t){if(t)try{const a=await p(t);navigator.share&&this.brandName&&await navigator.share({files:[a],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(a){this.debug&&console.error("Failed to open share sheet",a)}}async handleClickCopy(){if(this.file)try{await navigator.clipboard.write([new ClipboardItem({"image/png":this.file})])}catch(t){this.debug&&console.error("Failed to copy image to clipboard:",t)}}handleClickDownload(t){const a=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(a.href=this.dataUrl,a.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?I():b`
2
+ <div class="share-container ${this.windowResized||this.isMobile?"mobile":"desktop"}">
3
+ <h2 class="share-title">${r[this.lang].impactShareTitle()}</h2>
4
+ <p class="share-text">${r[this.lang].impactShareText({brandName:this.brandName})}</p>
5
+ <img src="${this.shareImageUrl}" alt="${r[this.lang].impactShareTitle()}" class="share-image" />
6
+ <div class="share-actions">
7
+ <button class="plain-button button share-action-button" @click="${this.handleClickCopy}">
8
+ <sl-icon
9
+ library="lucide"
10
+ name="copy"
11
+ label="${r[this.lang].impactShareCopy()}"
12
+ class="share-action-icon"
13
+ ></sl-icon>
14
+ <div class="share-action-text">${r[this.lang].impactShareCopy()}</div>
15
+ </button>
16
+ <a
17
+ class="plain-button button share-action-button plain-link"
18
+ download="${r[this.lang].impactShareTitle()}"
19
+ href="${this.dataUrl}"
20
+ @click="${this.handleClickDownload}"
21
+ >
22
+ <sl-icon
23
+ library="lucide"
24
+ name="download"
25
+ label="${r[this.lang].impactShareDownload()}"
26
+ class="share-action-icon"
27
+ ></sl-icon>
28
+ <div class="share-action-text">${r[this.lang].impactShareDownload()}</div>
29
+ </a>
30
+ </div>
31
+ </div>
32
+ `}}e.tagName="beam-social-share",e.styles=[f,m`
33
+ @font-face {
34
+ font-family: "Mabry-Bold";
35
+ src: url("../../../assets/fonts/mabry-bold.otf") format("opentype");
36
+ font-weight: bold;
37
+ font-style: normal;
38
+ }
39
+ @font-face {
40
+ font-family: "Mabry-Medium";
41
+ src: url("../../../assets/fonts/mabry-medium.otf") format("opentype");
42
+ font-weight: bold;
43
+ font-style: normal;
44
+ }
45
+ :host {
46
+ align-items: center;
47
+ justify-content: center;
48
+ display: flex;
49
+ box-sizing: border-box;
50
+ width: 100%;
51
+ }
52
+
53
+ .share-container {
54
+ display: flex;
55
+ flex-direction: column;
56
+ align-items: center;
57
+ justify-content: center;
58
+ max-width: 700px;
59
+ text-align: center;
60
+ }
61
+
62
+ .share-container.mobile {
63
+ padding: 1rem;
64
+ max-width: 100%;
65
+ }
66
+
67
+ .share-title {
68
+ font-family: "Mabry-Bold", sans-serif;
69
+ font-size: 2.5rem;
70
+ font-weight: bold;
71
+ word-break: break-word;
72
+ margin: 10px 0;
73
+ }
74
+
75
+ .share-title.mobile {
76
+ font-size: 1.5rem;
77
+ }
78
+
79
+ .share-text {
80
+ font-family: "Mabry-Medium", sans-serif;
81
+ font-size: 1.25rem;
82
+ line-height: 1.4;
83
+ word-break: break-word;
84
+ margin: 10px 0;
85
+ max-width: 500px;
86
+ }
87
+
88
+ .share-text.mobile {
89
+ font-size: 1rem;
90
+ }
91
+
92
+ .share-image {
93
+ border-radius: 8px;
94
+ width: 100%;
95
+ max-width: 300px;
96
+ height: auto;
97
+ display: block;
98
+ margin: 20px auto;
99
+ }
100
+
101
+ .share-actions {
102
+ display: flex;
103
+ flex-direction: row;
104
+ justify-content: center;
105
+ gap: 10px;
106
+ align-items: center;
107
+ margin: 20px 0;
108
+ }
109
+
110
+ .share-actions.mobile {
111
+ flex-direction: column;
112
+ }
113
+
114
+ .share-action-button {
115
+ display: flex;
116
+ justify-content: center;
117
+ align-items: center;
118
+ padding: 10px 20px;
119
+ border: 1px solid #ccc;
120
+ border-radius: 4px;
121
+ background-color: #fff;
122
+ text-decoration: none;
123
+ color: #333;
124
+ cursor: pointer;
125
+ transition: background-color 0.3s, border-color 0.3s;
126
+ }
127
+
128
+ .share-action-button:hover {
129
+ background-color: #f0f0f0;
130
+ border-color: #bbb;
131
+ }
132
+
133
+ .share-action-icon {
134
+ font-size: 1.25rem;
135
+ margin-right: 8px;
136
+ }
137
+
138
+ .share-action-text {
139
+ font-family: "Mabry-Medium", sans-serif;
140
+ font-size: 1rem;
141
+ line-height: 1.4;
142
+ margin-top: 5px;
143
+ }
144
+
145
+ @media (max-width: 600px) {
146
+ .share-title {
147
+ font-size: 1.5rem;
148
+ }
149
+
150
+ .share-text {
151
+ font-size: 1rem;
152
+ }
153
+
154
+ .share-image {
155
+ max-width: 240px;
156
+ }
157
+
158
+ .share-actions {
159
+ flex-direction: row;
160
+ width: 50%;
161
+ margin: 10px 0;
162
+ }
163
+
164
+ .share-action-button {
165
+ width: 100%;
166
+ margin: 5px 0;
167
+ }
168
+ }
169
+ `],i([n({type:String})],e.prototype,"apiKey",2),i([n({type:Number})],e.prototype,"storeId",2),i([n({type:Number})],e.prototype,"nonprofitId",2),i([n({type:String})],e.prototype,"baseUrl",2),i([n({type:String})],e.prototype,"lang",2),i([n({type:Boolean})],e.prototype,"debug",2),i([l()],e.prototype,"brandName",2),i([l()],e.prototype,"shareImageUrl",2),i([l()],e.prototype,"dataUrl",2),i([l()],e.prototype,"file",2),i([l()],e.prototype,"isMobile",2),i([l()],e.prototype,"windowResized",2),y(e);export{e as BeamSocialShare};
170
+ //# sourceMappingURL=social-share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-share.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n const communityImpact = data.community[0];\n this.shareImageUrl = communityImpact?.share.imageUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n const target = event.currentTarget as HTMLAnchorElement;\n\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","communityImpact","file","urlToFile","imageUrl","strings","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement, PropertyValues } from 'lit';
3
+ import * as lit_html from 'lit-html';
4
+ import * as lodash from 'lodash';
5
+ import { c as TUrl, T as TNumericId, a as TId } from '../chunks/types-zbTZ8-KP.esm.js';
6
+ import { L as LANGUAGES } from '../chunks/types-aju0qrRe.esm.js';
7
+ import '../chunks/progress-bar-0VS_AmEf.esm.js';
8
+ import '../chunks/share-button-hDn8fnBI.esm.js';
9
+
10
+ declare class BeamInfoPill extends LitElement {
11
+ infoText: string;
12
+ static get styles(): lit.CSSResult;
13
+ render(): lit_html.TemplateResult<1>;
14
+ }
15
+ declare global {
16
+ interface HTMLElementTagNameMap {
17
+ "beam-info-pill": BeamInfoPill;
18
+ }
19
+ }
20
+
21
+ type RequiredConfig = {
22
+ apiKey: string;
23
+ nonprofitId: TNumericId;
24
+ beamUserId: TId;
25
+ };
26
+ declare class BeamSubscriptionImpact extends LitElement {
27
+ static tagName: string;
28
+ baseUrl: TUrl;
29
+ apiKey?: RequiredConfig["apiKey"];
30
+ storeId?: number;
31
+ nonprofitId?: RequiredConfig["nonprofitId"];
32
+ beamUserId?: RequiredConfig["beamUserId"];
33
+ lang: LANGUAGES;
34
+ debug: boolean;
35
+ private isMobile;
36
+ get configLang(): LANGUAGES;
37
+ getImpactData: () => Promise<{
38
+ chain: {
39
+ name: string;
40
+ logoUrl: string | null;
41
+ communityImpactUrl: string | null;
42
+ donationTypeName: string | null;
43
+ matchDonationTypeName: string | null;
44
+ };
45
+ store: {
46
+ name: string | null;
47
+ displayName: string | null;
48
+ communityPageURL: string | null;
49
+ };
50
+ config: {
51
+ web: {
52
+ title: string;
53
+ description: string;
54
+ promoDescriptionPrefix?: string | undefined;
55
+ promoDescription?: string | undefined;
56
+ theme?: {
57
+ [key: string]: unknown;
58
+ } | null | undefined;
59
+ nonprofitSelectedHeader?: string | undefined;
60
+ nonprofitUnselectedHeader?: string | undefined;
61
+ dynamicStrings?: {
62
+ [key: string]: string;
63
+ } | null | undefined;
64
+ additionalStrings?: {
65
+ [key: string]: string;
66
+ } | null | undefined;
67
+ disableAnimation?: boolean | undefined;
68
+ promo?: {
69
+ "promo-text-long": string;
70
+ "promo-text-short": string;
71
+ "promo-cause-alt-text": string;
72
+ } | undefined;
73
+ };
74
+ mobileWeb?: {
75
+ title: string;
76
+ description: string;
77
+ nonprofitSelectedHeader?: string | undefined;
78
+ nonprofitUnselectedHeader?: string | undefined;
79
+ } | undefined;
80
+ mobile: {
81
+ title: string;
82
+ description: string;
83
+ nonprofitSelectedHeader?: string | undefined;
84
+ nonprofitUnselectedHeader?: string | undefined;
85
+ };
86
+ enableNonprofitDeselection?: boolean | undefined;
87
+ };
88
+ personal: {
89
+ imageUrl: string | null;
90
+ nonprofit: {
91
+ id: number;
92
+ name: string;
93
+ cause: string | null;
94
+ causeIconUrl: string | null;
95
+ causeIconSelectedUrl: string | null;
96
+ causeColor: string | null;
97
+ website: string | null;
98
+ websiteLinkText: string;
99
+ badge?: string | undefined;
100
+ includeInPersonalImpact?: boolean | undefined;
101
+ };
102
+ impact: {
103
+ description: string | null;
104
+ goalCompletionText: string;
105
+ goalProgressText: string;
106
+ goalProgressPercentage: number;
107
+ };
108
+ share: {
109
+ imageUrl: string | null;
110
+ };
111
+ filters?: string[] | undefined;
112
+ }[];
113
+ community: {
114
+ imageUrl: string | null;
115
+ nonprofit: {
116
+ id: number;
117
+ name: string;
118
+ cause: string | null;
119
+ causeIconUrl: string | null;
120
+ causeIconSelectedUrl: string | null;
121
+ causeColor: string | null;
122
+ website: string | null;
123
+ websiteLinkText: string;
124
+ badge?: string | undefined;
125
+ includeInPersonalImpact?: boolean | undefined;
126
+ };
127
+ impact: {
128
+ description: string | null;
129
+ goalCompletionText: string;
130
+ goalProgressText: string;
131
+ goalProgressPercentage: number;
132
+ };
133
+ share: {
134
+ imageUrl: string | null;
135
+ };
136
+ filters?: string[] | undefined;
137
+ }[];
138
+ promo: {
139
+ isActive: boolean;
140
+ multiplier: number | null;
141
+ } | null;
142
+ }>;
143
+ private impactDataController;
144
+ impactTitleRefs: HTMLElement[];
145
+ impactLinkRefs: HTMLElement[];
146
+ connectedCallback(): void;
147
+ updated(changedProperties: PropertyValues): Promise<void>;
148
+ disconnectedCallback(): void;
149
+ /**
150
+ * Safari does not fire loading events on the document FontFaceSet, but it does implement the .ready Promise
151
+ * Call this method to wait for font loads that may be triggered by content changes
152
+ */
153
+ handleFontLoad<T = any>(callback: () => T | void): Promise<void | T>;
154
+ get cssVariables(): any;
155
+ evaluateBreakPoints: lodash.DebouncedFuncLeading<() => void>;
156
+ resizeElements: lodash.DebouncedFuncLeading<() => void>;
157
+ render(): "" | lit_html.TemplateResult<1>;
158
+ renderInlineCard(impactCard: {
159
+ title: string;
160
+ description: string;
161
+ image: string | null;
162
+ link: string | null;
163
+ linkText: string;
164
+ progressBarValue?: number;
165
+ progressBarText?: string;
166
+ infoPill: string;
167
+ imageType: "'image'" | "'icon'" | "'selected_icon'";
168
+ cardType: "personal" | "community";
169
+ imagePosition: "'inline'" | "'block'";
170
+ }): lit_html.TemplateResult<1>;
171
+ static styles: lit.CSSResult[];
172
+ }
173
+ declare global {
174
+ interface HTMLElementTagNameMap {
175
+ "beam-subscription-impact": BeamSubscriptionImpact;
176
+ }
177
+ }
178
+
179
+ export { BeamSubscriptionImpact };