@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
@@ -0,0 +1,947 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var VerifierStateBadgeAndText = require('./VerifierStateBadgeAndText-e46d8393.js');
5
+ var credential_helpers = require('./credential.helpers-4f806327.js');
6
+ var UserProfilePicture = require('./UserProfilePicture-d69fe4f0.js');
7
+ var index = require('./index-5488badc.js');
8
+ var types_esm = require('./types.esm-beffa54c.js');
9
+ var Lightbox = require('./Lightbox-d72e19ba.js');
10
+ var CaretRightFilled = require('./CaretRightFilled.svg');
11
+ var ThreeDots = require('./DotsThreeOutline.svg');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
+ var CaretRightFilled__default = /*#__PURE__*/_interopDefaultLegacy(CaretRightFilled);
17
+ var ThreeDots__default = /*#__PURE__*/_interopDefaultLegacy(ThreeDots);
18
+
19
+ const Smiley = ({ className = "" }) => {
20
+ return /* @__PURE__ */ React__default["default"].createElement(
21
+ "svg",
22
+ {
23
+ width: "35",
24
+ height: "36",
25
+ viewBox: "0 0 35 36",
26
+ fill: "none",
27
+ xmlns: "http://www.w3.org/2000/svg",
28
+ className
29
+ },
30
+ /* @__PURE__ */ React__default["default"].createElement(
31
+ "path",
32
+ {
33
+ 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",
34
+ stroke: "#FBFBFC",
35
+ strokeWidth: "1.5",
36
+ strokeLinecap: "round",
37
+ strokeLinejoin: "round"
38
+ }
39
+ ),
40
+ /* @__PURE__ */ React__default["default"].createElement(
41
+ "path",
42
+ {
43
+ 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",
44
+ stroke: "#FBFBFC",
45
+ strokeWidth: "1.5",
46
+ strokeLinecap: "round",
47
+ strokeLinejoin: "round"
48
+ }
49
+ ),
50
+ /* @__PURE__ */ React__default["default"].createElement(
51
+ "path",
52
+ {
53
+ 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",
54
+ fill: "#FBFBFC"
55
+ }
56
+ ),
57
+ /* @__PURE__ */ React__default["default"].createElement(
58
+ "path",
59
+ {
60
+ 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",
61
+ fill: "#FBFBFC"
62
+ }
63
+ )
64
+ );
65
+ };
66
+
67
+ const AlignmentRow = ({
68
+ url,
69
+ name,
70
+ framework
71
+ }) => {
72
+ return /* @__PURE__ */ React__default["default"].createElement("div", { 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" }, /* @__PURE__ */ React__default["default"].createElement("h1", { className: "text-blue-800 font-semibold uppercase" }, framework), /* @__PURE__ */ React__default["default"].createElement("button", { className: "flex", onClick: () => window.open(url) }, /* @__PURE__ */ React__default["default"].createElement("span", { className: "text-left" }, name), /* @__PURE__ */ React__default["default"].createElement("img", { className: "w-[20px] self-end", src: CaretRightFilled__default["default"], alt: "right-caret" })));
73
+ };
74
+
75
+ const InfoBox = ({ text, handleClose, backgroundColor = "#6366F1" }) => {
76
+ const bgColorWithOpacity = `${backgroundColor}1F`;
77
+ return /* @__PURE__ */ React__default["default"].createElement(
78
+ "div",
79
+ {
80
+ className: "info-box p-[10px] rounded-[10px] w-full font-poppins text-[12px] leading[18px]",
81
+ style: { backgroundColor: bgColorWithOpacity }
82
+ },
83
+ text,
84
+ " ",
85
+ /* @__PURE__ */ React__default["default"].createElement(
86
+ "button",
87
+ {
88
+ onClick: (e) => {
89
+ e.stopPropagation();
90
+ handleClose();
91
+ },
92
+ className: "text-indigo-500 font-[700] select-none"
93
+ },
94
+ "Close"
95
+ )
96
+ );
97
+ };
98
+
99
+ const AlignmentsBox = ({ alignment, style }) => {
100
+ const [showInfo, setShowInfo] = React.useState(false);
101
+ const alignmentText = `
102
+ Alignments in your Open Badge credential link your achievement to established frameworks, standards, or competencies.
103
+ Each alignment shows how your boost directly relates to skills, knowledge areas, and professional standards that are recognized in your field.
104
+ `;
105
+ const alignments = Array.isArray(alignment) ? alignment.map((object, index) => /* @__PURE__ */ React__default["default"].createElement(
106
+ AlignmentRow,
107
+ {
108
+ key: index,
109
+ url: object.targetUrl,
110
+ name: object.targetName,
111
+ framework: object.targetFramework
112
+ }
113
+ )) : alignment && /* @__PURE__ */ React__default["default"].createElement(
114
+ AlignmentRow,
115
+ {
116
+ url: alignment.targetUrl,
117
+ name: alignment.targetName,
118
+ framework: alignment.targetFramework
119
+ }
120
+ );
121
+ return /* @__PURE__ */ React__default["default"].createElement("div", { className: "bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom p-[15px] w-full" }, /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex w-full items-center" }, /* @__PURE__ */ React__default["default"].createElement(
122
+ "h3",
123
+ {
124
+ className: style === "MeritBadge" ? "text-[17px] text-grayscale-900 font-poppins" : "text-[22px] font-mouse"
125
+ },
126
+ "Alignments"
127
+ ), /* @__PURE__ */ React__default["default"].createElement(
128
+ "button",
129
+ {
130
+ className: "ml-auto",
131
+ onClick: (e) => {
132
+ e.stopPropagation();
133
+ setShowInfo(!showInfo);
134
+ }
135
+ },
136
+ /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.InfoIcon, { color: showInfo ? "#6366F1" : void 0 })
137
+ )), showInfo && /* @__PURE__ */ React__default["default"].createElement(InfoBox, { text: alignmentText, handleClose: () => setShowInfo(false) }), alignments);
138
+ };
139
+
140
+ var __async = (__this, __arguments, generator) => {
141
+ return new Promise((resolve, reject) => {
142
+ var fulfilled = (value) => {
143
+ try {
144
+ step(generator.next(value));
145
+ } catch (e) {
146
+ reject(e);
147
+ }
148
+ };
149
+ var rejected = (value) => {
150
+ try {
151
+ step(generator.throw(value));
152
+ } catch (e) {
153
+ reject(e);
154
+ }
155
+ };
156
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
157
+ step((generator = generator.apply(__this, __arguments)).next());
158
+ });
159
+ };
160
+ const defaultGetFileMetadata = (url) => __async(null, null, function* () {
161
+ var _a;
162
+ console.log({ url });
163
+ const isFilestack = url.includes("filestack");
164
+ if (!isFilestack) return;
165
+ const urlParams = (_a = url.split(".com/")[1]) == null ? void 0 : _a.split("/");
166
+ if (!urlParams) return;
167
+ const handle = urlParams[urlParams.length - 1];
168
+ let fetchFailed = false;
169
+ const data = yield fetch(`https://cdn.filestackcontent.com/${handle}/metadata`).then((res) => res.json()).catch(() => fetchFailed = true);
170
+ if (fetchFailed) return;
171
+ const fileExtension = data.filename.split(".")[1];
172
+ return {
173
+ fileExtension,
174
+ sizeInBytes: data.size,
175
+ numberOfPages: void 0
176
+ };
177
+ });
178
+ const isYoutubeUrl = (url) => {
179
+ const youtubeUrl = new URL(url);
180
+ return youtubeUrl.hostname === "www.youtube.com";
181
+ };
182
+ const getYoutubeVideoId = (url) => {
183
+ const regex = /(?:\?v=|\.com\/embed\/)([^&]+)/;
184
+ const match = url.match(regex);
185
+ return match ? match[1] : "";
186
+ };
187
+ const getCoverImageUrl = (youtubeWatchUrl) => {
188
+ if (!isYoutubeUrl(youtubeWatchUrl)) {
189
+ return "";
190
+ }
191
+ const videoId = getYoutubeVideoId(youtubeWatchUrl);
192
+ return videoId ? `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg` : "";
193
+ };
194
+ const defaultGetVideoMetadata = (url) => __async(null, null, function* () {
195
+ const isYoutube = isYoutubeUrl(url);
196
+ if (!isYoutube) return;
197
+ const metadataUrl = `http://youtube.com/oembed?url=${url}&format=json`;
198
+ let fetchFailed = false;
199
+ const metadata = yield fetch(metadataUrl).then((res) => res.json()).catch(() => fetchFailed = true);
200
+ const coverImageUrl = getCoverImageUrl(url);
201
+ if (fetchFailed) return { imageUrl: coverImageUrl };
202
+ return {
203
+ title: metadata.title,
204
+ imageUrl: coverImageUrl,
205
+ videoLength: ""
206
+ // TODO figure out how to get this
207
+ };
208
+ });
209
+ const MediaAttachmentsBox = ({
210
+ attachments,
211
+ getFileMetadata = defaultGetFileMetadata,
212
+ getVideoMetadata = defaultGetVideoMetadata,
213
+ onMediaAttachmentClick,
214
+ enableLightbox = false
215
+ }) => {
216
+ const [documentMetadata, setDocumentMetadata] = React.useState({});
217
+ const [videoMetadata, setVideoMetadata] = React.useState({});
218
+ const mediaAttachments = [];
219
+ const documentsAndLinks = [];
220
+ attachments.forEach((a) => {
221
+ switch (a.type) {
222
+ case "document":
223
+ case "link":
224
+ documentsAndLinks.push(a);
225
+ break;
226
+ case "photo":
227
+ case "video":
228
+ mediaAttachments.push(a);
229
+ break;
230
+ }
231
+ });
232
+ React.useEffect(() => {
233
+ const getMetadata = (attachments2) => __async(null, null, function* () {
234
+ const docMetadata = {};
235
+ const videoMetadata2 = {};
236
+ yield Promise.all(
237
+ attachments2.map((attachment) => __async(null, null, function* () {
238
+ if (attachment.type === "document") {
239
+ docMetadata[attachment.url] = yield getFileMetadata(attachment.url);
240
+ } else if (attachment.type === "video") {
241
+ videoMetadata2[attachment.url] = yield getVideoMetadata(attachment.url);
242
+ }
243
+ }))
244
+ );
245
+ setVideoMetadata(videoMetadata2);
246
+ setDocumentMetadata(docMetadata);
247
+ });
248
+ const videos = attachments.filter((a) => a.type === "video");
249
+ getMetadata([...documentsAndLinks, ...videos]);
250
+ }, []);
251
+ const [currentLightboxUrl, setCurrentLightboxUrl] = React.useState(void 0);
252
+ const lightboxItems = mediaAttachments.filter(
253
+ (a) => a.type === "photo" || a.type === "video"
254
+ );
255
+ const handleMediaAttachmentClick = (url, type) => {
256
+ if (type === "photo" || type === "video") {
257
+ setCurrentLightboxUrl(url);
258
+ }
259
+ onMediaAttachmentClick == null ? void 0 : onMediaAttachmentClick(url, type);
260
+ };
261
+ return /* @__PURE__ */ React__default["default"].createElement("div", { className: "bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full" }, /* @__PURE__ */ React__default["default"].createElement("h3", { className: "text-[17px] text-grayscale-900 font-poppins" }, "Attachments"), mediaAttachments.length > 0 && /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex gap-[5px] justify-between flex-wrap w-full" }, enableLightbox && /* @__PURE__ */ React__default["default"].createElement(
262
+ Lightbox.Lightbox,
263
+ {
264
+ items: lightboxItems,
265
+ currentUrl: currentLightboxUrl,
266
+ setCurrentUrl: setCurrentLightboxUrl
267
+ }
268
+ ), mediaAttachments.map((media, index) => {
269
+ var _a, _b;
270
+ let innerContent;
271
+ let title = media.title;
272
+ if (media.type === "video") {
273
+ const metadata = videoMetadata[media.url];
274
+ title = (_a = title || (metadata == null ? void 0 : metadata.title)) != null ? _a : "";
275
+ VerifierStateBadgeAndText.getBaseUrl(media.url);
276
+ innerContent = /* @__PURE__ */ React__default["default"].createElement(
277
+ "div",
278
+ {
279
+ 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",
280
+ style: {
281
+ 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
282
+ }
283
+ },
284
+ !(metadata == null ? void 0 : metadata.imageUrl) && /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.VideoIcon, { size: "60", className: "m-auto" }),
285
+ /* @__PURE__ */ React__default["default"].createElement("div", { className: "absolute bottom-[10px] left-[10px] z-10 flex items-center gap-[5px]" }, (metadata == null ? void 0 : metadata.imageUrl) && /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.VideoIcon, null), (metadata == null ? void 0 : metadata.videoLength) && /* @__PURE__ */ React__default["default"].createElement("span", { className: "leading-[23px]" }, metadata.videoLength))
286
+ );
287
+ } else {
288
+ innerContent = /* @__PURE__ */ React__default["default"].createElement("div", { className: "h-full w-full flex items-center justify-center" }, /* @__PURE__ */ React__default["default"].createElement("img", { className: "object-cover h-full w-full", src: media.url }), /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.Camera, { className: "absolute bottom-[10px] left-[10px] z-10" }));
289
+ }
290
+ const className = `media-attachment ${media.type} w-[49%] pt-[49%] overflow-hidden relative`;
291
+ if (onMediaAttachmentClick || enableLightbox) {
292
+ return /* @__PURE__ */ React__default["default"].createElement(
293
+ "div",
294
+ {
295
+ key: index,
296
+ className: "flex media-attachment-box bg-grayscale-100 items-center rounded-[15px] w-full"
297
+ },
298
+ /* @__PURE__ */ React__default["default"].createElement(
299
+ "button",
300
+ {
301
+ className: "relative h-[80px] w-[80px] rounded-[15px] overflow-hidden flex-shrink-0",
302
+ onClick: (e) => {
303
+ e.stopPropagation();
304
+ handleMediaAttachmentClick(media.url, media.type);
305
+ }
306
+ },
307
+ innerContent
308
+ ),
309
+ title && /* @__PURE__ */ React__default["default"].createElement("div", { className: "text-[12px] text-grayscale-900 font-poppins px-[10px] line-clamp-3" }, title)
310
+ );
311
+ }
312
+ return /* @__PURE__ */ React__default["default"].createElement("div", { key: index, className }, innerContent);
313
+ })), documentsAndLinks.length > 0 && /* @__PURE__ */ React__default["default"].createElement("div", { className: "w-full flex flex-col gap-[5px]" }, documentsAndLinks.map((docOrLink, index) => {
314
+ var _a;
315
+ const metadata = docOrLink.type === "document" ? documentMetadata[docOrLink.url] : void 0;
316
+ const { fileExtension, sizeInBytes, numberOfPages } = metadata != null ? metadata : {};
317
+ let baseUrl = "";
318
+ if (docOrLink.type === "link") {
319
+ baseUrl = VerifierStateBadgeAndText.getBaseUrl(docOrLink.url);
320
+ }
321
+ const innerContent = /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex flex-col gap-[5px]" }, /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex gap-[5px] items-center" }, docOrLink.type === "document" && /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.GenericDocumentIcon, { className: "shrink-0" }), docOrLink.type === "link" && /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.LinkIcon, { className: "shrink-0" }), /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React__default["default"].createElement("span", { className: "text-grayscale-900 font-[400]" }, (_a = docOrLink.title) != null ? _a : "No title"), docOrLink.type === "document" && metadata && /* @__PURE__ */ React__default["default"].createElement(
322
+ "a",
323
+ {
324
+ href: docOrLink.url,
325
+ target: "_blank",
326
+ rel: "noreferrer",
327
+ className: "text-grayscale-700 font-[500] text-[12px] font-poppins hover:underline",
328
+ onClick: (e) => e.stopPropagation()
329
+ },
330
+ fileExtension && /* @__PURE__ */ React__default["default"].createElement("span", { className: "uppercase" }, fileExtension),
331
+ fileExtension && (numberOfPages || sizeInBytes) && " \u2022 ",
332
+ numberOfPages && /* @__PURE__ */ React__default["default"].createElement("span", null, numberOfPages, " page", numberOfPages === 1 ? "" : "s"),
333
+ numberOfPages && sizeInBytes && " \u2022 ",
334
+ sizeInBytes && /* @__PURE__ */ React__default["default"].createElement("span", null, VerifierStateBadgeAndText.prettyBytes(sizeInBytes))
335
+ ), docOrLink.type === "link" && /* @__PURE__ */ React__default["default"].createElement(
336
+ "a",
337
+ {
338
+ href: docOrLink.url,
339
+ target: "_blank",
340
+ rel: "noreferrer",
341
+ className: "text-indigo-500 font-[500] text-[12px] font-poppins hover:underline",
342
+ onClick: (e) => e.stopPropagation()
343
+ },
344
+ baseUrl
345
+ ))));
346
+ 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`;
347
+ if (onMediaAttachmentClick) {
348
+ return /* @__PURE__ */ React__default["default"].createElement(
349
+ "button",
350
+ {
351
+ key: index,
352
+ className,
353
+ onClick: (e) => {
354
+ e.stopPropagation();
355
+ handleMediaAttachmentClick(docOrLink.url, docOrLink.type);
356
+ }
357
+ },
358
+ innerContent
359
+ );
360
+ }
361
+ return /* @__PURE__ */ React__default["default"].createElement("div", { key: index, className }, innerContent);
362
+ })));
363
+ };
364
+
365
+ const VerificationRow = ({ verification }) => {
366
+ var _a, _b;
367
+ const [showInfo, setShowInfo] = React.useState(false);
368
+ const statusColor = credential_helpers.getColorForVerificationStatus(verification.status);
369
+ const getIcon = () => {
370
+ switch (verification.status) {
371
+ case types_esm.VerificationStatusEnum.Success:
372
+ return /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.AcuteCheckmark, null);
373
+ case types_esm.VerificationStatusEnum.Error:
374
+ return /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.ExclamationPoint, null);
375
+ case types_esm.VerificationStatusEnum.Failed:
376
+ return /* @__PURE__ */ React__default["default"].createElement(Lightbox.X, { className: "w-[15px] h-[15px]" });
377
+ }
378
+ };
379
+ let primaryText = verification.check ? `${verification.check}: ${verification.message}` : verification.message;
380
+ if (verification.status === types_esm.VerificationStatusEnum.Failed) {
381
+ primaryText = (_b = (_a = verification.message) != null ? _a : verification.details) != null ? _b : "";
382
+ }
383
+ primaryText = VerifierStateBadgeAndText.capitalize(primaryText);
384
+ const infoText = "";
385
+ return /* @__PURE__ */ React__default["default"].createElement("div", { 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" }, /* @__PURE__ */ React__default["default"].createElement(
386
+ "span",
387
+ {
388
+ className: "font-[700] text-[11px] uppercase flex items-center gap-[3px] select-none",
389
+ style: { color: statusColor }
390
+ },
391
+ getIcon(),
392
+ verification.status,
393
+ infoText
394
+ ), showInfo && infoText && /* @__PURE__ */ React__default["default"].createElement(
395
+ InfoBox,
396
+ {
397
+ text: infoText,
398
+ handleClose: () => setShowInfo(false),
399
+ backgroundColor: statusColor
400
+ }
401
+ ), /* @__PURE__ */ React__default["default"].createElement("span", { className: "text-[14px] text-grayscale-900 font-poppins" }, primaryText));
402
+ };
403
+
404
+ const VerificationsBox = ({ verificationItems }) => {
405
+ const [showInfo, setShowInfo] = React.useState(false);
406
+ return /* @__PURE__ */ React__default["default"].createElement("div", { className: "bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom p-[15px] w-full" }, /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex w-full items-center" }, /* @__PURE__ */ React__default["default"].createElement("h3", { className: "text-[17px] text-grayscale-900 font-poppins" }, "Verifications"), /* @__PURE__ */ React__default["default"].createElement(
407
+ "button",
408
+ {
409
+ className: "ml-auto",
410
+ onClick: (e) => {
411
+ e.stopPropagation();
412
+ setShowInfo(!showInfo);
413
+ }
414
+ },
415
+ /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.InfoIcon, { color: showInfo ? "#6366F1" : void 0 })
416
+ )), showInfo && /* @__PURE__ */ React__default["default"].createElement(
417
+ InfoBox,
418
+ {
419
+ text: "Credential verifications check the cryptographic proof of digital credentials to ensure their authenticity and accuracy.",
420
+ handleClose: () => setShowInfo(false)
421
+ }
422
+ ), verificationItems.map((verification, index) => /* @__PURE__ */ React__default["default"].createElement(VerificationRow, { key: index, verification })));
423
+ };
424
+
425
+ const TruncateTextBox = ({
426
+ headerText,
427
+ headerClassName = "",
428
+ text,
429
+ truncateThreshold = 132,
430
+ children,
431
+ className = "truncate-text-box"
432
+ }) => {
433
+ const needsTruncate = (text == null ? void 0 : text.length) > truncateThreshold;
434
+ const [showFullText, setShowFullText] = React.useState(false);
435
+ const truncated = needsTruncate && !showFullText;
436
+ const displayText = truncated ? text.substring(0, truncateThreshold) : text;
437
+ return /* @__PURE__ */ React__default["default"].createElement(
438
+ "div",
439
+ {
440
+ className: `${className} w-full bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom p-[15px]`
441
+ },
442
+ /* @__PURE__ */ React__default["default"].createElement("h3", { className: `${headerClassName} text-[17px] text-grayscale-900 font-poppins` }, headerText),
443
+ /* @__PURE__ */ React__default["default"].createElement("p", { className: "text-[12px] text-grayscale-700 font-poppins mb-0 flex flex-col items-start" }, displayText, truncated && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, "...", /* @__PURE__ */ React__default["default"].createElement(
444
+ "button",
445
+ {
446
+ className: "text-indigo-500 text-[12px]",
447
+ onClick: (e) => {
448
+ e.stopPropagation();
449
+ setShowFullText(true);
450
+ }
451
+ },
452
+ "Show more"
453
+ )), needsTruncate && showFullText && /* @__PURE__ */ React__default["default"].createElement(
454
+ "button",
455
+ {
456
+ className: "text-indigo-500 text-[12px]",
457
+ onClick: (e) => {
458
+ e.stopPropagation();
459
+ setShowFullText(false);
460
+ }
461
+ },
462
+ "Show less"
463
+ )),
464
+ children
465
+ );
466
+ };
467
+
468
+ const MeritBadgeBackFace = ({
469
+ credential,
470
+ categoryType,
471
+ verificationItems,
472
+ customSkillsComponent,
473
+ getFileMetadata,
474
+ getVideoMetadata,
475
+ onMediaAttachmentClick,
476
+ enableLightbox,
477
+ showBackButton,
478
+ handleViewFrontFace,
479
+ customLinkedCredentialsComponent
480
+ }) => {
481
+ var _a, _b, _c, _d, _e, _f, _g;
482
+ const { createdAt, credentialSubject } = credential_helpers.getInfoFromCredential(credential, "MMM dd, yyyy", {
483
+ uppercaseDate: false
484
+ });
485
+ const { description } = (_a = credentialSubject == null ? void 0 : credentialSubject.achievement) != null ? _a : {};
486
+ const criteria = (_c = (_b = credentialSubject == null ? void 0 : credentialSubject.achievement) == null ? void 0 : _b.criteria) == null ? void 0 : _c.narrative;
487
+ const alignment = (_d = credentialSubject == null ? void 0 : credentialSubject.achievement) == null ? void 0 : _d.alignment;
488
+ const credentialDarkColor = credential_helpers.getCategoryDarkColor(categoryType);
489
+ let bgColor = `bg-${credentialDarkColor}`;
490
+ if (categoryType === index.LCCategoryEnum.accommodations) {
491
+ bgColor = "bg-amber-700";
492
+ } else if (categoryType === index.LCCategoryEnum.accomplishments) {
493
+ bgColor = "bg-lime-700";
494
+ }
495
+ return /* @__PURE__ */ React__default["default"].createElement(
496
+ "div",
497
+ {
498
+ role: "button",
499
+ onClick: () => handleViewFrontFace == null ? void 0 : handleViewFrontFace(),
500
+ 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}`
501
+ },
502
+ showBackButton ? /* @__PURE__ */ React__default["default"].createElement("div", { className: "w-full" }, /* @__PURE__ */ React__default["default"].createElement(
503
+ "button",
504
+ {
505
+ 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",
506
+ onClick: () => handleViewFrontFace == null ? void 0 : handleViewFrontFace()
507
+ },
508
+ /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.LeftArrow, { className: "text-white", size: "25" }),
509
+ "Details"
510
+ )) : /* @__PURE__ */ React__default["default"].createElement("h1", { className: "text-white text-center text-[22px] font-jacques" }, "Details"),
511
+ /* @__PURE__ */ React__default["default"].createElement(TruncateTextBox, { headerText: "About", text: description }, /* @__PURE__ */ React__default["default"].createElement(
512
+ "span",
513
+ {
514
+ className: `text-grayscale-600 font-poppins text-[12px] font-[600] w-full ${description ? "pt-[10px] border-t-[1px] border-solid border-grayscale-200" : ""}`
515
+ },
516
+ "Awarded on ",
517
+ createdAt
518
+ )),
519
+ criteria && /* @__PURE__ */ React__default["default"].createElement(TruncateTextBox, { headerText: "Criteria", text: criteria }),
520
+ customLinkedCredentialsComponent && customLinkedCredentialsComponent,
521
+ ((_f = (_e = credential.skills) == null ? void 0 : _e.length) != null ? _f : 0) > 0 && (customSkillsComponent ? customSkillsComponent : /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.SkillsBox, { skills: (_g = credential.skills) != null ? _g : [] })),
522
+ credential.attachments && credential.attachments.length > 0 && /* @__PURE__ */ React__default["default"].createElement(
523
+ MediaAttachmentsBox,
524
+ {
525
+ attachments: credential.attachments,
526
+ getFileMetadata,
527
+ getVideoMetadata,
528
+ onMediaAttachmentClick,
529
+ enableLightbox
530
+ }
531
+ ),
532
+ alignment && /* @__PURE__ */ React__default["default"].createElement(AlignmentsBox, { alignment, style: "MeritBadge" }),
533
+ verificationItems && verificationItems.length > 0 && /* @__PURE__ */ React__default["default"].createElement(VerificationsBox, { verificationItems }),
534
+ /* @__PURE__ */ React__default["default"].createElement("span", { className: "hidden bg-amber-700 bg-spice-700 bg-rose-700 bg-yellow-700 bg-teal-700" })
535
+ );
536
+ };
537
+
538
+ const MeritBadgeCornerIcon = ({ categoryType, position }) => {
539
+ const credentialPrimaryColor = credential_helpers.getCategoryLightColor(categoryType);
540
+ const credentialIcon = credential_helpers.getCategoryIcon(categoryType, "25");
541
+ let iconPositionClassName, cornerPositionClassName;
542
+ switch (position) {
543
+ case "top-left":
544
+ iconPositionClassName = "top-[3px] left-[3px] pb-[10px] pr-[10px] pl-[4px] pt-[4px]";
545
+ cornerPositionClassName = "bottom-[-1px] right-0";
546
+ break;
547
+ case "top-right":
548
+ iconPositionClassName = "top-[3px] right-[3px] pl-[10px] pb-[10px] pr-[4px] pt-[4px]";
549
+ cornerPositionClassName = "bottom-[-1px] left-0 rotate-90";
550
+ break;
551
+ case "bottom-left":
552
+ iconPositionClassName = "bottom-[3px] left-[3px] pr-[10px] pt-[10px] pl-[4px] pb-[4px]";
553
+ cornerPositionClassName = "top-0 right-0 rotate-[270deg]";
554
+ break;
555
+ case "bottom-right":
556
+ iconPositionClassName = "bottom-[3px] right-[3px] pl-[10px] pt-[10px] pr-[4px] pb-[4px]";
557
+ cornerPositionClassName = "top-[-1px] left-0 rotate-180";
558
+ break;
559
+ }
560
+ return /* @__PURE__ */ React__default["default"].createElement(
561
+ "div",
562
+ {
563
+ className: `text-${credentialPrimaryColor} rounded-full bg-white absolute ${iconPositionClassName}`
564
+ },
565
+ credentialIcon,
566
+ /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.RoundedCorner, { className: `absolute ${cornerPositionClassName}` })
567
+ );
568
+ };
569
+
570
+ const MeritBadgeRibbon = ({ className = "", image }) => {
571
+ return /* @__PURE__ */ React__default["default"].createElement(
572
+ "svg",
573
+ {
574
+ width: "207",
575
+ height: "170",
576
+ viewBox: "0 0 207 170",
577
+ fill: "none",
578
+ xmlns: "http://www.w3.org/2000/svg",
579
+ className
580
+ },
581
+ /* @__PURE__ */ React__default["default"].createElement("g", { filter: "url(#filter0_d_10755_290433)" }, /* @__PURE__ */ React__default["default"].createElement("circle", { cx: "102.988", cy: "83", r: "81.5", fill: "white", stroke: "white", strokeWidth: "3" }), /* @__PURE__ */ React__default["default"].createElement(
582
+ "path",
583
+ {
584
+ 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",
585
+ fill: "currentColor",
586
+ stroke: "white",
587
+ strokeWidth: "3",
588
+ strokeLinejoin: "round"
589
+ }
590
+ ), /* @__PURE__ */ React__default["default"].createElement(
591
+ "rect",
592
+ {
593
+ x: "25.3273",
594
+ y: "5.34741",
595
+ width: "156.6",
596
+ height: "156.6",
597
+ rx: "78.2999",
598
+ fill: "#FBFBFC"
599
+ }
600
+ ), /* @__PURE__ */ React__default["default"].createElement(
601
+ "rect",
602
+ {
603
+ x: "25.3273",
604
+ y: "5.34741",
605
+ width: "156.6",
606
+ height: "156.6",
607
+ rx: "78.2999",
608
+ stroke: "currentColor",
609
+ strokeWidth: "3"
610
+ }
611
+ ), /* @__PURE__ */ React__default["default"].createElement("rect", { x: "29.8273", y: "9.84741", width: "147.6", height: "147.6", fill: "none" })),
612
+ /* @__PURE__ */ React__default["default"].createElement("clipPath", { id: "circleClip" }, /* @__PURE__ */ React__default["default"].createElement("circle", { cx: "103.5", cy: "84", r: "75" })),
613
+ /* @__PURE__ */ React__default["default"].createElement(
614
+ "image",
615
+ {
616
+ xlinkHref: image,
617
+ x: "28.5",
618
+ y: "9",
619
+ width: "150",
620
+ height: "150",
621
+ clipPath: "url(#circleClip)"
622
+ }
623
+ ),
624
+ /* @__PURE__ */ React__default["default"].createElement("defs", null, /* @__PURE__ */ React__default["default"].createElement(
625
+ "filter",
626
+ {
627
+ id: "filter0_d_10755_290433",
628
+ x: "0.944458",
629
+ y: "0",
630
+ width: "205.111",
631
+ height: "170",
632
+ filterUnits: "userSpaceOnUse",
633
+ colorInterpolationFilters: "sRGB"
634
+ },
635
+ /* @__PURE__ */ React__default["default"].createElement("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
636
+ /* @__PURE__ */ React__default["default"].createElement(
637
+ "feColorMatrix",
638
+ {
639
+ in: "SourceAlpha",
640
+ type: "matrix",
641
+ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
642
+ result: "hardAlpha"
643
+ }
644
+ ),
645
+ /* @__PURE__ */ React__default["default"].createElement("feOffset", { dy: "4" }),
646
+ /* @__PURE__ */ React__default["default"].createElement("feComposite", { in2: "hardAlpha", operator: "out" }),
647
+ /* @__PURE__ */ React__default["default"].createElement(
648
+ "feColorMatrix",
649
+ {
650
+ type: "matrix",
651
+ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"
652
+ }
653
+ ),
654
+ /* @__PURE__ */ React__default["default"].createElement(
655
+ "feBlend",
656
+ {
657
+ mode: "normal",
658
+ in2: "BackgroundImageFix",
659
+ result: "effect1_dropShadow_10755_290433"
660
+ }
661
+ ),
662
+ /* @__PURE__ */ React__default["default"].createElement(
663
+ "feBlend",
664
+ {
665
+ mode: "normal",
666
+ in: "SourceGraphic",
667
+ in2: "effect1_dropShadow_10755_290433",
668
+ result: "shape"
669
+ }
670
+ )
671
+ ))
672
+ );
673
+ };
674
+
675
+ const MeritBadgeImageDisplay = ({
676
+ imageUrl,
677
+ className = ""
678
+ }) => {
679
+ return /* @__PURE__ */ React__default["default"].createElement(
680
+ "div",
681
+ {
682
+ className: `flex items-center justify-center w-[176px] h-[176px] rounded-full bg-white z-50 ${className}`
683
+ },
684
+ /* @__PURE__ */ React__default["default"].createElement(MeritBadgeRibbon, { className: "absolute z-[1]", image: imageUrl })
685
+ );
686
+ };
687
+
688
+ const MeritBadgeProfileImageDisplay = ({
689
+ imageUrl,
690
+ showSeal = false,
691
+ className = "",
692
+ imageComponent,
693
+ size = "big",
694
+ userName
695
+ }) => {
696
+ 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" : ""}`;
697
+ return /* @__PURE__ */ React__default["default"].createElement("div", { className }, showSeal && /* @__PURE__ */ React__default["default"].createElement("div", { className: "bg-white rounded-full p-[5px]" }, /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.IssuerSeal, { size: "58" })), imageComponent && /* @__PURE__ */ React__default["default"].createElement("div", { className: imageClassName }, imageComponent), !imageComponent && /* @__PURE__ */ React__default["default"].createElement(
698
+ UserProfilePicture.UserProfilePicture,
699
+ {
700
+ customContainerClass: `${imageClassName} ${!imageUrl ? "pt-[6px]" : ""}`,
701
+ customImageClass: "h-full w-full object-cover",
702
+ user: { image: imageUrl, name: userName }
703
+ }
704
+ ));
705
+ };
706
+
707
+ const MeritBadgeFrontFace = ({
708
+ isFront,
709
+ credential,
710
+ categoryType,
711
+ issuerOverride,
712
+ issueeOverride,
713
+ knownDIDRegistry,
714
+ subjectImageComponent,
715
+ issuerImageComponent,
716
+ customBodyCardComponent,
717
+ hideIssueDate,
718
+ handleViewBackFace,
719
+ showDetailsBtn = false,
720
+ formattedDisplayType,
721
+ customBodyContentSlot
722
+ }) => {
723
+ var _a;
724
+ const {
725
+ title = "",
726
+ createdAt,
727
+ issuer: _issuer = "",
728
+ issuee: _issuee = "",
729
+ credentialSubject,
730
+ imageUrl
731
+ } = credential_helpers.getInfoFromCredential(credential, "MMM dd, yyyy", { uppercaseDate: false });
732
+ const issuee = issueeOverride || _issuee;
733
+ const issuer = issuerOverride || _issuer;
734
+ (_a = credentialSubject == null ? void 0 : credentialSubject.achievement) != null ? _a : {};
735
+ const credentialLightColor = credential_helpers.getCategoryLightColor(categoryType);
736
+ const credentialDarkColor = credential_helpers.getCategoryDarkColor(categoryType);
737
+ let categoryTitle = categoryType;
738
+ let textLightColor = `text-${credentialLightColor}`;
739
+ let textDarkColor = `text-${credentialDarkColor}`;
740
+ let borderColor = `border-${credentialLightColor}`;
741
+ if (categoryType === index.LCCategoryEnum.accommodations) {
742
+ textLightColor = "text-violet-500";
743
+ textDarkColor = "text-violet-700";
744
+ borderColor = "border-violet-500";
745
+ } else if (categoryType === index.LCCategoryEnum.accomplishments) {
746
+ textLightColor = "text-yellow-500";
747
+ textDarkColor = "text-yellow-700";
748
+ borderColor = "border-yellow-500";
749
+ categoryTitle = "Portfolio";
750
+ } else if (categoryType === index.LCCategoryEnum.learningHistory) {
751
+ categoryTitle = "Study";
752
+ } else if (categoryType === index.LCCategoryEnum.workHistory) {
753
+ categoryTitle = "Experiences";
754
+ textLightColor = "text-cyan-500";
755
+ textDarkColor = "text-cyan-700";
756
+ borderColor = "border-cyan-500";
757
+ }
758
+ const issuerName = credential_helpers.getNameFromProfile(issuer != null ? issuer : "");
759
+ const issueeName = credential_helpers.getNameFromProfile(issuee != null ? issuee : "");
760
+ const issuerImage = credential_helpers.getImageFromProfile(issuer != null ? issuer : "");
761
+ const issueeImage = credential_helpers.getImageFromProfile(issuee != null ? issuee : "");
762
+ const issuerDid = typeof credential.issuer === "string" ? credential.issuer : credential.issuer.id;
763
+ let verifierState;
764
+ if ((credentialSubject == null ? void 0 : credentialSubject.id) === issuerDid && issuerDid && issuerDid !== "did:example:123") {
765
+ verifierState = VerifierStateBadgeAndText.VERIFIER_STATES.selfVerified;
766
+ } else {
767
+ if ((knownDIDRegistry == null ? void 0 : knownDIDRegistry.source) === "trusted") {
768
+ verifierState = VerifierStateBadgeAndText.VERIFIER_STATES.trustedVerifier;
769
+ } else if ((knownDIDRegistry == null ? void 0 : knownDIDRegistry.source) === "untrusted") {
770
+ verifierState = VerifierStateBadgeAndText.VERIFIER_STATES.untrustedVerifier;
771
+ } else if ((knownDIDRegistry == null ? void 0 : knownDIDRegistry.source) === "unknown") {
772
+ verifierState = VerifierStateBadgeAndText.VERIFIER_STATES.unknownVerifier;
773
+ } else {
774
+ verifierState = VerifierStateBadgeAndText.VERIFIER_STATES.unknownVerifier;
775
+ }
776
+ }
777
+ verifierState === VerifierStateBadgeAndText.VERIFIER_STATES.selfVerified;
778
+ const issueeImageExists = issueeImage || subjectImageComponent;
779
+ return /* @__PURE__ */ React__default["default"].createElement(
780
+ "section",
781
+ {
782
+ role: "button",
783
+ onClick: () => handleViewBackFace == null ? void 0 : handleViewBackFace(),
784
+ className: "relative p-[13px] mt-[68px] bg-white border-[5px] rounded-[30px] border-soid border-grayscale-200 min-w-[295px]"
785
+ },
786
+ /* @__PURE__ */ React__default["default"].createElement("div", { className: "w-[calc(100%-26px)] absolute top-[-72px]" }, /* @__PURE__ */ React__default["default"].createElement(
787
+ MeritBadgeImageDisplay,
788
+ {
789
+ imageUrl: imageUrl != null ? imageUrl : "",
790
+ className: `mx-auto ${textLightColor}`
791
+ }
792
+ )),
793
+ /* @__PURE__ */ React__default["default"].createElement(
794
+ "div",
795
+ {
796
+ className: `flex flex-col gap-[15px] items-center px-[20px] pt-[92px] pb-[19px] border-solid border-[4px] ${borderColor} rounded-[30px]`
797
+ },
798
+ /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex flex-col gap-[5px] w-full" }, /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex flex-col items-center text-grayscale-900" }, /* @__PURE__ */ React__default["default"].createElement("span", { className: "text-[16px] leading-[150%] font-jacques" }, issueeName || /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.Line, { width: "60" })), /* @__PURE__ */ React__default["default"].createElement("span", { className: "text-[14px] leading-[150%] font-jacques" }, "has met the requirements for")), /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React__default["default"].createElement("h1", { className: "text-grayscale-900 text-center text-[25px] font-jacques w-full" }, title), /* @__PURE__ */ React__default["default"].createElement(
799
+ "div",
800
+ {
801
+ className: `${textLightColor} uppercase text-[14px] font-notoSans font-[600]`
802
+ },
803
+ formattedDisplayType
804
+ ))),
805
+ customBodyCardComponent,
806
+ issueeImageExists && !customBodyCardComponent && /* @__PURE__ */ React__default["default"].createElement(
807
+ MeritBadgeProfileImageDisplay,
808
+ {
809
+ imageUrl: issueeImage,
810
+ imageComponent: subjectImageComponent,
811
+ className: `flex justify-center items-center ${textDarkColor}`
812
+ }
813
+ ),
814
+ !issueeImageExists && !customBodyCardComponent && /* @__PURE__ */ React__default["default"].createElement("div", { className: "h-[50px] w-[50px] rounded-full bg-grayscale-500 flex items-center justify-center" }, /* @__PURE__ */ React__default["default"].createElement(Smiley, null)),
815
+ /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex flex-col w-full" }, /* @__PURE__ */ React__default["default"].createElement("div", { className: "text-[14px] text-grayscale-900 flex flex-col items-center w-full mb-[10px]" }, /* @__PURE__ */ React__default["default"].createElement("span", { className: "font-jacques flex gap-[5px] items-center w-full overflow-ellipsis whitespace-nowrap overflow-hidden justify-center" }, issueeName === "0 person" ? "Not yet awarded" : /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, "Awarded on ", createdAt, " by"))), /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex flex-col gap-[5px] items-center w-full" }, /* @__PURE__ */ React__default["default"].createElement("span", { 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" }, issuerName))),
816
+ /* @__PURE__ */ React__default["default"].createElement(
817
+ MeritBadgeProfileImageDisplay,
818
+ {
819
+ imageUrl: issuerImage,
820
+ userName: issuerName,
821
+ imageComponent: issuerImageComponent,
822
+ className: `w-[calc(100%-26px)] flex justify-center items-center ${textLightColor}`,
823
+ size: "small",
824
+ showSeal: true
825
+ }
826
+ ),
827
+ customBodyContentSlot && customBodyContentSlot,
828
+ /* @__PURE__ */ React__default["default"].createElement("div", { className: `${textLightColor} uppercase text-[14px] font-notoSans font-[600]` }, categoryTitle)
829
+ ),
830
+ categoryType && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(MeritBadgeCornerIcon, { categoryType, position: "top-left" }), /* @__PURE__ */ React__default["default"].createElement(MeritBadgeCornerIcon, { categoryType, position: "top-right" }), /* @__PURE__ */ React__default["default"].createElement(MeritBadgeCornerIcon, { categoryType, position: "bottom-left" }), /* @__PURE__ */ React__default["default"].createElement(MeritBadgeCornerIcon, { categoryType, position: "bottom-right" })),
831
+ /* @__PURE__ */ React__default["default"].createElement("div", { className: "absolute bottom-0 w-[calc(100%-26px)] flex justify-center" }, /* @__PURE__ */ React__default["default"].createElement(
832
+ VerifierStateBadgeAndText.VerifierStateBadgeAndText,
833
+ {
834
+ verifierState,
835
+ className: "bg-white px-[5px] pb-[5px]"
836
+ }
837
+ )),
838
+ /* @__PURE__ */ React__default["default"].createElement("span", { className: "hidden border-rose-500 text-spice-500 border-spice-500 border-cyan-500 text-cyan-500 border-indigo-500 border-sp-purple-base" })
839
+ );
840
+ };
841
+
842
+ const MeritBadgeDisplayCard = ({
843
+ credential,
844
+ categoryType,
845
+ verificationItems,
846
+ issuerOverride,
847
+ issueeOverride,
848
+ subjectImageComponent,
849
+ issuerImageComponent,
850
+ customBodyCardComponent,
851
+ knownDIDRegistry,
852
+ hideIssueDate,
853
+ customSkillsComponent,
854
+ getFileMetadata,
855
+ getVideoMetadata,
856
+ onMediaAttachmentClick,
857
+ enableLightbox,
858
+ handleXClick,
859
+ onDotsClick,
860
+ isFrontOverride,
861
+ setIsFrontOverride,
862
+ hideNavButtons,
863
+ showBackButton = false,
864
+ showDetailsBtn = false,
865
+ formattedDisplayType,
866
+ customLinkedCredentialsComponent,
867
+ customBodyContentSlot
868
+ }) => {
869
+ const [_isFront, _setIsFront] = React.useState(isFrontOverride != null ? isFrontOverride : true);
870
+ const isFront = isFrontOverride != null ? isFrontOverride : _isFront;
871
+ const setIsFront = setIsFrontOverride != null ? setIsFrontOverride : _setIsFront;
872
+ return /* @__PURE__ */ React__default["default"].createElement("section", { className: "w-full flex flex-col gap-[15px] items-center justify-center relative min-w-[220px]" }, /* @__PURE__ */ React__default["default"].createElement("section", { className: "max-w-[350px] w-full" }, isFront && /* @__PURE__ */ React__default["default"].createElement(
873
+ MeritBadgeFrontFace,
874
+ {
875
+ credential,
876
+ categoryType,
877
+ issuerOverride,
878
+ issueeOverride,
879
+ knownDIDRegistry,
880
+ subjectImageComponent,
881
+ issuerImageComponent,
882
+ customBodyCardComponent,
883
+ hideIssueDate,
884
+ handleViewBackFace: () => setIsFront(!isFront),
885
+ isFront,
886
+ showDetailsBtn,
887
+ formattedDisplayType,
888
+ customBodyContentSlot
889
+ }
890
+ ), !isFront && /* @__PURE__ */ React__default["default"].createElement(
891
+ MeritBadgeBackFace,
892
+ {
893
+ credential,
894
+ categoryType,
895
+ verificationItems,
896
+ getFileMetadata,
897
+ getVideoMetadata,
898
+ onMediaAttachmentClick,
899
+ enableLightbox,
900
+ showBackButton: showBackButton && !hideNavButtons || showDetailsBtn,
901
+ handleViewFrontFace: () => setIsFront(!isFront),
902
+ customLinkedCredentialsComponent
903
+ }
904
+ ), onDotsClick && /* @__PURE__ */ React__default["default"].createElement(
905
+ "button",
906
+ {
907
+ className: "absolute right-[-20px] top-[-52px] bg-white rounded-full p-[10px] shadow-bottom",
908
+ onClick: onDotsClick
909
+ },
910
+ /* @__PURE__ */ React__default["default"].createElement(
911
+ "img",
912
+ {
913
+ alt: "Menu dropdown icon",
914
+ className: "h-[20px] w-[20px]",
915
+ src: ThreeDots__default["default"]
916
+ }
917
+ )
918
+ )), !hideNavButtons && /* @__PURE__ */ React__default["default"].createElement("div", { className: "flex gap-[10px] font-mouse text-[30px] leading-[28px] tracking-[0.75px] relative top-[-10px] left-0 w-full" }, !isFront && /* @__PURE__ */ React__default["default"].createElement(
919
+ "button",
920
+ {
921
+ 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",
922
+ onClick: () => setIsFront(!isFront)
923
+ },
924
+ /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.FatArrow, { direction: "left" }),
925
+ " Back"
926
+ ), handleXClick && /* @__PURE__ */ React__default["default"].createElement(
927
+ "button",
928
+ {
929
+ onClick: handleXClick,
930
+ className: "bg-white text-grayscale-900 rounded-[20px] py-[15px] px-[20px] grow"
931
+ },
932
+ "Close"
933
+ ), isFront && /* @__PURE__ */ React__default["default"].createElement(
934
+ "button",
935
+ {
936
+ 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",
937
+ onClick: () => setIsFront(!isFront)
938
+ },
939
+ "Details ",
940
+ /* @__PURE__ */ React__default["default"].createElement(VerifierStateBadgeAndText.FatArrow, { direction: "right" })
941
+ )));
942
+ };
943
+
944
+ exports.MeritBadgeBackFace = MeritBadgeBackFace;
945
+ exports.MeritBadgeDisplayCard = MeritBadgeDisplayCard;
946
+ exports.MeritBadgeFrontFace = MeritBadgeFrontFace;
947
+ //# sourceMappingURL=MeritBadgeDisplayCard-531dbb15.js.map