@learncard/react 2.8.61 → 2.9.2

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 (448) hide show
  1. package/dist/base.css +1 -1
  2. package/dist/base.js +1 -1
  3. package/dist/cjs/AchievementCard-c43817f2.js +87 -0
  4. package/dist/cjs/{AchievementCard-dd332f3f.js.map → AchievementCard-c43817f2.js.map} +1 -1
  5. package/dist/cjs/BoostGenericCard-a239e89c.js +180 -0
  6. package/dist/cjs/BoostGenericCard-a239e89c.js.map +1 -0
  7. package/dist/cjs/BoostSmallCard-3e303698.js +165 -0
  8. package/dist/cjs/{BoostSmallCard-dd1cbd51.js.map → BoostSmallCard-3e303698.js.map} +1 -1
  9. package/dist/cjs/{Button-a7af702b.js → Button-9ebe120c.js} +10 -6
  10. package/dist/cjs/{Button-a7af702b.js.map → Button-9ebe120c.js.map} +1 -1
  11. package/dist/cjs/CertificateDisplayCard-b299f7fd.js +891 -0
  12. package/dist/cjs/CertificateDisplayCard-b299f7fd.js.map +1 -0
  13. package/dist/cjs/Checkmark-74444a78.js +79 -0
  14. package/dist/cjs/{Checkmark-f611aa4d.js.map → Checkmark-74444a78.js.map} +1 -1
  15. package/dist/cjs/{CircleCheckButton-82d47ee2.js → CircleCheckButton-f76e5b5d.js} +11 -9
  16. package/dist/cjs/{CircleCheckButton-82d47ee2.js.map → CircleCheckButton-f76e5b5d.js.map} +1 -1
  17. package/dist/cjs/{CircleIcon-617c38fa.js → CircleIcon-f0fa68c7.js} +14 -30
  18. package/dist/cjs/{CircleIcon-617c38fa.js.map → CircleIcon-f0fa68c7.js.map} +1 -1
  19. package/dist/cjs/{CircleSpinner-093cce04.js → CircleSpinner-f518569a.js} +2 -13
  20. package/dist/cjs/{CircleSpinner-093cce04.js.map → CircleSpinner-f518569a.js.map} +1 -1
  21. package/dist/cjs/Coins-1f33b7ad.js +20 -0
  22. package/dist/cjs/{Coins-acd63f46.js.map → Coins-1f33b7ad.js.map} +1 -1
  23. package/dist/cjs/CourseCard-bc699307.js +88 -0
  24. package/dist/cjs/{CourseCard-338a32ee.js.map → CourseCard-bc699307.js.map} +1 -1
  25. package/dist/cjs/CourseVerticalCard-554ff1b7.js +116 -0
  26. package/dist/cjs/{CourseVerticalCard-841960b1.js.map → CourseVerticalCard-554ff1b7.js.map} +1 -1
  27. package/dist/cjs/{FlippyCard-209549c5.js → FlippyCard-bf0fd493.js} +3 -16
  28. package/dist/cjs/{FlippyCard-209549c5.js.map → FlippyCard-bf0fd493.js.map} +1 -1
  29. package/dist/cjs/GenericArrow-5c392276.js +34 -0
  30. package/dist/cjs/{GenericArrow-8dfb261d.js.map → GenericArrow-5c392276.js.map} +1 -1
  31. package/dist/cjs/GenericCard-2b20ab4b.js +66 -0
  32. package/dist/cjs/{GenericCard-ad18c4c3.js.map → GenericCard-2b20ab4b.js.map} +1 -1
  33. package/dist/cjs/IDDisplayIcon-4b6ce62f.js +234 -0
  34. package/dist/cjs/{IDDisplayIcon-62993df0.js.map → IDDisplayIcon-4b6ce62f.js.map} +1 -1
  35. package/dist/cjs/JobHistoryCard-e9ac7a1a.js +35 -0
  36. package/dist/cjs/{JobHistoryCard-05a3f98b.js.map → JobHistoryCard-e9ac7a1a.js.map} +1 -1
  37. package/dist/cjs/JobListCard-c53660e8.js +124 -0
  38. package/dist/cjs/{JobListCard-f74f0302.js.map → JobListCard-c53660e8.js.map} +1 -1
  39. package/dist/cjs/LearnCardCreditCardBackFace-62330eea.js +83 -0
  40. package/dist/cjs/{LearnCardCreditCardBackFace-87cc8b9f.js.map → LearnCardCreditCardBackFace-62330eea.js.map} +1 -1
  41. package/dist/cjs/LearnCardCreditCardFrontFace-aca1b7bc.js +89 -0
  42. package/dist/cjs/{LearnCardCreditCardFrontFace-39eeb89a.js.map → LearnCardCreditCardFrontFace-aca1b7bc.js.map} +1 -1
  43. package/dist/cjs/{LearnPill-d80ba2e6.js → LearnPill-da2d2a8e.js} +10 -10
  44. package/dist/cjs/{LearnPill-d80ba2e6.js.map → LearnPill-da2d2a8e.js.map} +1 -1
  45. package/dist/cjs/{Lightbox-9aeb2f7b.js → Lightbox-d72e19ba.js} +70 -58
  46. package/dist/cjs/{Lightbox-9aeb2f7b.js.map → Lightbox-d72e19ba.js.map} +1 -1
  47. package/dist/cjs/Lightbulb-82cec354.js +42 -0
  48. package/dist/cjs/{Lightbulb-19c89d3c.js.map → Lightbulb-82cec354.js.map} +1 -1
  49. package/dist/cjs/MeritBadgeDisplayCard-531dbb15.js +947 -0
  50. package/dist/cjs/MeritBadgeDisplayCard-531dbb15.js.map +1 -0
  51. package/dist/cjs/MeritBadgeSkillsCount-4ffd9166.js +36 -0
  52. package/dist/cjs/{MeritBadgeSkillsCount-54879719.js.map → MeritBadgeSkillsCount-4ffd9166.js.map} +1 -1
  53. package/dist/cjs/MiniVCThumbnail-9c510f51.js +85 -0
  54. package/dist/cjs/{MiniVCThumbnail-a78e44f2.js.map → MiniVCThumbnail-9c510f51.js.map} +1 -1
  55. package/dist/cjs/Notification-24d4de25.js +123 -0
  56. package/dist/cjs/{Notification-d212fa7b.js.map → Notification-24d4de25.js.map} +1 -1
  57. package/dist/cjs/NotificationBoostCard-abb23722.js +142 -0
  58. package/dist/cjs/{NotificationBoostCard-cf2140c0.js.map → NotificationBoostCard-abb23722.js.map} +1 -1
  59. package/dist/cjs/NotificationUserAcceptedBoostCard-31d8a89e.js +98 -0
  60. package/dist/cjs/{NotificationUserAcceptedBoostCard-423b9320.js.map → NotificationUserAcceptedBoostCard-31d8a89e.js.map} +1 -1
  61. package/dist/cjs/NotificationUserCard-59431df3.js +121 -0
  62. package/dist/cjs/{NotificationUserCard-d4dab06c.js.map → NotificationUserCard-59431df3.js.map} +1 -1
  63. package/dist/cjs/PuzzlePiece-e64f4596.js +97 -0
  64. package/dist/cjs/PuzzlePiece-e64f4596.js.map +1 -0
  65. package/dist/cjs/QRCodeCard-f0079bd9.js +49 -0
  66. package/dist/cjs/{QRCodeCard-b56c11cc.js.map → QRCodeCard-f0079bd9.js.map} +1 -1
  67. package/dist/cjs/QRCodeIcon-3021a53b.js +137 -0
  68. package/dist/cjs/{QRCodeIcon-81c6e96b.js.map → QRCodeIcon-3021a53b.js.map} +1 -1
  69. package/dist/cjs/RoundedPill-b54f3ac1.js +134 -0
  70. package/dist/cjs/{RoundedPill-bda7c067.js.map → RoundedPill-b54f3ac1.js.map} +1 -1
  71. package/dist/cjs/{SchoolIDCard-39a099d2.js → SchoolIDCard-e22d0d80.js} +661 -380
  72. package/dist/cjs/SchoolIDCard-e22d0d80.js.map +1 -0
  73. package/dist/cjs/SkillTabCard-efade17a.js +44 -0
  74. package/dist/cjs/{SkillTabCard-66677f3c.js.map → SkillTabCard-efade17a.js.map} +1 -1
  75. package/dist/cjs/SkillVerticalCard-62e308b4.js +37 -0
  76. package/dist/cjs/{SkillVerticalCard-3eb3a8e9.js.map → SkillVerticalCard-62e308b4.js.map} +1 -1
  77. package/dist/cjs/SkillsCard-dae73a71.js +57 -0
  78. package/dist/cjs/{SkillsCard-4b6dbb4f.js.map → SkillsCard-dae73a71.js.map} +1 -1
  79. package/dist/cjs/SkillsStatsCard-aeef796c.js +57 -0
  80. package/dist/cjs/{SkillsStatsCard-97a35a88.js.map → SkillsStatsCard-aeef796c.js.map} +1 -1
  81. package/dist/cjs/SmallAchievementCard-d22a4d25.js +53 -0
  82. package/dist/cjs/{SmallAchievementCard-a1fa862b.js.map → SmallAchievementCard-d22a4d25.js.map} +1 -1
  83. package/dist/cjs/ThreeDotVertical-dda0e747.js +57 -0
  84. package/dist/cjs/{ThreeDotVertical-1d221fc8.js.map → ThreeDotVertical-dda0e747.js.map} +1 -1
  85. package/dist/cjs/Trophy-9758f0cf.js +35 -0
  86. package/dist/cjs/{Trophy-3d323be3.js.map → Trophy-9758f0cf.js.map} +1 -1
  87. package/dist/cjs/User-54049eba.js +130 -0
  88. package/dist/cjs/{User-301088ac.js.map → User-54049eba.js.map} +1 -1
  89. package/dist/cjs/{UserProfilePicture-16b97343.js → UserProfilePicture-d69fe4f0.js} +18 -12
  90. package/dist/cjs/{UserProfilePicture-16b97343.js.map → UserProfilePicture-d69fe4f0.js.map} +1 -1
  91. package/dist/cjs/{VCCard-32aeadb3.js → VCCard-2683c65c.js} +29 -22
  92. package/dist/cjs/{VCCard-32aeadb3.js.map → VCCard-2683c65c.js.map} +1 -1
  93. package/dist/cjs/VCDisplayBackFace-a7428833.js +70 -0
  94. package/dist/cjs/{VCDisplayBackFace-4543749f.js.map → VCDisplayBackFace-a7428833.js.map} +1 -1
  95. package/dist/cjs/VCDisplayCard-b8882c8e.js +191 -0
  96. package/dist/cjs/{VCDisplayCard-353cc9ed.js.map → VCDisplayCard-b8882c8e.js.map} +1 -1
  97. package/dist/cjs/{VCDisplayCard2-50acd7c8.js → VCDisplayCard2-28f7df8e.js} +725 -694
  98. package/dist/cjs/VCDisplayCard2-28f7df8e.js.map +1 -0
  99. package/dist/cjs/VCThumbnail-f84d0d01.js +148 -0
  100. package/dist/cjs/{VCThumbnail-6bf86bb2.js.map → VCThumbnail-f84d0d01.js.map} +1 -1
  101. package/dist/cjs/VCVerificationCheck-92198135.js +78 -0
  102. package/dist/cjs/{VCVerificationCheck-46fa75d3.js.map → VCVerificationCheck-92198135.js.map} +1 -1
  103. package/dist/cjs/{VCVerificationPill-88723dfa.js → VCVerificationPill-729ac239.js} +11 -26
  104. package/dist/cjs/{VCVerificationPill-88723dfa.js.map → VCVerificationPill-729ac239.js.map} +1 -1
  105. package/dist/cjs/{VerifierStateBadgeAndText-08aea854.js → VerifierStateBadgeAndText-e46d8393.js} +420 -338
  106. package/dist/cjs/{VerifierStateBadgeAndText-08aea854.js.map → VerifierStateBadgeAndText-e46d8393.js.map} +1 -1
  107. package/dist/cjs/{constants-cd049889.js → constants-2430d4bc.js} +22 -30
  108. package/dist/cjs/{constants-cd049889.js.map → constants-2430d4bc.js.map} +1 -1
  109. package/dist/cjs/{credential.helpers-90b66932.js → credential.helpers-4f806327.js} +197 -156
  110. package/dist/cjs/{credential.helpers-90b66932.js.map → credential.helpers-4f806327.js.map} +1 -1
  111. package/dist/cjs/{icons-0404f605.js → icons-857d4be1.js} +2 -1
  112. package/dist/cjs/{icons-0404f605.js.map → icons-857d4be1.js.map} +1 -1
  113. package/dist/cjs/{index-a9e3ddf5.js → index-0cac2c5b.js} +1 -1
  114. package/dist/cjs/{index-a9e3ddf5.js.map → index-0cac2c5b.js.map} +1 -1
  115. package/dist/cjs/{index-08002ab6.js → index-ba659c28.js} +9 -1
  116. package/dist/cjs/{index-08002ab6.js.map → index-ba659c28.js.map} +1 -1
  117. package/dist/cjs/index.js +119 -62
  118. package/dist/cjs/index.js.map +1 -1
  119. package/dist/cjs/index10.js +4 -4
  120. package/dist/cjs/index11.js +1 -1
  121. package/dist/cjs/index12.js +5 -5
  122. package/dist/cjs/index13.js +60 -61
  123. package/dist/cjs/index13.js.map +1 -1
  124. package/dist/cjs/index14.js +2 -2
  125. package/dist/cjs/index15.js +2 -2
  126. package/dist/cjs/index16.js +1 -1
  127. package/dist/cjs/index17.js +1 -1
  128. package/dist/cjs/index18.js +2 -2
  129. package/dist/cjs/index19.js +1 -1
  130. package/dist/cjs/index2.js +6 -6
  131. package/dist/cjs/index20.js +1 -1
  132. package/dist/cjs/index21.js +11 -11
  133. package/dist/cjs/index22.js +1 -1
  134. package/dist/cjs/index23.js +7 -7
  135. package/dist/cjs/index24.js +8 -8
  136. package/dist/cjs/index25.js +1 -1
  137. package/dist/cjs/index26.js +2 -2
  138. package/dist/cjs/index27.js +1 -1
  139. package/dist/cjs/index28.js +2 -2
  140. package/dist/cjs/index29.js +5 -5
  141. package/dist/cjs/index3.js +13 -14
  142. package/dist/cjs/index3.js.map +1 -1
  143. package/dist/cjs/index30.js +1 -1
  144. package/dist/cjs/index31.js +1 -1
  145. package/dist/cjs/index32.js +1 -1
  146. package/dist/cjs/index33.js +4 -4
  147. package/dist/cjs/index34.js +1 -1
  148. package/dist/cjs/index35.js +2 -2
  149. package/dist/cjs/index36.js +9 -9
  150. package/dist/cjs/index37.js +1 -1
  151. package/dist/cjs/index38.js +20 -21
  152. package/dist/cjs/index38.js.map +1 -1
  153. package/dist/cjs/index39.js +10 -10
  154. package/dist/cjs/index4.js +7 -7
  155. package/dist/cjs/index40.js +13 -13
  156. package/dist/cjs/index41.js +15 -16
  157. package/dist/cjs/index41.js.map +1 -1
  158. package/dist/cjs/index42.js +2 -2
  159. package/dist/cjs/index43.js +1 -1
  160. package/dist/cjs/index44.js +2 -2
  161. package/dist/cjs/index45.js +2 -2
  162. package/dist/cjs/index5.js +1 -1
  163. package/dist/cjs/index6.js +11 -12
  164. package/dist/cjs/index6.js.map +1 -1
  165. package/dist/cjs/index7.js +3 -3
  166. package/dist/cjs/index8.js +3 -3
  167. package/dist/cjs/index9.js +1 -1
  168. package/dist/cjs/{types-8eab1382.js → types-91d0677b.js} +24 -23
  169. package/dist/cjs/{types-8eab1382.js.map → types-91d0677b.js.map} +1 -1
  170. package/dist/cjs/types-e4d9a257.js.map +1 -1
  171. package/dist/cjs/types.esm-beffa54c.js +5386 -0
  172. package/dist/cjs/types.esm-beffa54c.js.map +1 -0
  173. package/dist/esm/AchievementCard-e80836dd.js +81 -0
  174. package/dist/esm/{AchievementCard-d179d041.js.map → AchievementCard-e80836dd.js.map} +1 -1
  175. package/dist/esm/BoostGenericCard-b5e522ea.js +174 -0
  176. package/dist/esm/BoostGenericCard-b5e522ea.js.map +1 -0
  177. package/dist/esm/BoostSmallCard-ddefe808.js +157 -0
  178. package/dist/esm/{BoostSmallCard-42980ebc.js.map → BoostSmallCard-ddefe808.js.map} +1 -1
  179. package/dist/esm/Button-70eedbf6.js +16 -0
  180. package/dist/esm/{Button-5f805204.js.map → Button-70eedbf6.js.map} +1 -1
  181. package/dist/esm/CertificateDisplayCard-0ceeb71a.js +879 -0
  182. package/dist/esm/CertificateDisplayCard-0ceeb71a.js.map +1 -0
  183. package/dist/esm/Checkmark-724d5d17.js +73 -0
  184. package/dist/esm/{Checkmark-d8b8f43d.js.map → Checkmark-724d5d17.js.map} +1 -1
  185. package/dist/esm/CircleCheckButton-23a9c7d4.js +26 -0
  186. package/dist/esm/{CircleCheckButton-5a97f071.js.map → CircleCheckButton-23a9c7d4.js.map} +1 -1
  187. package/dist/esm/{CircleIcon-4200733b.js → CircleIcon-abd5ff06.js} +14 -30
  188. package/dist/esm/{CircleIcon-4200733b.js.map → CircleIcon-abd5ff06.js.map} +1 -1
  189. package/dist/esm/{CircleSpinner-9b8b1a6b.js → CircleSpinner-03a329fc.js} +2 -13
  190. package/dist/esm/{CircleSpinner-9b8b1a6b.js.map → CircleSpinner-03a329fc.js.map} +1 -1
  191. package/dist/esm/Coins-e9f35519.js +14 -0
  192. package/dist/esm/{Coins-ed119ec6.js.map → Coins-e9f35519.js.map} +1 -1
  193. package/dist/esm/CourseCard-990fdc99.js +78 -0
  194. package/dist/esm/{CourseCard-663ff174.js.map → CourseCard-990fdc99.js.map} +1 -1
  195. package/dist/esm/CourseVerticalCard-aae0c030.js +106 -0
  196. package/dist/esm/{CourseVerticalCard-130b0d91.js.map → CourseVerticalCard-aae0c030.js.map} +1 -1
  197. package/dist/esm/FlippyCard-458dc9b1.js +15 -0
  198. package/dist/esm/{FlippyCard-a2de5cf1.js.map → FlippyCard-458dc9b1.js.map} +1 -1
  199. package/dist/esm/GenericArrow-b2822cf6.js +28 -0
  200. package/dist/esm/{GenericArrow-0dba1707.js.map → GenericArrow-b2822cf6.js.map} +1 -1
  201. package/dist/esm/GenericCard-24648e62.js +60 -0
  202. package/dist/esm/{GenericCard-4bb4220a.js.map → GenericCard-24648e62.js.map} +1 -1
  203. package/dist/esm/IDDisplayIcon-d87174fd.js +224 -0
  204. package/dist/esm/{IDDisplayIcon-82a851e7.js.map → IDDisplayIcon-d87174fd.js.map} +1 -1
  205. package/dist/esm/JobHistoryCard-e71ab2c7.js +29 -0
  206. package/dist/esm/{JobHistoryCard-80d4ef27.js.map → JobHistoryCard-e71ab2c7.js.map} +1 -1
  207. package/dist/esm/JobListCard-e8b4ab33.js +117 -0
  208. package/dist/esm/{JobListCard-0d1c4184.js.map → JobListCard-e8b4ab33.js.map} +1 -1
  209. package/dist/esm/LearnCardCreditCardBackFace-56642837.js +76 -0
  210. package/dist/esm/{LearnCardCreditCardBackFace-9baa9e6b.js.map → LearnCardCreditCardBackFace-56642837.js.map} +1 -1
  211. package/dist/esm/LearnCardCreditCardFrontFace-b7c917f5.js +81 -0
  212. package/dist/esm/{LearnCardCreditCardFrontFace-d50efb25.js.map → LearnCardCreditCardFrontFace-b7c917f5.js.map} +1 -1
  213. package/dist/esm/{LearnPill-74bcb08c.js → LearnPill-e0720485.js} +10 -10
  214. package/dist/esm/{LearnPill-74bcb08c.js.map → LearnPill-e0720485.js.map} +1 -1
  215. package/dist/esm/{Lightbox-2ae83d79.js → Lightbox-f0338a0c.js} +70 -58
  216. package/dist/esm/{Lightbox-2ae83d79.js.map → Lightbox-f0338a0c.js.map} +1 -1
  217. package/dist/esm/Lightbulb-7e24711e.js +35 -0
  218. package/dist/esm/{Lightbulb-b6eca510.js.map → Lightbulb-7e24711e.js.map} +1 -1
  219. package/dist/esm/MeritBadgeDisplayCard-4b8fe8e4.js +937 -0
  220. package/dist/esm/MeritBadgeDisplayCard-4b8fe8e4.js.map +1 -0
  221. package/dist/esm/MeritBadgeSkillsCount-cd2f3f6d.js +30 -0
  222. package/dist/esm/{MeritBadgeSkillsCount-d2408dfe.js.map → MeritBadgeSkillsCount-cd2f3f6d.js.map} +1 -1
  223. package/dist/esm/MiniVCThumbnail-cc05e1f8.js +78 -0
  224. package/dist/esm/{MiniVCThumbnail-6a07e810.js.map → MiniVCThumbnail-cc05e1f8.js.map} +1 -1
  225. package/dist/esm/Notification-279ba207.js +117 -0
  226. package/dist/esm/{Notification-95d159d2.js.map → Notification-279ba207.js.map} +1 -1
  227. package/dist/esm/NotificationBoostCard-cf11d747.js +134 -0
  228. package/dist/esm/{NotificationBoostCard-42596c2c.js.map → NotificationBoostCard-cf11d747.js.map} +1 -1
  229. package/dist/esm/NotificationUserAcceptedBoostCard-a1269382.js +90 -0
  230. package/dist/esm/{NotificationUserAcceptedBoostCard-8c13bd3f.js.map → NotificationUserAcceptedBoostCard-a1269382.js.map} +1 -1
  231. package/dist/esm/NotificationUserCard-c109c442.js +113 -0
  232. package/dist/esm/{NotificationUserCard-dbcc80f9.js.map → NotificationUserCard-c109c442.js.map} +1 -1
  233. package/dist/esm/PuzzlePiece-a3d9cc62.js +91 -0
  234. package/dist/esm/PuzzlePiece-a3d9cc62.js.map +1 -0
  235. package/dist/esm/QRCodeCard-8f29c3c7.js +43 -0
  236. package/dist/esm/{QRCodeCard-aa2b9967.js.map → QRCodeCard-8f29c3c7.js.map} +1 -1
  237. package/dist/esm/QRCodeIcon-8eef4f7c.js +129 -0
  238. package/dist/esm/{QRCodeIcon-e9569804.js.map → QRCodeIcon-8eef4f7c.js.map} +1 -1
  239. package/dist/esm/RoundedPill-50279e5d.js +127 -0
  240. package/dist/esm/{RoundedPill-6a6e8aaf.js.map → RoundedPill-50279e5d.js.map} +1 -1
  241. package/dist/esm/{SchoolIDCard-752092fb.js → SchoolIDCard-8b151cd3.js} +661 -380
  242. package/dist/esm/SchoolIDCard-8b151cd3.js.map +1 -0
  243. package/dist/esm/SkillTabCard-f2edb3fc.js +38 -0
  244. package/dist/esm/{SkillTabCard-cfe117a2.js.map → SkillTabCard-f2edb3fc.js.map} +1 -1
  245. package/dist/esm/SkillVerticalCard-045169f9.js +30 -0
  246. package/dist/esm/{SkillVerticalCard-108f49bb.js.map → SkillVerticalCard-045169f9.js.map} +1 -1
  247. package/dist/esm/SkillsCard-5279aac9.js +50 -0
  248. package/dist/esm/{SkillsCard-92a51db2.js.map → SkillsCard-5279aac9.js.map} +1 -1
  249. package/dist/esm/SkillsStatsCard-e0cd6137.js +50 -0
  250. package/dist/esm/{SkillsStatsCard-1628fe9c.js.map → SkillsStatsCard-e0cd6137.js.map} +1 -1
  251. package/dist/esm/SmallAchievementCard-24dfa453.js +47 -0
  252. package/dist/esm/{SmallAchievementCard-d0220751.js.map → SmallAchievementCard-24dfa453.js.map} +1 -1
  253. package/dist/esm/ThreeDotVertical-ccbbc8ef.js +51 -0
  254. package/dist/esm/{ThreeDotVertical-08294477.js.map → ThreeDotVertical-ccbbc8ef.js.map} +1 -1
  255. package/dist/esm/Trophy-fc7fdec4.js +29 -0
  256. package/dist/esm/{Trophy-ad67f46a.js.map → Trophy-fc7fdec4.js.map} +1 -1
  257. package/dist/esm/User-f5ea0f01.js +122 -0
  258. package/dist/esm/{User-161c7f37.js.map → User-f5ea0f01.js.map} +1 -1
  259. package/dist/esm/{UserProfilePicture-ecc82a6c.js → UserProfilePicture-7b950437.js} +18 -12
  260. package/dist/esm/{UserProfilePicture-ecc82a6c.js.map → UserProfilePicture-7b950437.js.map} +1 -1
  261. package/dist/esm/{VCCard-afbea3f5.js → VCCard-04ecb3db.js} +29 -22
  262. package/dist/esm/{VCCard-afbea3f5.js.map → VCCard-04ecb3db.js.map} +1 -1
  263. package/dist/esm/VCDisplayBackFace-1760601a.js +63 -0
  264. package/dist/esm/{VCDisplayBackFace-f08563e9.js.map → VCDisplayBackFace-1760601a.js.map} +1 -1
  265. package/dist/esm/VCDisplayCard-3d67e2bc.js +184 -0
  266. package/dist/esm/{VCDisplayCard-7fc1dd02.js.map → VCDisplayCard-3d67e2bc.js.map} +1 -1
  267. package/dist/esm/{VCDisplayCard2-415128f5.js → VCDisplayCard2-fb8abe89.js} +725 -694
  268. package/dist/esm/VCDisplayCard2-fb8abe89.js.map +1 -0
  269. package/dist/esm/VCThumbnail-835921dd.js +140 -0
  270. package/dist/esm/{VCThumbnail-3c254bda.js.map → VCThumbnail-835921dd.js.map} +1 -1
  271. package/dist/esm/VCVerificationCheck-8b8b7a76.js +69 -0
  272. package/dist/esm/{VCVerificationCheck-80249524.js.map → VCVerificationCheck-8b8b7a76.js.map} +1 -1
  273. package/dist/esm/VCVerificationPill-77596013.js +50 -0
  274. package/dist/esm/{VCVerificationPill-2ef031c2.js.map → VCVerificationPill-77596013.js.map} +1 -1
  275. package/dist/esm/{VerifierStateBadgeAndText-151db666.js → VerifierStateBadgeAndText-490c08dc.js} +420 -338
  276. package/dist/esm/{VerifierStateBadgeAndText-151db666.js.map → VerifierStateBadgeAndText-490c08dc.js.map} +1 -1
  277. package/dist/esm/{constants-20055f35.js → constants-f1ed610c.js} +22 -30
  278. package/dist/esm/{constants-20055f35.js.map → constants-f1ed610c.js.map} +1 -1
  279. package/dist/esm/{credential.helpers-5731a09d.js → credential.helpers-1b1ff55e.js} +197 -156
  280. package/dist/esm/{credential.helpers-5731a09d.js.map → credential.helpers-1b1ff55e.js.map} +1 -1
  281. package/dist/esm/{icons-03afd795.js → icons-fdd35170.js} +2 -1
  282. package/dist/esm/{icons-03afd795.js.map → icons-fdd35170.js.map} +1 -1
  283. package/dist/esm/{index-b102febc.js → index-cbe3a76a.js} +9 -1
  284. package/dist/esm/{index-b102febc.js.map → index-cbe3a76a.js.map} +1 -1
  285. package/dist/esm/{index-1fa04a2d.js → index-eae3ca64.js} +1 -1
  286. package/dist/esm/{index-1fa04a2d.js.map → index-eae3ca64.js.map} +1 -1
  287. package/dist/esm/index.js +116 -61
  288. package/dist/esm/index.js.map +1 -1
  289. package/dist/esm/index10.js +4 -4
  290. package/dist/esm/index11.js +1 -1
  291. package/dist/esm/index12.js +5 -5
  292. package/dist/esm/index13.js +59 -60
  293. package/dist/esm/index13.js.map +1 -1
  294. package/dist/esm/index14.js +2 -2
  295. package/dist/esm/index15.js +2 -2
  296. package/dist/esm/index16.js +1 -1
  297. package/dist/esm/index17.js +1 -1
  298. package/dist/esm/index18.js +2 -2
  299. package/dist/esm/index19.js +1 -1
  300. package/dist/esm/index2.js +6 -6
  301. package/dist/esm/index20.js +1 -1
  302. package/dist/esm/index21.js +11 -11
  303. package/dist/esm/index22.js +1 -1
  304. package/dist/esm/index23.js +7 -7
  305. package/dist/esm/index24.js +8 -8
  306. package/dist/esm/index25.js +1 -1
  307. package/dist/esm/index26.js +2 -2
  308. package/dist/esm/index27.js +1 -1
  309. package/dist/esm/index28.js +2 -2
  310. package/dist/esm/index29.js +5 -5
  311. package/dist/esm/index3.js +13 -14
  312. package/dist/esm/index3.js.map +1 -1
  313. package/dist/esm/index30.js +1 -1
  314. package/dist/esm/index31.js +1 -1
  315. package/dist/esm/index32.js +1 -1
  316. package/dist/esm/index33.js +4 -4
  317. package/dist/esm/index34.js +1 -1
  318. package/dist/esm/index35.js +2 -2
  319. package/dist/esm/index36.js +9 -9
  320. package/dist/esm/index37.js +1 -1
  321. package/dist/esm/index38.js +20 -21
  322. package/dist/esm/index38.js.map +1 -1
  323. package/dist/esm/index39.js +10 -10
  324. package/dist/esm/index4.js +7 -7
  325. package/dist/esm/index40.js +13 -13
  326. package/dist/esm/index41.js +15 -16
  327. package/dist/esm/index41.js.map +1 -1
  328. package/dist/esm/index42.js +2 -2
  329. package/dist/esm/index43.js +1 -1
  330. package/dist/esm/index44.js +2 -2
  331. package/dist/esm/index45.js +2 -2
  332. package/dist/esm/index5.js +1 -1
  333. package/dist/esm/index6.js +10 -11
  334. package/dist/esm/index6.js.map +1 -1
  335. package/dist/esm/index7.js +3 -3
  336. package/dist/esm/index8.js +3 -3
  337. package/dist/esm/index9.js +1 -1
  338. package/dist/esm/types-b32d28d5.js.map +1 -1
  339. package/dist/esm/{types-cfde3c2b.js → types-c765e2a4.js} +24 -23
  340. package/dist/esm/{types-cfde3c2b.js.map → types-c765e2a4.js.map} +1 -1
  341. package/dist/esm/types.esm-8798df50.js +5384 -0
  342. package/dist/esm/types.esm-8798df50.js.map +1 -0
  343. package/dist/index.d.ts +16 -2
  344. package/dist/main.css +1 -1
  345. package/dist/main.js +1 -1
  346. package/package.json +12 -5
  347. package/dist/cjs/AchievementCard-dd332f3f.js +0 -67
  348. package/dist/cjs/BoostGenericCard-dd01e934.js +0 -126
  349. package/dist/cjs/BoostGenericCard-dd01e934.js.map +0 -1
  350. package/dist/cjs/BoostSmallCard-dd1cbd51.js +0 -164
  351. package/dist/cjs/CertDisplayCardSkillsCount-8cc13d5b.js +0 -45
  352. package/dist/cjs/CertDisplayCardSkillsCount-8cc13d5b.js.map +0 -1
  353. package/dist/cjs/CertificateDisplayCard-e228ff3d.js +0 -830
  354. package/dist/cjs/CertificateDisplayCard-e228ff3d.js.map +0 -1
  355. package/dist/cjs/Checkmark-f611aa4d.js +0 -58
  356. package/dist/cjs/Coins-acd63f46.js +0 -22
  357. package/dist/cjs/CourseCard-338a32ee.js +0 -92
  358. package/dist/cjs/CourseVerticalCard-841960b1.js +0 -98
  359. package/dist/cjs/GenericArrow-8dfb261d.js +0 -27
  360. package/dist/cjs/GenericCard-ad18c4c3.js +0 -60
  361. package/dist/cjs/IDDisplayIcon-62993df0.js +0 -226
  362. package/dist/cjs/JobHistoryCard-05a3f98b.js +0 -43
  363. package/dist/cjs/JobListCard-f74f0302.js +0 -127
  364. package/dist/cjs/LearnCardCreditCardBackFace-87cc8b9f.js +0 -72
  365. package/dist/cjs/LearnCardCreditCardFrontFace-39eeb89a.js +0 -78
  366. package/dist/cjs/Lightbulb-19c89d3c.js +0 -37
  367. package/dist/cjs/MeritBadgeDisplayCard-5cbc63e8.js +0 -910
  368. package/dist/cjs/MeritBadgeDisplayCard-5cbc63e8.js.map +0 -1
  369. package/dist/cjs/MeritBadgeSkillsCount-54879719.js +0 -40
  370. package/dist/cjs/MiniVCThumbnail-a78e44f2.js +0 -69
  371. package/dist/cjs/Notification-d212fa7b.js +0 -94
  372. package/dist/cjs/NotificationBoostCard-cf2140c0.js +0 -120
  373. package/dist/cjs/NotificationUserAcceptedBoostCard-423b9320.js +0 -74
  374. package/dist/cjs/NotificationUserCard-d4dab06c.js +0 -94
  375. package/dist/cjs/PuzzlePiece-937c216a.js +0 -31
  376. package/dist/cjs/PuzzlePiece-937c216a.js.map +0 -1
  377. package/dist/cjs/QRCodeCard-b56c11cc.js +0 -42
  378. package/dist/cjs/QRCodeIcon-81c6e96b.js +0 -96
  379. package/dist/cjs/RoundedPill-bda7c067.js +0 -106
  380. package/dist/cjs/SchoolIDCard-39a099d2.js.map +0 -1
  381. package/dist/cjs/SkillTabCard-66677f3c.js +0 -42
  382. package/dist/cjs/SkillVerticalCard-3eb3a8e9.js +0 -35
  383. package/dist/cjs/SkillsCard-4b6dbb4f.js +0 -66
  384. package/dist/cjs/SkillsStatsCard-97a35a88.js +0 -77
  385. package/dist/cjs/SmallAchievementCard-a1fa862b.js +0 -43
  386. package/dist/cjs/ThreeDotVertical-1d221fc8.js +0 -42
  387. package/dist/cjs/Trophy-3d323be3.js +0 -28
  388. package/dist/cjs/User-301088ac.js +0 -93
  389. package/dist/cjs/VCDisplayBackFace-4543749f.js +0 -87
  390. package/dist/cjs/VCDisplayCard-353cc9ed.js +0 -180
  391. package/dist/cjs/VCDisplayCard2-50acd7c8.js.map +0 -1
  392. package/dist/cjs/VCThumbnail-6bf86bb2.js +0 -143
  393. package/dist/cjs/VCVerificationCheck-46fa75d3.js +0 -81
  394. package/dist/cjs/types.esm-6ce4cc67.js +0 -5675
  395. package/dist/cjs/types.esm-6ce4cc67.js.map +0 -1
  396. package/dist/esm/AchievementCard-d179d041.js +0 -61
  397. package/dist/esm/BoostGenericCard-5b70fa63.js +0 -120
  398. package/dist/esm/BoostGenericCard-5b70fa63.js.map +0 -1
  399. package/dist/esm/BoostSmallCard-42980ebc.js +0 -156
  400. package/dist/esm/Button-5f805204.js +0 -12
  401. package/dist/esm/CertDisplayCardSkillsCount-c5a21373.js +0 -39
  402. package/dist/esm/CertDisplayCardSkillsCount-c5a21373.js.map +0 -1
  403. package/dist/esm/CertificateDisplayCard-d2a0d0e3.js +0 -819
  404. package/dist/esm/CertificateDisplayCard-d2a0d0e3.js.map +0 -1
  405. package/dist/esm/Checkmark-d8b8f43d.js +0 -52
  406. package/dist/esm/CircleCheckButton-5a97f071.js +0 -24
  407. package/dist/esm/Coins-ed119ec6.js +0 -16
  408. package/dist/esm/CourseCard-663ff174.js +0 -82
  409. package/dist/esm/CourseVerticalCard-130b0d91.js +0 -88
  410. package/dist/esm/FlippyCard-a2de5cf1.js +0 -28
  411. package/dist/esm/GenericArrow-0dba1707.js +0 -21
  412. package/dist/esm/GenericCard-4bb4220a.js +0 -54
  413. package/dist/esm/IDDisplayIcon-82a851e7.js +0 -216
  414. package/dist/esm/JobHistoryCard-80d4ef27.js +0 -37
  415. package/dist/esm/JobListCard-0d1c4184.js +0 -120
  416. package/dist/esm/LearnCardCreditCardBackFace-9baa9e6b.js +0 -65
  417. package/dist/esm/LearnCardCreditCardFrontFace-d50efb25.js +0 -70
  418. package/dist/esm/Lightbulb-b6eca510.js +0 -30
  419. package/dist/esm/MeritBadgeDisplayCard-bc462990.js +0 -900
  420. package/dist/esm/MeritBadgeDisplayCard-bc462990.js.map +0 -1
  421. package/dist/esm/MeritBadgeSkillsCount-d2408dfe.js +0 -34
  422. package/dist/esm/MiniVCThumbnail-6a07e810.js +0 -62
  423. package/dist/esm/Notification-95d159d2.js +0 -88
  424. package/dist/esm/NotificationBoostCard-42596c2c.js +0 -112
  425. package/dist/esm/NotificationUserAcceptedBoostCard-8c13bd3f.js +0 -66
  426. package/dist/esm/NotificationUserCard-dbcc80f9.js +0 -86
  427. package/dist/esm/PuzzlePiece-1fb12c2e.js +0 -25
  428. package/dist/esm/PuzzlePiece-1fb12c2e.js.map +0 -1
  429. package/dist/esm/QRCodeCard-aa2b9967.js +0 -36
  430. package/dist/esm/QRCodeIcon-e9569804.js +0 -88
  431. package/dist/esm/RoundedPill-6a6e8aaf.js +0 -99
  432. package/dist/esm/SchoolIDCard-752092fb.js.map +0 -1
  433. package/dist/esm/SkillTabCard-cfe117a2.js +0 -36
  434. package/dist/esm/SkillVerticalCard-108f49bb.js +0 -28
  435. package/dist/esm/SkillsCard-92a51db2.js +0 -59
  436. package/dist/esm/SkillsStatsCard-1628fe9c.js +0 -70
  437. package/dist/esm/SmallAchievementCard-d0220751.js +0 -37
  438. package/dist/esm/ThreeDotVertical-08294477.js +0 -36
  439. package/dist/esm/Trophy-ad67f46a.js +0 -22
  440. package/dist/esm/User-161c7f37.js +0 -85
  441. package/dist/esm/VCDisplayBackFace-f08563e9.js +0 -80
  442. package/dist/esm/VCDisplayCard-7fc1dd02.js +0 -173
  443. package/dist/esm/VCDisplayCard2-415128f5.js.map +0 -1
  444. package/dist/esm/VCThumbnail-3c254bda.js +0 -135
  445. package/dist/esm/VCVerificationCheck-80249524.js +0 -72
  446. package/dist/esm/VCVerificationPill-2ef031c2.js +0 -65
  447. package/dist/esm/types.esm-00eeb9f6.js +0 -5673
  448. package/dist/esm/types.esm-00eeb9f6.js.map +0 -1
@@ -1,900 +0,0 @@
1
- import React, { useState, useEffect } from 'react';
2
- import { I as InfoIcon, 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, d as LeftArrow, e as SkillsBox, R as RoundedCorner, f as IssuerSeal, V as VERIFIER_STATES, h as Line, a as VerifierStateBadgeAndText, F as FatArrow } from './VerifierStateBadgeAndText-151db666.js';
3
- import { a as getColorForVerificationStatus, b as getInfoFromCredential, d as getCategoryDarkColor, e as getCategoryLightColor, f as getCategoryIcon, h as getNameFromProfile, i as getImageFromProfile } from './credential.helpers-5731a09d.js';
4
- import { U as UserProfilePicture } from './UserProfilePicture-ecc82a6c.js';
5
- import { a as LCCategoryEnum } from './index-28917993.js';
6
- import { V as VerificationStatusEnum } from './types.esm-00eeb9f6.js';
7
- import { L as Lightbox, X } from './Lightbox-2ae83d79.js';
8
- import CaretRightFilled from './CaretRightFilled.svg';
9
- import ThreeDots from './DotsThreeOutline.svg';
10
-
11
- const Smiley = ({ className = "" }) => {
12
- return /* @__PURE__ */ React.createElement("svg", {
13
- width: "35",
14
- height: "36",
15
- viewBox: "0 0 35 36",
16
- fill: "none",
17
- xmlns: "http://www.w3.org/2000/svg",
18
- className
19
- }, /* @__PURE__ */ React.createElement("path", {
20
- d: "M17.5 30.7008C24.7487 30.7008 30.625 24.8245 30.625 17.5758C30.625 10.3271 24.7487 4.45081 17.5 4.45081C10.2513 4.45081 4.375 10.3271 4.375 17.5758C4.375 24.8245 10.2513 30.7008 17.5 30.7008Z",
21
- stroke: "#FBFBFC",
22
- strokeWidth: "1.5",
23
- strokeLinecap: "round",
24
- strokeLinejoin: "round"
25
- }), /* @__PURE__ */ React.createElement("path", {
26
- d: "M23.1846 20.8566C22.608 21.8538 21.7792 22.6818 20.7815 23.2575C19.7837 23.8332 18.652 24.1362 17.5001 24.1362C16.3482 24.1363 15.2165 23.8332 14.2187 23.2576C13.2209 22.6819 12.3921 21.8539 11.8156 20.8567",
27
- stroke: "#FBFBFC",
28
- strokeWidth: "1.5",
29
- strokeLinecap: "round",
30
- strokeLinejoin: "round"
31
- }), /* @__PURE__ */ React.createElement("path", {
32
- d: "M12.5781 16.2086C13.3332 16.2086 13.9453 15.5965 13.9453 14.8414C13.9453 14.0864 13.3332 13.4742 12.5781 13.4742C11.823 13.4742 11.2109 14.0864 11.2109 14.8414C11.2109 15.5965 11.823 16.2086 12.5781 16.2086Z",
33
- fill: "#FBFBFC"
34
- }), /* @__PURE__ */ React.createElement("path", {
35
- d: "M22.4219 16.2086C23.177 16.2086 23.7891 15.5965 23.7891 14.8414C23.7891 14.0864 23.177 13.4742 22.4219 13.4742C21.6668 13.4742 21.0547 14.0864 21.0547 14.8414C21.0547 15.5965 21.6668 16.2086 22.4219 16.2086Z",
36
- fill: "#FBFBFC"
37
- }));
38
- };
39
-
40
- const AlignmentRow = ({
41
- url,
42
- name,
43
- framework
44
- }) => {
45
- return /* @__PURE__ */ React.createElement("div", {
46
- className: "flex flex-col gap-[5px] font-poppins text-[12px] bg-[#DBEAFE] rounded-[15px] border-b-[1px] border-grayscale-200 border-solid w-full p-[10px] last:border-0"
47
- }, /* @__PURE__ */ React.createElement("h1", {
48
- className: "text-blue-800 font-semibold uppercase"
49
- }, framework), /* @__PURE__ */ React.createElement("button", {
50
- className: "flex",
51
- onClick: () => window.open(url)
52
- }, /* @__PURE__ */ React.createElement("span", {
53
- className: "text-left"
54
- }, name), /* @__PURE__ */ React.createElement("img", {
55
- className: "w-[20px] self-end",
56
- src: CaretRightFilled,
57
- alt: "right-caret"
58
- })));
59
- };
60
-
61
- const InfoBox = ({ text, handleClose, backgroundColor = "#6366F1" }) => {
62
- const bgColorWithOpacity = `${backgroundColor}1F`;
63
- return /* @__PURE__ */ React.createElement("div", {
64
- className: "info-box p-[10px] rounded-[10px] w-full font-poppins text-[12px] leading[18px]",
65
- style: { backgroundColor: bgColorWithOpacity }
66
- }, text, " ", /* @__PURE__ */ React.createElement("button", {
67
- onClick: (e) => {
68
- e.stopPropagation();
69
- handleClose();
70
- },
71
- className: "text-indigo-500 font-[700] select-none"
72
- }, "Close"));
73
- };
74
-
75
- const AlignmentsBox = ({ alignment, style }) => {
76
- const [showInfo, setShowInfo] = useState(false);
77
- const alignmentText = `
78
- Alignments in your Open Badge credential link your achievement to established frameworks, standards, or competencies.
79
- Each alignment shows how your boost directly relates to skills, knowledge areas, and professional standards that are recognized in your field.
80
- `;
81
- const alignments = Array.isArray(alignment) ? alignment.map((object, index) => /* @__PURE__ */ React.createElement(AlignmentRow, {
82
- key: index,
83
- url: object.targetUrl,
84
- name: object.targetName,
85
- framework: object.targetFramework
86
- })) : alignment && /* @__PURE__ */ React.createElement(AlignmentRow, {
87
- url: alignment.targetUrl,
88
- name: alignment.targetName,
89
- framework: alignment.targetFramework
90
- });
91
- return /* @__PURE__ */ React.createElement("div", {
92
- className: "bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom p-[15px] w-full"
93
- }, /* @__PURE__ */ React.createElement("div", {
94
- className: "flex w-full items-center"
95
- }, /* @__PURE__ */ React.createElement("h3", {
96
- className: style === "MeritBadge" ? "text-[17px] text-grayscale-900 font-poppins" : "text-[22px] font-mouse"
97
- }, "Alignments"), /* @__PURE__ */ React.createElement("button", {
98
- className: "ml-auto",
99
- onClick: (e) => {
100
- e.stopPropagation();
101
- setShowInfo(!showInfo);
102
- }
103
- }, /* @__PURE__ */ React.createElement(InfoIcon, {
104
- color: showInfo ? "#6366F1" : void 0
105
- }))), showInfo && /* @__PURE__ */ React.createElement(InfoBox, {
106
- text: alignmentText,
107
- handleClose: () => setShowInfo(false)
108
- }), alignments);
109
- };
110
-
111
- var __async = (__this, __arguments, generator) => {
112
- return new Promise((resolve, reject) => {
113
- var fulfilled = (value) => {
114
- try {
115
- step(generator.next(value));
116
- } catch (e) {
117
- reject(e);
118
- }
119
- };
120
- var rejected = (value) => {
121
- try {
122
- step(generator.throw(value));
123
- } catch (e) {
124
- reject(e);
125
- }
126
- };
127
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
128
- step((generator = generator.apply(__this, __arguments)).next());
129
- });
130
- };
131
- const defaultGetFileMetadata = (url) => __async(void 0, null, function* () {
132
- var _a;
133
- console.log({ url });
134
- const isFilestack = url.includes("filestack");
135
- if (!isFilestack)
136
- return;
137
- const urlParams = (_a = url.split(".com/")[1]) == null ? void 0 : _a.split("/");
138
- if (!urlParams)
139
- return;
140
- const handle = urlParams[urlParams.length - 1];
141
- let fetchFailed = false;
142
- const data = yield fetch(`https://cdn.filestackcontent.com/${handle}/metadata`).then((res) => res.json()).catch(() => fetchFailed = true);
143
- if (fetchFailed)
144
- return;
145
- const fileExtension = data.filename.split(".")[1];
146
- return {
147
- fileExtension,
148
- sizeInBytes: data.size,
149
- numberOfPages: void 0
150
- };
151
- });
152
- const isYoutubeUrl = (url) => {
153
- const youtubeUrl = new URL(url);
154
- return youtubeUrl.hostname === "www.youtube.com";
155
- };
156
- const getYoutubeVideoId = (url) => {
157
- const regex = /(?:\?v=|\.com\/embed\/)([^&]+)/;
158
- const match = url.match(regex);
159
- return match ? match[1] : "";
160
- };
161
- const getCoverImageUrl = (youtubeWatchUrl) => {
162
- if (!isYoutubeUrl(youtubeWatchUrl)) {
163
- return "";
164
- }
165
- const videoId = getYoutubeVideoId(youtubeWatchUrl);
166
- return videoId ? `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg` : "";
167
- };
168
- const defaultGetVideoMetadata = (url) => __async(void 0, null, function* () {
169
- const isYoutube = isYoutubeUrl(url);
170
- if (!isYoutube)
171
- return;
172
- const metadataUrl = `http://youtube.com/oembed?url=${url}&format=json`;
173
- let fetchFailed = false;
174
- const metadata = yield fetch(metadataUrl).then((res) => res.json()).catch(() => fetchFailed = true);
175
- const coverImageUrl = getCoverImageUrl(url);
176
- if (fetchFailed)
177
- return { imageUrl: coverImageUrl };
178
- return {
179
- title: metadata.title,
180
- imageUrl: coverImageUrl,
181
- videoLength: ""
182
- };
183
- });
184
- const MediaAttachmentsBox = ({
185
- attachments,
186
- getFileMetadata = defaultGetFileMetadata,
187
- getVideoMetadata = defaultGetVideoMetadata,
188
- onMediaAttachmentClick,
189
- enableLightbox = false
190
- }) => {
191
- const [documentMetadata, setDocumentMetadata] = useState({});
192
- const [videoMetadata, setVideoMetadata] = useState({});
193
- const mediaAttachments = [];
194
- const documentsAndLinks = [];
195
- attachments.forEach((a) => {
196
- switch (a.type) {
197
- case "document":
198
- case "link":
199
- documentsAndLinks.push(a);
200
- break;
201
- case "photo":
202
- case "video":
203
- mediaAttachments.push(a);
204
- break;
205
- }
206
- });
207
- useEffect(() => {
208
- const getMetadata = (attachments2) => __async(void 0, null, function* () {
209
- const docMetadata = {};
210
- const videoMetadata2 = {};
211
- yield Promise.all(
212
- attachments2.map((attachment) => __async(void 0, null, function* () {
213
- if (attachment.type === "document") {
214
- docMetadata[attachment.url] = yield getFileMetadata(attachment.url);
215
- } else if (attachment.type === "video") {
216
- videoMetadata2[attachment.url] = yield getVideoMetadata(attachment.url);
217
- }
218
- }))
219
- );
220
- setVideoMetadata(videoMetadata2);
221
- setDocumentMetadata(docMetadata);
222
- });
223
- const videos = attachments.filter((a) => a.type === "video");
224
- getMetadata([...documentsAndLinks, ...videos]);
225
- }, []);
226
- const [currentLightboxUrl, setCurrentLightboxUrl] = useState(void 0);
227
- const lightboxItems = mediaAttachments.filter(
228
- (a) => a.type === "photo" || a.type === "video"
229
- );
230
- const handleMediaAttachmentClick = (url, type) => {
231
- if (type === "photo" || type === "video") {
232
- setCurrentLightboxUrl(url);
233
- }
234
- onMediaAttachmentClick == null ? void 0 : onMediaAttachmentClick(url, type);
235
- };
236
- return /* @__PURE__ */ React.createElement("div", {
237
- className: "bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full"
238
- }, /* @__PURE__ */ React.createElement("h3", {
239
- className: "text-[17px] text-grayscale-900 font-poppins"
240
- }, "Attachments"), mediaAttachments.length > 0 && /* @__PURE__ */ React.createElement("div", {
241
- className: "flex gap-[5px] justify-between flex-wrap w-full"
242
- }, enableLightbox && /* @__PURE__ */ React.createElement(Lightbox, {
243
- items: lightboxItems,
244
- currentUrl: currentLightboxUrl,
245
- setCurrentUrl: setCurrentLightboxUrl
246
- }), mediaAttachments.map((media, index) => {
247
- var _a, _b;
248
- let innerContent;
249
- let title = media.title;
250
- if (media.type === "video") {
251
- const metadata = videoMetadata[media.url];
252
- title = (_a = title || (metadata == null ? void 0 : metadata.title)) != null ? _a : "";
253
- getBaseUrl(media.url);
254
- innerContent = /* @__PURE__ */ React.createElement("div", {
255
- className: "bg-cover bg-no-repeat bg-center relative font-poppins text-white text-[12px] font-[400] leading-[17px] flex flex-col justify-end items-start p-[10px] text-left bg-rose-600 rounded-[15px] h-full",
256
- style: {
257
- backgroundImage: (metadata == null ? void 0 : metadata.imageUrl) ? `linear-gradient(180deg, rgba(0, 0, 0, 0) 44.20%, rgba(0, 0, 0, 0.6) 69%), url(${(_b = metadata == null ? void 0 : metadata.imageUrl) != null ? _b : ""})` : void 0
258
- }
259
- }, !(metadata == null ? void 0 : metadata.imageUrl) && /* @__PURE__ */ React.createElement(VideoIcon, {
260
- size: "60",
261
- className: "m-auto"
262
- }), /* @__PURE__ */ React.createElement("div", {
263
- className: "absolute bottom-[10px] left-[10px] z-10 flex items-center gap-[5px]"
264
- }, (metadata == null ? void 0 : metadata.imageUrl) && /* @__PURE__ */ React.createElement(VideoIcon, null), (metadata == null ? void 0 : metadata.videoLength) && /* @__PURE__ */ React.createElement("span", {
265
- className: "leading-[23px]"
266
- }, metadata.videoLength)));
267
- } else {
268
- innerContent = /* @__PURE__ */ React.createElement("div", {
269
- className: "h-full w-full flex items-center justify-center"
270
- }, /* @__PURE__ */ React.createElement("img", {
271
- className: "object-cover h-full w-full",
272
- src: media.url
273
- }), /* @__PURE__ */ React.createElement(Camera, {
274
- className: "absolute bottom-[10px] left-[10px] z-10"
275
- }));
276
- }
277
- const className = `media-attachment ${media.type} w-[49%] pt-[49%] overflow-hidden relative`;
278
- if (onMediaAttachmentClick || enableLightbox) {
279
- return /* @__PURE__ */ React.createElement("div", {
280
- key: index,
281
- className: "flex media-attachment-box bg-grayscale-100 items-center rounded-[15px] w-full"
282
- }, /* @__PURE__ */ React.createElement("button", {
283
- className: "relative h-[80px] w-[80px] rounded-[15px] overflow-hidden flex-shrink-0",
284
- onClick: (e) => {
285
- e.stopPropagation();
286
- handleMediaAttachmentClick(media.url, media.type);
287
- }
288
- }, innerContent), title && /* @__PURE__ */ React.createElement("div", {
289
- className: "text-[12px] text-grayscale-900 font-poppins px-[10px] line-clamp-3"
290
- }, title));
291
- }
292
- return /* @__PURE__ */ React.createElement("div", {
293
- key: index,
294
- className
295
- }, innerContent);
296
- })), documentsAndLinks.length > 0 && /* @__PURE__ */ React.createElement("div", {
297
- className: "w-full flex flex-col gap-[5px]"
298
- }, documentsAndLinks.map((docOrLink, index) => {
299
- var _a;
300
- const metadata = docOrLink.type === "document" ? documentMetadata[docOrLink.url] : void 0;
301
- const { fileExtension, sizeInBytes, numberOfPages } = metadata != null ? metadata : {};
302
- let baseUrl = "";
303
- if (docOrLink.type === "link") {
304
- baseUrl = getBaseUrl(docOrLink.url);
305
- }
306
- const innerContent = /* @__PURE__ */ React.createElement("div", {
307
- className: "flex flex-col gap-[5px]"
308
- }, /* @__PURE__ */ React.createElement("div", {
309
- className: "flex gap-[5px] items-center"
310
- }, docOrLink.type === "document" && /* @__PURE__ */ React.createElement(GenericDocumentIcon, {
311
- className: "shrink-0"
312
- }), docOrLink.type === "link" && /* @__PURE__ */ React.createElement(LinkIcon, {
313
- className: "shrink-0"
314
- }), /* @__PURE__ */ React.createElement("div", {
315
- className: "flex flex-col"
316
- }, /* @__PURE__ */ React.createElement("span", {
317
- className: "text-grayscale-900 font-[400]"
318
- }, (_a = docOrLink.title) != null ? _a : "No title"), docOrLink.type === "document" && metadata && /* @__PURE__ */ React.createElement("a", {
319
- href: docOrLink.url,
320
- target: "_blank",
321
- rel: "noreferrer",
322
- className: "text-grayscale-700 font-[500] text-[12px] font-poppins hover:underline",
323
- onClick: (e) => e.stopPropagation()
324
- }, fileExtension && /* @__PURE__ */ React.createElement("span", {
325
- className: "uppercase"
326
- }, fileExtension), fileExtension && (numberOfPages || sizeInBytes) && " \u2022 ", numberOfPages && /* @__PURE__ */ React.createElement("span", null, numberOfPages, " page", numberOfPages === 1 ? "" : "s"), numberOfPages && sizeInBytes && " \u2022 ", sizeInBytes && /* @__PURE__ */ React.createElement("span", null, prettyBytes(sizeInBytes))), docOrLink.type === "link" && /* @__PURE__ */ React.createElement("a", {
327
- href: docOrLink.url,
328
- target: "_blank",
329
- rel: "noreferrer",
330
- className: "text-indigo-500 font-[500] text-[12px] font-poppins hover:underline",
331
- onClick: (e) => e.stopPropagation()
332
- }, baseUrl))));
333
- const className = `row-attachment ${docOrLink.type} bg-grayscale-100 rounded-[15px] p-[10px] w-full font-poppins text-[12px] leading-[18px] tracking-[-0.33px] text-left`;
334
- if (onMediaAttachmentClick) {
335
- return /* @__PURE__ */ React.createElement("button", {
336
- key: index,
337
- className,
338
- onClick: (e) => {
339
- e.stopPropagation();
340
- handleMediaAttachmentClick(docOrLink.url, docOrLink.type);
341
- }
342
- }, innerContent);
343
- }
344
- return /* @__PURE__ */ React.createElement("div", {
345
- key: index,
346
- className
347
- }, innerContent);
348
- })));
349
- };
350
-
351
- const VerificationRow = ({ verification }) => {
352
- var _a, _b;
353
- const [showInfo, setShowInfo] = useState(false);
354
- const statusColor = getColorForVerificationStatus(verification.status);
355
- const getIcon = () => {
356
- switch (verification.status) {
357
- case VerificationStatusEnum.Success:
358
- return /* @__PURE__ */ React.createElement(AcuteCheckmark, null);
359
- case VerificationStatusEnum.Error:
360
- return /* @__PURE__ */ React.createElement(ExclamationPoint, null);
361
- case VerificationStatusEnum.Failed:
362
- return /* @__PURE__ */ React.createElement(X, null);
363
- }
364
- };
365
- let primaryText = verification.check ? `${verification.check}: ${verification.message}` : verification.message;
366
- if (verification.status === VerificationStatusEnum.Failed) {
367
- primaryText = (_b = (_a = verification.message) != null ? _a : verification.details) != null ? _b : "";
368
- }
369
- primaryText = capitalize(primaryText);
370
- const infoText = "";
371
- return /* @__PURE__ */ React.createElement("div", {
372
- className: "verification-row flex flex-col gap-[5px] font-poppins border-b-[1px] border-grayscale-200 border-solid w-full py-[10px] last:border-0 last:pb-0"
373
- }, /* @__PURE__ */ React.createElement("span", {
374
- className: "font-[700] text-[11px] uppercase flex items-center gap-[3px] select-none",
375
- style: { color: statusColor }
376
- }, getIcon(), verification.status, infoText ), showInfo && infoText && /* @__PURE__ */ React.createElement(InfoBox, {
377
- text: infoText,
378
- handleClose: () => setShowInfo(false),
379
- backgroundColor: statusColor
380
- }), /* @__PURE__ */ React.createElement("span", {
381
- className: "text-[14px] text-grayscale-900 font-poppins"
382
- }, primaryText));
383
- };
384
-
385
- const VerificationsBox = ({ verificationItems }) => {
386
- const [showInfo, setShowInfo] = useState(false);
387
- return /* @__PURE__ */ React.createElement("div", {
388
- className: "bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom p-[15px] w-full"
389
- }, /* @__PURE__ */ React.createElement("div", {
390
- className: "flex w-full items-center"
391
- }, /* @__PURE__ */ React.createElement("h3", {
392
- className: "text-[17px] text-grayscale-900 font-poppins"
393
- }, "Verifications"), /* @__PURE__ */ React.createElement("button", {
394
- className: "ml-auto",
395
- onClick: (e) => {
396
- e.stopPropagation();
397
- setShowInfo(!showInfo);
398
- }
399
- }, /* @__PURE__ */ React.createElement(InfoIcon, {
400
- color: showInfo ? "#6366F1" : void 0
401
- }))), showInfo && /* @__PURE__ */ React.createElement(InfoBox, {
402
- text: "Credential verifications check the cryptographic proof of digital credentials to ensure their authenticity and accuracy.",
403
- handleClose: () => setShowInfo(false)
404
- }), verificationItems.map((verification, index) => /* @__PURE__ */ React.createElement(VerificationRow, {
405
- key: index,
406
- verification
407
- })));
408
- };
409
-
410
- const TruncateTextBox = ({
411
- headerText,
412
- headerClassName = "",
413
- text,
414
- truncateThreshold = 132,
415
- children,
416
- className = "truncate-text-box"
417
- }) => {
418
- const needsTruncate = (text == null ? void 0 : text.length) > truncateThreshold;
419
- const [showFullText, setShowFullText] = useState(false);
420
- const truncated = needsTruncate && !showFullText;
421
- const displayText = truncated ? text.substring(0, truncateThreshold) : text;
422
- return /* @__PURE__ */ React.createElement("div", {
423
- className: `${className} w-full bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom p-[15px]`
424
- }, /* @__PURE__ */ React.createElement("h3", {
425
- className: `${headerClassName} text-[17px] text-grayscale-900 font-poppins`
426
- }, headerText), /* @__PURE__ */ React.createElement("p", {
427
- className: "text-[12px] text-grayscale-700 font-poppins mb-0 flex flex-col items-start"
428
- }, displayText, truncated && /* @__PURE__ */ React.createElement(React.Fragment, null, "...", /* @__PURE__ */ React.createElement("button", {
429
- className: "text-indigo-500 text-[12px]",
430
- onClick: (e) => {
431
- e.stopPropagation();
432
- setShowFullText(true);
433
- }
434
- }, "Show more")), needsTruncate && showFullText && /* @__PURE__ */ React.createElement("button", {
435
- className: "text-indigo-500 text-[12px]",
436
- onClick: (e) => {
437
- e.stopPropagation();
438
- setShowFullText(false);
439
- }
440
- }, "Show less")), children);
441
- };
442
-
443
- const MeritBadgeBackFace = ({
444
- credential,
445
- categoryType,
446
- verificationItems,
447
- customSkillsComponent,
448
- getFileMetadata,
449
- getVideoMetadata,
450
- onMediaAttachmentClick,
451
- enableLightbox,
452
- showBackButton,
453
- handleViewFrontFace,
454
- customLinkedCredentialsComponent
455
- }) => {
456
- var _a, _b, _c, _d, _e, _f, _g;
457
- const { createdAt, credentialSubject } = getInfoFromCredential(credential, "MMM dd, yyyy", {
458
- uppercaseDate: false
459
- });
460
- const { description } = (_a = credentialSubject == null ? void 0 : credentialSubject.achievement) != null ? _a : {};
461
- const criteria = (_c = (_b = credentialSubject == null ? void 0 : credentialSubject.achievement) == null ? void 0 : _b.criteria) == null ? void 0 : _c.narrative;
462
- const alignment = (_d = credentialSubject == null ? void 0 : credentialSubject.achievement) == null ? void 0 : _d.alignment;
463
- const credentialDarkColor = getCategoryDarkColor(categoryType);
464
- let bgColor = `bg-${credentialDarkColor}`;
465
- if (categoryType === LCCategoryEnum.accommodations) {
466
- bgColor = "bg-amber-700";
467
- } else if (categoryType === LCCategoryEnum.accomplishments) {
468
- bgColor = "bg-lime-700";
469
- }
470
- return /* @__PURE__ */ React.createElement("div", {
471
- role: "button",
472
- onClick: () => handleViewFrontFace == null ? void 0 : handleViewFrontFace(),
473
- className: `flex flex-col gap-[15px] items-center border-[5px] border-solid border-grayscale-200 py-[30px] px-[20px] rounded-[25px] max-w-[400px] ${bgColor}`
474
- }, showBackButton ? /* @__PURE__ */ React.createElement("div", {
475
- className: "w-full"
476
- }, /* @__PURE__ */ React.createElement("button", {
477
- className: "vc-card-back-button rounded-full h-[50px] px-[15px] flex items-center justify-center gap-[5px] z-50 text-[30px] text-white select-none",
478
- onClick: () => handleViewFrontFace == null ? void 0 : handleViewFrontFace()
479
- }, /* @__PURE__ */ React.createElement(LeftArrow, {
480
- className: "text-white",
481
- size: "25"
482
- }), "Details")) : /* @__PURE__ */ React.createElement("h1", {
483
- className: "text-white text-center text-[22px] font-jacques"
484
- }, "Details"), /* @__PURE__ */ React.createElement(TruncateTextBox, {
485
- headerText: "About",
486
- text: description
487
- }, /* @__PURE__ */ React.createElement("span", {
488
- className: `text-grayscale-600 font-poppins text-[12px] font-[600] w-full ${description ? "pt-[10px] border-t-[1px] border-solid border-grayscale-200" : ""}`
489
- }, "Awarded on ", createdAt)), criteria && /* @__PURE__ */ React.createElement(TruncateTextBox, {
490
- headerText: "Criteria",
491
- text: criteria
492
- }), customLinkedCredentialsComponent && customLinkedCredentialsComponent, ((_f = (_e = credential.skills) == null ? void 0 : _e.length) != null ? _f : 0) > 0 && (customSkillsComponent ? customSkillsComponent : /* @__PURE__ */ React.createElement(SkillsBox, {
493
- skills: (_g = credential.skills) != null ? _g : []
494
- })), credential.attachments && credential.attachments.length > 0 && /* @__PURE__ */ React.createElement(MediaAttachmentsBox, {
495
- attachments: credential.attachments,
496
- getFileMetadata,
497
- getVideoMetadata,
498
- onMediaAttachmentClick,
499
- enableLightbox
500
- }), alignment && /* @__PURE__ */ React.createElement(AlignmentsBox, {
501
- alignment,
502
- style: "MeritBadge"
503
- }), verificationItems && verificationItems.length > 0 && /* @__PURE__ */ React.createElement(VerificationsBox, {
504
- verificationItems
505
- }), /* @__PURE__ */ React.createElement("span", {
506
- className: "hidden bg-amber-700 bg-spice-700 bg-rose-700 bg-yellow-700 bg-teal-700"
507
- }));
508
- };
509
-
510
- const MeritBadgeCornerIcon = ({ categoryType, position }) => {
511
- const credentialPrimaryColor = getCategoryLightColor(categoryType);
512
- const credentialIcon = getCategoryIcon(categoryType, "25");
513
- let iconPositionClassName, cornerPositionClassName;
514
- switch (position) {
515
- case "top-left":
516
- iconPositionClassName = "top-[3px] left-[3px] pb-[10px] pr-[10px] pl-[4px] pt-[4px]";
517
- cornerPositionClassName = "bottom-[-1px] right-0";
518
- break;
519
- case "top-right":
520
- iconPositionClassName = "top-[3px] right-[3px] pl-[10px] pb-[10px] pr-[4px] pt-[4px]";
521
- cornerPositionClassName = "bottom-[-1px] left-0 rotate-90";
522
- break;
523
- case "bottom-left":
524
- iconPositionClassName = "bottom-[3px] left-[3px] pr-[10px] pt-[10px] pl-[4px] pb-[4px]";
525
- cornerPositionClassName = "top-0 right-0 rotate-[270deg]";
526
- break;
527
- case "bottom-right":
528
- iconPositionClassName = "bottom-[3px] right-[3px] pl-[10px] pt-[10px] pr-[4px] pb-[4px]";
529
- cornerPositionClassName = "top-[-1px] left-0 rotate-180";
530
- break;
531
- }
532
- return /* @__PURE__ */ React.createElement("div", {
533
- className: `text-${credentialPrimaryColor} rounded-full bg-white absolute ${iconPositionClassName}`
534
- }, credentialIcon, /* @__PURE__ */ React.createElement(RoundedCorner, {
535
- className: `absolute ${cornerPositionClassName}`
536
- }));
537
- };
538
-
539
- const MeritBadgeRibbon = ({ className = "", image }) => {
540
- return /* @__PURE__ */ React.createElement("svg", {
541
- width: "207",
542
- height: "170",
543
- viewBox: "0 0 207 170",
544
- fill: "none",
545
- xmlns: "http://www.w3.org/2000/svg",
546
- className
547
- }, /* @__PURE__ */ React.createElement("g", {
548
- filter: "url(#filter0_d_10755_290433)"
549
- }, /* @__PURE__ */ React.createElement("circle", {
550
- cx: "102.988",
551
- cy: "83",
552
- r: "81.5",
553
- fill: "white",
554
- stroke: "white",
555
- strokeWidth: "3"
556
- }), /* @__PURE__ */ React.createElement("path", {
557
- d: "M3.94446 50C3.41654 50 2.92748 50.2775 2.65674 50.7307C2.38599 51.1839 2.37343 51.7461 2.62365 52.211L19.4659 83.5L2.62365 114.789C2.37343 115.254 2.386 115.816 2.65674 116.269C2.92748 116.722 3.41654 117 3.94446 117L203.056 117C203.583 117 204.073 116.722 204.343 116.269C204.614 115.816 204.627 115.254 204.376 114.789L187.534 83.5L204.376 52.211C204.627 51.7461 204.614 51.1839 204.343 50.7307C204.073 50.2775 203.583 50 203.056 50L3.94446 50Z",
558
- fill: "currentColor",
559
- stroke: "white",
560
- strokeWidth: "3",
561
- strokeLinejoin: "round"
562
- }), /* @__PURE__ */ React.createElement("rect", {
563
- x: "25.3273",
564
- y: "5.34741",
565
- width: "156.6",
566
- height: "156.6",
567
- rx: "78.2999",
568
- fill: "#FBFBFC"
569
- }), /* @__PURE__ */ React.createElement("rect", {
570
- x: "25.3273",
571
- y: "5.34741",
572
- width: "156.6",
573
- height: "156.6",
574
- rx: "78.2999",
575
- stroke: "currentColor",
576
- strokeWidth: "3"
577
- }), /* @__PURE__ */ React.createElement("rect", {
578
- x: "29.8273",
579
- y: "9.84741",
580
- width: "147.6",
581
- height: "147.6",
582
- fill: "none"
583
- })), /* @__PURE__ */ React.createElement("clipPath", {
584
- id: "circleClip"
585
- }, /* @__PURE__ */ React.createElement("circle", {
586
- cx: "103.5",
587
- cy: "84",
588
- r: "75"
589
- })), /* @__PURE__ */ React.createElement("image", {
590
- xlinkHref: image,
591
- x: "28.5",
592
- y: "9",
593
- width: "150",
594
- height: "150",
595
- clipPath: "url(#circleClip)"
596
- }), /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement("filter", {
597
- id: "filter0_d_10755_290433",
598
- x: "0.944458",
599
- y: "0",
600
- width: "205.111",
601
- height: "170",
602
- filterUnits: "userSpaceOnUse",
603
- colorInterpolationFilters: "sRGB"
604
- }, /* @__PURE__ */ React.createElement("feFlood", {
605
- floodOpacity: "0",
606
- result: "BackgroundImageFix"
607
- }), /* @__PURE__ */ React.createElement("feColorMatrix", {
608
- in: "SourceAlpha",
609
- type: "matrix",
610
- values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
611
- result: "hardAlpha"
612
- }), /* @__PURE__ */ React.createElement("feOffset", {
613
- dy: "4"
614
- }), /* @__PURE__ */ React.createElement("feComposite", {
615
- in2: "hardAlpha",
616
- operator: "out"
617
- }), /* @__PURE__ */ React.createElement("feColorMatrix", {
618
- type: "matrix",
619
- values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"
620
- }), /* @__PURE__ */ React.createElement("feBlend", {
621
- mode: "normal",
622
- in2: "BackgroundImageFix",
623
- result: "effect1_dropShadow_10755_290433"
624
- }), /* @__PURE__ */ React.createElement("feBlend", {
625
- mode: "normal",
626
- in: "SourceGraphic",
627
- in2: "effect1_dropShadow_10755_290433",
628
- result: "shape"
629
- }))));
630
- };
631
-
632
- const MeritBadgeImageDisplay = ({
633
- imageUrl,
634
- className = ""
635
- }) => {
636
- return /* @__PURE__ */ React.createElement("div", {
637
- className: `flex items-center justify-center w-[176px] h-[176px] rounded-full bg-white z-50 ${className}`
638
- }, /* @__PURE__ */ React.createElement(MeritBadgeRibbon, {
639
- className: "absolute z-[1]",
640
- image: imageUrl
641
- }));
642
- };
643
-
644
- const MeritBadgeProfileImageDisplay = ({
645
- imageUrl,
646
- showSeal = false,
647
- className = "",
648
- imageComponent,
649
- size = "big",
650
- userName
651
- }) => {
652
- const imageClassName = `${size === "big" ? "h-[60px] w-[60px]" : "h-[39px] w-[39px]"} rounded-full overflow-hidden ${showSeal ? "absolute border-[2px] border-solid border-grayscale-200" : ""}`;
653
- return /* @__PURE__ */ React.createElement("div", {
654
- className
655
- }, showSeal && /* @__PURE__ */ React.createElement("div", {
656
- className: "bg-white rounded-full p-[5px]"
657
- }, /* @__PURE__ */ React.createElement(IssuerSeal, {
658
- size: "58"
659
- })), imageComponent && /* @__PURE__ */ React.createElement("div", {
660
- className: imageClassName
661
- }, imageComponent), !imageComponent && /* @__PURE__ */ React.createElement(UserProfilePicture, {
662
- customContainerClass: `${imageClassName} ${!imageUrl ? "pt-[6px]" : ""}`,
663
- customImageClass: "h-full w-full object-cover",
664
- user: { image: imageUrl, name: userName }
665
- }));
666
- };
667
-
668
- const MeritBadgeFrontFace = ({
669
- isFront,
670
- credential,
671
- categoryType,
672
- issuerOverride,
673
- issueeOverride,
674
- knownDIDRegistry,
675
- subjectImageComponent,
676
- issuerImageComponent,
677
- customBodyCardComponent,
678
- hideIssueDate,
679
- handleViewBackFace,
680
- showDetailsBtn = false,
681
- formattedDisplayType,
682
- customBodyContentSlot
683
- }) => {
684
- var _a;
685
- const {
686
- title = "",
687
- createdAt,
688
- issuer: _issuer = "",
689
- issuee: _issuee = "",
690
- credentialSubject,
691
- imageUrl
692
- } = getInfoFromCredential(credential, "MMM dd, yyyy", { uppercaseDate: false });
693
- const issuee = issueeOverride || _issuee;
694
- const issuer = issuerOverride || _issuer;
695
- (_a = credentialSubject == null ? void 0 : credentialSubject.achievement) != null ? _a : {};
696
- const credentialLightColor = getCategoryLightColor(categoryType);
697
- const credentialDarkColor = getCategoryDarkColor(categoryType);
698
- let categoryTitle = categoryType;
699
- let textLightColor = `text-${credentialLightColor}`;
700
- let textDarkColor = `text-${credentialDarkColor}`;
701
- let borderColor = `border-${credentialLightColor}`;
702
- if (categoryType === LCCategoryEnum.accommodations) {
703
- textLightColor = "text-violet-500";
704
- textDarkColor = "text-violet-700";
705
- borderColor = "border-violet-500";
706
- } else if (categoryType === LCCategoryEnum.accomplishments) {
707
- textLightColor = "text-yellow-500";
708
- textDarkColor = "text-yellow-700";
709
- borderColor = "border-yellow-500";
710
- categoryTitle = "Portfolio";
711
- } else if (categoryType === LCCategoryEnum.learningHistory) {
712
- categoryTitle = "Study";
713
- } else if (categoryType === LCCategoryEnum.workHistory) {
714
- categoryTitle = "Experiences";
715
- textLightColor = "text-cyan-500";
716
- textDarkColor = "text-cyan-700";
717
- borderColor = "border-cyan-500";
718
- }
719
- const issuerName = getNameFromProfile(issuer != null ? issuer : "");
720
- const issueeName = getNameFromProfile(issuee != null ? issuee : "");
721
- const issuerImage = getImageFromProfile(issuer != null ? issuer : "");
722
- const issueeImage = getImageFromProfile(issuee != null ? issuee : "");
723
- const issuerDid = typeof credential.issuer === "string" ? credential.issuer : credential.issuer.id;
724
- let verifierState;
725
- if ((credentialSubject == null ? void 0 : credentialSubject.id) === issuerDid && issuerDid && issuerDid !== "did:example:123") {
726
- verifierState = VERIFIER_STATES.selfVerified;
727
- } else {
728
- if ((knownDIDRegistry == null ? void 0 : knownDIDRegistry.source) === "trusted") {
729
- verifierState = VERIFIER_STATES.trustedVerifier;
730
- } else if ((knownDIDRegistry == null ? void 0 : knownDIDRegistry.source) === "untrusted") {
731
- verifierState = VERIFIER_STATES.untrustedVerifier;
732
- } else if ((knownDIDRegistry == null ? void 0 : knownDIDRegistry.source) === "unknown") {
733
- verifierState = VERIFIER_STATES.unknownVerifier;
734
- } else {
735
- verifierState = VERIFIER_STATES.unknownVerifier;
736
- }
737
- }
738
- verifierState === VERIFIER_STATES.selfVerified;
739
- const issueeImageExists = issueeImage || subjectImageComponent;
740
- return /* @__PURE__ */ React.createElement("section", {
741
- role: "button",
742
- onClick: () => handleViewBackFace == null ? void 0 : handleViewBackFace(),
743
- className: "relative p-[13px] mt-[68px] bg-white border-[5px] rounded-[30px] border-soid border-grayscale-200 min-w-[295px]"
744
- }, /* @__PURE__ */ React.createElement("div", {
745
- className: "w-[calc(100%-26px)] absolute top-[-72px]"
746
- }, /* @__PURE__ */ React.createElement(MeritBadgeImageDisplay, {
747
- imageUrl: imageUrl != null ? imageUrl : "",
748
- className: `mx-auto ${textLightColor}`
749
- })), /* @__PURE__ */ React.createElement("div", {
750
- className: `flex flex-col gap-[15px] items-center px-[20px] pt-[92px] pb-[19px] border-solid border-[4px] ${borderColor} rounded-[30px]`
751
- }, /* @__PURE__ */ React.createElement("div", {
752
- className: "flex flex-col gap-[5px] w-full"
753
- }, /* @__PURE__ */ React.createElement("div", {
754
- className: "flex flex-col items-center text-grayscale-900"
755
- }, /* @__PURE__ */ React.createElement("span", {
756
- className: "text-[16px] leading-[150%] font-jacques"
757
- }, issueeName || /* @__PURE__ */ React.createElement(Line, {
758
- width: "60"
759
- })), /* @__PURE__ */ React.createElement("span", {
760
- className: "text-[14px] leading-[150%] font-jacques"
761
- }, "has met the requirements for")), /* @__PURE__ */ React.createElement("div", {
762
- className: "flex flex-col items-center"
763
- }, /* @__PURE__ */ React.createElement("h1", {
764
- className: "text-grayscale-900 text-center text-[25px] font-jacques w-full"
765
- }, title), /* @__PURE__ */ React.createElement("div", {
766
- className: `${textLightColor} uppercase text-[14px] font-notoSans font-[600]`
767
- }, formattedDisplayType))), customBodyCardComponent, issueeImageExists && !customBodyCardComponent && /* @__PURE__ */ React.createElement(MeritBadgeProfileImageDisplay, {
768
- imageUrl: issueeImage,
769
- imageComponent: subjectImageComponent,
770
- className: `flex justify-center items-center ${textDarkColor}`
771
- }), !issueeImageExists && !customBodyCardComponent && /* @__PURE__ */ React.createElement("div", {
772
- className: "h-[50px] w-[50px] rounded-full bg-grayscale-500 flex items-center justify-center"
773
- }, /* @__PURE__ */ React.createElement(Smiley, null)), /* @__PURE__ */ React.createElement("div", {
774
- className: "flex flex-col w-full"
775
- }, /* @__PURE__ */ React.createElement("div", {
776
- className: "text-[14px] text-grayscale-900 flex flex-col items-center w-full mb-[10px]"
777
- }, /* @__PURE__ */ React.createElement("span", {
778
- className: "font-jacques flex gap-[5px] items-center w-full overflow-ellipsis whitespace-nowrap overflow-hidden justify-center"
779
- }, issueeName === "0 person" ? "Not yet awarded" : /* @__PURE__ */ React.createElement(React.Fragment, null, "Awarded on ", createdAt, " by"))), /* @__PURE__ */ React.createElement("div", {
780
- className: "flex flex-col gap-[5px] items-center w-full"
781
- }, /* @__PURE__ */ React.createElement("span", {
782
- className: "mb-[3px] pt-[3px] text-grayscale-900 text-[25px] leading-[90%] font-sacramento border-b-[1px] border-solid border-grayscale-200 w-full text-center overflow-ellipsis whitespace-normal scrollbar-hide"
783
- }, issuerName))), /* @__PURE__ */ React.createElement(MeritBadgeProfileImageDisplay, {
784
- imageUrl: issuerImage,
785
- userName: issuerName,
786
- imageComponent: issuerImageComponent,
787
- className: `w-[calc(100%-26px)] flex justify-center items-center ${textLightColor}`,
788
- size: "small",
789
- showSeal: true
790
- }), customBodyContentSlot && customBodyContentSlot, /* @__PURE__ */ React.createElement("div", {
791
- className: `${textLightColor} uppercase text-[14px] font-notoSans font-[600]`
792
- }, categoryTitle)), categoryType && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(MeritBadgeCornerIcon, {
793
- categoryType,
794
- position: "top-left"
795
- }), /* @__PURE__ */ React.createElement(MeritBadgeCornerIcon, {
796
- categoryType,
797
- position: "top-right"
798
- }), /* @__PURE__ */ React.createElement(MeritBadgeCornerIcon, {
799
- categoryType,
800
- position: "bottom-left"
801
- }), /* @__PURE__ */ React.createElement(MeritBadgeCornerIcon, {
802
- categoryType,
803
- position: "bottom-right"
804
- })), /* @__PURE__ */ React.createElement("div", {
805
- className: "absolute bottom-0 w-[calc(100%-26px)] flex justify-center"
806
- }, /* @__PURE__ */ React.createElement(VerifierStateBadgeAndText, {
807
- verifierState,
808
- className: "bg-white px-[5px] pb-[5px]"
809
- })), /* @__PURE__ */ React.createElement("span", {
810
- className: "hidden border-rose-500 text-spice-500 border-spice-500 border-cyan-500 text-cyan-500 border-indigo-500 border-sp-purple-base"
811
- }));
812
- };
813
-
814
- const MeritBadgeDisplayCard = ({
815
- credential,
816
- categoryType,
817
- verificationItems,
818
- issuerOverride,
819
- issueeOverride,
820
- subjectImageComponent,
821
- issuerImageComponent,
822
- customBodyCardComponent,
823
- knownDIDRegistry,
824
- hideIssueDate,
825
- customSkillsComponent,
826
- getFileMetadata,
827
- getVideoMetadata,
828
- onMediaAttachmentClick,
829
- enableLightbox,
830
- handleXClick,
831
- onDotsClick,
832
- isFrontOverride,
833
- setIsFrontOverride,
834
- hideNavButtons,
835
- showBackButton = false,
836
- showDetailsBtn = false,
837
- formattedDisplayType,
838
- customLinkedCredentialsComponent,
839
- customBodyContentSlot
840
- }) => {
841
- const [_isFront, _setIsFront] = useState(isFrontOverride != null ? isFrontOverride : true);
842
- const isFront = isFrontOverride != null ? isFrontOverride : _isFront;
843
- const setIsFront = setIsFrontOverride != null ? setIsFrontOverride : _setIsFront;
844
- return /* @__PURE__ */ React.createElement("section", {
845
- className: "w-full flex flex-col gap-[15px] items-center justify-center relative min-w-[220px]"
846
- }, /* @__PURE__ */ React.createElement("section", {
847
- className: "max-w-[350px] w-full"
848
- }, isFront && /* @__PURE__ */ React.createElement(MeritBadgeFrontFace, {
849
- credential,
850
- categoryType,
851
- issuerOverride,
852
- issueeOverride,
853
- knownDIDRegistry,
854
- subjectImageComponent,
855
- issuerImageComponent,
856
- customBodyCardComponent,
857
- hideIssueDate,
858
- handleViewBackFace: () => setIsFront(!isFront),
859
- isFront,
860
- showDetailsBtn,
861
- formattedDisplayType,
862
- customBodyContentSlot
863
- }), !isFront && /* @__PURE__ */ React.createElement(MeritBadgeBackFace, {
864
- credential,
865
- categoryType,
866
- verificationItems,
867
- getFileMetadata,
868
- getVideoMetadata,
869
- onMediaAttachmentClick,
870
- enableLightbox,
871
- showBackButton: showBackButton && !hideNavButtons || showDetailsBtn,
872
- handleViewFrontFace: () => setIsFront(!isFront),
873
- customLinkedCredentialsComponent
874
- }), onDotsClick && /* @__PURE__ */ React.createElement("button", {
875
- className: "absolute right-[-20px] top-[-52px] bg-white rounded-full p-[10px] shadow-bottom",
876
- onClick: onDotsClick
877
- }, /* @__PURE__ */ React.createElement("img", {
878
- alt: "Menu dropdown icon",
879
- className: "h-[20px] w-[20px]",
880
- src: ThreeDots
881
- }))), !hideNavButtons && /* @__PURE__ */ React.createElement("div", {
882
- className: "flex gap-[10px] font-mouse text-[30px] leading-[28px] tracking-[0.75px] relative top-[-10px] left-0 w-full"
883
- }, !isFront && /* @__PURE__ */ React.createElement("button", {
884
- className: "bg-grayscale-900 text-white py-[15px] px-[20px] rounded-[20px] flex mx-auto justify-center items-center gap-[5px] border-[3px] border-solid border-white",
885
- onClick: () => setIsFront(!isFront)
886
- }, /* @__PURE__ */ React.createElement(FatArrow, {
887
- direction: "left"
888
- }), " Back"), handleXClick && /* @__PURE__ */ React.createElement("button", {
889
- onClick: handleXClick,
890
- className: "bg-white text-grayscale-900 rounded-[20px] py-[15px] px-[20px] grow"
891
- }, "Close"), isFront && /* @__PURE__ */ React.createElement("button", {
892
- className: "bg-grayscale-900 text-white py-[15px] px-[20px] rounded-[20px] mx-auto flex justify-center items-center gap-[5px] border-[3px] border-solid border-white",
893
- onClick: () => setIsFront(!isFront)
894
- }, "Details ", /* @__PURE__ */ React.createElement(FatArrow, {
895
- direction: "right"
896
- }))));
897
- };
898
-
899
- export { MeritBadgeBackFace as M, MeritBadgeDisplayCard as a, MeritBadgeFrontFace as b };
900
- //# sourceMappingURL=MeritBadgeDisplayCard-bc462990.js.map