@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
package/README.md CHANGED
@@ -11,6 +11,7 @@
11
11
  ![learn-card](https://user-images.githubusercontent.com/2185016/201373744-058bef30-dec8-46cf-9552-408b7bc43532.gif)
12
12
 
13
13
  ## Documentation
14
+
14
15
  All LearnCard documentation can be found at:
15
16
  https://docs.learncard.com
16
17
 
@@ -20,34 +21,34 @@ https://docs.learncard.com/learn-card-sdk/learncard-ux
20
21
  ## Install
21
22
 
22
23
  ```bash
23
- pnpm install @learncard/react
24
+ bun install @learncard/react
24
25
  ```
25
26
 
26
27
  ## Usage
27
28
 
28
29
  ```ts
29
- import React, { useState, useEffect } from "react";
30
+ import React, { useState, useEffect } from 'react';
30
31
  import '@learncard/react/dist/base.css'; // if not already using tailwind
31
32
  import '@learncard/react/dist/main.css';
32
- import { initLearnCard } from "@learncard/core";
33
- import { VCCard } from "@learncard/react";
34
- import { VC } from "@learncard/types";
33
+ import { initLearnCard } from '@learncard/core';
34
+ import { VCCard } from '@learncard/react';
35
+ import { VC } from '@learncard/types';
35
36
 
36
37
  const Test = () => {
37
38
  const [vc, setVc] = useState<VC | null>(null);
38
-
39
+
39
40
  useEffect(() => {
40
41
  const getVc = async () => {
41
42
  const wallet = await initLearnCard({ seed: 'a' }); // Bad practice! You should be generating keys...
42
43
  const uvc = wallet.invoke.getTestVc();
43
44
  setVc(await wallet.invoke.issueCredential(uvc));
44
45
  };
45
-
46
+
46
47
  getVc();
47
48
  }, []);
48
-
49
+
49
50
  if (!vc) return <>Generating Credential...</>; // Loading placeholder while credential is generated
50
-
51
+
51
52
  return <VCCard credential={vc} />; // Show card for the generated credential with validation results
52
53
  };
53
54
  ```
@@ -86,4 +87,3 @@ Please make sure to update tests as appropriate.
86
87
  ## License
87
88
 
88
89
  MIT © [Learning Economy Foundation](https://github.com/Learning-Economy-Foundation)
89
-
package/dist/base.css CHANGED
@@ -1 +1 @@
1
- *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}
1
+ *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}
package/dist/base.js CHANGED
@@ -1,3 +1,3 @@
1
- var css = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}";
1
+ var css = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}";
2
2
 
3
3
  export { css, css as default };
@@ -5,7 +5,7 @@ var index$1 = require('./index-5488badc.js');
5
5
  var index = require('./index-ba659c28.js');
6
6
  var IDDisplayIcon = require('./IDDisplayIcon-922a5fcf.js');
7
7
  var PuzzlePiece = require('./PuzzlePiece-e64f4596.js');
8
- var credential_helpers = require('./credential.helpers-473e89c5.js');
8
+ var credential_helpers = require('./credential.helpers-b4d27c8a.js');
9
9
  var ThreeDotVertical = require('./ThreeDotVertical-dda0e747.js');
10
10
  var BadgeThumbnailImg = require('./BadgeThumbnailImg-02df88f9.js');
11
11
  var CircleCheckButton = require('./CircleCheckButton-f76e5b5d.js');
@@ -181,4 +181,4 @@ const BoostGenericCard = ({
181
181
  };
182
182
 
183
183
  exports.BoostGenericCard = BoostGenericCard;
184
- //# sourceMappingURL=BoostGenericCard-0f68947f.js.map
184
+ //# sourceMappingURL=BoostGenericCard-5a07339f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoostGenericCard-0f68947f.js","sources":["../../src/components/BoostGenericCard/AlignmentSkillsCount.tsx","../../src/helpers/display.helpers.ts","../../src/components/BoostGenericCard/BoostGenericCard.tsx"],"sourcesContent":["import React from 'react';\nimport PuzzlePiece from '../svgs/PuzzlePiece';\nimport { VC } from '@learncard/types';\nimport { categorizeSkills } from '../../helpers/credential.helpers';\n\ntype AlignmentSkillsCountProps = {\n credential?: VC;\n onClick?: () => void;\n className?: string;\n};\n\nconst AlignmentSkillsCount: React.FC<AlignmentSkillsCountProps> = ({\n credential,\n onClick,\n className = '',\n}) => {\n if (!credential) return <></>;\n\n const achievement = (credential?.credentialSubject as any)?.achievement;\n let alignmentCount = achievement?.alignment?.length || 0;\n\n if (alignmentCount === 0 && credential.skills?.length > 0) {\n // fallback to legacy skills field if present and no alignments\n const skillsMap = categorizeSkills(credential.skills ?? []);\n\n // Calculate total count of skills and subskills\n const totalSkills: any = Object.values(skillsMap).reduce(\n (total: any, category: any) => total + category?.length,\n 0\n );\n const totalSubskills: any = Object.values(skillsMap).reduce(\n (total: any, category: any) => total + (category?.totalSubskillsCount || 0),\n 0\n );\n\n const total: any = totalSkills + totalSubskills;\n alignmentCount = total;\n }\n\n return (\n <div\n role={onClick ? ('button' as const) : undefined}\n onClick={onClick}\n className={`px-[10px] py-[2px] flex gap-[3px] items-center rounded-[5px] overflow-hidden bg-violet-100 ${className}`}\n >\n <PuzzlePiece className=\"w-[20px] h-[20px] text-grayscale-800\" version=\"filled\" />\n <p className=\"text-[12px] text-grayscale-800 font-poppins font-[600]\">\n {`${alignmentCount} Skill${alignmentCount !== 1 ? 's' : ''}`}\n </p>\n </div>\n );\n};\n\nexport default AlignmentSkillsCount;\n","import { LCCategoryEnum } from '../types';\n\nimport { BadgeDisplayIcon } from '../components/svgs/BadgeDisplayIcon';\nimport { CertificateDisplayIcon } from '../components/svgs/CertificateDisplayIcon';\nimport { IDDisplayIcon } from '../components/svgs/IDDisplayIcon';\nimport { CourseDisplayIcon } from '../components/svgs/CourseDisplayIcon';\nimport { AwardDisplayIcon } from '../components/svgs/AwardDisplayIcon';\n\nexport enum DisplayTypeEnum {\n Badge = 'badge',\n Certificate = 'certificate',\n ID = 'id',\n Course = 'course',\n Award = 'award',\n}\n\nexport const getDefaultDisplayType = (category: string): DisplayTypeEnum => {\n if (category === LCCategoryEnum.socialBadge || category === LCCategoryEnum.workHistory) {\n return DisplayTypeEnum.Badge;\n }\n\n if (category === LCCategoryEnum.id || category === LCCategoryEnum.membership) {\n return DisplayTypeEnum.ID;\n }\n\n if (\n category === LCCategoryEnum.achievement ||\n category === LCCategoryEnum.accommodations ||\n category === LCCategoryEnum.accomplishments ||\n category === LCCategoryEnum.learningHistory\n ) {\n return DisplayTypeEnum.Certificate;\n }\n\n return DisplayTypeEnum.Badge;\n};\n\nexport const getDisplayIcon = (displayType: DisplayTypeEnum): React.FC<{ className?: string }> => {\n switch (displayType) {\n case DisplayTypeEnum.Badge:\n return BadgeDisplayIcon;\n case DisplayTypeEnum.Certificate:\n return CertificateDisplayIcon;\n case DisplayTypeEnum.ID:\n return IDDisplayIcon;\n case DisplayTypeEnum.Course:\n return CourseDisplayIcon;\n case DisplayTypeEnum.Award:\n return AwardDisplayIcon;\n default:\n return BadgeDisplayIcon;\n }\n};\n","import React from 'react';\nimport { BoostGenericCardProps, WalletCategoryTypes } from '../../types';\nimport { TYPE_TO_IMG_SRC, TYPE_TO_WALLET_DARK_COLOR } from '../../constants';\nimport { DisplayTypeEnum, getDisplayIcon } from '../../helpers/display.helpers';\nimport AlignmentSkillsCount from './AlignmentSkillsCount';\nimport ThreeDotVertical from '../svgs/ThreeDotVertical';\nimport { CircleCheckButton } from '../CircleCheckButton';\nimport BadgeThumbnailImg from '../BadgeThumbnailImg/BadgeThumbnailImg';\n\nexport const BoostGenericCard: React.FC<BoostGenericCardProps> = ({\n title,\n customTitle,\n thumbImgSrc,\n customThumbClass = '',\n customHeaderClass = '',\n type = WalletCategoryTypes.achievements,\n className,\n onCheckClick,\n showChecked,\n checkStatus,\n customThumbComponent,\n innerOnClick,\n bgImgSrc,\n issuerName,\n customIssuerName,\n dateDisplay,\n customDateDisplay,\n optionsTriggerOnClick,\n verifierBadge,\n credential,\n isInSkillsModal,\n displayType,\n linkedCredentialsCount = 0,\n linkedCredentialsClassName = '',\n checkBtnClass = '',\n}) => {\n const thumbClass = TYPE_TO_WALLET_DARK_COLOR[type]\n ? `bg-${TYPE_TO_WALLET_DARK_COLOR[type]}`\n : 'bg-grayscale-50';\n const defaultThumbClass = `small-boost-card-thumb flex h-[110px] w-[110px] my-[10px] mx-auto ${thumbClass} overflow-hidden flex-col justify-center items-center rounded-full ${customThumbClass}`;\n const imgSrc = thumbImgSrc?.trim() !== '' ? thumbImgSrc : TYPE_TO_IMG_SRC[type];\n\n const handleInnerClick = () => innerOnClick?.();\n const handleOptionsClick = () => optionsTriggerOnClick?.();\n\n const DisplayIcon = getDisplayIcon(displayType as DisplayTypeEnum);\n\n return (\n <div\n className={`flex bg-white flex-col shadow-bottom relative p-0 w-[160px] h-[285px] rounded-[20px] overflow-hidden ${className}`}\n >\n {optionsTriggerOnClick && (\n <section\n className=\"absolute cursor-pointer h-[30px] w-[30px] top-[5px] right-[5px] rounded-full bg-white/70 flex items-center justify-center z-20\"\n onClick={handleOptionsClick}\n >\n <ThreeDotVertical className=\"h-[20px] w-[20px] text-grayscale-900\" />\n </section>\n )}\n\n {bgImgSrc && (\n <section className=\"absolute top-[-50px] left-0 rounded-b-full overflow-hidden z-0\">\n <img className=\"h-full w-full object-cover\" src={bgImgSrc} />\n </section>\n )}\n\n <button\n type=\"button\"\n className=\"z-10 flex flex-col flex-grow\"\n onClick={handleInnerClick}\n >\n {/* Thumbnail */}\n {customThumbComponent || (\n <section className={defaultThumbClass}>\n {thumbImgSrc?.trim() ? (\n <BadgeThumbnailImg\n className=\"w-full h-full rounded-full object-cover\"\n src={thumbImgSrc}\n alt=\"Credential Achievement\"\n />\n ) : (\n <img\n className=\"max-w-full p-0 object-cover rounded-full\"\n src={imgSrc}\n />\n )}\n </section>\n )}\n\n {/* Details Section: grows to fill available space */}\n <section\n className={`flex flex-col flex-grow items-center justify-end pt-1 w-full ${\n linkedCredentialsCount === 0 ? 'pb-[20px]' : ''\n }`}\n >\n <div className=\"px-1 flex flex-col items-center justify-center w-full\">\n {/* Title - dynamically size based on length */}\n {!customTitle ? (\n <p\n className={`\n ${customHeaderClass}\n font-medium text-center text-grayscale-900 line-clamp-2\n h-[50px] flex items-center justify-center\n ${\n (title?.length ?? 0) > 35\n ? 'text-[13px] leading-tight'\n : 'text-[16px]'\n }\n `}\n title={title}\n >\n {title}\n </p>\n ) : (\n customTitle\n )}\n\n {/* Verifier & Issuer */}\n <div className=\"mt-1 w-full px-4 text-center\">\n <span className=\"line-clamp-2 break-words text-[12px] leading-snug text-grayscale-700\">\n {verifierBadge && (\n <span className=\"mr-1 inline-block align-middle\">\n {verifierBadge}\n </span>\n )}\n {customIssuerName || (\n <span className=\"font-bold\">{issuerName}</span>\n )}\n </span>\n </div>\n\n {/* Date */}\n {customDateDisplay || (\n <span className=\"text-[11px] text-grayscale-700 mt-1\">\n {dateDisplay}\n </span>\n )}\n\n {/* Skills count if in modal */}\n {isInSkillsModal && credential && (\n <AlignmentSkillsCount\n credential={credential}\n onClick={handleInnerClick}\n className=\"mt-[16px]\"\n />\n )}\n </div>\n\n {/* Linked Credentials moved inside details */}\n {linkedCredentialsCount > 0 && (\n <div\n className={`mt-auto flex items-center justify-center py-1 w-full ${linkedCredentialsClassName}`}\n >\n <DisplayIcon className=\"h-[20px] w-[20px] text-grayscale-900\" />\n <span className=\"ml-1 text-sm font-semibold text-grayscale-900\">\n +{linkedCredentialsCount} Linked\n </span>\n </div>\n )}\n </section>\n </button>\n\n {/* Optional Check Button overlay */}\n {showChecked && (\n <div className=\"absolute top-[5px] left-[5px] z-20\">\n <CircleCheckButton\n checked={checkStatus}\n onClick={onCheckClick}\n className={checkBtnClass}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default BoostGenericCard;\n"],"names":["React","categorizeSkills","total","PuzzlePiece","BadgeDisplayIcon","CertificateDisplayIcon","IDDisplayIcon","CourseDisplayIcon","AwardDisplayIcon","WalletCategoryTypes","TYPE_TO_WALLET_DARK_COLOR","TYPE_TO_IMG_SRC","ThreeDotVertical","BadgeThumbnailImg","CircleCheckButton"],"mappings":"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"}
1
+ {"version":3,"file":"BoostGenericCard-5a07339f.js","sources":["../../src/components/BoostGenericCard/AlignmentSkillsCount.tsx","../../src/helpers/display.helpers.ts","../../src/components/BoostGenericCard/BoostGenericCard.tsx"],"sourcesContent":["import React from 'react';\nimport PuzzlePiece from '../svgs/PuzzlePiece';\nimport { VC } from '@learncard/types';\nimport { categorizeSkills } from '../../helpers/credential.helpers';\n\ntype AlignmentSkillsCountProps = {\n credential?: VC;\n onClick?: () => void;\n className?: string;\n};\n\nconst AlignmentSkillsCount: React.FC<AlignmentSkillsCountProps> = ({\n credential,\n onClick,\n className = '',\n}) => {\n if (!credential) return <></>;\n\n const achievement = (credential?.credentialSubject as any)?.achievement;\n let alignmentCount = achievement?.alignment?.length || 0;\n\n if (alignmentCount === 0 && credential.skills?.length > 0) {\n // fallback to legacy skills field if present and no alignments\n const skillsMap = categorizeSkills(credential.skills ?? []);\n\n // Calculate total count of skills and subskills\n const totalSkills: any = Object.values(skillsMap).reduce(\n (total: any, category: any) => total + category?.length,\n 0\n );\n const totalSubskills: any = Object.values(skillsMap).reduce(\n (total: any, category: any) => total + (category?.totalSubskillsCount || 0),\n 0\n );\n\n const total: any = totalSkills + totalSubskills;\n alignmentCount = total;\n }\n\n return (\n <div\n role={onClick ? ('button' as const) : undefined}\n onClick={onClick}\n className={`px-[10px] py-[2px] flex gap-[3px] items-center rounded-[5px] overflow-hidden bg-violet-100 ${className}`}\n >\n <PuzzlePiece className=\"w-[20px] h-[20px] text-grayscale-800\" version=\"filled\" />\n <p className=\"text-[12px] text-grayscale-800 font-poppins font-[600]\">\n {`${alignmentCount} Skill${alignmentCount !== 1 ? 's' : ''}`}\n </p>\n </div>\n );\n};\n\nexport default AlignmentSkillsCount;\n","import { LCCategoryEnum } from '../types';\n\nimport { BadgeDisplayIcon } from '../components/svgs/BadgeDisplayIcon';\nimport { CertificateDisplayIcon } from '../components/svgs/CertificateDisplayIcon';\nimport { IDDisplayIcon } from '../components/svgs/IDDisplayIcon';\nimport { CourseDisplayIcon } from '../components/svgs/CourseDisplayIcon';\nimport { AwardDisplayIcon } from '../components/svgs/AwardDisplayIcon';\n\nexport enum DisplayTypeEnum {\n Badge = 'badge',\n Certificate = 'certificate',\n ID = 'id',\n Course = 'course',\n Award = 'award',\n}\n\nexport const getDefaultDisplayType = (category: string): DisplayTypeEnum => {\n if (category === LCCategoryEnum.socialBadge || category === LCCategoryEnum.workHistory) {\n return DisplayTypeEnum.Badge;\n }\n\n if (category === LCCategoryEnum.id || category === LCCategoryEnum.membership) {\n return DisplayTypeEnum.ID;\n }\n\n if (\n category === LCCategoryEnum.achievement ||\n category === LCCategoryEnum.accommodations ||\n category === LCCategoryEnum.accomplishments ||\n category === LCCategoryEnum.learningHistory\n ) {\n return DisplayTypeEnum.Certificate;\n }\n\n return DisplayTypeEnum.Badge;\n};\n\nexport const getDisplayIcon = (displayType: DisplayTypeEnum): React.FC<{ className?: string }> => {\n switch (displayType) {\n case DisplayTypeEnum.Badge:\n return BadgeDisplayIcon;\n case DisplayTypeEnum.Certificate:\n return CertificateDisplayIcon;\n case DisplayTypeEnum.ID:\n return IDDisplayIcon;\n case DisplayTypeEnum.Course:\n return CourseDisplayIcon;\n case DisplayTypeEnum.Award:\n return AwardDisplayIcon;\n default:\n return BadgeDisplayIcon;\n }\n};\n","import React from 'react';\nimport { BoostGenericCardProps, WalletCategoryTypes } from '../../types';\nimport { TYPE_TO_IMG_SRC, TYPE_TO_WALLET_DARK_COLOR } from '../../constants';\nimport { DisplayTypeEnum, getDisplayIcon } from '../../helpers/display.helpers';\nimport AlignmentSkillsCount from './AlignmentSkillsCount';\nimport ThreeDotVertical from '../svgs/ThreeDotVertical';\nimport { CircleCheckButton } from '../CircleCheckButton';\nimport BadgeThumbnailImg from '../BadgeThumbnailImg/BadgeThumbnailImg';\n\nexport const BoostGenericCard: React.FC<BoostGenericCardProps> = ({\n title,\n customTitle,\n thumbImgSrc,\n customThumbClass = '',\n customHeaderClass = '',\n type = WalletCategoryTypes.achievements,\n className,\n onCheckClick,\n showChecked,\n checkStatus,\n customThumbComponent,\n innerOnClick,\n bgImgSrc,\n issuerName,\n customIssuerName,\n dateDisplay,\n customDateDisplay,\n optionsTriggerOnClick,\n verifierBadge,\n credential,\n isInSkillsModal,\n displayType,\n linkedCredentialsCount = 0,\n linkedCredentialsClassName = '',\n checkBtnClass = '',\n}) => {\n const thumbClass = TYPE_TO_WALLET_DARK_COLOR[type]\n ? `bg-${TYPE_TO_WALLET_DARK_COLOR[type]}`\n : 'bg-grayscale-50';\n const defaultThumbClass = `small-boost-card-thumb flex h-[110px] w-[110px] my-[10px] mx-auto ${thumbClass} overflow-hidden flex-col justify-center items-center rounded-full ${customThumbClass}`;\n const imgSrc = thumbImgSrc?.trim() !== '' ? thumbImgSrc : TYPE_TO_IMG_SRC[type];\n\n const handleInnerClick = () => innerOnClick?.();\n const handleOptionsClick = () => optionsTriggerOnClick?.();\n\n const DisplayIcon = getDisplayIcon(displayType as DisplayTypeEnum);\n\n return (\n <div\n className={`flex bg-white flex-col shadow-bottom relative p-0 w-[160px] h-[285px] rounded-[20px] overflow-hidden ${className}`}\n >\n {optionsTriggerOnClick && (\n <section\n className=\"absolute cursor-pointer h-[30px] w-[30px] top-[5px] right-[5px] rounded-full bg-white/70 flex items-center justify-center z-20\"\n onClick={handleOptionsClick}\n >\n <ThreeDotVertical className=\"h-[20px] w-[20px] text-grayscale-900\" />\n </section>\n )}\n\n {bgImgSrc && (\n <section className=\"absolute top-[-50px] left-0 rounded-b-full overflow-hidden z-0\">\n <img className=\"h-full w-full object-cover\" src={bgImgSrc} />\n </section>\n )}\n\n <button\n type=\"button\"\n className=\"z-10 flex flex-col flex-grow\"\n onClick={handleInnerClick}\n >\n {/* Thumbnail */}\n {customThumbComponent || (\n <section className={defaultThumbClass}>\n {thumbImgSrc?.trim() ? (\n <BadgeThumbnailImg\n className=\"w-full h-full rounded-full object-cover\"\n src={thumbImgSrc}\n alt=\"Credential Achievement\"\n />\n ) : (\n <img\n className=\"max-w-full p-0 object-cover rounded-full\"\n src={imgSrc}\n />\n )}\n </section>\n )}\n\n {/* Details Section: grows to fill available space */}\n <section\n className={`flex flex-col flex-grow items-center justify-end pt-1 w-full ${\n linkedCredentialsCount === 0 ? 'pb-[20px]' : ''\n }`}\n >\n <div className=\"px-1 flex flex-col items-center justify-center w-full\">\n {/* Title - dynamically size based on length */}\n {!customTitle ? (\n <p\n className={`\n ${customHeaderClass}\n font-medium text-center text-grayscale-900 line-clamp-2\n h-[50px] flex items-center justify-center\n ${\n (title?.length ?? 0) > 35\n ? 'text-[13px] leading-tight'\n : 'text-[16px]'\n }\n `}\n title={title}\n >\n {title}\n </p>\n ) : (\n customTitle\n )}\n\n {/* Verifier & Issuer */}\n <div className=\"mt-1 w-full px-4 text-center\">\n <span className=\"line-clamp-2 break-words text-[12px] leading-snug text-grayscale-700\">\n {verifierBadge && (\n <span className=\"mr-1 inline-block align-middle\">\n {verifierBadge}\n </span>\n )}\n {customIssuerName || (\n <span className=\"font-bold\">{issuerName}</span>\n )}\n </span>\n </div>\n\n {/* Date */}\n {customDateDisplay || (\n <span className=\"text-[11px] text-grayscale-700 mt-1\">\n {dateDisplay}\n </span>\n )}\n\n {/* Skills count if in modal */}\n {isInSkillsModal && credential && (\n <AlignmentSkillsCount\n credential={credential}\n onClick={handleInnerClick}\n className=\"mt-[16px]\"\n />\n )}\n </div>\n\n {/* Linked Credentials moved inside details */}\n {linkedCredentialsCount > 0 && (\n <div\n className={`mt-auto flex items-center justify-center py-1 w-full ${linkedCredentialsClassName}`}\n >\n <DisplayIcon className=\"h-[20px] w-[20px] text-grayscale-900\" />\n <span className=\"ml-1 text-sm font-semibold text-grayscale-900\">\n +{linkedCredentialsCount} Linked\n </span>\n </div>\n )}\n </section>\n </button>\n\n {/* Optional Check Button overlay */}\n {showChecked && (\n <div className=\"absolute top-[5px] left-[5px] z-20\">\n <CircleCheckButton\n checked={checkStatus}\n onClick={onCheckClick}\n className={checkBtnClass}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default BoostGenericCard;\n"],"names":["React","categorizeSkills","total","PuzzlePiece","BadgeDisplayIcon","CertificateDisplayIcon","IDDisplayIcon","CourseDisplayIcon","AwardDisplayIcon","WalletCategoryTypes","TYPE_TO_WALLET_DARK_COLOR","TYPE_TO_IMG_SRC","ThreeDotVertical","BadgeThumbnailImg","CircleCheckButton"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var VerifierStateBadgeAndText = require('./VerifierStateBadgeAndText-5229da1a.js');
5
- var credential_helpers = require('./credential.helpers-473e89c5.js');
4
+ var VerifierStateBadgeAndText = require('./VerifierStateBadgeAndText-de5bd85f.js');
5
+ var credential_helpers = require('./credential.helpers-b4d27c8a.js');
6
6
  var PuzzlePiece = require('./PuzzlePiece-e64f4596.js');
7
7
  var UserProfilePicture = require('./UserProfilePicture-80675455.js');
8
8
  var index = require('./index-5488badc.js');
9
- var types_esm = require('./types.esm-12bb5eed.js');
9
+ var types_esm = require('./types.esm-40b77196.js');
10
10
  var Lightbox = require('./Lightbox-d72e19ba.js');
11
11
  var CaretRightFilled = require('./CaretRightFilled.svg');
12
12
  var ThreeDots = require('./DotsThreeOutline.svg');
@@ -973,4 +973,4 @@ exports.CertDisplayCardSkillsCount = CertDisplayCardSkillsCount;
973
973
  exports.CertificateBackFace = CertificateBackFace;
974
974
  exports.CertificateDisplayCard = CertificateDisplayCard;
975
975
  exports.CertificateFrontFace = CertificateFrontFace;
976
- //# sourceMappingURL=CertificateDisplayCard-6c30f6e6.js.map
976
+ //# sourceMappingURL=CertificateDisplayCard-a7940558.js.map