@learncard/react 2.9.28 → 2.10.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 (273) hide show
  1. package/dist/cjs/BadgeThumbnailImg-02df88f9.js +55 -0
  2. package/dist/cjs/BadgeThumbnailImg-02df88f9.js.map +1 -0
  3. package/dist/cjs/{BoostGenericCard-310cd633.js → BoostGenericCard-d4056c6a.js} +5 -4
  4. package/dist/cjs/BoostGenericCard-d4056c6a.js.map +1 -0
  5. package/dist/cjs/{BoostSmallCard-4e200046.js → BoostSmallCard-ece8f97e.js} +4 -3
  6. package/dist/cjs/BoostSmallCard-ece8f97e.js.map +1 -0
  7. package/dist/cjs/{CertificateDisplayCard-6658f859.js → CertificateDisplayCard-217ce543.js} +43 -9
  8. package/dist/cjs/CertificateDisplayCard-217ce543.js.map +1 -0
  9. package/dist/cjs/{GenericCard-2b20ab4b.js → GenericCard-cdc6eede.js} +3 -2
  10. package/dist/cjs/GenericCard-cdc6eede.js.map +1 -0
  11. package/dist/cjs/{MeritBadgeDisplayCard-5e198547.js → MeritBadgeDisplayCard-f610c4e8.js} +44 -9
  12. package/dist/cjs/MeritBadgeDisplayCard-f610c4e8.js.map +1 -0
  13. package/dist/cjs/{MeritBadgeSkillsCount-8307d493.js → MeritBadgeSkillsCount-1120813b.js} +2 -2
  14. package/dist/cjs/{MeritBadgeSkillsCount-8307d493.js.map → MeritBadgeSkillsCount-1120813b.js.map} +1 -1
  15. package/dist/cjs/{NotificationBoostCard-80dbf681.js → NotificationBoostCard-3ed9ec86.js} +2 -2
  16. package/dist/cjs/{NotificationBoostCard-80dbf681.js.map → NotificationBoostCard-3ed9ec86.js.map} +1 -1
  17. package/dist/cjs/{SchoolIDCard-e22d0d80.js → SchoolIDCard-dddb3b1d.js} +3 -1184
  18. package/dist/cjs/SchoolIDCard-dddb3b1d.js.map +1 -0
  19. package/dist/cjs/{UserProfilePicture-22944d8f.js → UserProfilePicture-80675455.js} +8 -3
  20. package/dist/cjs/UserProfilePicture-80675455.js.map +1 -0
  21. package/dist/cjs/{VCCard-1dae1967.js → VCCard-675144fc.js} +3 -3
  22. package/dist/cjs/{VCCard-1dae1967.js.map → VCCard-675144fc.js.map} +1 -1
  23. package/dist/cjs/{VCDisplayBackFace-f220ad7d.js → VCDisplayBackFace-be7d1e31.js} +3 -3
  24. package/dist/cjs/{VCDisplayBackFace-f220ad7d.js.map → VCDisplayBackFace-be7d1e31.js.map} +1 -1
  25. package/dist/cjs/{VCDisplayCard-b3f9ae8d.js → VCDisplayCard-e50b4801.js} +4 -4
  26. package/dist/cjs/{VCDisplayCard-b3f9ae8d.js.map → VCDisplayCard-e50b4801.js.map} +1 -1
  27. package/dist/cjs/{VCDisplayCard2-1bb03756.js → VCDisplayCard2-648a9543.js} +49 -14
  28. package/dist/cjs/VCDisplayCard2-648a9543.js.map +1 -0
  29. package/dist/cjs/{VCVerificationPill-ae3e2fbb.js → VCVerificationPill-93260164.js} +2 -2
  30. package/dist/cjs/{VCVerificationPill-ae3e2fbb.js.map → VCVerificationPill-93260164.js.map} +1 -1
  31. package/dist/cjs/{VerifierStateBadgeAndText-7c29504e.js → VerifierStateBadgeAndText-806b6c2c.js} +363 -604
  32. package/dist/cjs/VerifierStateBadgeAndText-806b6c2c.js.map +1 -0
  33. package/dist/cjs/{credential.helpers-4e3cf40c.js → credential.helpers-a11b14f1.js} +2 -2
  34. package/dist/cjs/{credential.helpers-4e3cf40c.js.map → credential.helpers-a11b14f1.js.map} +1 -1
  35. package/dist/cjs/index-838fa72c.js +1186 -0
  36. package/dist/cjs/index-838fa72c.js.map +1 -0
  37. package/dist/cjs/index.js +189 -30
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/index10.js +2 -27
  40. package/dist/cjs/index10.js.map +1 -1
  41. package/dist/cjs/index11.js +31 -2
  42. package/dist/cjs/index11.js.map +1 -1
  43. package/dist/cjs/index12.js +2 -46
  44. package/dist/cjs/index12.js.map +1 -1
  45. package/dist/cjs/index13.js +5 -175
  46. package/dist/cjs/index13.js.map +1 -1
  47. package/dist/cjs/index14.js +217 -1
  48. package/dist/cjs/index14.js.map +1 -1
  49. package/dist/cjs/index15.js +3 -21
  50. package/dist/cjs/index15.js.map +1 -1
  51. package/dist/cjs/index16.js +21 -3
  52. package/dist/cjs/index16.js.map +1 -1
  53. package/dist/cjs/index17.js +3 -5
  54. package/dist/cjs/index17.js.map +1 -1
  55. package/dist/cjs/index18.js +5 -20
  56. package/dist/cjs/index18.js.map +1 -1
  57. package/dist/cjs/index19.js +20 -3
  58. package/dist/cjs/index19.js.map +1 -1
  59. package/dist/cjs/index20.js +3 -2
  60. package/dist/cjs/index20.js.map +1 -1
  61. package/dist/cjs/index21.js +2 -28
  62. package/dist/cjs/index21.js.map +1 -1
  63. package/dist/cjs/index22.js +28 -3
  64. package/dist/cjs/index22.js.map +1 -1
  65. package/dist/cjs/index23.js +3 -10
  66. package/dist/cjs/index23.js.map +1 -1
  67. package/dist/cjs/index24.js +5 -7
  68. package/dist/cjs/index24.js.map +1 -1
  69. package/dist/cjs/index25.js +9 -3
  70. package/dist/cjs/index25.js.map +1 -1
  71. package/dist/cjs/index26.js +3 -5
  72. package/dist/cjs/index26.js.map +1 -1
  73. package/dist/cjs/index27.js +8 -3
  74. package/dist/cjs/index27.js.map +1 -1
  75. package/dist/cjs/index28.js +3 -28
  76. package/dist/cjs/index28.js.map +1 -1
  77. package/dist/cjs/index29.js +4 -28
  78. package/dist/cjs/index29.js.map +1 -1
  79. package/dist/cjs/index3.js +0 -58
  80. package/dist/cjs/index3.js.map +1 -1
  81. package/dist/cjs/index30.js +52 -2
  82. package/dist/cjs/index30.js.map +1 -1
  83. package/dist/cjs/index31.js +3 -3
  84. package/dist/cjs/index32.js +3 -3
  85. package/dist/cjs/index33.js +3 -29
  86. package/dist/cjs/index33.js.map +1 -1
  87. package/dist/cjs/index34.js +29 -3
  88. package/dist/cjs/index34.js.map +1 -1
  89. package/dist/cjs/index35.js +3 -3
  90. package/dist/cjs/index36.js +3 -27
  91. package/dist/cjs/index36.js.map +1 -1
  92. package/dist/cjs/index37.js +27 -2
  93. package/dist/cjs/index37.js.map +1 -1
  94. package/dist/cjs/index38.js +2 -42
  95. package/dist/cjs/index38.js.map +1 -1
  96. package/dist/cjs/index39.js +35 -9
  97. package/dist/cjs/index39.js.map +1 -1
  98. package/dist/cjs/index4.js +11 -6
  99. package/dist/cjs/index4.js.map +1 -1
  100. package/dist/cjs/index40.js +9 -13
  101. package/dist/cjs/index40.js.map +1 -1
  102. package/dist/cjs/index41.js +15 -28
  103. package/dist/cjs/index41.js.map +1 -1
  104. package/dist/cjs/index42.js +38 -3
  105. package/dist/cjs/index42.js.map +1 -1
  106. package/dist/cjs/index43.js +3 -7
  107. package/dist/cjs/index43.js.map +1 -1
  108. package/dist/cjs/index44.js +4 -6
  109. package/dist/cjs/index44.js.map +1 -1
  110. package/dist/cjs/index45.js +6 -6
  111. package/dist/cjs/index46.js +15 -0
  112. package/dist/cjs/index46.js.map +1 -0
  113. package/dist/cjs/index5.js +51 -2
  114. package/dist/cjs/index5.js.map +1 -1
  115. package/dist/cjs/index6.js +2 -29
  116. package/dist/cjs/index6.js.map +1 -1
  117. package/dist/cjs/index7.js +28 -27
  118. package/dist/cjs/index7.js.map +1 -1
  119. package/dist/cjs/index8.js +4 -5
  120. package/dist/cjs/index8.js.map +1 -1
  121. package/dist/cjs/index9.js +28 -5
  122. package/dist/cjs/index9.js.map +1 -1
  123. package/dist/cjs/{types.esm-674d5934.js → types.esm-4d399274.js} +11 -4
  124. package/dist/cjs/types.esm-4d399274.js.map +1 -0
  125. package/dist/esm/BadgeThumbnailImg-7d436367.js +49 -0
  126. package/dist/esm/BadgeThumbnailImg-7d436367.js.map +1 -0
  127. package/dist/esm/{BoostGenericCard-956474fc.js → BoostGenericCard-b83ff069.js} +5 -4
  128. package/dist/esm/BoostGenericCard-b83ff069.js.map +1 -0
  129. package/dist/esm/{BoostSmallCard-6d63f0b3.js → BoostSmallCard-a73b6800.js} +4 -3
  130. package/dist/esm/BoostSmallCard-a73b6800.js.map +1 -0
  131. package/dist/esm/{CertificateDisplayCard-0642d8af.js → CertificateDisplayCard-d2fa3f05.js} +43 -9
  132. package/dist/esm/CertificateDisplayCard-d2fa3f05.js.map +1 -0
  133. package/dist/esm/{GenericCard-24648e62.js → GenericCard-a469f2f0.js} +3 -2
  134. package/dist/esm/GenericCard-a469f2f0.js.map +1 -0
  135. package/dist/esm/{MeritBadgeDisplayCard-f6b064a6.js → MeritBadgeDisplayCard-eba507ab.js} +44 -9
  136. package/dist/esm/MeritBadgeDisplayCard-eba507ab.js.map +1 -0
  137. package/dist/esm/{MeritBadgeSkillsCount-e906d83f.js → MeritBadgeSkillsCount-7871d74f.js} +2 -2
  138. package/dist/esm/{MeritBadgeSkillsCount-e906d83f.js.map → MeritBadgeSkillsCount-7871d74f.js.map} +1 -1
  139. package/dist/esm/{NotificationBoostCard-fdfa0cf4.js → NotificationBoostCard-cfebc09e.js} +2 -2
  140. package/dist/esm/{NotificationBoostCard-fdfa0cf4.js.map → NotificationBoostCard-cfebc09e.js.map} +1 -1
  141. package/dist/esm/{SchoolIDCard-8b151cd3.js → SchoolIDCard-4e51671c.js} +2 -1183
  142. package/dist/esm/SchoolIDCard-4e51671c.js.map +1 -0
  143. package/dist/esm/{UserProfilePicture-7e131f5d.js → UserProfilePicture-50c34186.js} +8 -3
  144. package/dist/esm/UserProfilePicture-50c34186.js.map +1 -0
  145. package/dist/esm/{VCCard-7b394980.js → VCCard-8a27387d.js} +3 -3
  146. package/dist/esm/{VCCard-7b394980.js.map → VCCard-8a27387d.js.map} +1 -1
  147. package/dist/esm/{VCDisplayBackFace-ce80f06d.js → VCDisplayBackFace-fbb3235f.js} +3 -3
  148. package/dist/esm/{VCDisplayBackFace-ce80f06d.js.map → VCDisplayBackFace-fbb3235f.js.map} +1 -1
  149. package/dist/esm/{VCDisplayCard-a40c4c7a.js → VCDisplayCard-8463d18d.js} +4 -4
  150. package/dist/esm/{VCDisplayCard-a40c4c7a.js.map → VCDisplayCard-8463d18d.js.map} +1 -1
  151. package/dist/esm/{VCDisplayCard2-3937fbc9.js → VCDisplayCard2-5ed2777f.js} +49 -14
  152. package/dist/esm/VCDisplayCard2-5ed2777f.js.map +1 -0
  153. package/dist/esm/{VCVerificationPill-8f82b17c.js → VCVerificationPill-a412a211.js} +2 -2
  154. package/dist/esm/{VCVerificationPill-8f82b17c.js.map → VCVerificationPill-a412a211.js.map} +1 -1
  155. package/dist/esm/{VerifierStateBadgeAndText-5152c28e.js → VerifierStateBadgeAndText-0db85894.js} +359 -605
  156. package/dist/esm/VerifierStateBadgeAndText-0db85894.js.map +1 -0
  157. package/dist/esm/{credential.helpers-bd29e893.js → credential.helpers-108b5fb6.js} +2 -2
  158. package/dist/esm/{credential.helpers-bd29e893.js.map → credential.helpers-108b5fb6.js.map} +1 -1
  159. package/dist/esm/index-4fa491c1.js +1184 -0
  160. package/dist/esm/index-4fa491c1.js.map +1 -0
  161. package/dist/esm/index.js +178 -29
  162. package/dist/esm/index.js.map +1 -1
  163. package/dist/esm/index10.js +1 -26
  164. package/dist/esm/index10.js.map +1 -1
  165. package/dist/esm/index11.js +30 -1
  166. package/dist/esm/index11.js.map +1 -1
  167. package/dist/esm/index12.js +1 -45
  168. package/dist/esm/index12.js.map +1 -1
  169. package/dist/esm/index13.js +5 -94
  170. package/dist/esm/index13.js.map +1 -1
  171. package/dist/esm/index14.js +136 -1
  172. package/dist/esm/index14.js.map +1 -1
  173. package/dist/esm/index15.js +2 -19
  174. package/dist/esm/index15.js.map +1 -1
  175. package/dist/esm/index16.js +19 -2
  176. package/dist/esm/index16.js.map +1 -1
  177. package/dist/esm/index17.js +2 -4
  178. package/dist/esm/index17.js.map +1 -1
  179. package/dist/esm/index18.js +4 -19
  180. package/dist/esm/index18.js.map +1 -1
  181. package/dist/esm/index19.js +19 -2
  182. package/dist/esm/index19.js.map +1 -1
  183. package/dist/esm/index20.js +2 -1
  184. package/dist/esm/index20.js.map +1 -1
  185. package/dist/esm/index21.js +1 -24
  186. package/dist/esm/index21.js.map +1 -1
  187. package/dist/esm/index22.js +24 -2
  188. package/dist/esm/index22.js.map +1 -1
  189. package/dist/esm/index23.js +2 -8
  190. package/dist/esm/index23.js.map +1 -1
  191. package/dist/esm/index24.js +3 -6
  192. package/dist/esm/index24.js.map +1 -1
  193. package/dist/esm/index25.js +8 -2
  194. package/dist/esm/index25.js.map +1 -1
  195. package/dist/esm/index26.js +2 -3
  196. package/dist/esm/index26.js.map +1 -1
  197. package/dist/esm/index27.js +6 -2
  198. package/dist/esm/index27.js.map +1 -1
  199. package/dist/esm/index28.js +2 -26
  200. package/dist/esm/index28.js.map +1 -1
  201. package/dist/esm/index29.js +2 -23
  202. package/dist/esm/index29.js.map +1 -1
  203. package/dist/esm/index3.js +0 -53
  204. package/dist/esm/index3.js.map +1 -1
  205. package/dist/esm/index30.js +47 -1
  206. package/dist/esm/index30.js.map +1 -1
  207. package/dist/esm/index31.js +2 -1
  208. package/dist/esm/index31.js.map +1 -1
  209. package/dist/esm/index32.js +1 -2
  210. package/dist/esm/index32.js.map +1 -1
  211. package/dist/esm/index33.js +2 -28
  212. package/dist/esm/index33.js.map +1 -1
  213. package/dist/esm/index34.js +28 -2
  214. package/dist/esm/index34.js.map +1 -1
  215. package/dist/esm/index35.js +2 -2
  216. package/dist/esm/index36.js +2 -9
  217. package/dist/esm/index36.js.map +1 -1
  218. package/dist/esm/index37.js +9 -1
  219. package/dist/esm/index37.js.map +1 -1
  220. package/dist/esm/index38.js +1 -41
  221. package/dist/esm/index38.js.map +1 -1
  222. package/dist/esm/index39.js +34 -8
  223. package/dist/esm/index39.js.map +1 -1
  224. package/dist/esm/index4.js +10 -5
  225. package/dist/esm/index4.js.map +1 -1
  226. package/dist/esm/index40.js +8 -12
  227. package/dist/esm/index40.js.map +1 -1
  228. package/dist/esm/index41.js +14 -24
  229. package/dist/esm/index41.js.map +1 -1
  230. package/dist/esm/index42.js +30 -3
  231. package/dist/esm/index42.js.map +1 -1
  232. package/dist/esm/index43.js +3 -2
  233. package/dist/esm/index43.js.map +1 -1
  234. package/dist/esm/index44.js +3 -3
  235. package/dist/esm/index45.js +3 -5
  236. package/dist/esm/index45.js.map +1 -1
  237. package/dist/esm/index46.js +7 -0
  238. package/dist/esm/index46.js.map +1 -0
  239. package/dist/esm/index5.js +50 -1
  240. package/dist/esm/index5.js.map +1 -1
  241. package/dist/esm/index6.js +1 -23
  242. package/dist/esm/index6.js.map +1 -1
  243. package/dist/esm/index7.js +22 -26
  244. package/dist/esm/index7.js.map +1 -1
  245. package/dist/esm/index8.js +3 -3
  246. package/dist/esm/index9.js +26 -4
  247. package/dist/esm/index9.js.map +1 -1
  248. package/dist/esm/{types.esm-e2b75956.js → types.esm-aa0345d0.js} +11 -4
  249. package/dist/esm/types.esm-aa0345d0.js.map +1 -0
  250. package/dist/index.d.ts +82 -1
  251. package/dist/main.css +1 -1
  252. package/dist/main.js +1 -1
  253. package/package.json +3 -3
  254. package/dist/cjs/BoostGenericCard-310cd633.js.map +0 -1
  255. package/dist/cjs/BoostSmallCard-4e200046.js.map +0 -1
  256. package/dist/cjs/CertificateDisplayCard-6658f859.js.map +0 -1
  257. package/dist/cjs/GenericCard-2b20ab4b.js.map +0 -1
  258. package/dist/cjs/MeritBadgeDisplayCard-5e198547.js.map +0 -1
  259. package/dist/cjs/SchoolIDCard-e22d0d80.js.map +0 -1
  260. package/dist/cjs/UserProfilePicture-22944d8f.js.map +0 -1
  261. package/dist/cjs/VCDisplayCard2-1bb03756.js.map +0 -1
  262. package/dist/cjs/VerifierStateBadgeAndText-7c29504e.js.map +0 -1
  263. package/dist/cjs/types.esm-674d5934.js.map +0 -1
  264. package/dist/esm/BoostGenericCard-956474fc.js.map +0 -1
  265. package/dist/esm/BoostSmallCard-6d63f0b3.js.map +0 -1
  266. package/dist/esm/CertificateDisplayCard-0642d8af.js.map +0 -1
  267. package/dist/esm/GenericCard-24648e62.js.map +0 -1
  268. package/dist/esm/MeritBadgeDisplayCard-f6b064a6.js.map +0 -1
  269. package/dist/esm/SchoolIDCard-8b151cd3.js.map +0 -1
  270. package/dist/esm/UserProfilePicture-7e131f5d.js.map +0 -1
  271. package/dist/esm/VCDisplayCard2-3937fbc9.js.map +0 -1
  272. package/dist/esm/VerifierStateBadgeAndText-5152c28e.js.map +0 -1
  273. package/dist/esm/types.esm-e2b75956.js.map +0 -1
@@ -60,8 +60,12 @@ const UserProfilePicture = ({
60
60
  var _a, _b, _c, _d;
61
61
  const baseColor = avatarColor || "bg-grayscale-700";
62
62
  const src = (user == null ? void 0 : user.image) || (user == null ? void 0 : user.profileImage);
63
+ const [errored, setErrored] = React.useState(false);
64
+ React.useEffect(() => {
65
+ setErrored(false);
66
+ }, [src]);
63
67
  const letterToDisplay = ((_a = user == null ? void 0 : user.displayName) == null ? void 0 : _a.substring(0, 1)) || ((_b = user == null ? void 0 : user.profileId) == null ? void 0 : _b.substring(0, 1)) || ((_c = user == null ? void 0 : user.name) == null ? void 0 : _c.substring(0, 1)) || ((_d = user == null ? void 0 : user.email) == null ? void 0 : _d.substring(0, 1)) || "";
64
- if (!src) {
68
+ if (!src || errored) {
65
69
  const fingerprintIconClassName = `${avatarIconClassName || "w-[60%] h-[60%]"} ${avatarFingerprintColor || "text-white/85"}`;
66
70
  return /* @__PURE__ */ React.createElement(
67
71
  "div",
@@ -83,10 +87,11 @@ const UserProfilePicture = ({
83
87
  className: `rounded-full ${customImageClass}`,
84
88
  alt: alt || "user",
85
89
  src,
86
- referrerPolicy: "no-referrer"
90
+ referrerPolicy: "no-referrer",
91
+ onError: () => setErrored(true)
87
92
  }
88
93
  ), children);
89
94
  };
90
95
 
91
96
  export { UserProfilePicture as U };
92
- //# sourceMappingURL=UserProfilePicture-7e131f5d.js.map
97
+ //# sourceMappingURL=UserProfilePicture-50c34186.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserProfilePicture-50c34186.js","sources":["../../src/components/UserProfilePicture/UserProfilePicture.tsx"],"sourcesContent":["import React from 'react';\n\nconst PersonSilhouette: React.FC<{ className?: string }> = ({ className = '' }) => (\n <svg\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 22 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M10.7115 13.5488C6.86057 13.5488 3.57129 14.156 3.57129 16.5845C3.57129 19.014 6.84004 19.6426 10.7115 19.6426C14.5624 19.6426 17.8516 19.0363 17.8516 16.6069C17.8516 14.1774 14.5838 13.5488 10.7115 13.5488Z\"\n fill=\"#353E64\"\n />\n <path\n opacity=\"0.4\"\n d=\"M10.7115 11.2361C13.3347 11.2361 15.4365 9.13345 15.4365 6.51113C15.4365 3.88881 13.3347 1.78613 10.7115 1.78613C8.08913 1.78613 5.98645 3.88881 5.98645 6.51113C5.98645 9.13345 8.08913 11.2361 10.7115 11.2361Z\"\n fill=\"#353E64\"\n />\n </svg>\n);\n\nconst FingerprintIcon: React.FC<{ className?: string }> = ({ className = '' }) => (\n <svg\n width=\"32\"\n height=\"31\"\n viewBox=\"0 0 32 31\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M15.612 10.3663C21.746 10.3665 26.7187 15.339 26.7187 21.473C26.7187 23.722 24.8953 25.5453 22.6462 25.5454C20.3972 25.5454 18.5738 23.7222 18.5738 21.473C18.5738 19.8373 17.2476 18.5113 15.612 18.5112C13.9763 18.5112 12.6502 19.8372 12.6502 21.473C12.6502 24.103 13.6282 26.5011 15.2418 28.3294C15.7824 28.9423 15.7241 29.8778 15.1117 30.4191C14.4985 30.9602 13.5617 30.902 13.0204 30.2889C10.9478 27.9403 9.68847 24.8519 9.68847 21.473C9.68847 18.2015 12.3406 15.5494 15.612 15.5494C18.8834 15.5495 21.5356 18.2015 21.5356 21.473C21.5356 22.0864 22.0328 22.5836 22.6462 22.5836C23.2596 22.5835 23.7569 22.0862 23.7569 21.473C23.7569 16.9748 20.1102 13.3282 15.612 13.3281C11.1137 13.3281 7.46712 16.9746 7.46712 21.473C7.46712 22.498 7.65616 23.4759 7.99933 24.3755C8.29047 25.1394 7.90699 25.9958 7.14318 26.2874C6.37916 26.5787 5.52292 26.1951 5.23133 25.4313C4.76156 24.1997 4.50533 22.8644 4.50533 21.473C4.50533 15.339 9.47799 10.3663 15.612 10.3663ZM15.4645 21.5019C16.2659 21.3392 17.0486 21.8576 17.2115 22.6589C17.7602 25.3619 20.1527 27.3964 23.0165 27.3965C23.217 27.3965 23.415 27.3869 23.6094 27.3677C24.4233 27.2868 25.1484 27.8814 25.2292 28.6953C25.3096 29.5088 24.7165 30.2339 23.9031 30.3149C23.6113 30.3438 23.315 30.3583 23.0165 30.3583C18.7164 30.3582 15.1311 27.305 14.3076 23.2489C14.145 22.4475 14.6635 21.6649 15.4645 21.5019ZM15.612 5.18313C22.9079 5.18344 29.0803 9.97908 31.1556 16.5863C31.4005 17.3663 30.9665 18.198 30.1867 18.4432C29.4067 18.688 28.575 18.2542 28.3298 17.4743C26.6312 12.0658 21.5773 8.14523 15.612 8.14492C9.64668 8.14505 4.59309 12.0658 2.89428 17.4743C2.64921 18.2542 1.81744 18.6879 1.03739 18.4432C0.257211 18.1981 -0.176617 17.3666 0.0684418 16.5863C2.14387 9.97898 8.31608 5.18326 15.612 5.18313ZM15.612 0C21.2529 0.000192516 26.3708 2.25505 30.1071 5.90911C30.6913 6.4809 30.7017 7.41857 30.1304 8.0032C29.5586 8.58772 28.6209 8.59782 28.0362 8.02633C24.8309 4.89168 20.4478 2.96198 15.612 2.96179C10.7762 2.96185 6.39334 4.89163 3.18787 8.02633C2.60327 8.59809 1.66569 8.58756 1.09378 8.0032C0.522099 7.41847 0.532273 6.48093 1.11693 5.90911C4.85343 2.255 9.97118 5.92358e-05 15.612 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\n// Copied / Adapted from learn-card-base\nexport const UserProfilePicture: React.FC<{\n customContainerClass?: string;\n customImageClass?: string;\n user?: any;\n alt?: string;\n children?: React.ReactNode | null;\n avatarColor?: string;\n avatarFingerprintColor?: string;\n avatarTextClassName?: string;\n avatarIconClassName?: string;\n avatarSilhouetteClassName?: string;\n avatarFallbackVariant?: 'initial' | 'fingerprint';\n}> = ({\n customContainerClass,\n customImageClass,\n user,\n alt,\n children,\n avatarColor,\n avatarFingerprintColor,\n avatarTextClassName,\n avatarIconClassName,\n avatarSilhouetteClassName,\n avatarFallbackVariant = 'initial',\n}) => {\n const baseColor = avatarColor || 'bg-grayscale-700';\n const src = user?.image || user?.profileImage;\n const [errored, setErrored] = React.useState(false);\n\n // Reset the error flag whenever the source changes (e.g. good URL after a bad one).\n React.useEffect(() => {\n setErrored(false);\n }, [src]);\n\n const letterToDisplay =\n user?.displayName?.substring(0, 1) ||\n user?.profileId?.substring(0, 1) ||\n user?.name?.substring(0, 1) ||\n user?.email?.substring(0, 1) ||\n '';\n\n if (!src || errored) {\n const fingerprintIconClassName = `${avatarIconClassName || 'w-[60%] h-[60%]'} ${\n avatarFingerprintColor || 'text-white/85'\n }`;\n\n return (\n <div\n className={`rounded-full flex items-center justify-center font-poppins font-semibold uppercase select-none text-white text-2xl ${customContainerClass} ${baseColor}`}\n >\n {avatarFallbackVariant === 'fingerprint' ? (\n <FingerprintIcon className={fingerprintIconClassName} />\n ) : letterToDisplay ? (\n <span className={avatarTextClassName || ''}>{letterToDisplay}</span>\n ) : (\n <PersonSilhouette\n className={avatarSilhouetteClassName || avatarIconClassName}\n />\n )}\n {children}\n </div>\n );\n }\n\n return (\n <div className={`relative select-none ${customContainerClass}`}>\n <img\n className={`rounded-full ${customImageClass}`}\n alt={alt || 'user'}\n src={src}\n referrerPolicy=\"no-referrer\"\n onError={() => setErrored(true)}\n />\n {children}\n </div>\n );\n};\n\nexport default UserProfilePicture;\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import { initLearnCard } from '@learncard/init';
3
- import { V as VCDisplayCard } from './VCDisplayCard-a40c4c7a.js';
4
- import { V as VCDisplayCard2 } from './VCDisplayCard2-3937fbc9.js';
3
+ import { V as VCDisplayCard } from './VCDisplayCard-8463d18d.js';
4
+ import { V as VCDisplayCard2 } from './VCDisplayCard2-5ed2777f.js';
5
5
 
6
6
  var __async = (__this, __arguments, generator) => {
7
7
  return new Promise((resolve, reject) => {
@@ -77,4 +77,4 @@ const VCCard = ({
77
77
  };
78
78
 
79
79
  export { VCCard as V };
80
- //# sourceMappingURL=VCCard-7b394980.js.map
80
+ //# sourceMappingURL=VCCard-8a27387d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VCCard-7b394980.js","sources":["../../src/components/VCCard/VCCard.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { initLearnCard } from '@learncard/init';\nimport { VC, Profile, VerificationItem } from '@learncard/types';\n\nimport { VCDisplayCard } from '../VCDisplayCard';\nimport {\n VCDisplayCard2,\n CredentialIconType,\n} from '../VCDisplayCard2';\n\nimport { MediaMetadata, VideoMetadata } from '../../types';\n\nexport type VCCardProps = {\n credential: VC;\n issueeOverride?: Profile;\n className?: string;\n version?: '1' | '2';\n\n /* Only used for version 2 */\n subjectImageComponent?: React.ReactNode;\n // convertTagsToSkills?: (tags: string[]) => { [skill: string]: string[] };\n handleXClick?: () => void;\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string) => void;\n bottomRightIcon?: CredentialIconType;\n};\n\nexport const VCCard: React.FC<VCCardProps> = ({\n credential,\n issueeOverride,\n className = '',\n version = '1',\n subjectImageComponent,\n // convertTagsToSkills,\n handleXClick,\n getFileMetadata,\n getVideoMetadata,\n onMediaAttachmentClick,\n bottomRightIcon,\n}) => {\n const [loading, setLoading] = useState(true);\n const [vcVerification, setVCVerification] = useState<VerificationItem[]>([]);\n\n useEffect(() => {\n const verify = async () => {\n const wallet = await initLearnCard();\n const verification = await wallet.invoke.verifyCredential(credential, {}, true);\n setVCVerification(verification);\n setLoading(false);\n };\n\n verify();\n }, [credential]);\n\n if (version === '1') {\n return (\n <VCDisplayCard\n credential={credential}\n issueeOverride={issueeOverride}\n className={className}\n loading={loading}\n verification={vcVerification}\n />\n );\n }\n return (\n <VCDisplayCard2\n credential={credential}\n issueeOverride={issueeOverride}\n verificationInProgress={loading}\n verificationItems={vcVerification}\n subjectImageComponent={subjectImageComponent}\n // convertTagsToSkills={convertTagsToSkills}\n handleXClick={handleXClick}\n getFileMetadata={getFileMetadata}\n getVideoMetadata={getVideoMetadata}\n onMediaAttachmentClick={onMediaAttachmentClick}\n bottomRightIcon={bottomRightIcon}\n />\n );\n};\n\nexport default VCCard;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,SAAgC,CAAC;AAAA,EAC1C,UAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAY,GAAA,EAAA;AAAA,EACZ,OAAU,GAAA,GAAA;AAAA,EACV,qBAAA;AAAA;AAAA,EAEA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,sBAAA;AAAA,EACA,eAAA;AACJ,CAAM,KAAA;AACF,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,IAAI,CAAA,CAAA;AAC3C,EAAA,MAAM,CAAC,cAAgB,EAAA,iBAAiB,CAAI,GAAA,QAAA,CAA6B,EAAE,CAAA,CAAA;AAE3E,EAAA,SAAA,CAAU,MAAM;AACZ,IAAA,MAAM,SAAS,MAAY,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACvB,MAAM,MAAA,MAAA,GAAS,MAAM,aAAc,EAAA,CAAA;AACnC,MAAM,MAAA,YAAA,GAAe,MAAM,MAAO,CAAA,MAAA,CAAO,iBAAiB,UAAY,EAAA,IAAI,IAAI,CAAA,CAAA;AAC9E,MAAA,iBAAA,CAAkB,YAAY,CAAA,CAAA;AAC9B,MAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,KACpB,CAAA,CAAA;AAEA,IAAO,MAAA,EAAA,CAAA;AAAA,GACX,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAA,IAAI,YAAY,GAAK,EAAA;AACjB,IACI,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACG,UAAA;AAAA,QACA,cAAA;AAAA,QACA,SAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAc,EAAA,cAAA;AAAA,OAAA;AAAA,KAClB,CAAA;AAAA,GAER;AACA,EACI,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACG,UAAA;AAAA,MACA,cAAA;AAAA,MACA,sBAAwB,EAAA,OAAA;AAAA,MACxB,iBAAmB,EAAA,cAAA;AAAA,MACnB,qBAAA;AAAA,MAEA,YAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,sBAAA;AAAA,MACA,eAAA;AAAA,KAAA;AAAA,GACJ,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"VCCard-8a27387d.js","sources":["../../src/components/VCCard/VCCard.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { initLearnCard } from '@learncard/init';\nimport { VC, Profile, VerificationItem } from '@learncard/types';\n\nimport { VCDisplayCard } from '../VCDisplayCard';\nimport {\n VCDisplayCard2,\n CredentialIconType,\n} from '../VCDisplayCard2';\n\nimport { MediaMetadata, VideoMetadata } from '../../types';\n\nexport type VCCardProps = {\n credential: VC;\n issueeOverride?: Profile;\n className?: string;\n version?: '1' | '2';\n\n /* Only used for version 2 */\n subjectImageComponent?: React.ReactNode;\n // convertTagsToSkills?: (tags: string[]) => { [skill: string]: string[] };\n handleXClick?: () => void;\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string) => void;\n bottomRightIcon?: CredentialIconType;\n};\n\nexport const VCCard: React.FC<VCCardProps> = ({\n credential,\n issueeOverride,\n className = '',\n version = '1',\n subjectImageComponent,\n // convertTagsToSkills,\n handleXClick,\n getFileMetadata,\n getVideoMetadata,\n onMediaAttachmentClick,\n bottomRightIcon,\n}) => {\n const [loading, setLoading] = useState(true);\n const [vcVerification, setVCVerification] = useState<VerificationItem[]>([]);\n\n useEffect(() => {\n const verify = async () => {\n const wallet = await initLearnCard();\n const verification = await wallet.invoke.verifyCredential(credential, {}, true);\n setVCVerification(verification);\n setLoading(false);\n };\n\n verify();\n }, [credential]);\n\n if (version === '1') {\n return (\n <VCDisplayCard\n credential={credential}\n issueeOverride={issueeOverride}\n className={className}\n loading={loading}\n verification={vcVerification}\n />\n );\n }\n return (\n <VCDisplayCard2\n credential={credential}\n issueeOverride={issueeOverride}\n verificationInProgress={loading}\n verificationItems={vcVerification}\n subjectImageComponent={subjectImageComponent}\n // convertTagsToSkills={convertTagsToSkills}\n handleXClick={handleXClick}\n getFileMetadata={getFileMetadata}\n getVideoMetadata={getVideoMetadata}\n onMediaAttachmentClick={onMediaAttachmentClick}\n bottomRightIcon={bottomRightIcon}\n />\n );\n};\n\nexport default VCCard;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,SAAgC,CAAC;AAAA,EAC1C,UAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAY,GAAA,EAAA;AAAA,EACZ,OAAU,GAAA,GAAA;AAAA,EACV,qBAAA;AAAA;AAAA,EAEA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,sBAAA;AAAA,EACA,eAAA;AACJ,CAAM,KAAA;AACF,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,IAAI,CAAA,CAAA;AAC3C,EAAA,MAAM,CAAC,cAAgB,EAAA,iBAAiB,CAAI,GAAA,QAAA,CAA6B,EAAE,CAAA,CAAA;AAE3E,EAAA,SAAA,CAAU,MAAM;AACZ,IAAA,MAAM,SAAS,MAAY,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACvB,MAAM,MAAA,MAAA,GAAS,MAAM,aAAc,EAAA,CAAA;AACnC,MAAM,MAAA,YAAA,GAAe,MAAM,MAAO,CAAA,MAAA,CAAO,iBAAiB,UAAY,EAAA,IAAI,IAAI,CAAA,CAAA;AAC9E,MAAA,iBAAA,CAAkB,YAAY,CAAA,CAAA;AAC9B,MAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,KACpB,CAAA,CAAA;AAEA,IAAO,MAAA,EAAA,CAAA;AAAA,GACX,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAA,IAAI,YAAY,GAAK,EAAA;AACjB,IACI,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACG,UAAA;AAAA,QACA,cAAA;AAAA,QACA,SAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAc,EAAA,cAAA;AAAA,OAAA;AAAA,KAClB,CAAA;AAAA,GAER;AACA,EACI,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACG,UAAA;AAAA,MACA,cAAA;AAAA,MACA,sBAAwB,EAAA,OAAA;AAAA,MACxB,iBAAmB,EAAA,cAAA;AAAA,MACnB,qBAAA;AAAA,MAEA,YAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,sBAAA;AAAA,MACA,eAAA;AAAA,KAAA;AAAA,GACJ,CAAA;AAER;;;;"}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { b as VCVerificationCheckWithText } from './VCVerificationCheck-8b8b7a76.js';
3
- import { a as VCVerificationPill } from './VCVerificationPill-8f82b17c.js';
3
+ import { a as VCVerificationPill } from './VCVerificationPill-a412a211.js';
4
4
  import FlipArrowRight from './ArrowArcRight.svg';
5
- import { i as getNameFromProfile } from './credential.helpers-bd29e893.js';
5
+ import { i as getNameFromProfile } from './credential.helpers-108b5fb6.js';
6
6
 
7
7
  const VCDisplayBackFace = ({
8
8
  issuer,
@@ -60,4 +60,4 @@ const VCDisplayBackFace = ({
60
60
  };
61
61
 
62
62
  export { VCDisplayBackFace as V };
63
- //# sourceMappingURL=VCDisplayBackFace-ce80f06d.js.map
63
+ //# sourceMappingURL=VCDisplayBackFace-fbb3235f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VCDisplayBackFace-ce80f06d.js","sources":["../../src/components/VCDisplayBackFace/VCDisplayBackFace.tsx"],"sourcesContent":["import React from 'react';\nimport { VCDisplayCardProps } from '../../types';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport VCVerificationPill from '../VCVerificationPill/VCVerificationPill';\nimport FlipArrowRight from '../../assets/images/ArrowArcRight.svg';\nimport { getNameFromProfile } from '../../helpers/credential.helpers';\n\nexport const VCDisplayBackFace: React.FC<VCDisplayCardProps> = ({\n issuer,\n credentialSubject,\n className = '',\n loading,\n verification = [],\n handleClick,\n overrideDetailsComponent,\n}) => {\n const descriptionText = credentialSubject?.achievement?.description;\n const criteriaText = credentialSubject?.achievement?.criteria?.narrative;\n const issuerUrl = typeof issuer === 'object' ? issuer.url : '';\n const issuerName = getNameFromProfile(issuer ?? '');\n const defaultDetails = (\n <>\n <div className=\"width-full\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Description\n </h6>\n <p className=\"line-clamp-3 subpixel-antialiased text-grayscale-600 text-[14px] lc-line-clamp\">\n {descriptionText}\n </p>\n </div>\n\n <div className=\"width-full mt-[10px]\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Criteria\n </h6>\n <p className=\"line-clamp-3 subpixel-antialiased text-grayscale-600 text-[14px] lc-line-clamp\">\n {criteriaText}\n </p>\n </div>\n\n <div className=\"width-full mt-[10px] line-clamp-1 overflow-hidden vc-issuer-name-info\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Issuer\n </h6>\n <p className=\"max-w-[344px] line-clamp-1 subpixel-antialiased text-grayscale-600 text-[14px] block overflow-ellipsis break-all\">\n {issuerName}\n </p>\n </div>\n\n {issuerUrl && (\n <p className=\"text-indigo-500 font-bold text-xs width-full text-center mt-8\">\n {issuerUrl}\n </p>\n )}\n </>\n );\n\n const renderDetails = overrideDetailsComponent ? overrideDetailsComponent : defaultDetails;\n\n return (\n <div\n className={`z-[9] vc-display-main-card-back flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] max-h-[1100px] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`}\n >\n <section className=\"flex max-h-[150px] items-end bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[55%] min-h-[400px]\"></section>\n <section className=\"flex flex-col items-center justify-center w-full z-10 text-left credential-details-container max-w-[100%] relative\">\n <section className=\"flex flex-row items-start justify-start w-full line-clamp-2\">\n <h3\n className=\"text-2xl line-clamp-2 tracking-wide leading-snug text-left text-emerald-700\"\n data-testid=\"vc-credential-details-title tracking-wide subpixel-antialiased\"\n >\n Credential Details\n </h3>\n </section>\n\n <section className=\"flex flex-col mt-2 w-full my-2 min-h-[200px] credential-details-info\">\n {renderDetails}\n </section>\n\n <div className=\"w-full mt-2\"></div>\n\n <button\n onClick={handleClick}\n className=\"vc-flip-btn bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 shadow-3xl rounded-full\"\n >\n <span className=\"flex justify-center\">\n <img\n className=\"h-8 w-8 my-0 mx-4 scale-x-[-1]\"\n src={FlipArrowRight ?? ''}\n alt=\"Flip Card\"\n />\n </span>\n </button>\n\n <section className=\"flex-col items-center justify-center checklist-container justify-center w-[100%] width-full mt-[20px]\">\n <VCVerificationCheckWithText loading={loading} />\n <section>\n {verification.map(item => (\n <VCVerificationPill\n key={item.check}\n status={item.status}\n message={item.message}\n details={item.details}\n />\n ))}\n </section>\n </section>\n </section>\n </div>\n );\n};\n\nexport default VCDisplayBackFace;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VCDisplayBackFace-fbb3235f.js","sources":["../../src/components/VCDisplayBackFace/VCDisplayBackFace.tsx"],"sourcesContent":["import React from 'react';\nimport { VCDisplayCardProps } from '../../types';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport VCVerificationPill from '../VCVerificationPill/VCVerificationPill';\nimport FlipArrowRight from '../../assets/images/ArrowArcRight.svg';\nimport { getNameFromProfile } from '../../helpers/credential.helpers';\n\nexport const VCDisplayBackFace: React.FC<VCDisplayCardProps> = ({\n issuer,\n credentialSubject,\n className = '',\n loading,\n verification = [],\n handleClick,\n overrideDetailsComponent,\n}) => {\n const descriptionText = credentialSubject?.achievement?.description;\n const criteriaText = credentialSubject?.achievement?.criteria?.narrative;\n const issuerUrl = typeof issuer === 'object' ? issuer.url : '';\n const issuerName = getNameFromProfile(issuer ?? '');\n const defaultDetails = (\n <>\n <div className=\"width-full\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Description\n </h6>\n <p className=\"line-clamp-3 subpixel-antialiased text-grayscale-600 text-[14px] lc-line-clamp\">\n {descriptionText}\n </p>\n </div>\n\n <div className=\"width-full mt-[10px]\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Criteria\n </h6>\n <p className=\"line-clamp-3 subpixel-antialiased text-grayscale-600 text-[14px] lc-line-clamp\">\n {criteriaText}\n </p>\n </div>\n\n <div className=\"width-full mt-[10px] line-clamp-1 overflow-hidden vc-issuer-name-info\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Issuer\n </h6>\n <p className=\"max-w-[344px] line-clamp-1 subpixel-antialiased text-grayscale-600 text-[14px] block overflow-ellipsis break-all\">\n {issuerName}\n </p>\n </div>\n\n {issuerUrl && (\n <p className=\"text-indigo-500 font-bold text-xs width-full text-center mt-8\">\n {issuerUrl}\n </p>\n )}\n </>\n );\n\n const renderDetails = overrideDetailsComponent ? overrideDetailsComponent : defaultDetails;\n\n return (\n <div\n className={`z-[9] vc-display-main-card-back flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] max-h-[1100px] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`}\n >\n <section className=\"flex max-h-[150px] items-end bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[55%] min-h-[400px]\"></section>\n <section className=\"flex flex-col items-center justify-center w-full z-10 text-left credential-details-container max-w-[100%] relative\">\n <section className=\"flex flex-row items-start justify-start w-full line-clamp-2\">\n <h3\n className=\"text-2xl line-clamp-2 tracking-wide leading-snug text-left text-emerald-700\"\n data-testid=\"vc-credential-details-title tracking-wide subpixel-antialiased\"\n >\n Credential Details\n </h3>\n </section>\n\n <section className=\"flex flex-col mt-2 w-full my-2 min-h-[200px] credential-details-info\">\n {renderDetails}\n </section>\n\n <div className=\"w-full mt-2\"></div>\n\n <button\n onClick={handleClick}\n className=\"vc-flip-btn bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 shadow-3xl rounded-full\"\n >\n <span className=\"flex justify-center\">\n <img\n className=\"h-8 w-8 my-0 mx-4 scale-x-[-1]\"\n src={FlipArrowRight ?? ''}\n alt=\"Flip Card\"\n />\n </span>\n </button>\n\n <section className=\"flex-col items-center justify-center checklist-container justify-center w-[100%] width-full mt-[20px]\">\n <VCVerificationCheckWithText loading={loading} />\n <section>\n {verification.map(item => (\n <VCVerificationPill\n key={item.check}\n status={item.status}\n message={item.message}\n details={item.details}\n />\n ))}\n </section>\n </section>\n </section>\n </div>\n );\n};\n\nexport default VCDisplayBackFace;\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import React, { useState } from 'react';
2
2
  import { F as FlippyCard } from './FlippyCard-458dc9b1.js';
3
3
  import FatArrow from './icon.green.fat-arrow.png';
4
- import { U as UserProfilePicture } from './UserProfilePicture-7e131f5d.js';
4
+ import { U as UserProfilePicture } from './UserProfilePicture-50c34186.js';
5
5
  import { b as VCVerificationCheckWithText } from './VCVerificationCheck-8b8b7a76.js';
6
- import { i as getNameFromProfile, h as getImageFromProfile, b as getInfoFromCredential } from './credential.helpers-bd29e893.js';
7
- import { V as VCDisplayBackFace } from './VCDisplayBackFace-ce80f06d.js';
6
+ import { i as getNameFromProfile, h as getImageFromProfile, b as getInfoFromCredential } from './credential.helpers-108b5fb6.js';
7
+ import { V as VCDisplayBackFace } from './VCDisplayBackFace-fbb3235f.js';
8
8
 
9
9
  const VCDisplayFrontFace = ({
10
10
  title,
@@ -181,4 +181,4 @@ const VCDisplayCard = ({
181
181
  };
182
182
 
183
183
  export { VCDisplayCard as V };
184
- //# sourceMappingURL=VCDisplayCard-a40c4c7a.js.map
184
+ //# sourceMappingURL=VCDisplayCard-8463d18d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VCDisplayCard-a40c4c7a.js","sources":["../../src/components/VCDisplayFrontFace/VCDisplayFrontFace.tsx","../../src/components/VCDisplayCard/VCDisplayCard.tsx"],"sourcesContent":["import React from 'react';\nimport FatArrow from '../../assets/images/icon.green.fat-arrow.png';\nimport UserProfilePicture from '../UserProfilePicture/UserProfilePicture';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport { getImageFromProfile, getNameFromProfile } from '../../helpers/credential.helpers';\n\nimport { VCDisplayCardProps } from '../../types';\n\nconst VCDisplayFrontFace: React.FC<VCDisplayCardProps> = ({\n title,\n createdAt,\n issuer,\n issuee,\n subjectImageComponent,\n issuerImageComponent,\n hideProfileBubbles = false,\n credentialSubject,\n className = '',\n loading,\n handleClick,\n overrideCardImageComponent,\n overrideCardTitle,\n customHeaderComponent,\n}) => {\n const credentialAchievementImage =\n credentialSubject?.achievement?.image?.id || credentialSubject?.achievement?.image;\n const issuerName = getNameFromProfile(issuer ?? '');\n const issueeName = getNameFromProfile(issuee ?? '');\n const issuerImage = getImageFromProfile(issuer ?? '');\n const issueeImage = getImageFromProfile(issuee ?? '');\n\n let issueeImageEl: React.ReactNode | null = null;\n if (subjectImageComponent) {\n issueeImageEl = subjectImageComponent;\n } else {\n issueeImageEl = (\n <UserProfilePicture\n customContainerClass={`object-cover h-full w-full text-4xl ${\n !issueeImage ? 'pt-[8px]' : ''\n }`}\n user={{ image: issueeImage, name: issueeName }}\n alt=\"Issuee image\"\n />\n );\n }\n\n let issuerImageEl: React.ReactNode | null = null;\n\n if (issuerImageComponent) {\n issuerImageEl = issuerImageComponent;\n } else {\n issuerImageEl = (\n <UserProfilePicture\n customContainerClass={`object-cover h-full w-full text-4xl ${\n !issuerImage ? 'pt-[8px]' : ''\n }`}\n user={{ image: issuerImage, name: issuerName }}\n alt=\"Issuer image\"\n />\n );\n }\n\n const credImg = credentialAchievementImage ? (\n <img\n className=\"h-full w-full object-cover\"\n src={credentialAchievementImage ?? ''}\n alt=\"Credential Achievement Image\"\n />\n ) : (\n <></>\n );\n\n const renderCardImg = overrideCardImageComponent ? overrideCardImageComponent : credImg;\n const cardTitle = overrideCardTitle ? overrideCardTitle : title;\n\n return (\n <div\n className={`z-[9] vc-display-main-card-front flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`}\n >\n <section className=\"bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[77%]\"></section>\n <section className=\"flex flex-col items-center justify-center z-10 text-center credential-thumb-img\">\n <section className=\"max-w-[100px] max-h-[100px]\">{renderCardImg}</section>\n\n <section className=\"flex flex-row w-full line-clamp-2\">\n <div className=\"flex flex-row w-full line-clamp-2 py-4 vc-flippy-card-title-front \">\n <h3\n className=\"vc-thumbnail-title w-full text-2xl line-clamp-2 tracking-wide leading-snug text-center vc-display-title text-gray-900 font-medium\"\n data-testid=\"vc-thumbnail-title\"\n >\n {cardTitle ?? ''}\n </h3>\n </div>\n\n {customHeaderComponent && customHeaderComponent}\n </section>\n\n <section className=\"flex flex-row items-center justify-center mt-2 w-full my-2 vc-card-issuer-thumbs\">\n {!hideProfileBubbles && (\n <>\n <div className=\"flex items-center justify-center h-16 w-16 shadow-3xl rounded-full overflow-hidden bg-white\">\n {issuerImageEl}\n </div>\n <img\n className=\"h-8 w-8 my-0 mx-4\"\n src={FatArrow ?? ''}\n alt=\"fat arrow icon\"\n />\n <div className=\"flex items-center justify-center h-16 w-16 shadow-3xl rounded-full overflow-hidden bg-white\">\n {issueeImageEl}\n </div>\n </>\n )}\n </section>\n\n <div className=\"w-full mt-2 vc-card-issued-to-info\">\n <p\n className=\"text-sm font-light text-center line-clamp-2 vc-display-issue-details text-gray-900\"\n data-testid=\"vc-thumbnail-createdAt\"\n >\n Issued to <span className=\"font-bold text-gray-900\">{issueeName}</span> on{' '}\n {createdAt ?? ''} by{' '}\n <span className=\"font-bold text-gray-900\"> {issuerName}</span>\n </p>\n </div>\n\n <button\n onClick={handleClick}\n className=\"cursor-alias bg-white my-3 border-0 text-indigo-500 font-semibold py-2 px-4 sl\"\n >\n <span className=\"flex justify-center\">\n <p className=\"flex items-center\">View Details</p>\n </span>\n </button>\n </section>\n\n <div className=\"flex items-center justify-center w-full\">\n <VCVerificationCheckWithText loading={loading} />\n </div>\n </div>\n );\n};\n\nexport default VCDisplayFrontFace;\n","import React, { useState } from 'react';\nimport { AchievementCredential, VC, Profile, VerificationItem } from '@learncard/types';\n\nimport FlippyCard from '../FlippyCard/FlippyCard';\nimport VCDisplayFrontFace from '../VCDisplayFrontFace/VCDisplayFrontFace';\nimport VCDisplayBackFace from '../VCDisplayBackFace/VCDisplayBackFace';\n\nimport { getInfoFromCredential } from '../../helpers/credential.helpers';\n\nconst FRONT_FACE = 'front';\nconst BACK_FACE = 'back';\n\nexport type VCDisplayCardPropsReal = {\n credential: VC | AchievementCredential;\n issueeOverride?: Profile;\n issuerOverride?: Profile;\n className?: string;\n hideProfileBubbles?: boolean;\n loading?: boolean;\n verification?: VerificationItem[];\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n overrideDetailsComponent?: React.ReactNode;\n overrideCardTitle?: string;\n overrideCardImageComponent?: React.ReactNode;\n customHeaderComponent?: React.ReactNode;\n};\n\nexport const VCDisplayCard: React.FC<VCDisplayCardPropsReal> = ({\n credential,\n issueeOverride,\n issuerOverride,\n className = '',\n loading = false,\n verification = [],\n hideProfileBubbles = false,\n subjectImageComponent,\n issuerImageComponent,\n overrideDetailsComponent,\n overrideCardTitle,\n overrideCardImageComponent,\n customHeaderComponent,\n}) => {\n const [flipState, setFlipState] = useState(FRONT_FACE);\n const {\n title,\n createdAt,\n issuer: _issuer,\n issuee: _issuee,\n credentialSubject,\n } = getInfoFromCredential(credential);\n const issuee = issueeOverride || _issuee;\n const issuer = issuerOverride || _issuer;\n\n const handleFlip = () => {\n if (flipState === FRONT_FACE) {\n setFlipState(BACK_FACE);\n }\n if (flipState === BACK_FACE) {\n setFlipState(FRONT_FACE);\n }\n };\n\n return (\n <FlippyCard flipState={flipState}>\n <VCDisplayFrontFace\n title={title}\n credentialSubject={credentialSubject}\n customHeaderComponent={customHeaderComponent}\n issuer={issuer}\n issuee={issuee}\n subjectImageComponent={subjectImageComponent}\n issuerImageComponent={issuerImageComponent}\n overrideCardImageComponent={overrideCardImageComponent}\n overrideCardTitle={overrideCardTitle}\n hideProfileBubbles={hideProfileBubbles}\n createdAt={createdAt}\n className={className}\n loading={loading}\n handleClick={handleFlip}\n />\n <VCDisplayBackFace\n title={title}\n credentialSubject={credentialSubject}\n overrideDetailsComponent={overrideDetailsComponent}\n issuer={issuer}\n issuee={issuee}\n createdAt={createdAt}\n className={className}\n loading={loading}\n verification={verification}\n handleClick={handleFlip}\n />\n </FlippyCard>\n );\n};\n\nexport default VCDisplayCard;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VCDisplayCard-8463d18d.js","sources":["../../src/components/VCDisplayFrontFace/VCDisplayFrontFace.tsx","../../src/components/VCDisplayCard/VCDisplayCard.tsx"],"sourcesContent":["import React from 'react';\nimport FatArrow from '../../assets/images/icon.green.fat-arrow.png';\nimport UserProfilePicture from '../UserProfilePicture/UserProfilePicture';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport { getImageFromProfile, getNameFromProfile } from '../../helpers/credential.helpers';\n\nimport { VCDisplayCardProps } from '../../types';\n\nconst VCDisplayFrontFace: React.FC<VCDisplayCardProps> = ({\n title,\n createdAt,\n issuer,\n issuee,\n subjectImageComponent,\n issuerImageComponent,\n hideProfileBubbles = false,\n credentialSubject,\n className = '',\n loading,\n handleClick,\n overrideCardImageComponent,\n overrideCardTitle,\n customHeaderComponent,\n}) => {\n const credentialAchievementImage =\n credentialSubject?.achievement?.image?.id || credentialSubject?.achievement?.image;\n const issuerName = getNameFromProfile(issuer ?? '');\n const issueeName = getNameFromProfile(issuee ?? '');\n const issuerImage = getImageFromProfile(issuer ?? '');\n const issueeImage = getImageFromProfile(issuee ?? '');\n\n let issueeImageEl: React.ReactNode | null = null;\n if (subjectImageComponent) {\n issueeImageEl = subjectImageComponent;\n } else {\n issueeImageEl = (\n <UserProfilePicture\n customContainerClass={`object-cover h-full w-full text-4xl ${\n !issueeImage ? 'pt-[8px]' : ''\n }`}\n user={{ image: issueeImage, name: issueeName }}\n alt=\"Issuee image\"\n />\n );\n }\n\n let issuerImageEl: React.ReactNode | null = null;\n\n if (issuerImageComponent) {\n issuerImageEl = issuerImageComponent;\n } else {\n issuerImageEl = (\n <UserProfilePicture\n customContainerClass={`object-cover h-full w-full text-4xl ${\n !issuerImage ? 'pt-[8px]' : ''\n }`}\n user={{ image: issuerImage, name: issuerName }}\n alt=\"Issuer image\"\n />\n );\n }\n\n const credImg = credentialAchievementImage ? (\n <img\n className=\"h-full w-full object-cover\"\n src={credentialAchievementImage ?? ''}\n alt=\"Credential Achievement Image\"\n />\n ) : (\n <></>\n );\n\n const renderCardImg = overrideCardImageComponent ? overrideCardImageComponent : credImg;\n const cardTitle = overrideCardTitle ? overrideCardTitle : title;\n\n return (\n <div\n className={`z-[9] vc-display-main-card-front flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`}\n >\n <section className=\"bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[77%]\"></section>\n <section className=\"flex flex-col items-center justify-center z-10 text-center credential-thumb-img\">\n <section className=\"max-w-[100px] max-h-[100px]\">{renderCardImg}</section>\n\n <section className=\"flex flex-row w-full line-clamp-2\">\n <div className=\"flex flex-row w-full line-clamp-2 py-4 vc-flippy-card-title-front \">\n <h3\n className=\"vc-thumbnail-title w-full text-2xl line-clamp-2 tracking-wide leading-snug text-center vc-display-title text-gray-900 font-medium\"\n data-testid=\"vc-thumbnail-title\"\n >\n {cardTitle ?? ''}\n </h3>\n </div>\n\n {customHeaderComponent && customHeaderComponent}\n </section>\n\n <section className=\"flex flex-row items-center justify-center mt-2 w-full my-2 vc-card-issuer-thumbs\">\n {!hideProfileBubbles && (\n <>\n <div className=\"flex items-center justify-center h-16 w-16 shadow-3xl rounded-full overflow-hidden bg-white\">\n {issuerImageEl}\n </div>\n <img\n className=\"h-8 w-8 my-0 mx-4\"\n src={FatArrow ?? ''}\n alt=\"fat arrow icon\"\n />\n <div className=\"flex items-center justify-center h-16 w-16 shadow-3xl rounded-full overflow-hidden bg-white\">\n {issueeImageEl}\n </div>\n </>\n )}\n </section>\n\n <div className=\"w-full mt-2 vc-card-issued-to-info\">\n <p\n className=\"text-sm font-light text-center line-clamp-2 vc-display-issue-details text-gray-900\"\n data-testid=\"vc-thumbnail-createdAt\"\n >\n Issued to <span className=\"font-bold text-gray-900\">{issueeName}</span> on{' '}\n {createdAt ?? ''} by{' '}\n <span className=\"font-bold text-gray-900\"> {issuerName}</span>\n </p>\n </div>\n\n <button\n onClick={handleClick}\n className=\"cursor-alias bg-white my-3 border-0 text-indigo-500 font-semibold py-2 px-4 sl\"\n >\n <span className=\"flex justify-center\">\n <p className=\"flex items-center\">View Details</p>\n </span>\n </button>\n </section>\n\n <div className=\"flex items-center justify-center w-full\">\n <VCVerificationCheckWithText loading={loading} />\n </div>\n </div>\n );\n};\n\nexport default VCDisplayFrontFace;\n","import React, { useState } from 'react';\nimport { AchievementCredential, VC, Profile, VerificationItem } from '@learncard/types';\n\nimport FlippyCard from '../FlippyCard/FlippyCard';\nimport VCDisplayFrontFace from '../VCDisplayFrontFace/VCDisplayFrontFace';\nimport VCDisplayBackFace from '../VCDisplayBackFace/VCDisplayBackFace';\n\nimport { getInfoFromCredential } from '../../helpers/credential.helpers';\n\nconst FRONT_FACE = 'front';\nconst BACK_FACE = 'back';\n\nexport type VCDisplayCardPropsReal = {\n credential: VC | AchievementCredential;\n issueeOverride?: Profile;\n issuerOverride?: Profile;\n className?: string;\n hideProfileBubbles?: boolean;\n loading?: boolean;\n verification?: VerificationItem[];\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n overrideDetailsComponent?: React.ReactNode;\n overrideCardTitle?: string;\n overrideCardImageComponent?: React.ReactNode;\n customHeaderComponent?: React.ReactNode;\n};\n\nexport const VCDisplayCard: React.FC<VCDisplayCardPropsReal> = ({\n credential,\n issueeOverride,\n issuerOverride,\n className = '',\n loading = false,\n verification = [],\n hideProfileBubbles = false,\n subjectImageComponent,\n issuerImageComponent,\n overrideDetailsComponent,\n overrideCardTitle,\n overrideCardImageComponent,\n customHeaderComponent,\n}) => {\n const [flipState, setFlipState] = useState(FRONT_FACE);\n const {\n title,\n createdAt,\n issuer: _issuer,\n issuee: _issuee,\n credentialSubject,\n } = getInfoFromCredential(credential);\n const issuee = issueeOverride || _issuee;\n const issuer = issuerOverride || _issuer;\n\n const handleFlip = () => {\n if (flipState === FRONT_FACE) {\n setFlipState(BACK_FACE);\n }\n if (flipState === BACK_FACE) {\n setFlipState(FRONT_FACE);\n }\n };\n\n return (\n <FlippyCard flipState={flipState}>\n <VCDisplayFrontFace\n title={title}\n credentialSubject={credentialSubject}\n customHeaderComponent={customHeaderComponent}\n issuer={issuer}\n issuee={issuee}\n subjectImageComponent={subjectImageComponent}\n issuerImageComponent={issuerImageComponent}\n overrideCardImageComponent={overrideCardImageComponent}\n overrideCardTitle={overrideCardTitle}\n hideProfileBubbles={hideProfileBubbles}\n createdAt={createdAt}\n className={className}\n loading={loading}\n handleClick={handleFlip}\n />\n <VCDisplayBackFace\n title={title}\n credentialSubject={credentialSubject}\n overrideDetailsComponent={overrideDetailsComponent}\n issuer={issuer}\n issuee={issuee}\n createdAt={createdAt}\n className={className}\n loading={loading}\n verification={verification}\n handleClick={handleFlip}\n />\n </FlippyCard>\n );\n};\n\nexport default VCDisplayCard;\n"],"names":[],"mappings":"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"}
@@ -1,17 +1,18 @@
1
1
  import React, { useRef, useEffect, useState, createContext, Component, Children, cloneElement, useLayoutEffect } from 'react';
2
+ import './index-4fa491c1.js';
2
3
  import { a as VCVerificationCheckWithSpinner } from './VCVerificationCheck-8b8b7a76.js';
3
- import { U as UserProfilePicture } from './UserProfilePicture-7e131f5d.js';
4
- import { a as getColorForVerificationStatus, j as format$1, h as getImageFromProfile, b as getInfoFromCredential, k as getCategoryColor, g as getTotalCountOfSkills, c as categorizeSkills } from './credential.helpers-bd29e893.js';
5
- import { g as getBaseUrl, b as VideoIcon, C as Camera, G as GenericDocumentIcon, L as LinkIcon, p as prettyBytes, c as capitalize, E as ExclamationPoint, A as AcuteCheckmark, I as InfoIcon, d as LeftArrow, e as SkillsBox, r as resolveProfileDisplay, i as isAppDidWeb, V as VERIFIER_STATES$1, a as VerifierStateBadgeAndText, P as PersonBadge, h as VerifiedBadge, U as UnknownVerifierBadge, j as RedFlag } from './VerifierStateBadgeAndText-5152c28e.js';
4
+ import { U as UserProfilePicture } from './UserProfilePicture-50c34186.js';
5
+ import { a as getColorForVerificationStatus, j as format$1, h as getImageFromProfile, b as getInfoFromCredential, k as getCategoryColor, g as getTotalCountOfSkills, c as categorizeSkills } from './credential.helpers-108b5fb6.js';
6
+ import { e as getBaseUrl, h as VideoIcon, C as Camera, G as GenericDocumentIcon, L as LinkIcon, p as prettyBytes, d as capitalize, E as ExclamationPoint, A as AcuteCheckmark, I as InfoIcon, j as LeftArrow, k as SkillsBox, r as resolveProfileDisplay, m as isAppDidWeb, V as VERIFIER_STATES$1, a as VerifierStateBadgeAndText, P as PersonBadge, n as VerifiedBadge, U as UnknownVerifierBadge, o as RedFlag } from './VerifierStateBadgeAndText-0db85894.js';
6
7
  import './index-eae3ca64.js';
7
8
  import { L as Lightbox, X } from './Lightbox-f0338a0c.js';
8
- import { V as VerificationStatusEnum } from './types.esm-e2b75956.js';
9
- import { A as AlignmentsBox, b as CertificateDisplayCard } from './CertificateDisplayCard-0642d8af.js';
9
+ import { V as VerificationStatusEnum } from './types.esm-aa0345d0.js';
10
+ import { A as AlignmentsBox, b as CertificateDisplayCard } from './CertificateDisplayCard-d2fa3f05.js';
10
11
  import { I as IDIcon, Q as QRCodeIcon, A as AwardRibbon } from './QRCodeIcon-8eef4f7c.js';
11
12
  import { a as LCCategoryEnum } from './index-28917993.js';
12
13
  import { P as PuzzlePiece } from './PuzzlePiece-a3d9cc62.js';
13
14
  import IDSleeve from './id-sleeve.png';
14
- import { a as MeritBadgeDisplayCard } from './MeritBadgeDisplayCard-f6b064a6.js';
15
+ import { a as MeritBadgeDisplayCard } from './MeritBadgeDisplayCard-eba507ab.js';
15
16
 
16
17
  const RoundedX = ({ className = "" }) => {
17
18
  return /* @__PURE__ */ React.createElement(
@@ -818,6 +819,34 @@ const VC2BackFace = ({
818
819
  ), alignment && /* @__PURE__ */ React.createElement(AlignmentsBox, { alignment, style: "boost" }), verificationItems && verificationItems.length > 0 && /* @__PURE__ */ React.createElement(VerificationsBox, { verificationItems })));
819
820
  };
820
821
 
822
+ const BadgeThumbnailPlaceholder = () => /* @__PURE__ */ React.createElement(
823
+ "svg",
824
+ {
825
+ viewBox: "0 0 24 24",
826
+ fill: "none",
827
+ xmlns: "http://www.w3.org/2000/svg",
828
+ className: "w-1/2 h-1/2 text-grayscale-400",
829
+ "aria-hidden": "true"
830
+ },
831
+ /* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "9", r: "6", stroke: "currentColor", strokeWidth: "1.75" }),
832
+ /* @__PURE__ */ React.createElement(
833
+ "path",
834
+ {
835
+ d: "M8.5 14.5 7 22l5-3 5 3-1.5-7.5",
836
+ stroke: "currentColor",
837
+ strokeWidth: "1.75",
838
+ strokeLinecap: "round",
839
+ strokeLinejoin: "round"
840
+ }
841
+ ),
842
+ /* @__PURE__ */ React.createElement(
843
+ "path",
844
+ {
845
+ d: "M12 6.5 13 8.3l2 .3-1.4 1.4.3 2L12 11l-1.9.9.3-2L9 8.6l2-.3L12 6.5Z",
846
+ fill: "currentColor"
847
+ }
848
+ )
849
+ );
821
850
  const VC2FrontFaceInfo = ({
822
851
  credential,
823
852
  issuee,
@@ -835,6 +864,10 @@ const VC2FrontFaceInfo = ({
835
864
  }) => {
836
865
  const issuerImage = getImageFromProfile(issuer != null ? issuer : "");
837
866
  const issueeImage = getImageFromProfile(issuee != null ? issuee : "");
867
+ const [thumbErrored, setThumbErrored] = React.useState(false);
868
+ React.useEffect(() => {
869
+ setThumbErrored(false);
870
+ }, [imageUrl]);
838
871
  const issueeDisplay = resolveProfileDisplay(issuee, "");
839
872
  const issuerDisplay = resolveProfileDisplay(issuer, "");
840
873
  const { credentialSubject } = getInfoFromCredential(credential, "MMM dd, yyyy", {
@@ -898,13 +931,15 @@ const VC2FrontFaceInfo = ({
898
931
  verifierState = isAppIssuerDid ? VERIFIER_STATES$1.appIssuer : VERIFIER_STATES$1.unknownVerifier;
899
932
  }
900
933
  }
901
- return /* @__PURE__ */ React.createElement(v, { inverseFlipId: "card" }, /* @__PURE__ */ React.createElement("section", { className: "vc-front-face w-full px-[15px] flex flex-col items-center gap-[15px]" }, imageUrl && !customThumbComponent && /* @__PURE__ */ React.createElement(
934
+ return /* @__PURE__ */ React.createElement(v, { inverseFlipId: "card" }, /* @__PURE__ */ React.createElement("section", { className: "vc-front-face w-full px-[15px] flex flex-col items-center gap-[15px]" }, imageUrl && !customThumbComponent && (thumbErrored ? /* @__PURE__ */ React.createElement("div", { className: "vc-front-image h-[130px] w-[130px] rounded-[10px] bg-grayscale-100 flex items-center justify-center" }, /* @__PURE__ */ React.createElement(BadgeThumbnailPlaceholder, null)) : /* @__PURE__ */ React.createElement(
902
935
  "img",
903
936
  {
904
- className: "vc-front-image h-[130px] w-[130px] rounded-[10px]",
905
- src: imageUrl
937
+ className: "vc-front-image h-[130px] w-[130px] rounded-[10px] bg-white object-cover",
938
+ src: imageUrl,
939
+ alt: "credential thumbnail",
940
+ onError: () => setThumbErrored(true)
906
941
  }
907
- ), customThumbComponent && customThumbComponent, /* @__PURE__ */ React.createElement("div", { className: "vc-issue-info-box bg-white flex flex-col items-center gap-[5px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full" }, customBodyCardComponent && customBodyCardComponent, !customBodyCardComponent && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("h3", { className: "flex flex-col text-center leading-[130%] w-full" }, !issueeDisplay.isMissing && issueeDisplay.isDidValue && /* @__PURE__ */ React.createElement("span", { className: "flex flex-wrap items-baseline justify-center gap-1 text-[17px] leading-normal font-[600] font-poppins max-w-full overflow-hidden text-ellipsis whitespace-nowrap" }, /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-900" }, "Digital ID:"), /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-500 underline" }, issueeDisplay.displayName)), !issueeDisplay.isMissing && !issueeDisplay.isDidValue && /* @__PURE__ */ React.createElement("span", { className: "font-poppins font-semibold text-[20px] leading-[130%] max-w-full overflow-hidden text-ellipsis whitespace-nowrap text-grayscale-900" }, issueeDisplay.displayName), subjectDID && !issueeDisplay.isDidValue && !issueeDisplay.isLCNetwork && /* @__PURE__ */ React.createElement("span", { className: "text-[12px] text-grayscale-500 leading-[18px] font-poppins font-normal m-0 p-0" }, subjectDID)), /* @__PURE__ */ React.createElement("div", { className: "relative" }, /* @__PURE__ */ React.createElement("div", { className: "vc-issuee-image h-[60px] w-[60px] rounded-full overflow-hidden" }, issueeImageEl), /* @__PURE__ */ React.createElement("div", { className: "vc-issuer-image h-[30px] w-[30px] rounded-full overflow-hidden absolute bottom-[-12px] right-[-12px]" }, issuerImageEl)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-[13px]" }, /* @__PURE__ */ React.createElement("div", { className: "vc-issue-details mt-[10px] flex flex-col items-center font-poppins text-[14px] leading-[20px]" }, /* @__PURE__ */ React.createElement("span", { className: "created-at text-grayscale-700" }, createdAt), !issuerDisplay.isMissing && /* @__PURE__ */ React.createElement("span", { className: "issued-by flex flex-wrap items-baseline justify-center gap-1 max-w-full overflow-hidden text-ellipsis whitespace-nowrap text-[14px]" }, /* @__PURE__ */ React.createElement("span", { className: "font-medium text-grayscale-900" }, "By"), issuerDisplay.isDidValue ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: "flex flex-wrap items-baseline justify-center gap-1 leading-normal font-[600] font-poppins max-w-full overflow-hidden text-ellipsis whitespace-nowrap" }, /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-900" }, "Digital ID:"), /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-500 underline" }, issuerDisplay.displayName))) : /* @__PURE__ */ React.createElement("strong", { className: "font-bold text-grayscale-900" }, issuerDisplay.displayName))), /* @__PURE__ */ React.createElement(
942
+ )), customThumbComponent && customThumbComponent, /* @__PURE__ */ React.createElement("div", { className: "vc-issue-info-box bg-white flex flex-col items-center gap-[5px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full" }, customBodyCardComponent && customBodyCardComponent, !customBodyCardComponent && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("h3", { className: "flex flex-col text-center leading-[130%] w-full" }, !issueeDisplay.isMissing && issueeDisplay.isDidValue && /* @__PURE__ */ React.createElement("span", { className: "flex flex-wrap items-baseline justify-center gap-x-1 text-[17px] leading-normal font-[600] font-poppins max-w-full break-words" }, /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-900" }, "Digital ID:"), /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-500 underline" }, issueeDisplay.displayName)), !issueeDisplay.isMissing && !issueeDisplay.isDidValue && /* @__PURE__ */ React.createElement("span", { className: "font-poppins font-semibold text-[20px] leading-[130%] max-w-full line-clamp-2 break-words text-grayscale-900" }, issueeDisplay.displayName), subjectDID && !issueeDisplay.isDidValue && !issueeDisplay.isLCNetwork && /* @__PURE__ */ React.createElement("span", { className: "text-[12px] text-grayscale-500 leading-[18px] font-poppins font-normal m-0 p-0" }, subjectDID)), /* @__PURE__ */ React.createElement("div", { className: "relative" }, /* @__PURE__ */ React.createElement("div", { className: "vc-issuee-image h-[60px] w-[60px] rounded-full overflow-hidden bg-white" }, issueeImageEl), /* @__PURE__ */ React.createElement("div", { className: "vc-issuer-image h-[30px] w-[30px] rounded-full overflow-hidden absolute bottom-[-12px] right-[-12px] bg-white" }, issuerImageEl)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-[13px]" }, /* @__PURE__ */ React.createElement("div", { className: "vc-issue-details mt-[10px] flex flex-col items-center font-poppins text-[14px] leading-[20px]" }, /* @__PURE__ */ React.createElement("span", { className: "created-at text-grayscale-700" }, createdAt), !issuerDisplay.isMissing && /* @__PURE__ */ React.createElement("span", { className: "issued-by max-w-full break-words text-center line-clamp-2 text-[14px]" }, /* @__PURE__ */ React.createElement("span", { className: "font-medium text-grayscale-900" }, "By"), " ", issuerDisplay.isDidValue ? /* @__PURE__ */ React.createElement("span", { className: "font-[600] font-poppins break-words" }, /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-900" }, "Digital ID:"), " ", /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-500 underline" }, issuerDisplay.displayName)) : /* @__PURE__ */ React.createElement("strong", { className: "font-bold text-grayscale-900 break-words" }, issuerDisplay.displayName))), /* @__PURE__ */ React.createElement(
908
943
  VerifierStateBadgeAndText,
909
944
  {
910
945
  verifierState,
@@ -1017,7 +1052,7 @@ const VCIDDisplayFrontFace = ({
1017
1052
  "button",
1018
1053
  {
1019
1054
  type: "button",
1020
- className: "vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[30px] py-[8px] rounded-[40px] text-[28px] tracking-[0.75px] uppercase leading-[28px] mt-[25px] w-fit select-none",
1055
+ className: "vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[24px] py-[8px] rounded-[40px] text-[16px] font-poppins font-medium leading-normal mt-[25px] w-fit select-none",
1021
1056
  onClick: () => setIsFront(!isFront)
1022
1057
  },
1023
1058
  "Details"
@@ -1421,7 +1456,7 @@ const VCDisplayCard2 = ({
1421
1456
  "button",
1422
1457
  {
1423
1458
  type: "button",
1424
- className: "vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[30px] py-[8px] rounded-[40px] text-[28px] tracking-[0.75px] uppercase leading-[28px] mt-[40px] w-fit select-none",
1459
+ className: "vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[24px] py-[8px] rounded-[40px] text-[16px] font-poppins font-medium leading-normal mt-[40px] w-fit select-none",
1425
1460
  onClick: () => setIsFront(!isFront)
1426
1461
  },
1427
1462
  "Details"
@@ -1429,7 +1464,7 @@ const VCDisplayCard2 = ({
1429
1464
  "button",
1430
1465
  {
1431
1466
  type: "button",
1432
- className: "vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[30px] py-[8px] rounded-[40px] text-[28px] tracking-[0.75px] uppercase leading-[28px] mt-[40px] w-fit select-none",
1467
+ className: "vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[24px] py-[8px] rounded-[40px] text-[16px] font-poppins font-medium leading-normal mt-[40px] w-fit select-none",
1433
1468
  onClick: () => setIsFront(!isFront)
1434
1469
  },
1435
1470
  /* @__PURE__ */ React.createElement("span", { className: "flex gap-[10px] items-center" }, /* @__PURE__ */ React.createElement(LeftArrow, null), "Back")
@@ -1462,4 +1497,4 @@ const VCDisplayCard2 = ({
1462
1497
  };
1463
1498
 
1464
1499
  export { VCDisplayCard2 as V, VCDisplayCardSkillsCount as a, VCIDDisplayCard as b };
1465
- //# sourceMappingURL=VCDisplayCard2-3937fbc9.js.map
1500
+ //# sourceMappingURL=VCDisplayCard2-5ed2777f.js.map