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