@learncard/react 2.10.3 → 2.10.4

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 (495) hide show
  1. package/README.md +10 -10
  2. package/dist/base.css +1 -1
  3. package/dist/base.js +1 -1
  4. package/dist/cjs/{BoostGenericCard-0f68947f.js → BoostGenericCard-5a07339f.js} +2 -2
  5. package/dist/cjs/{BoostGenericCard-0f68947f.js.map → BoostGenericCard-5a07339f.js.map} +1 -1
  6. package/dist/cjs/{CertificateDisplayCard-6c30f6e6.js → CertificateDisplayCard-a7940558.js} +4 -4
  7. package/dist/cjs/{CertificateDisplayCard-6c30f6e6.js.map → CertificateDisplayCard-a7940558.js.map} +1 -1
  8. package/dist/cjs/CircleIcon-f0fa68c7.js.map +1 -1
  9. package/dist/cjs/{LearnCardCreditCardFrontFace-aca1b7bc.js → LearnCardCreditCardFrontFace-75fb4e44.js} +2 -2
  10. package/dist/cjs/{LearnCardCreditCardFrontFace-aca1b7bc.js.map → LearnCardCreditCardFrontFace-75fb4e44.js.map} +1 -1
  11. package/dist/cjs/{MeritBadgeDisplayCard-535853f5.js → MeritBadgeDisplayCard-1c614da9.js} +4 -4
  12. package/dist/cjs/{MeritBadgeDisplayCard-535853f5.js.map → MeritBadgeDisplayCard-1c614da9.js.map} +1 -1
  13. package/dist/cjs/{MeritBadgeSkillsCount-5cc7d16e.js → MeritBadgeSkillsCount-4dabf982.js} +2 -2
  14. package/dist/cjs/{MeritBadgeSkillsCount-5cc7d16e.js.map → MeritBadgeSkillsCount-4dabf982.js.map} +1 -1
  15. package/dist/cjs/{QRCodeCard-f0079bd9.js → QRCodeCard-2378411e.js} +2 -2
  16. package/dist/cjs/{QRCodeCard-f0079bd9.js.map → QRCodeCard-2378411e.js.map} +1 -1
  17. package/dist/cjs/{SchoolIDCard-e22d0d80.js → SchoolIDCard-2d3cbb2c.js} +13 -1189
  18. package/dist/cjs/SchoolIDCard-2d3cbb2c.js.map +1 -0
  19. package/dist/cjs/{VCCard-deabc204.js → VCCard-5bb95d29.js} +3 -3
  20. package/dist/cjs/{VCCard-deabc204.js.map → VCCard-5bb95d29.js.map} +1 -1
  21. package/dist/cjs/{VCDisplayBackFace-a15d5252.js → VCDisplayBackFace-864c35d5.js} +3 -3
  22. package/dist/cjs/{VCDisplayBackFace-a15d5252.js.map → VCDisplayBackFace-864c35d5.js.map} +1 -1
  23. package/dist/cjs/{VCDisplayCard-a64fa405.js → VCDisplayCard-15af27c6.js} +3 -3
  24. package/dist/cjs/{VCDisplayCard-a64fa405.js.map → VCDisplayCard-15af27c6.js.map} +1 -1
  25. package/dist/cjs/{VCDisplayCard2-6c87eade.js → VCDisplayCard2-f3f5c6c4.js} +28 -22
  26. package/dist/cjs/VCDisplayCard2-f3f5c6c4.js.map +1 -0
  27. package/dist/cjs/{VCVerificationPill-e1cc6be2.js → VCVerificationPill-20ed4d3c.js} +2 -2
  28. package/dist/cjs/{VCVerificationPill-e1cc6be2.js.map → VCVerificationPill-20ed4d3c.js.map} +1 -1
  29. package/dist/cjs/{VerifierStateBadgeAndText-5229da1a.js → VerifierStateBadgeAndText-de5bd85f.js} +9 -11
  30. package/dist/cjs/VerifierStateBadgeAndText-de5bd85f.js.map +1 -0
  31. package/dist/cjs/{credential.helpers-473e89c5.js → credential.helpers-b4d27c8a.js} +3 -3
  32. package/dist/cjs/credential.helpers-b4d27c8a.js.map +1 -0
  33. package/dist/cjs/{index-ec1d26f1.js → index-330dcb9c.js} +1 -1
  34. package/dist/cjs/index-330dcb9c.js.map +1 -0
  35. package/dist/cjs/index-47efbf5b.js +1186 -0
  36. package/dist/cjs/index-47efbf5b.js.map +1 -0
  37. package/dist/cjs/{index-0cac2c5b.js → index-da255c9a.js} +1 -1
  38. package/dist/cjs/index-da255c9a.js.map +1 -0
  39. package/dist/cjs/index.js +18 -17
  40. package/dist/cjs/index.js.map +1 -1
  41. package/dist/cjs/index14.js +18 -17
  42. package/dist/cjs/index14.js.map +1 -1
  43. package/dist/cjs/index18.js +2 -2
  44. package/dist/cjs/index22.js +6 -6
  45. package/dist/cjs/index28.js +2 -2
  46. package/dist/cjs/index31.js +2 -1
  47. package/dist/cjs/index31.js.map +1 -1
  48. package/dist/cjs/index39.js +12 -11
  49. package/dist/cjs/index39.js.map +1 -1
  50. package/dist/cjs/index4.js +4 -4
  51. package/dist/cjs/index40.js +5 -5
  52. package/dist/cjs/index41.js +6 -6
  53. package/dist/cjs/index42.js +8 -7
  54. package/dist/cjs/index42.js.map +1 -1
  55. package/dist/cjs/index43.js +2 -2
  56. package/dist/cjs/index46.js +2 -2
  57. package/dist/cjs/index7.js +5 -5
  58. package/dist/cjs/{types.esm-12bb5eed.js → types.esm-40b77196.js} +3 -2
  59. package/dist/cjs/types.esm-40b77196.js.map +1 -0
  60. package/dist/esm/{BoostGenericCard-b332a829.js → BoostGenericCard-997af0f5.js} +2 -2
  61. package/dist/esm/{BoostGenericCard-b332a829.js.map → BoostGenericCard-997af0f5.js.map} +1 -1
  62. package/dist/esm/{CertificateDisplayCard-fc148ca0.js → CertificateDisplayCard-d764151e.js} +4 -4
  63. package/dist/esm/{CertificateDisplayCard-fc148ca0.js.map → CertificateDisplayCard-d764151e.js.map} +1 -1
  64. package/dist/esm/CircleIcon-abd5ff06.js.map +1 -1
  65. package/dist/esm/{LearnCardCreditCardFrontFace-b7c917f5.js → LearnCardCreditCardFrontFace-13d29504.js} +2 -2
  66. package/dist/esm/{LearnCardCreditCardFrontFace-b7c917f5.js.map → LearnCardCreditCardFrontFace-13d29504.js.map} +1 -1
  67. package/dist/esm/{MeritBadgeDisplayCard-da9de0b8.js → MeritBadgeDisplayCard-907627ed.js} +4 -4
  68. package/dist/esm/{MeritBadgeDisplayCard-da9de0b8.js.map → MeritBadgeDisplayCard-907627ed.js.map} +1 -1
  69. package/dist/esm/{MeritBadgeSkillsCount-01e2756e.js → MeritBadgeSkillsCount-9474bd51.js} +2 -2
  70. package/dist/esm/{MeritBadgeSkillsCount-01e2756e.js.map → MeritBadgeSkillsCount-9474bd51.js.map} +1 -1
  71. package/dist/esm/{QRCodeCard-8f29c3c7.js → QRCodeCard-3abf9f33.js} +2 -2
  72. package/dist/esm/{QRCodeCard-8f29c3c7.js.map → QRCodeCard-3abf9f33.js.map} +1 -1
  73. package/dist/esm/{SchoolIDCard-8b151cd3.js → SchoolIDCard-fbd1cf6c.js} +12 -1188
  74. package/dist/esm/SchoolIDCard-fbd1cf6c.js.map +1 -0
  75. package/dist/esm/{VCCard-94dbe6bf.js → VCCard-ce4b451d.js} +3 -3
  76. package/dist/esm/{VCCard-94dbe6bf.js.map → VCCard-ce4b451d.js.map} +1 -1
  77. package/dist/esm/{VCDisplayBackFace-9c5b383f.js → VCDisplayBackFace-e347145c.js} +3 -3
  78. package/dist/esm/{VCDisplayBackFace-9c5b383f.js.map → VCDisplayBackFace-e347145c.js.map} +1 -1
  79. package/dist/esm/{VCDisplayCard-bd4d15e1.js → VCDisplayCard-3002776b.js} +3 -3
  80. package/dist/esm/{VCDisplayCard-bd4d15e1.js.map → VCDisplayCard-3002776b.js.map} +1 -1
  81. package/dist/esm/{VCDisplayCard2-c6a81e42.js → VCDisplayCard2-db880bbb.js} +28 -22
  82. package/dist/esm/VCDisplayCard2-db880bbb.js.map +1 -0
  83. package/dist/esm/{VCVerificationPill-d073557c.js → VCVerificationPill-5a05423b.js} +2 -2
  84. package/dist/esm/{VCVerificationPill-d073557c.js.map → VCVerificationPill-5a05423b.js.map} +1 -1
  85. package/dist/esm/{VerifierStateBadgeAndText-6946e820.js → VerifierStateBadgeAndText-bd1b0131.js} +9 -11
  86. package/dist/esm/VerifierStateBadgeAndText-bd1b0131.js.map +1 -0
  87. package/dist/esm/{credential.helpers-ff461699.js → credential.helpers-26e1a359.js} +3 -3
  88. package/dist/esm/credential.helpers-26e1a359.js.map +1 -0
  89. package/dist/esm/{index-2ef835bd.js → index-bc6b8b0b.js} +1 -1
  90. package/dist/{cjs/index-ec1d26f1.js.map → esm/index-bc6b8b0b.js.map} +1 -1
  91. package/dist/esm/{index-eae3ca64.js → index-cb3a593b.js} +1 -1
  92. package/dist/esm/index-cb3a593b.js.map +1 -0
  93. package/dist/esm/index-cbd2e9db.js +1184 -0
  94. package/dist/esm/index-cbd2e9db.js.map +1 -0
  95. package/dist/esm/index.js +18 -17
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/index14.js +18 -17
  98. package/dist/esm/index14.js.map +1 -1
  99. package/dist/esm/index18.js +2 -2
  100. package/dist/esm/index22.js +6 -6
  101. package/dist/esm/index28.js +2 -2
  102. package/dist/esm/index31.js +2 -1
  103. package/dist/esm/index31.js.map +1 -1
  104. package/dist/esm/index39.js +12 -11
  105. package/dist/esm/index39.js.map +1 -1
  106. package/dist/esm/index4.js +4 -4
  107. package/dist/esm/index40.js +5 -5
  108. package/dist/esm/index41.js +6 -6
  109. package/dist/esm/index42.js +8 -7
  110. package/dist/esm/index42.js.map +1 -1
  111. package/dist/esm/index43.js +2 -2
  112. package/dist/esm/index46.js +2 -2
  113. package/dist/esm/index7.js +5 -5
  114. package/dist/esm/{types.esm-f32fc00a.js → types.esm-13bb929b.js} +3 -2
  115. package/dist/esm/types.esm-13bb929b.js.map +1 -0
  116. package/dist/main.css +1 -1
  117. package/dist/main.js +1 -1
  118. package/package.json +102 -87
  119. package/src/assets/icons/accommodationsIcon.svg +5 -0
  120. package/src/assets/icons/accomplishmentsIcon.svg +4 -0
  121. package/src/assets/icons/achievementsIcon.svg +7 -0
  122. package/src/assets/icons/coursesIcon.svg +5 -0
  123. package/src/assets/icons/eventsIcon.svg +6 -0
  124. package/src/assets/icons/experiencesIcon.svg +4 -0
  125. package/src/assets/icons/goalsIcon.svg +5 -0
  126. package/src/assets/icons/idIcon.svg +4 -0
  127. package/src/assets/icons/membershipsIcon.svg +4 -0
  128. package/src/assets/icons/relationshipsIcon.svg +6 -0
  129. package/src/assets/icons/skillsIcon.svg +3 -0
  130. package/src/assets/icons/socialBadgesIcon.svg +7 -0
  131. package/src/assets/images/Accommodation-Hands.png +0 -0
  132. package/src/assets/images/ArrowArcLeft.svg +4 -0
  133. package/src/assets/images/ArrowArcRight.svg +4 -0
  134. package/src/assets/images/CaretRight.svg +3 -0
  135. package/src/assets/images/CaretRightFilled.svg +3 -0
  136. package/src/assets/images/DotsThreeOutline.svg +5 -0
  137. package/src/assets/images/GreenCheckCircle.svg +4 -0
  138. package/src/assets/images/RedXCircle.svg +5 -0
  139. package/src/assets/images/X.svg +4 -0
  140. package/src/assets/images/YellowWarningCircle.svg +4 -0
  141. package/src/assets/images/addawardlight.svg +8 -0
  142. package/src/assets/images/agriculture.png +0 -0
  143. package/src/assets/images/apple.png +0 -0
  144. package/src/assets/images/athletics.png +0 -0
  145. package/src/assets/images/award.svg +3 -0
  146. package/src/assets/images/backpack.png +0 -0
  147. package/src/assets/images/badge.png +0 -0
  148. package/src/assets/images/briefcase.svg +6 -0
  149. package/src/assets/images/business.png +0 -0
  150. package/src/assets/images/card-chip.svg +26 -0
  151. package/src/assets/images/check.svg +17 -0
  152. package/src/assets/images/coins.svg +3 -0
  153. package/src/assets/images/contactless-symbol.svg +3 -0
  154. package/src/assets/images/creative.png +0 -0
  155. package/src/assets/images/digital.png +0 -0
  156. package/src/assets/images/durable.png +0 -0
  157. package/src/assets/images/emptystate-death.png +0 -0
  158. package/src/assets/images/emptystate-dinocandle.png +0 -0
  159. package/src/assets/images/emptystate-ghost1.png +0 -0
  160. package/src/assets/images/eventsGraphic.png +0 -0
  161. package/src/assets/images/experience-mountain.png +0 -0
  162. package/src/assets/images/goals-target.png +0 -0
  163. package/src/assets/images/gradcaplight.svg +3 -0
  164. package/src/assets/images/graduation.svg +3 -0
  165. package/src/assets/images/icon.green.fat-arrow.png +0 -0
  166. package/src/assets/images/id-purple.png +0 -0
  167. package/src/assets/images/id-sleeve.png +0 -0
  168. package/src/assets/images/key-icon.svg +4 -0
  169. package/src/assets/images/lhplaceholder.png +0 -0
  170. package/src/assets/images/lightbulb.svg +3 -0
  171. package/src/assets/images/loveyou-icon.svg +5 -0
  172. package/src/assets/images/master-card-logo.svg +20 -0
  173. package/src/assets/images/medical.png +0 -0
  174. package/src/assets/images/membership-graphic.png +0 -0
  175. package/src/assets/images/membership-key.svg +9 -0
  176. package/src/assets/images/minigradcapcolored.svg +3 -0
  177. package/src/assets/images/minijob.svg +5 -0
  178. package/src/assets/images/minipuzzle.svg +3 -0
  179. package/src/assets/images/minipuzzlecolored.svg +3 -0
  180. package/src/assets/images/minitrophy.svg +3 -0
  181. package/src/assets/images/minitrophycolored.svg +3 -0
  182. package/src/assets/images/motlow-buckcard-bg.svg +32 -0
  183. package/src/assets/images/mountains-icon.svg +4 -0
  184. package/src/assets/images/photoplaceholder.png +0 -0
  185. package/src/assets/images/puzzle-icon.svg +3 -0
  186. package/src/assets/images/relationships-cats.png +0 -0
  187. package/src/assets/images/sample-badge.png +0 -0
  188. package/src/assets/images/skillgraph.svg +29 -0
  189. package/src/assets/images/skillplaceholder.png +0 -0
  190. package/src/assets/images/social-badge-2.png +0 -0
  191. package/src/assets/images/social-badge.png +0 -0
  192. package/src/assets/images/social-icon.svg +7 -0
  193. package/src/assets/images/social.png +0 -0
  194. package/src/assets/images/stem.png +0 -0
  195. package/src/assets/images/target-icon.svg +5 -0
  196. package/src/assets/images/trade.png +0 -0
  197. package/src/assets/images/trophy.svg +3 -0
  198. package/src/assets/images/user.svg +4 -0
  199. package/src/assets/images/users-icon.svg +6 -0
  200. package/src/assets/images/vc.check.svg +10 -0
  201. package/src/assets/images/verified-check.png +0 -0
  202. package/src/assets/images/walletTrophy.png +0 -0
  203. package/src/assets/images/walletcurrency.webp +0 -0
  204. package/src/assets/images/walletids.webp +0 -0
  205. package/src/assets/images/walletjobhistory.webp +0 -0
  206. package/src/assets/images/walletskills.webp +0 -0
  207. package/src/assets/styles/base.css +2 -0
  208. package/src/assets/styles/main.css +475 -0
  209. package/src/components/AchievementCard/AchievementCard.stories.tsx +31 -0
  210. package/src/components/AchievementCard/AchievementCard.tsx +88 -0
  211. package/src/components/AchievementCard/index.ts +5 -0
  212. package/src/components/BadgeThumbnailImg/BadgeThumbnailImg.test.tsx +47 -0
  213. package/src/components/BadgeThumbnailImg/BadgeThumbnailImg.tsx +72 -0
  214. package/src/components/BadgeThumbnailImg/index.ts +5 -0
  215. package/src/components/BoostGenericCard/AlignmentSkillsCount.tsx +54 -0
  216. package/src/components/BoostGenericCard/BoostGenericCard.stories.tsx +39 -0
  217. package/src/components/BoostGenericCard/BoostGenericCard.tsx +177 -0
  218. package/src/components/BoostGenericCard/index.ts +6 -0
  219. package/src/components/BoostSmallCard/BoostSmallCard.stories.tsx +57 -0
  220. package/src/components/BoostSmallCard/BoostSmallCard.tsx +178 -0
  221. package/src/components/BoostSmallCard/index.ts +5 -0
  222. package/src/components/Button/Button.stories.tsx +20 -0
  223. package/src/components/Button/Button.test.tsx +15 -0
  224. package/src/components/Button/Button.tsx +21 -0
  225. package/src/components/Button/index.ts +5 -0
  226. package/src/components/CertificateDisplayCard/AlignmentRow.tsx +26 -0
  227. package/src/components/CertificateDisplayCard/AlignmentsBox.tsx +70 -0
  228. package/src/components/CertificateDisplayCard/CertDisplayCardSkillsCount.tsx +66 -0
  229. package/src/components/CertificateDisplayCard/CertificateBackFace.tsx +130 -0
  230. package/src/components/CertificateDisplayCard/CertificateCornerIcon.tsx +48 -0
  231. package/src/components/CertificateDisplayCard/CertificateDisplayCard.stories.tsx +21 -0
  232. package/src/components/CertificateDisplayCard/CertificateDisplayCard.tsx +180 -0
  233. package/src/components/CertificateDisplayCard/CertificateFrontFace.tsx +308 -0
  234. package/src/components/CertificateDisplayCard/CertificateImageDisplay.test.tsx +43 -0
  235. package/src/components/CertificateDisplayCard/CertificateImageDisplay.tsx +68 -0
  236. package/src/components/CertificateDisplayCard/CertificateProfileImageDisplay.test.tsx +66 -0
  237. package/src/components/CertificateDisplayCard/CertificateProfileImageDisplay.tsx +64 -0
  238. package/src/components/CertificateDisplayCard/CertificateRibbon.tsx +43 -0
  239. package/src/components/CertificateDisplayCard/InfoBox.tsx +30 -0
  240. package/src/components/CertificateDisplayCard/MediaAttachmentsBox.tsx +347 -0
  241. package/src/components/CertificateDisplayCard/TruncateTextBox.tsx +73 -0
  242. package/src/components/CertificateDisplayCard/VerificationRow.tsx +67 -0
  243. package/src/components/CertificateDisplayCard/VerificationsBox.tsx +44 -0
  244. package/src/components/CertificateDisplayCard/VerifierStateBadgeAndText.tsx +100 -0
  245. package/src/components/CertificateDisplayCard/index.ts +20 -0
  246. package/src/components/CircleCheckButton/CircleCheckButton.stories.tsx +21 -0
  247. package/src/components/CircleCheckButton/CircleCheckButton.tsx +28 -0
  248. package/src/components/CircleCheckButton/index.ts +5 -0
  249. package/src/components/CircleIcon/CircleIcon.tsx +90 -0
  250. package/src/components/CircleIcon/__tests__/CircleIcon.test.tsx +38 -0
  251. package/src/components/CircleIcon/ci new +0 -0
  252. package/src/components/CircleIcon/index.ts +5 -0
  253. package/src/components/CourseCard/CourseCard.stories.tsx +23 -0
  254. package/src/components/CourseCard/CourseCard.tsx +94 -0
  255. package/src/components/CourseCard/index.ts +5 -0
  256. package/src/components/CourseVerticalCard/CourseVerticalCard.stories.tsx +31 -0
  257. package/src/components/CourseVerticalCard/CourseVerticalCard.tsx +118 -0
  258. package/src/components/CourseVerticalCard/index.ts +5 -0
  259. package/src/components/FlippyCard/FlippyCard.tsx +34 -0
  260. package/src/components/FlippyCard/__tests__/FlippyCard.test.tsx +41 -0
  261. package/src/components/FlippyCard/index.ts +5 -0
  262. package/src/components/GenericCard/GenericCard.stories.tsx +22 -0
  263. package/src/components/GenericCard/GenericCard.tsx +72 -0
  264. package/src/components/GenericCard/index.ts +5 -0
  265. package/src/components/JobHistoryCard/JobHistoryCard.stories.tsx +26 -0
  266. package/src/components/JobHistoryCard/JobHistoryCard.tsx +44 -0
  267. package/src/components/JobHistoryCard/index.ts +5 -0
  268. package/src/components/JobListCard/JobListCard.stories.tsx +54 -0
  269. package/src/components/JobListCard/JobListCard.tsx +162 -0
  270. package/src/components/JobListCard/index.ts +5 -0
  271. package/src/components/LearnCardCreditCardBackFace/LearnCardCreditCardBackFace.stories.tsx +31 -0
  272. package/src/components/LearnCardCreditCardBackFace/LearnCardCreditCardBackFace.tsx +104 -0
  273. package/src/components/LearnCardCreditCardBackFace/__tests__/LearnCardCreditCardBackFace.test.tsx +64 -0
  274. package/src/components/LearnCardCreditCardBackFace/index.ts +6 -0
  275. package/src/components/LearnCardCreditCardBackFace/types.ts +45 -0
  276. package/src/components/LearnCardCreditCardFrontFace/LearnCardCreditCardFrontFace.stories.tsx +28 -0
  277. package/src/components/LearnCardCreditCardFrontFace/LearnCardCreditCardFrontFace.tsx +102 -0
  278. package/src/components/LearnCardCreditCardFrontFace/__tests__/LearnCardCreditCardFrontFace.test.tsx +48 -0
  279. package/src/components/LearnCardCreditCardFrontFace/index.ts +6 -0
  280. package/src/components/LearnCardCreditCardFrontFace/types.ts +42 -0
  281. package/src/components/LearnPill/LearnPill.stories.tsx +20 -0
  282. package/src/components/LearnPill/LearnPill.tsx +35 -0
  283. package/src/components/LearnPill/index.ts +5 -0
  284. package/src/components/Lightbox/Lightbox.tsx +133 -0
  285. package/src/components/Lightbox/index.ts +5 -0
  286. package/src/components/Loading/CircleSpinner.tsx +52 -0
  287. package/src/components/Loading/index.ts +5 -0
  288. package/src/components/MeritBadgeDisplayCard/AlignmentRow.tsx +26 -0
  289. package/src/components/MeritBadgeDisplayCard/AlignmentsBox.tsx +70 -0
  290. package/src/components/MeritBadgeDisplayCard/InfoBox.tsx +30 -0
  291. package/src/components/MeritBadgeDisplayCard/MediaAttachmentsBox.tsx +347 -0
  292. package/src/components/MeritBadgeDisplayCard/MeritBadgeBackFace.tsx +130 -0
  293. package/src/components/MeritBadgeDisplayCard/MeritBadgeCornerIcon.tsx +46 -0
  294. package/src/components/MeritBadgeDisplayCard/MeritBadgeDisplayCard.tsx +177 -0
  295. package/src/components/MeritBadgeDisplayCard/MeritBadgeFrontFace.tsx +292 -0
  296. package/src/components/MeritBadgeDisplayCard/MeritBadgeImageDisplay.tsx +22 -0
  297. package/src/components/MeritBadgeDisplayCard/MeritBadgeProfileImageDisplay.test.tsx +70 -0
  298. package/src/components/MeritBadgeDisplayCard/MeritBadgeProfileImageDisplay.tsx +66 -0
  299. package/src/components/MeritBadgeDisplayCard/MeritBadgeRibbon.tsx +185 -0
  300. package/src/components/MeritBadgeDisplayCard/MeritBadgeSkillsCount.tsx +47 -0
  301. package/src/components/MeritBadgeDisplayCard/TruncateTextBox.tsx +73 -0
  302. package/src/components/MeritBadgeDisplayCard/VerificationRow.tsx +67 -0
  303. package/src/components/MeritBadgeDisplayCard/VerificationsBox.tsx +44 -0
  304. package/src/components/MeritBadgeDisplayCard/VerifierStateBadgeAndText.tsx +57 -0
  305. package/src/components/MeritBadgeDisplayCard/index.ts +20 -0
  306. package/src/components/MiniVCThumbnail/ MiniVCThumbnail.css +18 -0
  307. package/src/components/MiniVCThumbnail/ MiniVCThumbnail.stories.tsx +24 -0
  308. package/src/components/MiniVCThumbnail/MiniVCThumbnail.tsx +83 -0
  309. package/src/components/MiniVCThumbnail/__tests__/MiniVCThumbnail.test.tsx +59 -0
  310. package/src/components/MiniVCThumbnail/index.ts +6 -0
  311. package/src/components/MiniVCThumbnail/types.ts +32 -0
  312. package/src/components/Notification/Notification.stories.tsx +25 -0
  313. package/src/components/Notification/Notification.tsx +115 -0
  314. package/src/components/Notification/__tests__/Notification.test.tsx +111 -0
  315. package/src/components/Notification/index.ts +6 -0
  316. package/src/components/Notification/types.ts +97 -0
  317. package/src/components/NotificationBoostCard/NotificationBoostCard.stories.tsx +54 -0
  318. package/src/components/NotificationBoostCard/NotificationBoostCard.tsx +153 -0
  319. package/src/components/NotificationBoostCard/index.ts +6 -0
  320. package/src/components/NotificationBoostCard/types.ts +25 -0
  321. package/src/components/NotificationUserAcceptedBoostCard/NotificationUserAcceptedBoostCard.stories.tsx +28 -0
  322. package/src/components/NotificationUserAcceptedBoostCard/NotificationUserAcceptedBoostCard.tsx +96 -0
  323. package/src/components/NotificationUserAcceptedBoostCard/index.ts +6 -0
  324. package/src/components/NotificationUserAcceptedBoostCard/types.ts +13 -0
  325. package/src/components/NotificationUserCard/NotificationUserCard.stories.tsx +26 -0
  326. package/src/components/NotificationUserCard/NotificationUserCard.tsx +121 -0
  327. package/src/components/NotificationUserCard/index.ts +6 -0
  328. package/src/components/NotificationUserCard/types.ts +43 -0
  329. package/src/components/QRCodeCard/QRCodeCard.stories.tsx +26 -0
  330. package/src/components/QRCodeCard/QRCodeCard.tsx +54 -0
  331. package/src/components/QRCodeCard/__tests__/QRCodeCard.test.tsx +31 -0
  332. package/src/components/QRCodeCard/index.ts +6 -0
  333. package/src/components/QRCodeCard/types.ts +22 -0
  334. package/src/components/RoundedPill/RoundedPill.stories.tsx +21 -0
  335. package/src/components/RoundedPill/RoundedPill.tsx +137 -0
  336. package/src/components/RoundedPill/index.ts +5 -0
  337. package/src/components/RoundedSquare/RoundedSquare.stories.tsx +28 -0
  338. package/src/components/RoundedSquare/RoundedSquare.tsx +69 -0
  339. package/src/components/RoundedSquare/__tests__/RoundedSquare.test.tsx +35 -0
  340. package/src/components/RoundedSquare/constants.ts +63 -0
  341. package/src/components/RoundedSquare/index.ts +6 -0
  342. package/src/components/RoundedSquare/roudnedquarenew +0 -0
  343. package/src/components/SchoolIdCard/SchoolIDCard.stories.tsx +30 -0
  344. package/src/components/SchoolIdCard/SchoolIDCard.tsx +81 -0
  345. package/src/components/SchoolIdCard/index.ts +6 -0
  346. package/src/components/SchoolIdCard/types.ts +42 -0
  347. package/src/components/SkillTabCard/SkillTabCard.stories.tsx +25 -0
  348. package/src/components/SkillTabCard/SkillTabCard.tsx +44 -0
  349. package/src/components/SkillTabCard/index.ts +5 -0
  350. package/src/components/SkillVerticalCard/SkillVerticalCard.stories.tsx +20 -0
  351. package/src/components/SkillVerticalCard/SkillVerticalCard.tsx +32 -0
  352. package/src/components/SkillVerticalCard/index.ts +5 -0
  353. package/src/components/SkillsCard/SkillsCard.stories.tsx +24 -0
  354. package/src/components/SkillsCard/SkillsCard.tsx +68 -0
  355. package/src/components/SkillsCard/index.ts +5 -0
  356. package/src/components/SkillsStatsCard/SkillsStatsCard.stories.tsx +63 -0
  357. package/src/components/SkillsStatsCard/SkillsStatsCard.tsx +92 -0
  358. package/src/components/SkillsStatsCard/index.ts +5 -0
  359. package/src/components/SmallAchievementCard/SmallAchievementCard.stories.tsx +23 -0
  360. package/src/components/SmallAchievementCard/SmallAchievementCard.tsx +50 -0
  361. package/src/components/SmallAchievementCard/index.ts +5 -0
  362. package/src/components/UserProfilePicture/UserProfilePicture.test.tsx +44 -0
  363. package/src/components/UserProfilePicture/UserProfilePicture.tsx +119 -0
  364. package/src/components/UserProfilePicture/index.ts +5 -0
  365. package/src/components/VCCard/VCCard.stories.tsx +64 -0
  366. package/src/components/VCCard/VCCard.tsx +84 -0
  367. package/src/components/VCCard/index.ts +5 -0
  368. package/src/components/VCDisplayBackFace/VCDisplayBackFace.tsx +112 -0
  369. package/src/components/VCDisplayBackFace/index.ts +5 -0
  370. package/src/components/VCDisplayCard/VCDisplayCard.stories.tsx +167 -0
  371. package/src/components/VCDisplayCard/VCDisplayCard.tsx +98 -0
  372. package/src/components/VCDisplayCard/index.ts +5 -0
  373. package/src/components/VCDisplayCard2/FitText.tsx +85 -0
  374. package/src/components/VCDisplayCard2/InfoBox.tsx +30 -0
  375. package/src/components/VCDisplayCard2/IssueHistoryBox.tsx +50 -0
  376. package/src/components/VCDisplayCard2/MediaAttachmentsBox.tsx +306 -0
  377. package/src/components/VCDisplayCard2/RibbonEnd.tsx +67 -0
  378. package/src/components/VCDisplayCard2/SelectedSkills.tsx +70 -0
  379. package/src/components/VCDisplayCard2/SkillsBox.tsx +53 -0
  380. package/src/components/VCDisplayCard2/Subskill.tsx +50 -0
  381. package/src/components/VCDisplayCard2/TopLevelSkill.tsx +63 -0
  382. package/src/components/VCDisplayCard2/TruncateTextBox.tsx +89 -0
  383. package/src/components/VCDisplayCard2/VC2BackFace.tsx +185 -0
  384. package/src/components/VCDisplayCard2/VC2FrontFaceInfo.tsx +279 -0
  385. package/src/components/VCDisplayCard2/VCDisplayCard2.stories.tsx +191 -0
  386. package/src/components/VCDisplayCard2/VCDisplayCard2.tsx +526 -0
  387. package/src/components/VCDisplayCard2/VCDisplayCard2AvatarFallbacks.stories.tsx +312 -0
  388. package/src/components/VCDisplayCard2/VCDisplayCardCategoryType.tsx +19 -0
  389. package/src/components/VCDisplayCard2/VCDisplayCardSkillsCount.tsx +46 -0
  390. package/src/components/VCDisplayCard2/VCIDDIsplayCard.tsx +159 -0
  391. package/src/components/VCDisplayCard2/VCIDDisplayFrontFace.tsx +213 -0
  392. package/src/components/VCDisplayCard2/VerificationRow.tsx +69 -0
  393. package/src/components/VCDisplayCard2/VerificationsBox.tsx +44 -0
  394. package/src/components/VCDisplayCard2/__tests__/VC2FrontFaceInfo.test.tsx +134 -0
  395. package/src/components/VCDisplayCard2/index.ts +23 -0
  396. package/src/components/VCDisplayFrontFace/VCDisplayFrontFace.tsx +143 -0
  397. package/src/components/VCDisplayFrontFace/index.ts +5 -0
  398. package/src/components/VCThumbnail/VCThumbnail.stories.tsx +32 -0
  399. package/src/components/VCThumbnail/VCThumbnail.tsx +182 -0
  400. package/src/components/VCThumbnail/__tests__/VCThumbnail.test.tsx +114 -0
  401. package/src/components/VCThumbnail/index.ts +6 -0
  402. package/src/components/VCThumbnail/types.ts +46 -0
  403. package/src/components/VCVerificationCheck/VCVerificationCheck.tsx +89 -0
  404. package/src/components/VCVerificationCheck/index.ts +5 -0
  405. package/src/components/VCVerificationPill/VCVerificationPill.tsx +85 -0
  406. package/src/components/VCVerificationPill/index.ts +5 -0
  407. package/src/components/index.ts +48 -0
  408. package/src/components/svgs/AccommodationsIcon.tsx +38 -0
  409. package/src/components/svgs/AccomplishmentsIcon.tsx +34 -0
  410. package/src/components/svgs/AchievementWithTitle.tsx +137 -0
  411. package/src/components/svgs/AcuteCheckmark.tsx +25 -0
  412. package/src/components/svgs/AwardDisplayIcon.tsx +37 -0
  413. package/src/components/svgs/AwardRibbon.tsx +29 -0
  414. package/src/components/svgs/BadgeDisplayIcon.tsx +31 -0
  415. package/src/components/svgs/Briefcase.tsx +48 -0
  416. package/src/components/svgs/Camera.tsx +25 -0
  417. package/src/components/svgs/CertificateDisplayIcon.tsx +56 -0
  418. package/src/components/svgs/Checkmark.tsx +59 -0
  419. package/src/components/svgs/CircleWithText.tsx +36 -0
  420. package/src/components/svgs/Coins.tsx +14 -0
  421. package/src/components/svgs/CourseDisplayIcon.tsx +43 -0
  422. package/src/components/svgs/DownRightArrow.tsx +29 -0
  423. package/src/components/svgs/ExclamationPoint.tsx +25 -0
  424. package/src/components/svgs/ExperienceIcon.tsx +34 -0
  425. package/src/components/svgs/FatArrow.tsx +44 -0
  426. package/src/components/svgs/GenericArrow.tsx +29 -0
  427. package/src/components/svgs/GenericDocumentIcon.tsx +26 -0
  428. package/src/components/svgs/Graduation.tsx +24 -0
  429. package/src/components/svgs/IDDisplayIcon.tsx +63 -0
  430. package/src/components/svgs/IDIcon.tsx +59 -0
  431. package/src/components/svgs/IDSleeve.tsx +21 -0
  432. package/src/components/svgs/InfoIcon.tsx +26 -0
  433. package/src/components/svgs/IssuerSeal.tsx +26 -0
  434. package/src/components/svgs/KeyIcon.tsx +31 -0
  435. package/src/components/svgs/LeftArrow.tsx +27 -0
  436. package/src/components/svgs/Lightbulb.tsx +14 -0
  437. package/src/components/svgs/Line.tsx +22 -0
  438. package/src/components/svgs/LinkIcon.tsx +35 -0
  439. package/src/components/svgs/PdfIcon.tsx +38 -0
  440. package/src/components/svgs/PersonBadge.tsx +55 -0
  441. package/src/components/svgs/PuzzlePiece.tsx +89 -0
  442. package/src/components/svgs/QRCodeIcon.tsx +21 -0
  443. package/src/components/svgs/RedFlag.tsx +41 -0
  444. package/src/components/svgs/RoundedCorner.tsx +28 -0
  445. package/src/components/svgs/RoundedX.tsx +35 -0
  446. package/src/components/svgs/ScoutsLogo.tsx +41 -0
  447. package/src/components/svgs/ScoutsPledge.tsx +33 -0
  448. package/src/components/svgs/ShieldChevron.tsx +24 -0
  449. package/src/components/svgs/Smiley.tsx +43 -0
  450. package/src/components/svgs/SocialBadgesIcon.tsx +43 -0
  451. package/src/components/svgs/ThreeDotVertical.tsx +41 -0
  452. package/src/components/svgs/Trophy.tsx +25 -0
  453. package/src/components/svgs/UnknownVerifierBadge.tsx +25 -0
  454. package/src/components/svgs/User.tsx +34 -0
  455. package/src/components/svgs/VerifiedBadge.tsx +37 -0
  456. package/src/components/svgs/VideoIcon.tsx +28 -0
  457. package/src/components/svgs/X.tsx +35 -0
  458. package/src/components/svgs/index.ts +54 -0
  459. package/src/constants/icons.ts +87 -0
  460. package/src/constants/index.ts +109 -0
  461. package/src/constants/notifications.ts +14 -0
  462. package/src/constants/skills.ts +2202 -0
  463. package/src/declaration.d.ts +21 -0
  464. package/src/helpers/__tests__/credentialFormat.helpers.test.ts +100 -0
  465. package/src/helpers/color.helpers.ts +35 -0
  466. package/src/helpers/credential.helpers.test.ts +108 -0
  467. package/src/helpers/credential.helpers.tsx +249 -0
  468. package/src/helpers/credentialFormat.helpers.ts +68 -0
  469. package/src/helpers/did-display.helpers.ts +230 -0
  470. package/src/helpers/display.helpers.ts +53 -0
  471. package/src/helpers/string.helpers.ts +7 -0
  472. package/src/helpers/test.helpers.ts +680 -0
  473. package/src/helpers/url.helpers.ts +3 -0
  474. package/src/helpers/useHorizontalPages.ts +130 -0
  475. package/src/helpers/useOnMomentumScrollEnd.ts +28 -0
  476. package/src/helpers/useScrollBorders.ts +59 -0
  477. package/src/helpers/video.helpers.ts +125 -0
  478. package/src/hooks/useCredentialFormat.tsx +23 -0
  479. package/src/hooks/useParsedSdJwtVc.tsx +64 -0
  480. package/src/index.ts +16 -0
  481. package/src/types/index.ts +390 -0
  482. package/LICENSE +0 -21
  483. package/dist/cjs/SchoolIDCard-e22d0d80.js.map +0 -1
  484. package/dist/cjs/VCDisplayCard2-6c87eade.js.map +0 -1
  485. package/dist/cjs/VerifierStateBadgeAndText-5229da1a.js.map +0 -1
  486. package/dist/cjs/credential.helpers-473e89c5.js.map +0 -1
  487. package/dist/cjs/index-0cac2c5b.js.map +0 -1
  488. package/dist/cjs/types.esm-12bb5eed.js.map +0 -1
  489. package/dist/esm/SchoolIDCard-8b151cd3.js.map +0 -1
  490. package/dist/esm/VCDisplayCard2-c6a81e42.js.map +0 -1
  491. package/dist/esm/VerifierStateBadgeAndText-6946e820.js.map +0 -1
  492. package/dist/esm/credential.helpers-ff461699.js.map +0 -1
  493. package/dist/esm/index-2ef835bd.js.map +0 -1
  494. package/dist/esm/index-eae3ca64.js.map +0 -1
  495. package/dist/esm/types.esm-f32fc00a.js.map +0 -1
@@ -0,0 +1,680 @@
1
+ import { VerificationStatusEnum } from '@learncard/types';
2
+
3
+ // See https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/
4
+ // For example data structure for plugfest
5
+ export const JffCredential = {
6
+ '@context': [
7
+ 'https://www.w3.org/2018/credentials/v1',
8
+ 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/jff-vc-edu-plugfest-1-context.json',
9
+ ],
10
+ type: ['VerifiableCredential', 'OpenBadgeCredential'],
11
+ issuer: {
12
+ type: 'Profile',
13
+ id: 'did:key:z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo',
14
+ name: 'Jobs for the Future (JFF)',
15
+ url: 'https://www.jff.org/',
16
+ image: 'https://kayaelle.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png',
17
+ },
18
+ issuanceDate: '2022-07-27T19:57:31.512Z',
19
+ credentialSubject: {
20
+ type: 'AchievementSubject',
21
+ id: 'did:key:z6Mkqk4j3VnaRf4XHEoU6eT343VTfdfZG23CK6zaf5g5KKju',
22
+ achievement: {
23
+ type: 'Achievement',
24
+ name: 'Our Wallet Passed JFF Plugfest #1 2022',
25
+ description: 'This wallet can display this Open Badge 3.0',
26
+ criteria: {
27
+ type: 'Criteria',
28
+ narrative:
29
+ 'The first cohort of the JFF Plugfest 1 in May/June of 2021 collaborated to push interoperability of VCs in education forward.',
30
+ },
31
+ image: 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/plugfest-1-badge-image.png',
32
+ },
33
+ },
34
+ };
35
+
36
+ export const SuperSkillsOprahCredential = {
37
+ '@context': [
38
+ 'https://www.w3.org/2018/credentials/v1',
39
+ 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',
40
+ ],
41
+ id: 'http://example.com/credentials/3527',
42
+ type: ['VerifiableCredential', 'OpenBadgeCredential'],
43
+ issuer: 'did:key:z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo',
44
+ issuanceDate: '2022-12-15T01:40:50.794Z',
45
+ credentialSubject: {
46
+ id: 'did:key:z6Mkqk4j3VnaRf4XHEoU6eT343VTfdfZG23CK6zaf5g5KKju',
47
+ type: ['AchievementSubject'],
48
+ achievement: {
49
+ id: 'https://example.com/achievements/21st-century-skills/teamwork',
50
+ tag: ['Emotional', 'Emotional Subskill 1'],
51
+ name: 'The Oprah',
52
+ type: ['Achievement'],
53
+ image: 'https://cdn.filestackcontent.com/04DxNAaQ66aphkQvbT9W',
54
+ description:
55
+ 'You get a badge! You get a badge! You get a badge! You get a badge! You get a badge! You get a badge! EVERYBODY GETS A BADGE!!!',
56
+ },
57
+ },
58
+ proof: {
59
+ type: 'Ed25519Signature2020',
60
+ created: '2022-12-15T01:40:50.798Z',
61
+ proofPurpose: 'assertionMethod',
62
+ verificationMethod:
63
+ 'did:key:z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo#z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo',
64
+ '@context': ['https://w3id.org/security/suites/ed25519-2020/v1'],
65
+ proofValue:
66
+ 'z5R86gecRsBh1xmPJqdfqoNppxy4hbMZWtjZZNdaqGYtwBcPHNzXwAtHdqhTWQVprQn6B8xfQvqqvQo3ZjaTjt3tW',
67
+ },
68
+ name: 'The Oprah',
69
+ };
70
+
71
+ export const testTags = [
72
+ 'Skill A',
73
+ 'Subskill A 1',
74
+ 'Subskill A 2',
75
+ 'Skill B',
76
+ 'Skill C',
77
+ 'Subskill C',
78
+ ];
79
+
80
+ export const AllFieldsCredential = {
81
+ name: 'Verbose Credential',
82
+ '@context': [
83
+ 'https://www.w3.org/2018/credentials/v1',
84
+ 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',
85
+ ],
86
+ id: 'http://example.com/credentials/3527',
87
+ type: ['VerifiableCredential', 'OpenBadgeCredential'],
88
+ issuer: 'did:key:z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo',
89
+ issuanceDate: '2022-12-15T01:40:50.794Z',
90
+ credentialSubject: {
91
+ id: 'did:key:z6Mkqk4j3VnaRf4XHEoU6eT343VTfdfZG23CK6zaf5g5KKju',
92
+ type: ['AchievementSubject'],
93
+ achievement: {
94
+ id: 'https://example.com/achievements/21st-century-skills/teamwork',
95
+ tag: testTags,
96
+ name: 'Verbose Credentialing',
97
+ type: ['Achievement'],
98
+ image: 'https://cdn.filestackcontent.com/04DxNAaQ66aphkQvbT9W',
99
+ description:
100
+ "You made a test credential with ALL the possible fields! Woah! That's great! There are so many fields on this credential! Let's make this even longer so that it gets truncated",
101
+ criteria: {
102
+ type: 'Criteria',
103
+ narrative:
104
+ 'You really know your crednetials! Pretty rad. Being able to find and handle all of these fields is incredible! This narrative is going to be pretty long so that we can see if you can handle long blocks of text too. This should probably be truncated off by now or something.',
105
+ },
106
+ alignment: [
107
+ {
108
+ targetName: 'Alignment 1',
109
+ targetDescription: 'Target Description for Alignment 1',
110
+ targetFramework: 'Target Framework 1',
111
+ targetUrl: 'https://example.com/alignment1',
112
+ },
113
+ {
114
+ targetName: 'Alignment 2',
115
+ targetDescription: 'Target Description for Alignment 2',
116
+ targetFramework: 'Target Framework 2',
117
+ targetUrl: 'https://example.com/alignment2',
118
+ },
119
+ ],
120
+ },
121
+ },
122
+ proof: {
123
+ type: 'Ed25519Signature2020',
124
+ created: '2022-12-15T01:40:50.798Z',
125
+ proofPurpose: 'assertionMethod',
126
+ verificationMethod:
127
+ 'did:key:z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo#z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo',
128
+ '@context': ['https://w3id.org/security/suites/ed25519-2020/v1'],
129
+ proofValue:
130
+ 'z5R86gecRsBh1xmPJqdfqoNppxy4hbMZWtjZZNdaqGYtwBcPHNzXwAtHdqhTWQVprQn6B8xfQvqqvQo3ZjaTjt3tW',
131
+ },
132
+ display: { backgroundImage: 'https://images.unsplash.com/photo-1518199266791-5375a83190b7' },
133
+ attachments: [
134
+ {
135
+ type: 'document',
136
+ title: 'Custom PDF title',
137
+ url: 'https://cdn.filestackcontent.com/4LN0x2LQXSjIH3c5bfBr',
138
+ },
139
+ {
140
+ type: 'link',
141
+ title: 'Mooji',
142
+ url: 'https://www.moojisanghavibe.org',
143
+ },
144
+ {
145
+ type: 'document',
146
+ title: 'This is a text file with a super long name that goes to two lines',
147
+ url: 'https://cdn.filestackcontent.com/BqqfmVEbQFmRaqwvqTMA',
148
+ },
149
+ { type: 'photo', url: 'https://cdn.filestackcontent.com/XuMpArLAQ3qam5OdArih' },
150
+ { type: 'video', url: 'https://www.youtube.com/watch?v=fV7mWuCdkpY' },
151
+ { type: 'photo', url: 'https://cdn.filestackcontent.com/PNb6lViSaqGoKyRyXyyp' },
152
+ { type: 'photo', url: 'https://images.unsplash.com/photo-1607419145932-ed1fc8c034d8' },
153
+ {
154
+ type: 'link',
155
+ title: 'Metta Meditation',
156
+ url: 'https://unveilingtiamat.com/wp-content/uploads/2022/02/Radiant-Threefold-Path-Lovingkindness-Meditation-1.pdf?vgo_ee=KR53S3mb9fY4az4OUTbOR0zkASpiHornD%2Fz2wZTd1jg%3D&fbclid=IwAR1yXamIvuEs-PEJeXvbZp20NvlyvC2SQ-5QLATCepopuqIypO6Pfeb_6iM',
157
+ },
158
+ {
159
+ type: 'video',
160
+ title: 'Herbie Highlights 2022',
161
+ url: 'https://www.youtube.com/watch?v=8Mt4YAileOo',
162
+ },
163
+ {
164
+ type: 'video',
165
+ title: 'Ram Dass - Be Here Now',
166
+ url: 'https://vimeo.com/406283337',
167
+ },
168
+ ],
169
+ skills: [
170
+ {
171
+ category: 'digital',
172
+ skill: 'softwareProficiency',
173
+ subskills: ['productivitySuites', 'specializedSoftware', 'designSoftware'],
174
+ },
175
+ {
176
+ category: 'stem',
177
+ skill: 'technology',
178
+ subskills: ['coding', 'softwareDevelopment', 'dataAnalysis'],
179
+ },
180
+ ],
181
+ };
182
+
183
+ export const AllFieldsBackgroundColorCredential = {
184
+ ...AllFieldsCredential,
185
+ display: { backgroundColor: 'lightblue' },
186
+ };
187
+
188
+ export const LongTitleCredential = {
189
+ name: 'This is a super long credential name because we want to test the ribbon with a long name',
190
+ '@context': [
191
+ 'https://www.w3.org/2018/credentials/v1',
192
+ 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',
193
+ ],
194
+ id: 'http://example.com/credentials/3527',
195
+ type: ['VerifiableCredential', 'OpenBadgeCredential'],
196
+ issuer: 'did:key:z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo',
197
+ issuanceDate: '2022-12-15T01:40:50.794Z',
198
+ credentialSubject: {
199
+ id: 'did:key:z6Mkqk4j3VnaRf4XHEoU6eT343VTfdfZG23CK6zaf5g5KKju',
200
+ type: ['AchievementSubject'],
201
+ achievement: {
202
+ id: 'https://example.com/achievements/21st-century-skills/teamwork',
203
+ tag: testTags,
204
+ name: 'This is a super long credential name because we want to test the ribbon with a long name',
205
+ type: ['Achievement'],
206
+ image: 'https://cdn.filestackcontent.com/04DxNAaQ66aphkQvbT9W',
207
+ description:
208
+ "You made a test credential with ALL the possible fields! Woah! That's great! There are so many fields on this credential! Let's make this even longer so that it gets truncated",
209
+ criteria: {
210
+ type: 'Criteria',
211
+ narrative:
212
+ 'You really know your crednetials! Pretty rad. Being able to find and handle all of these fields is incredible! This narrative is going to be pretty long so that we can see if you can handle long blocks of text too. This should probably be truncated off by now or something.',
213
+ },
214
+ },
215
+ },
216
+ proof: {
217
+ type: 'Ed25519Signature2020',
218
+ created: '2022-12-15T01:40:50.798Z',
219
+ proofPurpose: 'assertionMethod',
220
+ verificationMethod:
221
+ 'did:key:z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo#z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo',
222
+ '@context': ['https://w3id.org/security/suites/ed25519-2020/v1'],
223
+ proofValue:
224
+ 'z5R86gecRsBh1xmPJqdfqoNppxy4hbMZWtjZZNdaqGYtwBcPHNzXwAtHdqhTWQVprQn6B8xfQvqqvQo3ZjaTjt3tW',
225
+ },
226
+ display: { backgroundImage: 'https://images.unsplash.com/photo-1518199266791-5375a83190b7' },
227
+ attachments: [
228
+ {
229
+ type: 'document',
230
+ title: 'Custom PDF title',
231
+ url: 'https://cdn.filestackcontent.com/4LN0x2LQXSjIH3c5bfBr',
232
+ },
233
+ {
234
+ type: 'link',
235
+ title: 'Mooji',
236
+ url: 'https://www.moojisanghavibe.org',
237
+ },
238
+ {
239
+ type: 'document',
240
+ title: 'This is a text file with a super long name that goes to two lines',
241
+ url: 'https://cdn.filestackcontent.com/BqqfmVEbQFmRaqwvqTMA',
242
+ },
243
+ { type: 'photo', url: 'https://cdn.filestackcontent.com/XuMpArLAQ3qam5OdArih' },
244
+ { type: 'video', url: 'https://www.youtube.com/watch?v=fV7mWuCdkpY' },
245
+ { type: 'photo', url: 'https://cdn.filestackcontent.com/PNb6lViSaqGoKyRyXyyp' },
246
+ { type: 'photo', url: 'https://images.unsplash.com/photo-1607419145932-ed1fc8c034d8' },
247
+ {
248
+ type: 'link',
249
+ title: 'Metta Meditation',
250
+ url: 'https://unveilingtiamat.com/wp-content/uploads/2022/02/Radiant-Threefold-Path-Lovingkindness-Meditation-1.pdf?vgo_ee=KR53S3mb9fY4az4OUTbOR0zkASpiHornD%2Fz2wZTd1jg%3D&fbclid=IwAR1yXamIvuEs-PEJeXvbZp20NvlyvC2SQ-5QLATCepopuqIypO6Pfeb_6iM',
251
+ },
252
+ {
253
+ type: 'video',
254
+ title: 'Herbie Highlights 2022',
255
+ url: 'https://www.youtube.com/watch?v=8Mt4YAileOo',
256
+ },
257
+ {
258
+ type: 'video',
259
+ title: 'Ram Dass - Be Here Now',
260
+ url: 'https://vimeo.com/406283337',
261
+ },
262
+ ],
263
+ skills: [
264
+ {
265
+ category: 'digital',
266
+ skill: 'softwareProficiency',
267
+ subskills: ['productivitySuites', 'specializedSoftware', 'designSoftware'],
268
+ },
269
+ {
270
+ category: 'stem',
271
+ skill: 'technology',
272
+ subskills: ['coding', 'softwareDevelopment', 'dataAnalysis'],
273
+ },
274
+ ],
275
+ };
276
+
277
+ export const BoostCredential = {
278
+ '@context': [
279
+ 'https://www.w3.org/2018/credentials/v1',
280
+ 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',
281
+ {
282
+ type: '@type',
283
+ xsd: 'https://www.w3.org/2001/XMLSchema#',
284
+ BoostCredential: {
285
+ '@context': {
286
+ attachments: {
287
+ '@container': '@set',
288
+ '@context': {
289
+ title: {
290
+ '@id': 'https://www.example.org/attachmentTitle',
291
+ '@type': 'xsd:string',
292
+ },
293
+ type: {
294
+ '@id': 'https://www.example.org/attachmentType',
295
+ '@type': 'xsd:string',
296
+ },
297
+ url: {
298
+ '@id': 'https://www.example.org/attachmentUrl',
299
+ '@type': 'xsd:string',
300
+ },
301
+ },
302
+ '@id': 'https://www.example.org/boost-attachments',
303
+ },
304
+ display: {
305
+ '@context': {
306
+ backgroundColor: {
307
+ '@id': 'https://www.example.org/backgroundColor',
308
+ '@type': 'xsd:string',
309
+ },
310
+ backgroundImage: {
311
+ '@id': 'https://www.example.org/backgroundImage',
312
+ '@type': 'xsd:string',
313
+ },
314
+ },
315
+ '@id': 'https://www.example.org/boost-display',
316
+ },
317
+ image: {
318
+ '@id': 'https://www.example.org/boost-image',
319
+ '@type': 'xsd:string',
320
+ },
321
+ },
322
+ '@id': 'https://www.example.org/boost-credential',
323
+ },
324
+ },
325
+ ],
326
+ type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential'],
327
+ credentialSubject: {
328
+ id: 'did:web:network.learncard.com:users:donny',
329
+ type: ['AchievementSubject'],
330
+ achievement: {
331
+ achievementType: 'Achievement',
332
+ criteria: {
333
+ narrative: 'test criteria',
334
+ },
335
+ description: 'test description',
336
+ id: 'https://example.com/achievements/21st-century-skills/teamwork',
337
+ image: 'https://cdn.filestackcontent.com/WfRYzfG3S4SAhAkRRv8a',
338
+ name: 'test achievement vc',
339
+ type: ['Achievement'],
340
+ },
341
+ },
342
+ issuer: 'did:web:network.learncard.com:users:donny',
343
+ issuanceDate: '2023-02-14T19:29:49.790Z',
344
+ proof: {
345
+ '@context': ['https://w3id.org/security/suites/ed25519-2020/v1'],
346
+ type: 'Ed25519Signature2020',
347
+ proofPurpose: 'assertionMethod',
348
+ proofValue:
349
+ 'z4A7jdUKhfHzA8LwRVR6XGbMxiRMLo5fBAcGiC7LZe1DcnVVMVL3dmhrWmDrrfsquycqcXmfTephheEpw33UTEqnL',
350
+ verificationMethod: 'did:web:network.learncard.com:users:donny#owner',
351
+ created: '2023-02-14T19:29:50.805Z',
352
+ },
353
+ expirationDate: '2023-02-28T19:24:00Z',
354
+ image: 'https://cdn.filestackcontent.com/WfRYzfG3S4SAhAkRRv8a',
355
+ display: {
356
+ backgroundColor: '#4e4e',
357
+ backgroundImage: 'https://cdn.filestackcontent.com/wYXbETSCSOSThnZOFJLQ',
358
+ displayType: 'certificate',
359
+ },
360
+ name: 'test achievement vc',
361
+ skills: [
362
+ {
363
+ category: 'digital',
364
+ skill: 'softwareProficiency',
365
+ subskills: ['productivitySuites', 'specializedSoftware', 'designSoftware'],
366
+ },
367
+ {
368
+ category: 'stem',
369
+ skill: 'technology',
370
+ subskills: ['coding', 'softwareDevelopment', 'dataAnalysis'],
371
+ },
372
+ ],
373
+ };
374
+
375
+ // VC 2.0 Credentials using validFrom instead of issuanceDate
376
+ export const VC2CredentialWithValidFrom = {
377
+ '@context': [
378
+ 'https://www.w3.org/2018/credentials/v1',
379
+ 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',
380
+ ],
381
+ type: ['VerifiableCredential', 'OpenBadgeCredential'],
382
+ issuer: {
383
+ type: 'Profile',
384
+ id: 'did:key:z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo',
385
+ name: 'Modern Skills Institute',
386
+ url: 'https://www.modernskills.org/',
387
+ image: 'https://picsum.photos/200',
388
+ },
389
+ validFrom: '2024-01-15T14:30:00.000Z',
390
+ validUntil: '2025-01-15T14:30:00.000Z',
391
+ credentialSubject: {
392
+ type: 'AchievementSubject',
393
+ id: 'did:key:z6Mkqk4j3VnaRf4XHEoU6eT343VTfdfZG23CK6zaf5g5KKju',
394
+ achievement: {
395
+ type: 'Achievement',
396
+ name: 'Advanced TypeScript Development',
397
+ description: 'Demonstrates mastery of advanced TypeScript concepts and patterns',
398
+ criteria: {
399
+ type: 'Criteria',
400
+ narrative:
401
+ 'Successfully completed advanced TypeScript certification with practical projects.',
402
+ },
403
+ image: 'https://picsum.photos/201',
404
+ },
405
+ },
406
+ };
407
+
408
+ export const VC2CredentialNoDate = {
409
+ '@context': [
410
+ 'https://www.w3.org/2018/credentials/v1',
411
+ 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',
412
+ ],
413
+ type: ['VerifiableCredential', 'OpenBadgeCredential'],
414
+ issuer: {
415
+ type: 'Profile',
416
+ id: 'did:key:z6MksNj6FwQ7t7ejgJVXCNyaX655uHJ8mPJ8xLtxrqQDV2Bo',
417
+ name: 'Future Learning Academy',
418
+ url: 'https://www.futurelearning.edu/',
419
+ image: 'https://picsum.photos/202',
420
+ },
421
+ // No validFrom or issuanceDate - should handle gracefully
422
+ credentialSubject: {
423
+ type: 'AchievementSubject',
424
+ id: 'did:key:z6Mkqk4j3VnaRf4XHEoU6eT343VTfdfZG23CK6zaf5g5KKju',
425
+ achievement: {
426
+ type: 'Achievement',
427
+ name: 'Lifetime Learning Award',
428
+ description: 'Recognition for continuous professional development',
429
+ criteria: {
430
+ type: 'Criteria',
431
+ narrative: 'Demonstrated commitment to lifelong learning and growth.',
432
+ },
433
+ image: 'https://picsum.photos/203',
434
+ },
435
+ },
436
+ };
437
+
438
+ export const TestVerificationItems = {
439
+ // Real verification items returned by validation
440
+ SUCCESS: {
441
+ NO_EXPIRATION: {
442
+ status: 'Success',
443
+ check: 'expiration',
444
+ message: 'Does Not Expire',
445
+ },
446
+ PROOF: {
447
+ status: 'Success',
448
+ check: 'proof',
449
+ message: 'Valid',
450
+ },
451
+ NOT_EXPIRED: {
452
+ status: 'Success',
453
+ check: 'expiration',
454
+ message: 'Expires 28 FEB 2023',
455
+ },
456
+ },
457
+ FAILED: {
458
+ // expirationDate in the past
459
+ EXPIRED: {
460
+ status: 'Failed',
461
+ check: 'expiration',
462
+ details: 'Expired 28 JAN 2023',
463
+ },
464
+ // missing proof object or verificationMethod has bad data
465
+ APPLICABLE_PROOF: {
466
+ status: 'Failed',
467
+ check: 'No applicable proof',
468
+ details: 'No applicable proof',
469
+ },
470
+ // invalid proofValue or created
471
+ SIGNATURE: {
472
+ status: 'Failed',
473
+ check: 'signature',
474
+ details: 'signature error: Verification equation was not satisfied',
475
+ },
476
+ // invalid proof.type
477
+ PROOF_TYPE: {
478
+ status: 'Failed',
479
+ check: 'Linked Data Proof type not implemented',
480
+ details: 'Linked Data Proof type not implemented',
481
+ },
482
+ // invalid context url(s)
483
+ CONTEXT: {
484
+ status: 'Failed',
485
+ check: 'loading remote context failed',
486
+ details: 'loading remote context failed',
487
+ },
488
+ },
489
+
490
+ // If you need to fudge a verification item, put it here
491
+ TEST: {
492
+ ISSUED_TO: {
493
+ check: 'proof',
494
+ status: VerificationStatusEnum.Success,
495
+ message: 'Issued to Example Person',
496
+ },
497
+ ISSUED_BY: {
498
+ check: 'proof',
499
+ status: VerificationStatusEnum.Error,
500
+ message: 'Issued by Some Random Did',
501
+ },
502
+ EXPIRED: {
503
+ check: 'proof',
504
+ status: VerificationStatusEnum.Failed,
505
+ message: 'Expired on 17 Nov 2022',
506
+ },
507
+ ACTIVE: {
508
+ check: 'proof',
509
+ status: VerificationStatusEnum.Success,
510
+ message: 'Status: Active',
511
+ },
512
+ },
513
+ };
514
+
515
+ export const issueeOverride = {
516
+ name: 'Test Person',
517
+ image: 'https://cdn.filestackcontent.com/rotate=deg:exif/auto_image/A2tGEP67TWeC59SmR4vP',
518
+ };
519
+
520
+ export const superSkillsIssueeOverride = {
521
+ name: 'Caped Crusader',
522
+ image: 'https://cdn.filestackcontent.com/rotate=deg:exif/auto_image/fqOymtprRYILmseudPyG',
523
+ };
524
+
525
+ export const issuerOverride = {
526
+ name: 'Dilbert Charles',
527
+ image: 'https://cdn.filestackcontent.com/rotate=deg:exif/auto_image/pQgXEF77R0GJKdQBdClb',
528
+ };
529
+
530
+ export const simpleConvertTagsToSkills = (tags: string[]) => {
531
+ let lastSkill: string;
532
+ const skillsObj: { [skill: string]: string[] } = {};
533
+
534
+ tags.forEach(tag => {
535
+ const isSubskill = tag.includes('Subskill');
536
+
537
+ if (!isSubskill) {
538
+ skillsObj[tag] = [];
539
+ lastSkill = tag;
540
+ } else {
541
+ skillsObj[lastSkill].push(tag);
542
+ }
543
+ });
544
+
545
+ return skillsObj;
546
+ };
547
+
548
+ export const superSkillsConvertTags = (tags: string[]) => {
549
+ const SKILL = {
550
+ CREATIVE: 'Creative',
551
+ EMOTIONAL: 'Emotional',
552
+ SOCIAL: 'Social',
553
+ COGNITIVE: 'Cognitive',
554
+ PHYSICAL: 'Physical',
555
+ };
556
+ const SKILL_SUBTYPE = {
557
+ Creative: [
558
+ 'Creative Process',
559
+ 'Generate Diverse Ideas',
560
+ 'Evaluate and Improve',
561
+ 'Generate Original Ideas',
562
+ 'Recognize and Transfer',
563
+ ],
564
+ Emotional: ['Emotional Subskill 1', 'Emotional Subskill 2', 'Emotional Subskill 3'],
565
+ Social: ['Social Subskill 1', 'Social Subskill 2', 'Social Subskill 3'],
566
+ Cognitive: ['Cognitive Subskill 1', 'Cognitive Subskill 2', 'Cognitive Subskill 3'],
567
+ Physical: ['Physical Subskill 1', 'Physical Subskill 2', 'Physical Subskill 3'],
568
+ };
569
+ const isSkill = (maybeSkill: string) => {
570
+ return Object.values(SKILL).includes(maybeSkill);
571
+ };
572
+
573
+ const skillsToSubskills: { [skill: string]: string[] } = {};
574
+ tags.forEach(tag => {
575
+ if (isSkill(tag)) {
576
+ const subskillOptions = SKILL_SUBTYPE[tag];
577
+ skillsToSubskills[tag] = tags.filter(t => subskillOptions.includes(t));
578
+ }
579
+ });
580
+
581
+ return skillsToSubskills;
582
+ };
583
+
584
+ export const ShortFieldsCredential = {
585
+ '@context': [
586
+ 'https://www.w3.org/2018/credentials/v1',
587
+ 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',
588
+ {
589
+ type: '@type',
590
+ xsd: 'https://www.w3.org/2001/XMLSchema#',
591
+ BoostCredential: {
592
+ '@context': {
593
+ attachments: {
594
+ '@container': '@set',
595
+ '@context': {
596
+ title: {
597
+ '@id': 'https://www.example.org/attachmentTitle',
598
+ '@type': 'xsd:string',
599
+ },
600
+ type: {
601
+ '@id': 'https://www.example.org/attachmentType',
602
+ '@type': 'xsd:string',
603
+ },
604
+ url: {
605
+ '@id': 'https://www.example.org/attachmentUrl',
606
+ '@type': 'xsd:string',
607
+ },
608
+ },
609
+ '@id': 'https://www.example.org/boost-attachments',
610
+ },
611
+ display: {
612
+ '@context': {
613
+ backgroundColor: {
614
+ '@id': 'https://www.example.org/backgroundColor',
615
+ '@type': 'xsd:string',
616
+ },
617
+ backgroundImage: {
618
+ '@id': 'https://www.example.org/backgroundImage',
619
+ '@type': 'xsd:string',
620
+ },
621
+ },
622
+ '@id': 'https://www.example.org/boost-display',
623
+ },
624
+ image: {
625
+ '@id': 'https://www.example.org/boost-image',
626
+ '@type': 'xsd:string',
627
+ },
628
+ },
629
+ '@id': 'https://www.example.org/boost-credential',
630
+ },
631
+ },
632
+ ],
633
+ type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential'],
634
+ credentialSubject: {
635
+ id: 'me',
636
+ type: ['AchievementSubject'],
637
+ achievement: {
638
+ achievementType: 'Achievement',
639
+ criteria: {
640
+ narrative: 'test criteria',
641
+ },
642
+ description: 'test description',
643
+ id: 'https://example.com/achievements/21st-century-skills/teamwork',
644
+ image: 'https://cdn.filestackcontent.com/WfRYzfG3S4SAhAkRRv8a',
645
+ name: 'Short',
646
+ type: ['Achievement'],
647
+ },
648
+ },
649
+ issuer: 'you',
650
+ issuanceDate: '2023-02-14T19:29:49.790Z',
651
+ proof: {
652
+ '@context': ['https://w3id.org/security/suites/ed25519-2020/v1'],
653
+ type: 'Ed25519Signature2020',
654
+ proofPurpose: 'assertionMethod',
655
+ proofValue:
656
+ 'z4A7jdUKhfHzA8LwRVR6XGbMxiRMLo5fBAcGiC7LZe1DcnVVMVL3dmhrWmDrrfsquycqcXmfTephheEpw33UTEqnL',
657
+ verificationMethod: 'did:web:network.learncard.com:users:donny#owner',
658
+ created: '2023-02-14T19:29:50.805Z',
659
+ },
660
+ expirationDate: '2023-02-28T19:24:00Z',
661
+ image: 'https://cdn.filestackcontent.com/WfRYzfG3S4SAhAkRRv8a',
662
+ display: {
663
+ backgroundColor: '#4e4e',
664
+ backgroundImage: 'https://cdn.filestackcontent.com/wYXbETSCSOSThnZOFJLQ',
665
+ displayType: 'certificate',
666
+ },
667
+ name: 'test achievement vc',
668
+ skills: [
669
+ {
670
+ category: 'digital',
671
+ skill: 'softwareProficiency',
672
+ subskills: ['productivitySuites', 'specializedSoftware', 'designSoftware'],
673
+ },
674
+ {
675
+ category: 'stem',
676
+ skill: 'technology',
677
+ subskills: ['coding', 'softwareDevelopment', 'dataAnalysis'],
678
+ },
679
+ ],
680
+ };
@@ -0,0 +1,3 @@
1
+ export const getBaseUrl = (url: string) => {
2
+ return url.replace(/(https?:\/\/(www\.)?)/, '').split('/')[0];
3
+ };