@learncard/react 2.8.62 → 2.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/dist/cjs/AchievementCard-c43817f2.js +87 -0
  2. package/dist/cjs/{AchievementCard-dd332f3f.js.map → AchievementCard-c43817f2.js.map} +1 -1
  3. package/dist/cjs/BoostGenericCard-a239e89c.js +180 -0
  4. package/dist/cjs/{BoostGenericCard-55f710ad.js.map → BoostGenericCard-a239e89c.js.map} +1 -1
  5. package/dist/cjs/BoostSmallCard-3e303698.js +165 -0
  6. package/dist/cjs/{BoostSmallCard-dd1cbd51.js.map → BoostSmallCard-3e303698.js.map} +1 -1
  7. package/dist/cjs/{Button-a7af702b.js → Button-9ebe120c.js} +10 -6
  8. package/dist/cjs/{Button-a7af702b.js.map → Button-9ebe120c.js.map} +1 -1
  9. package/dist/cjs/CertificateDisplayCard-b299f7fd.js +891 -0
  10. package/dist/cjs/{CertificateDisplayCard-9f619468.js.map → CertificateDisplayCard-b299f7fd.js.map} +1 -1
  11. package/dist/cjs/Checkmark-74444a78.js +79 -0
  12. package/dist/cjs/{Checkmark-f611aa4d.js.map → Checkmark-74444a78.js.map} +1 -1
  13. package/dist/cjs/{CircleCheckButton-82d47ee2.js → CircleCheckButton-f76e5b5d.js} +11 -9
  14. package/dist/cjs/{CircleCheckButton-82d47ee2.js.map → CircleCheckButton-f76e5b5d.js.map} +1 -1
  15. package/dist/cjs/{CircleIcon-617c38fa.js → CircleIcon-f0fa68c7.js} +14 -30
  16. package/dist/cjs/{CircleIcon-617c38fa.js.map → CircleIcon-f0fa68c7.js.map} +1 -1
  17. package/dist/cjs/{CircleSpinner-093cce04.js → CircleSpinner-f518569a.js} +2 -13
  18. package/dist/cjs/{CircleSpinner-093cce04.js.map → CircleSpinner-f518569a.js.map} +1 -1
  19. package/dist/cjs/Coins-1f33b7ad.js +20 -0
  20. package/dist/cjs/{Coins-acd63f46.js.map → Coins-1f33b7ad.js.map} +1 -1
  21. package/dist/cjs/CourseCard-bc699307.js +88 -0
  22. package/dist/cjs/{CourseCard-338a32ee.js.map → CourseCard-bc699307.js.map} +1 -1
  23. package/dist/cjs/CourseVerticalCard-554ff1b7.js +116 -0
  24. package/dist/cjs/{CourseVerticalCard-841960b1.js.map → CourseVerticalCard-554ff1b7.js.map} +1 -1
  25. package/dist/cjs/{FlippyCard-209549c5.js → FlippyCard-bf0fd493.js} +3 -16
  26. package/dist/cjs/{FlippyCard-209549c5.js.map → FlippyCard-bf0fd493.js.map} +1 -1
  27. package/dist/cjs/GenericArrow-5c392276.js +34 -0
  28. package/dist/cjs/{GenericArrow-8dfb261d.js.map → GenericArrow-5c392276.js.map} +1 -1
  29. package/dist/cjs/GenericCard-2b20ab4b.js +66 -0
  30. package/dist/cjs/{GenericCard-ad18c4c3.js.map → GenericCard-2b20ab4b.js.map} +1 -1
  31. package/dist/cjs/IDDisplayIcon-4b6ce62f.js +234 -0
  32. package/dist/cjs/{IDDisplayIcon-62993df0.js.map → IDDisplayIcon-4b6ce62f.js.map} +1 -1
  33. package/dist/cjs/JobHistoryCard-e9ac7a1a.js +35 -0
  34. package/dist/cjs/{JobHistoryCard-05a3f98b.js.map → JobHistoryCard-e9ac7a1a.js.map} +1 -1
  35. package/dist/cjs/JobListCard-c53660e8.js +124 -0
  36. package/dist/cjs/{JobListCard-f74f0302.js.map → JobListCard-c53660e8.js.map} +1 -1
  37. package/dist/cjs/LearnCardCreditCardBackFace-62330eea.js +83 -0
  38. package/dist/cjs/{LearnCardCreditCardBackFace-87cc8b9f.js.map → LearnCardCreditCardBackFace-62330eea.js.map} +1 -1
  39. package/dist/cjs/LearnCardCreditCardFrontFace-aca1b7bc.js +89 -0
  40. package/dist/cjs/{LearnCardCreditCardFrontFace-39eeb89a.js.map → LearnCardCreditCardFrontFace-aca1b7bc.js.map} +1 -1
  41. package/dist/cjs/{LearnPill-d80ba2e6.js → LearnPill-da2d2a8e.js} +10 -10
  42. package/dist/cjs/{LearnPill-d80ba2e6.js.map → LearnPill-da2d2a8e.js.map} +1 -1
  43. package/dist/cjs/{Lightbox-9aeb2f7b.js → Lightbox-d72e19ba.js} +70 -58
  44. package/dist/cjs/{Lightbox-9aeb2f7b.js.map → Lightbox-d72e19ba.js.map} +1 -1
  45. package/dist/cjs/Lightbulb-82cec354.js +42 -0
  46. package/dist/cjs/{Lightbulb-19c89d3c.js.map → Lightbulb-82cec354.js.map} +1 -1
  47. package/dist/cjs/MeritBadgeDisplayCard-531dbb15.js +947 -0
  48. package/dist/cjs/{MeritBadgeDisplayCard-81bd14b8.js.map → MeritBadgeDisplayCard-531dbb15.js.map} +1 -1
  49. package/dist/cjs/MeritBadgeSkillsCount-4ffd9166.js +36 -0
  50. package/dist/cjs/{MeritBadgeSkillsCount-85cf4a91.js.map → MeritBadgeSkillsCount-4ffd9166.js.map} +1 -1
  51. package/dist/cjs/MiniVCThumbnail-9c510f51.js +85 -0
  52. package/dist/cjs/{MiniVCThumbnail-a78e44f2.js.map → MiniVCThumbnail-9c510f51.js.map} +1 -1
  53. package/dist/cjs/Notification-24d4de25.js +123 -0
  54. package/dist/cjs/{Notification-3fe4a359.js.map → Notification-24d4de25.js.map} +1 -1
  55. package/dist/cjs/NotificationBoostCard-abb23722.js +142 -0
  56. package/dist/cjs/{NotificationBoostCard-be514ddb.js.map → NotificationBoostCard-abb23722.js.map} +1 -1
  57. package/dist/cjs/NotificationUserAcceptedBoostCard-31d8a89e.js +98 -0
  58. package/dist/cjs/{NotificationUserAcceptedBoostCard-423b9320.js.map → NotificationUserAcceptedBoostCard-31d8a89e.js.map} +1 -1
  59. package/dist/cjs/NotificationUserCard-59431df3.js +121 -0
  60. package/dist/cjs/{NotificationUserCard-d4dab06c.js.map → NotificationUserCard-59431df3.js.map} +1 -1
  61. package/dist/cjs/PuzzlePiece-e64f4596.js +97 -0
  62. package/dist/cjs/{PuzzlePiece-088d2b00.js.map → PuzzlePiece-e64f4596.js.map} +1 -1
  63. package/dist/cjs/QRCodeCard-f0079bd9.js +49 -0
  64. package/dist/cjs/{QRCodeCard-b56c11cc.js.map → QRCodeCard-f0079bd9.js.map} +1 -1
  65. package/dist/cjs/QRCodeIcon-3021a53b.js +137 -0
  66. package/dist/cjs/{QRCodeIcon-81c6e96b.js.map → QRCodeIcon-3021a53b.js.map} +1 -1
  67. package/dist/cjs/RoundedPill-b54f3ac1.js +134 -0
  68. package/dist/cjs/{RoundedPill-bda7c067.js.map → RoundedPill-b54f3ac1.js.map} +1 -1
  69. package/dist/cjs/{SchoolIDCard-42d7c96f.js → SchoolIDCard-e22d0d80.js} +34 -34
  70. package/dist/cjs/{SchoolIDCard-42d7c96f.js.map → SchoolIDCard-e22d0d80.js.map} +1 -1
  71. package/dist/cjs/SkillTabCard-efade17a.js +44 -0
  72. package/dist/cjs/{SkillTabCard-66677f3c.js.map → SkillTabCard-efade17a.js.map} +1 -1
  73. package/dist/cjs/SkillVerticalCard-62e308b4.js +37 -0
  74. package/dist/cjs/{SkillVerticalCard-3eb3a8e9.js.map → SkillVerticalCard-62e308b4.js.map} +1 -1
  75. package/dist/cjs/SkillsCard-dae73a71.js +57 -0
  76. package/dist/cjs/{SkillsCard-4b6dbb4f.js.map → SkillsCard-dae73a71.js.map} +1 -1
  77. package/dist/cjs/SkillsStatsCard-aeef796c.js +57 -0
  78. package/dist/cjs/{SkillsStatsCard-97a35a88.js.map → SkillsStatsCard-aeef796c.js.map} +1 -1
  79. package/dist/cjs/SmallAchievementCard-d22a4d25.js +53 -0
  80. package/dist/cjs/{SmallAchievementCard-a1fa862b.js.map → SmallAchievementCard-d22a4d25.js.map} +1 -1
  81. package/dist/cjs/ThreeDotVertical-dda0e747.js +57 -0
  82. package/dist/cjs/{ThreeDotVertical-1d221fc8.js.map → ThreeDotVertical-dda0e747.js.map} +1 -1
  83. package/dist/cjs/Trophy-9758f0cf.js +35 -0
  84. package/dist/cjs/{Trophy-3d323be3.js.map → Trophy-9758f0cf.js.map} +1 -1
  85. package/dist/cjs/User-54049eba.js +130 -0
  86. package/dist/cjs/{User-301088ac.js.map → User-54049eba.js.map} +1 -1
  87. package/dist/cjs/{UserProfilePicture-16b97343.js → UserProfilePicture-d69fe4f0.js} +18 -12
  88. package/dist/cjs/{UserProfilePicture-16b97343.js.map → UserProfilePicture-d69fe4f0.js.map} +1 -1
  89. package/dist/cjs/{VCCard-f5bc1db8.js → VCCard-2683c65c.js} +29 -22
  90. package/dist/cjs/{VCCard-f5bc1db8.js.map → VCCard-2683c65c.js.map} +1 -1
  91. package/dist/cjs/VCDisplayBackFace-a7428833.js +70 -0
  92. package/dist/cjs/{VCDisplayBackFace-6000a58b.js.map → VCDisplayBackFace-a7428833.js.map} +1 -1
  93. package/dist/cjs/VCDisplayCard-b8882c8e.js +191 -0
  94. package/dist/cjs/{VCDisplayCard-9512d8f2.js.map → VCDisplayCard-b8882c8e.js.map} +1 -1
  95. package/dist/cjs/{VCDisplayCard2-2a1d5f57.js → VCDisplayCard2-28f7df8e.js} +724 -695
  96. package/dist/cjs/{VCDisplayCard2-2a1d5f57.js.map → VCDisplayCard2-28f7df8e.js.map} +1 -1
  97. package/dist/cjs/VCThumbnail-f84d0d01.js +148 -0
  98. package/dist/cjs/{VCThumbnail-6bf86bb2.js.map → VCThumbnail-f84d0d01.js.map} +1 -1
  99. package/dist/cjs/VCVerificationCheck-92198135.js +78 -0
  100. package/dist/cjs/{VCVerificationCheck-46fa75d3.js.map → VCVerificationCheck-92198135.js.map} +1 -1
  101. package/dist/cjs/{VCVerificationPill-d6303ad0.js → VCVerificationPill-729ac239.js} +11 -26
  102. package/dist/cjs/{VCVerificationPill-d6303ad0.js.map → VCVerificationPill-729ac239.js.map} +1 -1
  103. package/dist/cjs/{VerifierStateBadgeAndText-67eddbaf.js → VerifierStateBadgeAndText-e46d8393.js} +420 -338
  104. package/dist/cjs/{VerifierStateBadgeAndText-67eddbaf.js.map → VerifierStateBadgeAndText-e46d8393.js.map} +1 -1
  105. package/dist/cjs/{constants-cd049889.js → constants-2430d4bc.js} +22 -30
  106. package/dist/cjs/{constants-cd049889.js.map → constants-2430d4bc.js.map} +1 -1
  107. package/dist/cjs/{credential.helpers-60b421b9.js → credential.helpers-4f806327.js} +196 -155
  108. package/dist/cjs/{credential.helpers-60b421b9.js.map → credential.helpers-4f806327.js.map} +1 -1
  109. package/dist/cjs/{icons-0404f605.js → icons-857d4be1.js} +2 -1
  110. package/dist/cjs/{icons-0404f605.js.map → icons-857d4be1.js.map} +1 -1
  111. package/dist/cjs/{index-08002ab6.js → index-ba659c28.js} +9 -1
  112. package/dist/cjs/{index-08002ab6.js.map → index-ba659c28.js.map} +1 -1
  113. package/dist/cjs/index.js +58 -58
  114. package/dist/cjs/index10.js +4 -4
  115. package/dist/cjs/index11.js +1 -1
  116. package/dist/cjs/index12.js +5 -5
  117. package/dist/cjs/index13.js +58 -58
  118. package/dist/cjs/index14.js +2 -2
  119. package/dist/cjs/index15.js +2 -2
  120. package/dist/cjs/index16.js +1 -1
  121. package/dist/cjs/index17.js +1 -1
  122. package/dist/cjs/index18.js +2 -2
  123. package/dist/cjs/index19.js +1 -1
  124. package/dist/cjs/index2.js +6 -6
  125. package/dist/cjs/index20.js +1 -1
  126. package/dist/cjs/index21.js +10 -10
  127. package/dist/cjs/index22.js +1 -1
  128. package/dist/cjs/index23.js +7 -7
  129. package/dist/cjs/index24.js +8 -8
  130. package/dist/cjs/index25.js +1 -1
  131. package/dist/cjs/index26.js +2 -2
  132. package/dist/cjs/index27.js +1 -1
  133. package/dist/cjs/index28.js +2 -2
  134. package/dist/cjs/index29.js +5 -5
  135. package/dist/cjs/index3.js +12 -12
  136. package/dist/cjs/index30.js +1 -1
  137. package/dist/cjs/index31.js +1 -1
  138. package/dist/cjs/index32.js +1 -1
  139. package/dist/cjs/index33.js +4 -4
  140. package/dist/cjs/index34.js +1 -1
  141. package/dist/cjs/index35.js +2 -2
  142. package/dist/cjs/index36.js +9 -9
  143. package/dist/cjs/index37.js +1 -1
  144. package/dist/cjs/index38.js +19 -19
  145. package/dist/cjs/index39.js +9 -9
  146. package/dist/cjs/index4.js +7 -7
  147. package/dist/cjs/index40.js +12 -12
  148. package/dist/cjs/index41.js +14 -14
  149. package/dist/cjs/index42.js +1 -1
  150. package/dist/cjs/index43.js +1 -1
  151. package/dist/cjs/index44.js +2 -2
  152. package/dist/cjs/index45.js +2 -2
  153. package/dist/cjs/index5.js +1 -1
  154. package/dist/cjs/index6.js +9 -9
  155. package/dist/cjs/index7.js +3 -3
  156. package/dist/cjs/index8.js +3 -3
  157. package/dist/cjs/index9.js +1 -1
  158. package/dist/cjs/{types-f01c65d1.js → types-91d0677b.js} +24 -23
  159. package/dist/cjs/{types-f01c65d1.js.map → types-91d0677b.js.map} +1 -1
  160. package/dist/cjs/types-e4d9a257.js.map +1 -1
  161. package/dist/cjs/types.esm-beffa54c.js +5386 -0
  162. package/dist/cjs/types.esm-beffa54c.js.map +1 -0
  163. package/dist/esm/AchievementCard-e80836dd.js +81 -0
  164. package/dist/esm/{AchievementCard-d179d041.js.map → AchievementCard-e80836dd.js.map} +1 -1
  165. package/dist/esm/BoostGenericCard-b5e522ea.js +174 -0
  166. package/dist/esm/{BoostGenericCard-4cfa6556.js.map → BoostGenericCard-b5e522ea.js.map} +1 -1
  167. package/dist/esm/BoostSmallCard-ddefe808.js +157 -0
  168. package/dist/esm/{BoostSmallCard-42980ebc.js.map → BoostSmallCard-ddefe808.js.map} +1 -1
  169. package/dist/esm/Button-70eedbf6.js +16 -0
  170. package/dist/esm/{Button-5f805204.js.map → Button-70eedbf6.js.map} +1 -1
  171. package/dist/esm/CertificateDisplayCard-0ceeb71a.js +879 -0
  172. package/dist/esm/{CertificateDisplayCard-58c52cdb.js.map → CertificateDisplayCard-0ceeb71a.js.map} +1 -1
  173. package/dist/esm/Checkmark-724d5d17.js +73 -0
  174. package/dist/esm/{Checkmark-d8b8f43d.js.map → Checkmark-724d5d17.js.map} +1 -1
  175. package/dist/esm/CircleCheckButton-23a9c7d4.js +26 -0
  176. package/dist/esm/{CircleCheckButton-5a97f071.js.map → CircleCheckButton-23a9c7d4.js.map} +1 -1
  177. package/dist/esm/{CircleIcon-4200733b.js → CircleIcon-abd5ff06.js} +14 -30
  178. package/dist/esm/{CircleIcon-4200733b.js.map → CircleIcon-abd5ff06.js.map} +1 -1
  179. package/dist/esm/{CircleSpinner-9b8b1a6b.js → CircleSpinner-03a329fc.js} +2 -13
  180. package/dist/esm/{CircleSpinner-9b8b1a6b.js.map → CircleSpinner-03a329fc.js.map} +1 -1
  181. package/dist/esm/Coins-e9f35519.js +14 -0
  182. package/dist/esm/{Coins-ed119ec6.js.map → Coins-e9f35519.js.map} +1 -1
  183. package/dist/esm/CourseCard-990fdc99.js +78 -0
  184. package/dist/esm/{CourseCard-663ff174.js.map → CourseCard-990fdc99.js.map} +1 -1
  185. package/dist/esm/CourseVerticalCard-aae0c030.js +106 -0
  186. package/dist/esm/{CourseVerticalCard-130b0d91.js.map → CourseVerticalCard-aae0c030.js.map} +1 -1
  187. package/dist/esm/FlippyCard-458dc9b1.js +15 -0
  188. package/dist/esm/{FlippyCard-a2de5cf1.js.map → FlippyCard-458dc9b1.js.map} +1 -1
  189. package/dist/esm/GenericArrow-b2822cf6.js +28 -0
  190. package/dist/esm/{GenericArrow-0dba1707.js.map → GenericArrow-b2822cf6.js.map} +1 -1
  191. package/dist/esm/GenericCard-24648e62.js +60 -0
  192. package/dist/esm/{GenericCard-4bb4220a.js.map → GenericCard-24648e62.js.map} +1 -1
  193. package/dist/esm/IDDisplayIcon-d87174fd.js +224 -0
  194. package/dist/esm/{IDDisplayIcon-82a851e7.js.map → IDDisplayIcon-d87174fd.js.map} +1 -1
  195. package/dist/esm/JobHistoryCard-e71ab2c7.js +29 -0
  196. package/dist/esm/{JobHistoryCard-80d4ef27.js.map → JobHistoryCard-e71ab2c7.js.map} +1 -1
  197. package/dist/esm/JobListCard-e8b4ab33.js +117 -0
  198. package/dist/esm/{JobListCard-0d1c4184.js.map → JobListCard-e8b4ab33.js.map} +1 -1
  199. package/dist/esm/LearnCardCreditCardBackFace-56642837.js +76 -0
  200. package/dist/esm/{LearnCardCreditCardBackFace-9baa9e6b.js.map → LearnCardCreditCardBackFace-56642837.js.map} +1 -1
  201. package/dist/esm/LearnCardCreditCardFrontFace-b7c917f5.js +81 -0
  202. package/dist/esm/{LearnCardCreditCardFrontFace-d50efb25.js.map → LearnCardCreditCardFrontFace-b7c917f5.js.map} +1 -1
  203. package/dist/esm/{LearnPill-74bcb08c.js → LearnPill-e0720485.js} +10 -10
  204. package/dist/esm/{LearnPill-74bcb08c.js.map → LearnPill-e0720485.js.map} +1 -1
  205. package/dist/esm/{Lightbox-2ae83d79.js → Lightbox-f0338a0c.js} +70 -58
  206. package/dist/esm/{Lightbox-2ae83d79.js.map → Lightbox-f0338a0c.js.map} +1 -1
  207. package/dist/esm/Lightbulb-7e24711e.js +35 -0
  208. package/dist/esm/{Lightbulb-b6eca510.js.map → Lightbulb-7e24711e.js.map} +1 -1
  209. package/dist/esm/MeritBadgeDisplayCard-4b8fe8e4.js +937 -0
  210. package/dist/esm/{MeritBadgeDisplayCard-c87b0271.js.map → MeritBadgeDisplayCard-4b8fe8e4.js.map} +1 -1
  211. package/dist/esm/MeritBadgeSkillsCount-cd2f3f6d.js +30 -0
  212. package/dist/esm/{MeritBadgeSkillsCount-77ceb64c.js.map → MeritBadgeSkillsCount-cd2f3f6d.js.map} +1 -1
  213. package/dist/esm/MiniVCThumbnail-cc05e1f8.js +78 -0
  214. package/dist/esm/{MiniVCThumbnail-6a07e810.js.map → MiniVCThumbnail-cc05e1f8.js.map} +1 -1
  215. package/dist/esm/Notification-279ba207.js +117 -0
  216. package/dist/esm/{Notification-76adb92c.js.map → Notification-279ba207.js.map} +1 -1
  217. package/dist/esm/NotificationBoostCard-cf11d747.js +134 -0
  218. package/dist/esm/{NotificationBoostCard-e6f1ab86.js.map → NotificationBoostCard-cf11d747.js.map} +1 -1
  219. package/dist/esm/NotificationUserAcceptedBoostCard-a1269382.js +90 -0
  220. package/dist/esm/{NotificationUserAcceptedBoostCard-8c13bd3f.js.map → NotificationUserAcceptedBoostCard-a1269382.js.map} +1 -1
  221. package/dist/esm/NotificationUserCard-c109c442.js +113 -0
  222. package/dist/esm/{NotificationUserCard-dbcc80f9.js.map → NotificationUserCard-c109c442.js.map} +1 -1
  223. package/dist/esm/PuzzlePiece-a3d9cc62.js +91 -0
  224. package/dist/esm/{PuzzlePiece-4541648e.js.map → PuzzlePiece-a3d9cc62.js.map} +1 -1
  225. package/dist/esm/QRCodeCard-8f29c3c7.js +43 -0
  226. package/dist/esm/{QRCodeCard-aa2b9967.js.map → QRCodeCard-8f29c3c7.js.map} +1 -1
  227. package/dist/esm/QRCodeIcon-8eef4f7c.js +129 -0
  228. package/dist/esm/{QRCodeIcon-e9569804.js.map → QRCodeIcon-8eef4f7c.js.map} +1 -1
  229. package/dist/esm/RoundedPill-50279e5d.js +127 -0
  230. package/dist/esm/{RoundedPill-6a6e8aaf.js.map → RoundedPill-50279e5d.js.map} +1 -1
  231. package/dist/esm/{SchoolIDCard-7c3ba74c.js → SchoolIDCard-8b151cd3.js} +34 -34
  232. package/dist/esm/{SchoolIDCard-7c3ba74c.js.map → SchoolIDCard-8b151cd3.js.map} +1 -1
  233. package/dist/esm/SkillTabCard-f2edb3fc.js +38 -0
  234. package/dist/esm/{SkillTabCard-cfe117a2.js.map → SkillTabCard-f2edb3fc.js.map} +1 -1
  235. package/dist/esm/SkillVerticalCard-045169f9.js +30 -0
  236. package/dist/esm/{SkillVerticalCard-108f49bb.js.map → SkillVerticalCard-045169f9.js.map} +1 -1
  237. package/dist/esm/SkillsCard-5279aac9.js +50 -0
  238. package/dist/esm/{SkillsCard-92a51db2.js.map → SkillsCard-5279aac9.js.map} +1 -1
  239. package/dist/esm/SkillsStatsCard-e0cd6137.js +50 -0
  240. package/dist/esm/{SkillsStatsCard-1628fe9c.js.map → SkillsStatsCard-e0cd6137.js.map} +1 -1
  241. package/dist/esm/SmallAchievementCard-24dfa453.js +47 -0
  242. package/dist/esm/{SmallAchievementCard-d0220751.js.map → SmallAchievementCard-24dfa453.js.map} +1 -1
  243. package/dist/esm/ThreeDotVertical-ccbbc8ef.js +51 -0
  244. package/dist/esm/{ThreeDotVertical-08294477.js.map → ThreeDotVertical-ccbbc8ef.js.map} +1 -1
  245. package/dist/esm/Trophy-fc7fdec4.js +29 -0
  246. package/dist/esm/{Trophy-ad67f46a.js.map → Trophy-fc7fdec4.js.map} +1 -1
  247. package/dist/esm/User-f5ea0f01.js +122 -0
  248. package/dist/esm/{User-161c7f37.js.map → User-f5ea0f01.js.map} +1 -1
  249. package/dist/esm/{UserProfilePicture-ecc82a6c.js → UserProfilePicture-7b950437.js} +18 -12
  250. package/dist/esm/{UserProfilePicture-ecc82a6c.js.map → UserProfilePicture-7b950437.js.map} +1 -1
  251. package/dist/esm/{VCCard-a5dda1f4.js → VCCard-04ecb3db.js} +29 -22
  252. package/dist/esm/{VCCard-a5dda1f4.js.map → VCCard-04ecb3db.js.map} +1 -1
  253. package/dist/esm/VCDisplayBackFace-1760601a.js +63 -0
  254. package/dist/esm/{VCDisplayBackFace-af01c8b3.js.map → VCDisplayBackFace-1760601a.js.map} +1 -1
  255. package/dist/esm/VCDisplayCard-3d67e2bc.js +184 -0
  256. package/dist/esm/{VCDisplayCard-36f34504.js.map → VCDisplayCard-3d67e2bc.js.map} +1 -1
  257. package/dist/esm/{VCDisplayCard2-04e304db.js → VCDisplayCard2-fb8abe89.js} +724 -695
  258. package/dist/esm/{VCDisplayCard2-04e304db.js.map → VCDisplayCard2-fb8abe89.js.map} +1 -1
  259. package/dist/esm/VCThumbnail-835921dd.js +140 -0
  260. package/dist/esm/{VCThumbnail-3c254bda.js.map → VCThumbnail-835921dd.js.map} +1 -1
  261. package/dist/esm/VCVerificationCheck-8b8b7a76.js +69 -0
  262. package/dist/esm/{VCVerificationCheck-80249524.js.map → VCVerificationCheck-8b8b7a76.js.map} +1 -1
  263. package/dist/esm/VCVerificationPill-77596013.js +50 -0
  264. package/dist/esm/{VCVerificationPill-0e2c1172.js.map → VCVerificationPill-77596013.js.map} +1 -1
  265. package/dist/esm/{VerifierStateBadgeAndText-2e5414f4.js → VerifierStateBadgeAndText-490c08dc.js} +420 -338
  266. package/dist/esm/{VerifierStateBadgeAndText-2e5414f4.js.map → VerifierStateBadgeAndText-490c08dc.js.map} +1 -1
  267. package/dist/esm/{constants-20055f35.js → constants-f1ed610c.js} +22 -30
  268. package/dist/esm/{constants-20055f35.js.map → constants-f1ed610c.js.map} +1 -1
  269. package/dist/esm/{credential.helpers-97c7e3d4.js → credential.helpers-1b1ff55e.js} +196 -155
  270. package/dist/esm/{credential.helpers-97c7e3d4.js.map → credential.helpers-1b1ff55e.js.map} +1 -1
  271. package/dist/esm/{icons-03afd795.js → icons-fdd35170.js} +2 -1
  272. package/dist/esm/{icons-03afd795.js.map → icons-fdd35170.js.map} +1 -1
  273. package/dist/esm/{index-b102febc.js → index-cbe3a76a.js} +9 -1
  274. package/dist/esm/{index-b102febc.js.map → index-cbe3a76a.js.map} +1 -1
  275. package/dist/esm/index.js +58 -58
  276. package/dist/esm/index10.js +4 -4
  277. package/dist/esm/index11.js +1 -1
  278. package/dist/esm/index12.js +5 -5
  279. package/dist/esm/index13.js +58 -58
  280. package/dist/esm/index14.js +2 -2
  281. package/dist/esm/index15.js +2 -2
  282. package/dist/esm/index16.js +1 -1
  283. package/dist/esm/index17.js +1 -1
  284. package/dist/esm/index18.js +2 -2
  285. package/dist/esm/index19.js +1 -1
  286. package/dist/esm/index2.js +6 -6
  287. package/dist/esm/index20.js +1 -1
  288. package/dist/esm/index21.js +10 -10
  289. package/dist/esm/index22.js +1 -1
  290. package/dist/esm/index23.js +7 -7
  291. package/dist/esm/index24.js +8 -8
  292. package/dist/esm/index25.js +1 -1
  293. package/dist/esm/index26.js +2 -2
  294. package/dist/esm/index27.js +1 -1
  295. package/dist/esm/index28.js +2 -2
  296. package/dist/esm/index29.js +5 -5
  297. package/dist/esm/index3.js +12 -12
  298. package/dist/esm/index30.js +1 -1
  299. package/dist/esm/index31.js +1 -1
  300. package/dist/esm/index32.js +1 -1
  301. package/dist/esm/index33.js +4 -4
  302. package/dist/esm/index34.js +1 -1
  303. package/dist/esm/index35.js +2 -2
  304. package/dist/esm/index36.js +9 -9
  305. package/dist/esm/index37.js +1 -1
  306. package/dist/esm/index38.js +19 -19
  307. package/dist/esm/index39.js +9 -9
  308. package/dist/esm/index4.js +7 -7
  309. package/dist/esm/index40.js +12 -12
  310. package/dist/esm/index41.js +14 -14
  311. package/dist/esm/index42.js +1 -1
  312. package/dist/esm/index43.js +1 -1
  313. package/dist/esm/index44.js +2 -2
  314. package/dist/esm/index45.js +2 -2
  315. package/dist/esm/index5.js +1 -1
  316. package/dist/esm/index6.js +9 -9
  317. package/dist/esm/index7.js +3 -3
  318. package/dist/esm/index8.js +3 -3
  319. package/dist/esm/index9.js +1 -1
  320. package/dist/esm/types-b32d28d5.js.map +1 -1
  321. package/dist/esm/{types-05bc737d.js → types-c765e2a4.js} +24 -23
  322. package/dist/esm/{types-05bc737d.js.map → types-c765e2a4.js.map} +1 -1
  323. package/dist/esm/types.esm-8798df50.js +5384 -0
  324. package/dist/esm/types.esm-8798df50.js.map +1 -0
  325. package/package.json +4 -4
  326. package/dist/cjs/AchievementCard-dd332f3f.js +0 -67
  327. package/dist/cjs/BoostGenericCard-55f710ad.js +0 -162
  328. package/dist/cjs/BoostSmallCard-dd1cbd51.js +0 -164
  329. package/dist/cjs/CertificateDisplayCard-9f619468.js +0 -866
  330. package/dist/cjs/Checkmark-f611aa4d.js +0 -58
  331. package/dist/cjs/Coins-acd63f46.js +0 -22
  332. package/dist/cjs/CourseCard-338a32ee.js +0 -92
  333. package/dist/cjs/CourseVerticalCard-841960b1.js +0 -98
  334. package/dist/cjs/GenericArrow-8dfb261d.js +0 -27
  335. package/dist/cjs/GenericCard-ad18c4c3.js +0 -60
  336. package/dist/cjs/IDDisplayIcon-62993df0.js +0 -226
  337. package/dist/cjs/JobHistoryCard-05a3f98b.js +0 -43
  338. package/dist/cjs/JobListCard-f74f0302.js +0 -127
  339. package/dist/cjs/LearnCardCreditCardBackFace-87cc8b9f.js +0 -72
  340. package/dist/cjs/LearnCardCreditCardFrontFace-39eeb89a.js +0 -78
  341. package/dist/cjs/Lightbulb-19c89d3c.js +0 -37
  342. package/dist/cjs/MeritBadgeDisplayCard-81bd14b8.js +0 -912
  343. package/dist/cjs/MeritBadgeSkillsCount-85cf4a91.js +0 -40
  344. package/dist/cjs/MiniVCThumbnail-a78e44f2.js +0 -69
  345. package/dist/cjs/Notification-3fe4a359.js +0 -94
  346. package/dist/cjs/NotificationBoostCard-be514ddb.js +0 -120
  347. package/dist/cjs/NotificationUserAcceptedBoostCard-423b9320.js +0 -74
  348. package/dist/cjs/NotificationUserCard-d4dab06c.js +0 -94
  349. package/dist/cjs/PuzzlePiece-088d2b00.js +0 -77
  350. package/dist/cjs/QRCodeCard-b56c11cc.js +0 -42
  351. package/dist/cjs/QRCodeIcon-81c6e96b.js +0 -96
  352. package/dist/cjs/RoundedPill-bda7c067.js +0 -106
  353. package/dist/cjs/SkillTabCard-66677f3c.js +0 -42
  354. package/dist/cjs/SkillVerticalCard-3eb3a8e9.js +0 -35
  355. package/dist/cjs/SkillsCard-4b6dbb4f.js +0 -66
  356. package/dist/cjs/SkillsStatsCard-97a35a88.js +0 -77
  357. package/dist/cjs/SmallAchievementCard-a1fa862b.js +0 -43
  358. package/dist/cjs/ThreeDotVertical-1d221fc8.js +0 -42
  359. package/dist/cjs/Trophy-3d323be3.js +0 -28
  360. package/dist/cjs/User-301088ac.js +0 -93
  361. package/dist/cjs/VCDisplayBackFace-6000a58b.js +0 -87
  362. package/dist/cjs/VCDisplayCard-9512d8f2.js +0 -180
  363. package/dist/cjs/VCThumbnail-6bf86bb2.js +0 -143
  364. package/dist/cjs/VCVerificationCheck-46fa75d3.js +0 -81
  365. package/dist/cjs/types.esm-ae4cdf49.js +0 -5729
  366. package/dist/cjs/types.esm-ae4cdf49.js.map +0 -1
  367. package/dist/esm/AchievementCard-d179d041.js +0 -61
  368. package/dist/esm/BoostGenericCard-4cfa6556.js +0 -156
  369. package/dist/esm/BoostSmallCard-42980ebc.js +0 -156
  370. package/dist/esm/Button-5f805204.js +0 -12
  371. package/dist/esm/CertificateDisplayCard-58c52cdb.js +0 -854
  372. package/dist/esm/Checkmark-d8b8f43d.js +0 -52
  373. package/dist/esm/CircleCheckButton-5a97f071.js +0 -24
  374. package/dist/esm/Coins-ed119ec6.js +0 -16
  375. package/dist/esm/CourseCard-663ff174.js +0 -82
  376. package/dist/esm/CourseVerticalCard-130b0d91.js +0 -88
  377. package/dist/esm/FlippyCard-a2de5cf1.js +0 -28
  378. package/dist/esm/GenericArrow-0dba1707.js +0 -21
  379. package/dist/esm/GenericCard-4bb4220a.js +0 -54
  380. package/dist/esm/IDDisplayIcon-82a851e7.js +0 -216
  381. package/dist/esm/JobHistoryCard-80d4ef27.js +0 -37
  382. package/dist/esm/JobListCard-0d1c4184.js +0 -120
  383. package/dist/esm/LearnCardCreditCardBackFace-9baa9e6b.js +0 -65
  384. package/dist/esm/LearnCardCreditCardFrontFace-d50efb25.js +0 -70
  385. package/dist/esm/Lightbulb-b6eca510.js +0 -30
  386. package/dist/esm/MeritBadgeDisplayCard-c87b0271.js +0 -902
  387. package/dist/esm/MeritBadgeSkillsCount-77ceb64c.js +0 -34
  388. package/dist/esm/MiniVCThumbnail-6a07e810.js +0 -62
  389. package/dist/esm/Notification-76adb92c.js +0 -88
  390. package/dist/esm/NotificationBoostCard-e6f1ab86.js +0 -112
  391. package/dist/esm/NotificationUserAcceptedBoostCard-8c13bd3f.js +0 -66
  392. package/dist/esm/NotificationUserCard-dbcc80f9.js +0 -86
  393. package/dist/esm/PuzzlePiece-4541648e.js +0 -71
  394. package/dist/esm/QRCodeCard-aa2b9967.js +0 -36
  395. package/dist/esm/QRCodeIcon-e9569804.js +0 -88
  396. package/dist/esm/RoundedPill-6a6e8aaf.js +0 -99
  397. package/dist/esm/SkillTabCard-cfe117a2.js +0 -36
  398. package/dist/esm/SkillVerticalCard-108f49bb.js +0 -28
  399. package/dist/esm/SkillsCard-92a51db2.js +0 -59
  400. package/dist/esm/SkillsStatsCard-1628fe9c.js +0 -70
  401. package/dist/esm/SmallAchievementCard-d0220751.js +0 -37
  402. package/dist/esm/ThreeDotVertical-08294477.js +0 -36
  403. package/dist/esm/Trophy-ad67f46a.js +0 -22
  404. package/dist/esm/User-161c7f37.js +0 -85
  405. package/dist/esm/VCDisplayBackFace-af01c8b3.js +0 -80
  406. package/dist/esm/VCDisplayCard-36f34504.js +0 -173
  407. package/dist/esm/VCThumbnail-3c254bda.js +0 -135
  408. package/dist/esm/VCVerificationCheck-80249524.js +0 -72
  409. package/dist/esm/VCVerificationPill-0e2c1172.js +0 -65
  410. package/dist/esm/types.esm-c7016566.js +0 -5727
  411. package/dist/esm/types.esm-c7016566.js.map +0 -1
@@ -0,0 +1,76 @@
1
+ import React from 'react';
2
+ import ContactlessSymbol from './contactless-symbol.svg';
3
+
4
+ const LearnCardCreditCardBackFace = ({
5
+ className,
6
+ card,
7
+ user
8
+ }) => {
9
+ var _a, _b, _c, _d;
10
+ return /* @__PURE__ */ React.createElement(
11
+ "div",
12
+ {
13
+ className: `flex justify-center items-center max-w-[375px] rounded-[20px] ${className}`
14
+ },
15
+ /* @__PURE__ */ React.createElement(
16
+ "div",
17
+ {
18
+ className: `flex flex-col justify-start items-start w-full min-h-[220px] rounded-[20px] shadow-3xl bg-grayscale-900 relative overflow-hidden credit-card-front-face`
19
+ },
20
+ /* @__PURE__ */ React.createElement("div", { className: "flex justify-between items-center w-full px-3 pt-4 text-white" }, /* @__PURE__ */ React.createElement("p", { className: "text-[6px]" }, "Please visit LearnCard app or learncard.com for assistance"), /* @__PURE__ */ React.createElement("p", { className: "text-[6px]" }, "854-000-000-24")),
21
+ /* @__PURE__ */ React.createElement("div", { className: "w-full h-8 bg-white mt-1" }),
22
+ /* @__PURE__ */ React.createElement("div", { className: "flex justify-end items-center w-full px-3 mt-1 text-white" }, /* @__PURE__ */ React.createElement("p", { className: "text-[6px]" }, "IDEMIA 0 00000 00000 0/00")),
23
+ /* @__PURE__ */ React.createElement("div", { className: "flex flex-row justify-between items-center px-3 pt-2 w-full text-white" }, /* @__PURE__ */ React.createElement("div", null, (user == null ? void 0 : user.username) && /* @__PURE__ */ React.createElement(
24
+ "p",
25
+ {
26
+ className: "text-[10px] font-medium",
27
+ "data-testid": "credit-card-backface-username"
28
+ },
29
+ user == null ? void 0 : user.username
30
+ ), /* @__PURE__ */ React.createElement(
31
+ "p",
32
+ {
33
+ className: "text-sm tracking-wider",
34
+ "data-testid": "credit-card-backface-fullname"
35
+ },
36
+ (_a = user == null ? void 0 : user.fullName) != null ? _a : ""
37
+ ), (card == null ? void 0 : card.cardIssueDate) && /* @__PURE__ */ React.createElement(
38
+ "p",
39
+ {
40
+ className: "text-[10px] tracking-wider",
41
+ "data-testid": "credit-card-backface-issueDate"
42
+ },
43
+ "MEMBER SINCE ",
44
+ card == null ? void 0 : card.cardIssueDate
45
+ )), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("img", { src: ContactlessSymbol, alt: "contactless icon" }))),
46
+ /* @__PURE__ */ React.createElement("div", { className: "flex flex-row justify-between items-center px-3 pt-2 w-full text-white" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React.createElement(
47
+ "p",
48
+ {
49
+ className: "text-sm tracking-wider",
50
+ "data-testid": "credit-card-backface-cardNum"
51
+ },
52
+ (_b = card == null ? void 0 : card.cardNumber) != null ? _b : ""
53
+ ), /* @__PURE__ */ React.createElement("div", { className: "flex flex-row justify-between items-center" }, /* @__PURE__ */ React.createElement(
54
+ "p",
55
+ {
56
+ className: "text-[10px] tracking-wider",
57
+ "data-testid": "credit-card-backface-expDate"
58
+ },
59
+ "EXP ",
60
+ (_c = card == null ? void 0 : card.cardExpirationDate) != null ? _c : ""
61
+ ), (card == null ? void 0 : card.cardSecurityCode) && /* @__PURE__ */ React.createElement(
62
+ "p",
63
+ {
64
+ className: "text-[10px] tracking-wider",
65
+ "data-testid": "credit-card-backface-secCode"
66
+ },
67
+ "SEC ",
68
+ (_d = card == null ? void 0 : card.cardSecurityCode) != null ? _d : ""
69
+ ))), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { className: "h-[33px] w-[55px] rounded-[60px] bg-gradient-to-r from-[#F4F5F5] to-[#E3E5E8]" }))),
70
+ /* @__PURE__ */ React.createElement("div", { className: "flex justify-start items-center w-full px-3 py-2 text-white" }, /* @__PURE__ */ React.createElement("p", { className: "text-[6px]" }, "Issued by the bank of Tennessee pursuant to license by Mastercard International"))
71
+ )
72
+ );
73
+ };
74
+
75
+ export { LearnCardCreditCardBackFace as L };
76
+ //# sourceMappingURL=LearnCardCreditCardBackFace-56642837.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LearnCardCreditCardBackFace-9baa9e6b.js","sources":["../../src/components/LearnCardCreditCardBackFace/LearnCardCreditCardBackFace.tsx"],"sourcesContent":["import React from 'react';\n\nimport ContactlessSymbol from '../../assets/images/contactless-symbol.svg';\n\nimport { LearnCardCreditCardBackFaceProps } from './types';\n\nexport const LearnCardCreditCardBackFace: React.FC<LearnCardCreditCardBackFaceProps> = ({\n className,\n card,\n user,\n}) => {\n return (\n <div\n className={`flex justify-center items-center max-w-[375px] rounded-[20px] ${className}`}\n >\n <div\n className={`flex flex-col justify-start items-start w-full min-h-[220px] rounded-[20px] shadow-3xl bg-grayscale-900 relative overflow-hidden credit-card-front-face`}\n >\n <div className=\"flex justify-between items-center w-full px-3 pt-4 text-white\">\n <p className=\"text-[6px]\">\n Please visit LearnCard app or learncard.com for assistance\n </p>\n <p className=\"text-[6px]\">854-000-000-24</p>\n </div>\n\n <div className=\"w-full h-8 bg-white mt-1\" />\n\n <div className=\"flex justify-end items-center w-full px-3 mt-1 text-white\">\n <p className=\"text-[6px]\">IDEMIA 0 00000 00000 0/00</p>\n </div>\n\n <div className=\"flex flex-row justify-between items-center px-3 pt-2 w-full text-white\">\n <div>\n {user?.username && (\n <p\n className=\"text-[10px] font-medium\"\n data-testid=\"credit-card-backface-username\"\n >\n {user?.username}\n </p>\n )}\n\n <p\n className=\"text-sm tracking-wider\"\n data-testid=\"credit-card-backface-fullname\"\n >\n {user?.fullName ?? ''}\n </p>\n {card?.cardIssueDate && (\n <p\n className=\"text-[10px] tracking-wider\"\n data-testid=\"credit-card-backface-issueDate\"\n >\n MEMBER SINCE {card?.cardIssueDate}\n </p>\n )}\n </div>\n <div>\n <img src={ContactlessSymbol} alt=\"contactless icon\" />\n </div>\n </div>\n\n <div className=\"flex flex-row justify-between items-center px-3 pt-2 w-full text-white\">\n <div className=\"flex flex-col\">\n <p\n className=\"text-sm tracking-wider\"\n data-testid=\"credit-card-backface-cardNum\"\n >\n {card?.cardNumber ?? ''}\n </p>\n <div className=\"flex flex-row justify-between items-center\">\n <p\n className=\"text-[10px] tracking-wider\"\n data-testid=\"credit-card-backface-expDate\"\n >\n EXP {card?.cardExpirationDate ?? ''}\n </p>\n {card?.cardSecurityCode && (\n <p\n className=\"text-[10px] tracking-wider\"\n data-testid=\"credit-card-backface-secCode\"\n >\n SEC {card?.cardSecurityCode ?? ''}\n </p>\n )}\n </div>\n </div>\n <div>\n <div className=\"h-[33px] w-[55px] rounded-[60px] bg-gradient-to-r from-[#F4F5F5] to-[#E3E5E8]\" />\n </div>\n </div>\n\n <div className=\"flex justify-start items-center w-full px-3 py-2 text-white\">\n <p className=\"text-[6px]\">\n Issued by the bank of Tennessee pursuant to license by Mastercard\n International\n </p>\n </div>\n </div>\n </div>\n );\n};\n\nexport default LearnCardCreditCardBackFace;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LearnCardCreditCardBackFace-56642837.js","sources":["../../src/components/LearnCardCreditCardBackFace/LearnCardCreditCardBackFace.tsx"],"sourcesContent":["import React from 'react';\n\nimport ContactlessSymbol from '../../assets/images/contactless-symbol.svg';\n\nimport { LearnCardCreditCardBackFaceProps } from './types';\n\nexport const LearnCardCreditCardBackFace: React.FC<LearnCardCreditCardBackFaceProps> = ({\n className,\n card,\n user,\n}) => {\n return (\n <div\n className={`flex justify-center items-center max-w-[375px] rounded-[20px] ${className}`}\n >\n <div\n className={`flex flex-col justify-start items-start w-full min-h-[220px] rounded-[20px] shadow-3xl bg-grayscale-900 relative overflow-hidden credit-card-front-face`}\n >\n <div className=\"flex justify-between items-center w-full px-3 pt-4 text-white\">\n <p className=\"text-[6px]\">\n Please visit LearnCard app or learncard.com for assistance\n </p>\n <p className=\"text-[6px]\">854-000-000-24</p>\n </div>\n\n <div className=\"w-full h-8 bg-white mt-1\" />\n\n <div className=\"flex justify-end items-center w-full px-3 mt-1 text-white\">\n <p className=\"text-[6px]\">IDEMIA 0 00000 00000 0/00</p>\n </div>\n\n <div className=\"flex flex-row justify-between items-center px-3 pt-2 w-full text-white\">\n <div>\n {user?.username && (\n <p\n className=\"text-[10px] font-medium\"\n data-testid=\"credit-card-backface-username\"\n >\n {user?.username}\n </p>\n )}\n\n <p\n className=\"text-sm tracking-wider\"\n data-testid=\"credit-card-backface-fullname\"\n >\n {user?.fullName ?? ''}\n </p>\n {card?.cardIssueDate && (\n <p\n className=\"text-[10px] tracking-wider\"\n data-testid=\"credit-card-backface-issueDate\"\n >\n MEMBER SINCE {card?.cardIssueDate}\n </p>\n )}\n </div>\n <div>\n <img src={ContactlessSymbol} alt=\"contactless icon\" />\n </div>\n </div>\n\n <div className=\"flex flex-row justify-between items-center px-3 pt-2 w-full text-white\">\n <div className=\"flex flex-col\">\n <p\n className=\"text-sm tracking-wider\"\n data-testid=\"credit-card-backface-cardNum\"\n >\n {card?.cardNumber ?? ''}\n </p>\n <div className=\"flex flex-row justify-between items-center\">\n <p\n className=\"text-[10px] tracking-wider\"\n data-testid=\"credit-card-backface-expDate\"\n >\n EXP {card?.cardExpirationDate ?? ''}\n </p>\n {card?.cardSecurityCode && (\n <p\n className=\"text-[10px] tracking-wider\"\n data-testid=\"credit-card-backface-secCode\"\n >\n SEC {card?.cardSecurityCode ?? ''}\n </p>\n )}\n </div>\n </div>\n <div>\n <div className=\"h-[33px] w-[55px] rounded-[60px] bg-gradient-to-r from-[#F4F5F5] to-[#E3E5E8]\" />\n </div>\n </div>\n\n <div className=\"flex justify-start items-center w-full px-3 py-2 text-white\">\n <p className=\"text-[6px]\">\n Issued by the bank of Tennessee pursuant to license by Mastercard\n International\n </p>\n </div>\n </div>\n </div>\n );\n};\n\nexport default LearnCardCreditCardBackFace;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import React from 'react';
2
+ import { Q as QRCodeSVG } from './index-2ef835bd.js';
3
+ import CardChip from './card-chip.svg';
4
+ import MasterCardLogo from './master-card-logo.svg';
5
+
6
+ const LearnCardCreditCardFrontFace = ({
7
+ userImage,
8
+ userImageComponent = null,
9
+ qrCodeValue,
10
+ className,
11
+ showActionButton = false,
12
+ actionButtonText = "Open Card",
13
+ onClick = () => {
14
+ },
15
+ children
16
+ }) => {
17
+ var _a, _b;
18
+ let userImageEl = null;
19
+ if (userImage) {
20
+ userImageEl = /* @__PURE__ */ React.createElement("div", { className: "inline-block relative overflow-hidden rounded-full shadow-3xl h-0 bg-white w-1/2 pb-[50%] mt-2 ml-4" }, /* @__PURE__ */ React.createElement(
21
+ "img",
22
+ {
23
+ className: "w-full h-full absolute rounded-full object-cover border-solid border-2 border-white",
24
+ src: userImage,
25
+ alt: "user image",
26
+ "data-testid": "credit-card-frontface-userImg"
27
+ }
28
+ ));
29
+ } else if (!userImage && userImageComponent) {
30
+ userImageEl = userImageComponent;
31
+ }
32
+ return /* @__PURE__ */ React.createElement(
33
+ "div",
34
+ {
35
+ className: `flex justify-center items-center max-w-[375px] rounded-[20px] ${className}`
36
+ },
37
+ /* @__PURE__ */ React.createElement(
38
+ "div",
39
+ {
40
+ className: `flex flex-row justify-center items-start pt-9 w-full min-h-[220px] rounded-[20px] shadow-3xl relative overflow-hidden credit-card-front-face`
41
+ },
42
+ /* @__PURE__ */ React.createElement("div", { className: "absolute top-[-40px] left-0 w-[55%] h-[140%] rounded-tr-[150px] rounded-br-[150px] bg-grayscale-900 credit-card-bubble" }),
43
+ showActionButton && /* @__PURE__ */ React.createElement(
44
+ "button",
45
+ {
46
+ className: "absolute top-2 right-4 bg-grayscale-500 border-[2px] rounded-3xl border-solid border-color-grayscale-900 min-w-[110px] p-[2px] font-bold text-xs tracking-wide leading-snug text-center text-white",
47
+ onClick,
48
+ "data-testid": "credit-card-frontface-button"
49
+ },
50
+ actionButtonText
51
+ ),
52
+ /* @__PURE__ */ React.createElement("div", { className: "flex flex-row justify-between items-start w-full h-full relative" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-1 flex-col" }, /* @__PURE__ */ React.createElement("div", { className: "pl-8" }, /* @__PURE__ */ React.createElement("p", { className: "w-full text-xs text-white font-bold tracking-[7px] mb-2 credit-card-front-face-title" }, "LEARNCARD"), /* @__PURE__ */ React.createElement(
53
+ "img",
54
+ {
55
+ src: (_a = CardChip) != null ? _a : "",
56
+ alt: "card chip",
57
+ className: "h-[30px] w-[42px]"
58
+ }
59
+ )), userImageEl), qrCodeValue && /* @__PURE__ */ React.createElement("div", { className: "flex flex-1 justify-center items-center relative pl-10 credit-card-qr-code-container" }, /* @__PURE__ */ React.createElement("div", { className: "h-auto relative qr-code-container" }, /* @__PURE__ */ React.createElement(
60
+ QRCodeSVG,
61
+ {
62
+ className: "h-full w-full",
63
+ value: qrCodeValue,
64
+ "data-testid": "credit-card-qr-code",
65
+ bgColor: "transparent"
66
+ }
67
+ ))), /* @__PURE__ */ React.createElement(
68
+ "img",
69
+ {
70
+ src: (_b = MasterCardLogo) != null ? _b : "",
71
+ alt: "mastercard icon",
72
+ className: "absolute bottom-[-8px] right-4 learn-card-mastercard-logo"
73
+ }
74
+ ))
75
+ ),
76
+ children
77
+ );
78
+ };
79
+
80
+ export { LearnCardCreditCardFrontFace as L };
81
+ //# sourceMappingURL=LearnCardCreditCardFrontFace-b7c917f5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LearnCardCreditCardFrontFace-d50efb25.js","sources":["../../src/components/LearnCardCreditCardFrontFace/LearnCardCreditCardFrontFace.tsx"],"sourcesContent":["import React from 'react';\nimport { QRCodeSVG } from 'qrcode.react';\n\nimport { LearnCardCreditCardFrontFaceProps } from './types';\n\nimport CardChip from '../../assets/images/card-chip.svg';\nimport MasterCardLogo from '../../assets/images/master-card-logo.svg';\n\nexport const LearnCardCreditCardFrontFace: React.FC<LearnCardCreditCardFrontFaceProps> = ({\n userImage,\n userImageComponent = null,\n qrCodeValue,\n className,\n showActionButton = false,\n actionButtonText = 'Open Card',\n onClick = () => {},\n children,\n}) => {\n let userImageEl: React.ReactNode | null = null;\n\n if (userImage) {\n userImageEl = (\n <div className=\"inline-block relative overflow-hidden rounded-full shadow-3xl h-0 bg-white w-1/2 pb-[50%] mt-2 ml-4\">\n <img\n className=\"w-full h-full absolute rounded-full object-cover border-solid border-2 border-white\"\n src={userImage}\n alt=\"user image\"\n data-testid=\"credit-card-frontface-userImg\"\n />\n </div>\n );\n } else if (!userImage && userImageComponent) {\n userImageEl = userImageComponent;\n }\n\n return (\n <div\n className={`flex justify-center items-center max-w-[375px] rounded-[20px] ${className}`}\n >\n <div\n className={`flex flex-row justify-center items-start pt-9 w-full min-h-[220px] rounded-[20px] shadow-3xl relative overflow-hidden credit-card-front-face`}\n >\n <div className=\"absolute top-[-40px] left-0 w-[55%] h-[140%] rounded-tr-[150px] rounded-br-[150px] bg-grayscale-900 credit-card-bubble\" />\n {showActionButton && (\n <button\n className=\"absolute top-2 right-4 bg-grayscale-500 border-[2px] rounded-3xl border-solid border-color-grayscale-900 min-w-[110px] p-[2px] font-bold text-xs tracking-wide leading-snug text-center text-white\"\n onClick={onClick}\n data-testid=\"credit-card-frontface-button\"\n >\n {actionButtonText}\n </button>\n )}\n <div className=\"flex flex-row justify-between items-start w-full h-full relative\">\n <div className=\"flex flex-1 flex-col\">\n <div className=\"pl-8\">\n <p className=\"w-full text-xs text-white font-bold tracking-[7px] mb-2 credit-card-front-face-title\">\n LEARNCARD\n </p>\n <img\n src={CardChip ?? ''}\n alt=\"card chip\"\n className=\"h-[30px] w-[42px]\"\n />\n </div>\n\n {userImageEl}\n </div>\n\n {qrCodeValue && (\n <div className=\"flex flex-1 justify-center items-center relative pl-10 credit-card-qr-code-container\">\n <div className=\"h-auto relative qr-code-container\">\n {/* <div className=\"qr-code-upper-left-yellow\" />\n <div className=\"qr-code-upper-right-pink-square\" />\n <div className=\"qr-code-bottom-left-purple-square\" />\n <div className=\"qr-code-green-blob\" />\n <div className=\"qr-code-green-blob-2\" />\n <div className=\"qr-code-blue-blob\" />\n <div className=\"qr-code-orange-blob\" /> */}\n <QRCodeSVG\n className=\"h-full w-full\"\n value={qrCodeValue}\n data-testid=\"credit-card-qr-code\"\n bgColor=\"transparent\"\n // fgColor=\"#999999\"\n />\n </div>\n </div>\n )}\n\n <img\n src={MasterCardLogo ?? ''}\n alt=\"mastercard icon\"\n className=\"absolute bottom-[-8px] right-4 learn-card-mastercard-logo\"\n />\n </div>\n </div>\n {children}\n </div>\n );\n};\n\nexport default LearnCardCreditCardFrontFace;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LearnCardCreditCardFrontFace-b7c917f5.js","sources":["../../src/components/LearnCardCreditCardFrontFace/LearnCardCreditCardFrontFace.tsx"],"sourcesContent":["import React from 'react';\nimport { QRCodeSVG } from 'qrcode.react';\n\nimport { LearnCardCreditCardFrontFaceProps } from './types';\n\nimport CardChip from '../../assets/images/card-chip.svg';\nimport MasterCardLogo from '../../assets/images/master-card-logo.svg';\n\nexport const LearnCardCreditCardFrontFace: React.FC<LearnCardCreditCardFrontFaceProps> = ({\n userImage,\n userImageComponent = null,\n qrCodeValue,\n className,\n showActionButton = false,\n actionButtonText = 'Open Card',\n onClick = () => {},\n children,\n}) => {\n let userImageEl: React.ReactNode | null = null;\n\n if (userImage) {\n userImageEl = (\n <div className=\"inline-block relative overflow-hidden rounded-full shadow-3xl h-0 bg-white w-1/2 pb-[50%] mt-2 ml-4\">\n <img\n className=\"w-full h-full absolute rounded-full object-cover border-solid border-2 border-white\"\n src={userImage}\n alt=\"user image\"\n data-testid=\"credit-card-frontface-userImg\"\n />\n </div>\n );\n } else if (!userImage && userImageComponent) {\n userImageEl = userImageComponent;\n }\n\n return (\n <div\n className={`flex justify-center items-center max-w-[375px] rounded-[20px] ${className}`}\n >\n <div\n className={`flex flex-row justify-center items-start pt-9 w-full min-h-[220px] rounded-[20px] shadow-3xl relative overflow-hidden credit-card-front-face`}\n >\n <div className=\"absolute top-[-40px] left-0 w-[55%] h-[140%] rounded-tr-[150px] rounded-br-[150px] bg-grayscale-900 credit-card-bubble\" />\n {showActionButton && (\n <button\n className=\"absolute top-2 right-4 bg-grayscale-500 border-[2px] rounded-3xl border-solid border-color-grayscale-900 min-w-[110px] p-[2px] font-bold text-xs tracking-wide leading-snug text-center text-white\"\n onClick={onClick}\n data-testid=\"credit-card-frontface-button\"\n >\n {actionButtonText}\n </button>\n )}\n <div className=\"flex flex-row justify-between items-start w-full h-full relative\">\n <div className=\"flex flex-1 flex-col\">\n <div className=\"pl-8\">\n <p className=\"w-full text-xs text-white font-bold tracking-[7px] mb-2 credit-card-front-face-title\">\n LEARNCARD\n </p>\n <img\n src={CardChip ?? ''}\n alt=\"card chip\"\n className=\"h-[30px] w-[42px]\"\n />\n </div>\n\n {userImageEl}\n </div>\n\n {qrCodeValue && (\n <div className=\"flex flex-1 justify-center items-center relative pl-10 credit-card-qr-code-container\">\n <div className=\"h-auto relative qr-code-container\">\n {/* <div className=\"qr-code-upper-left-yellow\" />\n <div className=\"qr-code-upper-right-pink-square\" />\n <div className=\"qr-code-bottom-left-purple-square\" />\n <div className=\"qr-code-green-blob\" />\n <div className=\"qr-code-green-blob-2\" />\n <div className=\"qr-code-blue-blob\" />\n <div className=\"qr-code-orange-blob\" /> */}\n <QRCodeSVG\n className=\"h-full w-full\"\n value={qrCodeValue}\n data-testid=\"credit-card-qr-code\"\n bgColor=\"transparent\"\n // fgColor=\"#999999\"\n />\n </div>\n </div>\n )}\n\n <img\n src={MasterCardLogo ?? ''}\n alt=\"mastercard icon\"\n className=\"absolute bottom-[-8px] right-4 learn-card-mastercard-logo\"\n />\n </div>\n </div>\n {children}\n </div>\n );\n};\n\nexport default LearnCardCreditCardFrontFace;\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { L as LCSubtypes } from './index-28917993.js';
3
- import { T as TYPE_TO_MINI_ICON } from './index-b102febc.js';
3
+ import { T as TYPE_TO_MINI_ICON } from './index-cbe3a76a.js';
4
4
 
5
5
  const TYPE_TO_COLOR = {
6
6
  [LCSubtypes.course]: "bg-emerald-50",
@@ -20,15 +20,15 @@ const LearnPill = ({
20
20
  const imgSrc = TYPE_TO_MINI_ICON[type];
21
21
  const bgColor = TYPE_TO_COLOR[type];
22
22
  const textColor = TYPE_TO_TEXT_COLOR[type];
23
- return /* @__PURE__ */ React.createElement("div", {
24
- className: `course-card-stat-bubble px-[10px] rounded-[30px] flex ${bgColor} min-w-[48px] max-w-[100px] h-[30px] items-center ${className}`
25
- }, /* @__PURE__ */ React.createElement("img", {
26
- src: imgSrc,
27
- className: "mr-[5px]"
28
- }), /* @__PURE__ */ React.createElement("span", {
29
- className: `flex items-center text-sm ${textColor} font-bold`
30
- }, count));
23
+ return /* @__PURE__ */ React.createElement(
24
+ "div",
25
+ {
26
+ className: `course-card-stat-bubble px-[10px] rounded-[30px] flex ${bgColor} min-w-[48px] max-w-[100px] h-[30px] items-center ${className}`
27
+ },
28
+ /* @__PURE__ */ React.createElement("img", { src: imgSrc, className: "mr-[5px]" }),
29
+ /* @__PURE__ */ React.createElement("span", { className: `flex items-center text-sm ${textColor} font-bold` }, count)
30
+ );
31
31
  };
32
32
 
33
33
  export { LearnPill as L };
34
- //# sourceMappingURL=LearnPill-74bcb08c.js.map
34
+ //# sourceMappingURL=LearnPill-e0720485.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LearnPill-74bcb08c.js","sources":["../../src/components/LearnPill/LearnPill.tsx"],"sourcesContent":["import React from 'react';\nimport { LearnPillProps, LCSubtypes } from '../../types';\nimport { TYPE_TO_MINI_ICON } from '../../constants/';\n\nconst TYPE_TO_COLOR: any = {\n [LCSubtypes.course]: 'bg-emerald-50',\n [LCSubtypes.achievement]: 'bg-spice-50',\n [LCSubtypes.skill]: 'bg-indigo-50',\n};\n\nconst TYPE_TO_TEXT_COLOR: any = {\n [LCSubtypes.course]: 'text-emerald-700',\n [LCSubtypes.achievement]: 'text-spice-500',\n [LCSubtypes.skill]: 'text-indigo-600',\n};\n\nexport const LearnPill: React.FC<LearnPillProps> = ({\n count = 0,\n type = LCSubtypes.course,\n className,\n}) => {\n const imgSrc = TYPE_TO_MINI_ICON[type];\n const bgColor = TYPE_TO_COLOR[type];\n const textColor = TYPE_TO_TEXT_COLOR[type];\n return (\n <div\n className={`course-card-stat-bubble px-[10px] rounded-[30px] flex ${bgColor} min-w-[48px] max-w-[100px] h-[30px] items-center ${className}`}\n >\n <img src={imgSrc} className=\"mr-[5px]\" />\n <span className={`flex items-center text-sm ${textColor} font-bold`}>{count}</span>\n </div>\n );\n};\n\nexport default LearnPill;\n"],"names":[],"mappings":";;;;AAIA,MAAM,aAAqB,GAAA;AAAA,EACvB,CAAC,WAAW,MAAS,GAAA,eAAA;AAAA,EACrB,CAAC,WAAW,WAAc,GAAA,aAAA;AAAA,EAC1B,CAAC,WAAW,KAAQ,GAAA,cAAA;AACxB,CAAA,CAAA;AAEA,MAAM,kBAA0B,GAAA;AAAA,EAC5B,CAAC,WAAW,MAAS,GAAA,kBAAA;AAAA,EACrB,CAAC,WAAW,WAAc,GAAA,gBAAA;AAAA,EAC1B,CAAC,WAAW,KAAQ,GAAA,iBAAA;AACxB,CAAA,CAAA;AAEO,MAAM,YAAsC,CAAC;AAAA,EAChD,KAAQ,GAAA,CAAA;AAAA,EACR,OAAO,UAAW,CAAA,MAAA;AAAA,EAClB,SAAA;AACJ,CAAM,KAAA;AACF,EAAA,MAAM,SAAS,iBAAkB,CAAA,IAAA,CAAA,CAAA;AACjC,EAAA,MAAM,UAAU,aAAc,CAAA,IAAA,CAAA,CAAA;AAC9B,EAAA,MAAM,YAAY,kBAAmB,CAAA,IAAA,CAAA,CAAA;AACrC,EAAA,uBACK,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IACG,SAAA,EAAW,yDAAyD,OAA4D,CAAA,kDAAA,EAAA,SAAA,CAAA,CAAA;AAAA,GAAA,kBAE/H,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IAAI,GAAK,EAAA,MAAA;AAAA,IAAQ,SAAU,EAAA,UAAA;AAAA,GAAW,mBACtC,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAA,IAAK,WAAW,CAA6B,0BAAA,EAAA,SAAA,CAAA,UAAA,CAAA;AAAA,GAAA,EAAwB,KAAM,CAChF,CAAA,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"LearnPill-e0720485.js","sources":["../../src/components/LearnPill/LearnPill.tsx"],"sourcesContent":["import React from 'react';\nimport { LearnPillProps, LCSubtypes } from '../../types';\nimport { TYPE_TO_MINI_ICON } from '../../constants/';\n\nconst TYPE_TO_COLOR: any = {\n [LCSubtypes.course]: 'bg-emerald-50',\n [LCSubtypes.achievement]: 'bg-spice-50',\n [LCSubtypes.skill]: 'bg-indigo-50',\n};\n\nconst TYPE_TO_TEXT_COLOR: any = {\n [LCSubtypes.course]: 'text-emerald-700',\n [LCSubtypes.achievement]: 'text-spice-500',\n [LCSubtypes.skill]: 'text-indigo-600',\n};\n\nexport const LearnPill: React.FC<LearnPillProps> = ({\n count = 0,\n type = LCSubtypes.course,\n className,\n}) => {\n const imgSrc = TYPE_TO_MINI_ICON[type];\n const bgColor = TYPE_TO_COLOR[type];\n const textColor = TYPE_TO_TEXT_COLOR[type];\n return (\n <div\n className={`course-card-stat-bubble px-[10px] rounded-[30px] flex ${bgColor} min-w-[48px] max-w-[100px] h-[30px] items-center ${className}`}\n >\n <img src={imgSrc} className=\"mr-[5px]\" />\n <span className={`flex items-center text-sm ${textColor} font-bold`}>{count}</span>\n </div>\n );\n};\n\nexport default LearnPill;\n"],"names":[],"mappings":";;;;AAIA,MAAM,aAAqB,GAAA;AAAA,EACvB,CAAC,UAAW,CAAA,MAAM,GAAG,eAAA;AAAA,EACrB,CAAC,UAAW,CAAA,WAAW,GAAG,aAAA;AAAA,EAC1B,CAAC,UAAW,CAAA,KAAK,GAAG,cAAA;AACxB,CAAA,CAAA;AAEA,MAAM,kBAA0B,GAAA;AAAA,EAC5B,CAAC,UAAW,CAAA,MAAM,GAAG,kBAAA;AAAA,EACrB,CAAC,UAAW,CAAA,WAAW,GAAG,gBAAA;AAAA,EAC1B,CAAC,UAAW,CAAA,KAAK,GAAG,iBAAA;AACxB,CAAA,CAAA;AAEO,MAAM,YAAsC,CAAC;AAAA,EAChD,KAAQ,GAAA,CAAA;AAAA,EACR,OAAO,UAAW,CAAA,MAAA;AAAA,EAClB,SAAA;AACJ,CAAM,KAAA;AACF,EAAM,MAAA,MAAA,GAAS,kBAAkB,IAAI,CAAA,CAAA;AACrC,EAAM,MAAA,OAAA,GAAU,cAAc,IAAI,CAAA,CAAA;AAClC,EAAM,MAAA,SAAA,GAAY,mBAAmB,IAAI,CAAA,CAAA;AACzC,EACI,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACG,SAAW,EAAA,CAAA,sDAAA,EAAyD,OAAO,CAAA,kDAAA,EAAqD,SAAS,CAAA,CAAA;AAAA,KAAA;AAAA,oBAExI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,GAAK,EAAA,MAAA,EAAQ,WAAU,UAAW,EAAA,CAAA;AAAA,wCACtC,MAAK,EAAA,EAAA,SAAA,EAAW,CAA6B,0BAAA,EAAA,SAAS,gBAAe,KAAM,CAAA;AAAA,GAChF,CAAA;AAER;;;;"}
@@ -2,25 +2,36 @@ import React, { useRef, useState, useCallback, useEffect } from 'react';
2
2
  import { createPortal } from 'react-dom';
3
3
 
4
4
  const X = ({ className = "", strokeWidth = "2" }) => {
5
- return /* @__PURE__ */ React.createElement("svg", {
6
- viewBox: "0 0 32 32",
7
- fill: "none",
8
- xmlns: "http://www.w3.org/2000/svg",
9
- className,
10
- "aria-label": "X"
11
- }, /* @__PURE__ */ React.createElement("path", {
12
- d: "M25 7L7 25",
13
- stroke: "currentColor",
14
- strokeWidth,
15
- strokeLinecap: "round",
16
- strokeLinejoin: "round"
17
- }), /* @__PURE__ */ React.createElement("path", {
18
- d: "M25 25L7 7",
19
- stroke: "currentColor",
20
- strokeWidth,
21
- strokeLinecap: "round",
22
- strokeLinejoin: "round"
23
- }));
5
+ return /* @__PURE__ */ React.createElement(
6
+ "svg",
7
+ {
8
+ viewBox: "0 0 32 32",
9
+ fill: "none",
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ className,
12
+ "aria-label": "X"
13
+ },
14
+ /* @__PURE__ */ React.createElement(
15
+ "path",
16
+ {
17
+ d: "M25 7L7 25",
18
+ stroke: "currentColor",
19
+ strokeWidth,
20
+ strokeLinecap: "round",
21
+ strokeLinejoin: "round"
22
+ }
23
+ ),
24
+ /* @__PURE__ */ React.createElement(
25
+ "path",
26
+ {
27
+ d: "M25 25L7 7",
28
+ stroke: "currentColor",
29
+ strokeWidth,
30
+ strokeLinecap: "round",
31
+ strokeLinejoin: "round"
32
+ }
33
+ )
34
+ );
24
35
  };
25
36
 
26
37
  var __async$1 = (__this, __arguments, generator) => {
@@ -43,7 +54,7 @@ var __async$1 = (__this, __arguments, generator) => {
43
54
  step((generator = generator.apply(__this, __arguments)).next());
44
55
  });
45
56
  };
46
- const getVideoMetadata = (url) => __async$1(void 0, null, function* () {
57
+ const getVideoMetadata = (url) => __async$1(null, null, function* () {
47
58
  var _a, _b, _c;
48
59
  try {
49
60
  const parsed = new URL(url);
@@ -59,8 +70,7 @@ const getVideoMetadata = (url) => __async$1(void 0, null, function* () {
59
70
  let thumb = `https://img.youtube.com/vi/${id}/maxresdefault.jpg`;
60
71
  try {
61
72
  const res = yield fetch(thumb, { method: "HEAD" });
62
- if (!res.ok)
63
- thumb = `https://img.youtube.com/vi/${id}/hqdefault.jpg`;
73
+ if (!res.ok) thumb = `https://img.youtube.com/vi/${id}/hqdefault.jpg`;
64
74
  } catch (e) {
65
75
  thumb = `https://img.youtube.com/vi/${id}/hqdefault.jpg`;
66
76
  }
@@ -180,19 +190,16 @@ const Lightbox = ({
180
190
  const goToNextItem = useCallback(() => {
181
191
  const currentIndex = items.findIndex((item) => item.url === currentUrl);
182
192
  const nextItem = items.at((currentIndex + 1) % items.length);
183
- if (nextItem)
184
- setCurrentUrl(nextItem.url);
193
+ if (nextItem) setCurrentUrl(nextItem.url);
185
194
  }, [currentUrl, items, setCurrentUrl]);
186
195
  const goToPreviousItem = useCallback(() => {
187
196
  const currentIndex = items.findIndex((item) => item.url === currentUrl);
188
197
  const previousItem = items.at((currentIndex - 1 + items.length) % items.length);
189
- if (previousItem)
190
- setCurrentUrl(previousItem.url);
198
+ if (previousItem) setCurrentUrl(previousItem.url);
191
199
  }, [currentUrl, items, setCurrentUrl]);
192
200
  useEffect(() => {
193
201
  const keydownListener = (e) => {
194
- if (!currentUrl || !currentItem)
195
- return;
202
+ if (!currentUrl || !currentItem) return;
196
203
  if (e.key === "Escape") {
197
204
  e.preventDefault();
198
205
  setCurrentUrl(void 0);
@@ -210,7 +217,7 @@ const Lightbox = ({
210
217
  return () => window.removeEventListener("keydown", keydownListener);
211
218
  }, [currentUrl, currentItem, goToNextItem, goToPreviousItem, setCurrentUrl]);
212
219
  useEffect(() => {
213
- const fetchMetadata = () => __async(void 0, null, function* () {
220
+ const fetchMetadata = () => __async(null, null, function* () {
214
221
  if ((currentItem == null ? void 0 : currentItem.type) === "video") {
215
222
  const metadata = yield getVideoMetadata(currentItem.url);
216
223
  setVideoMetadata(metadata);
@@ -220,39 +227,44 @@ const Lightbox = ({
220
227
  });
221
228
  fetchMetadata();
222
229
  }, [currentItem]);
223
- if (!currentUrl || !currentItem)
224
- return null;
230
+ if (!currentUrl || !currentItem) return null;
225
231
  return createPortal(
226
- /* @__PURE__ */ React.createElement("div", {
227
- className: "absolute top-0 left-0 w-screen h-screen bg-[rgba(0,0,0,0.9)] text-white flex justify-center items-center z-[999999]",
228
- onClick: (e) => {
229
- if (e.target !== innerRef.current) {
230
- setCurrentUrl(void 0);
232
+ /* @__PURE__ */ React.createElement(
233
+ "div",
234
+ {
235
+ className: "absolute top-0 left-0 w-screen h-screen bg-[rgba(0,0,0,0.9)] text-white flex justify-center items-center z-[999999]",
236
+ onClick: (e) => {
237
+ if (e.target !== innerRef.current) {
238
+ setCurrentUrl(void 0);
239
+ }
231
240
  }
232
- }
233
- }, showCloseButton && /* @__PURE__ */ React.createElement("button", {
234
- onClick: () => setCurrentUrl(void 0)
235
- }, /* @__PURE__ */ React.createElement(X, {
236
- className: "absolute w-[30px] h-[30px] top-[20px] right-[20px] cursor-pointer text-white z-[999999]"
237
- })), currentItem.type === "photo" && /* @__PURE__ */ React.createElement("img", {
238
- className: "cursor-pointer max-w-[90vw] max-h-[90vh]",
239
- src: currentUrl,
240
- onClick: () => enableImageClick && window.open(currentUrl, "_blank"),
241
- ref: innerRef,
242
- alt: ""
243
- }), currentItem.type === "video" && (videoMetadata == null ? void 0 : videoMetadata.embedUrl) && /* @__PURE__ */ React.createElement("div", {
244
- className: "relative w-[90vw] max-w-[800px] aspect-video"
245
- }, /* @__PURE__ */ React.createElement("iframe", {
246
- src: videoMetadata.embedUrl,
247
- className: "absolute top-0 left-0 w-full h-full rounded-md",
248
- title: "Video player",
249
- frameBorder: "0",
250
- allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
251
- allowFullScreen: true
252
- }))),
241
+ },
242
+ showCloseButton && /* @__PURE__ */ React.createElement("button", { onClick: () => setCurrentUrl(void 0) }, /* @__PURE__ */ React.createElement(X, { className: "absolute w-[30px] h-[30px] top-[20px] right-[20px] cursor-pointer text-white z-[999999]" })),
243
+ currentItem.type === "photo" && /* @__PURE__ */ React.createElement(
244
+ "img",
245
+ {
246
+ className: "cursor-pointer max-w-[90vw] max-h-[90vh]",
247
+ src: currentUrl,
248
+ onClick: () => enableImageClick && window.open(currentUrl, "_blank"),
249
+ ref: innerRef,
250
+ alt: ""
251
+ }
252
+ ),
253
+ currentItem.type === "video" && (videoMetadata == null ? void 0 : videoMetadata.embedUrl) && /* @__PURE__ */ React.createElement("div", { className: "relative w-[90vw] max-w-[800px] aspect-video" }, /* @__PURE__ */ React.createElement(
254
+ "iframe",
255
+ {
256
+ src: videoMetadata.embedUrl,
257
+ className: "absolute top-0 left-0 w-full h-full rounded-md",
258
+ title: "Video player",
259
+ frameBorder: "0",
260
+ allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
261
+ allowFullScreen: true
262
+ }
263
+ ))
264
+ ),
253
265
  document.body
254
266
  );
255
267
  };
256
268
 
257
269
  export { Lightbox as L, X };
258
- //# sourceMappingURL=Lightbox-2ae83d79.js.map
270
+ //# sourceMappingURL=Lightbox-f0338a0c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox-2ae83d79.js","sources":["../../src/components/svgs/X.tsx","../../src/helpers/video.helpers.ts","../../src/components/Lightbox/Lightbox.tsx"],"sourcesContent":["import React from 'react';\n\ntype XProps = {\n className?: string;\n strokeWidth?: string;\n};\n\nconst X: React.FC<XProps> = ({ className = '', strokeWidth = '2' }) => {\n return (\n <svg\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-label=\"X\"\n >\n <path\n d=\"M25 7L7 25\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M25 25L7 7\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\nexport default X;\n","export type VideoPlatform = 'youtube' | 'vimeo' | 'drive' | 'loom' | 'unknown';\n\nexport type VideoMetadata = {\n type: VideoPlatform;\n videoId: string | null;\n embedUrl: string | null;\n thumbnailUrl: string | null;\n};\n\nexport const getVideoMetadata = async (url: string): Promise<VideoMetadata> => {\n try {\n const parsed = new URL(url);\n const host = parsed.hostname.replace(/^www\\./, '');\n let id: string | null = null;\n\n // YouTube\n if (host === 'youtu.be' || host.includes('youtube.com')) {\n if (host === 'youtu.be') {\n id = parsed.pathname.slice(1);\n } else {\n id =\n parsed.searchParams.get('v') ||\n parsed.pathname.split('/').filter(Boolean).pop() ||\n null;\n }\n if (id) {\n let thumb = `https://img.youtube.com/vi/${id}/maxresdefault.jpg`;\n try {\n const res = await fetch(thumb, { method: 'HEAD' });\n if (!res.ok) thumb = `https://img.youtube.com/vi/${id}/hqdefault.jpg`;\n } catch {\n thumb = `https://img.youtube.com/vi/${id}/hqdefault.jpg`;\n }\n return {\n type: 'youtube',\n videoId: id,\n embedUrl: `https://www.youtube.com/embed/${id}`,\n thumbnailUrl: thumb,\n };\n }\n }\n\n // Vimeo\n if (host.includes('vimeo.com')) {\n const match = url.match(/vimeo\\.com\\/(\\d+)/);\n id = match?.[1] ?? null;\n if (id) {\n try {\n const oembed = `https://vimeo.com/api/oembed.json?url=${encodeURIComponent(\n url\n )}`;\n const data = await fetch(oembed).then(r => r.json());\n return {\n type: 'vimeo',\n videoId: id,\n embedUrl: `https://player.vimeo.com/video/${id}`,\n thumbnailUrl: data.thumbnail_url,\n };\n } catch (e) {\n // Fallback if oEmbed fails\n return {\n type: 'vimeo',\n videoId: id,\n embedUrl: `https://player.vimeo.com/video/${id}`,\n thumbnailUrl: null,\n };\n }\n }\n }\n\n // Google Drive\n if (host === 'drive.google.com' || host === 'docs.google.com') {\n const match = parsed.pathname.match(/\\/d\\/([^/]+)/);\n id = match?.[1] ?? parsed.searchParams.get('id');\n if (id) {\n return {\n type: 'drive',\n videoId: id,\n embedUrl: `https://drive.google.com/file/d/${id}/preview`,\n thumbnailUrl: `https://drive.google.com/thumbnail?sz=w320-h320&id=${id}`,\n };\n }\n }\n\n // Loom\n if (host === 'loom.com') {\n const match = parsed.pathname.match(/\\/(?:share|embed|watch)\\/([A-Za-z0-9]+)/);\n id = match?.[1] ?? null;\n if (id) {\n const embedUrl = `https://www.loom.com/embed/${id}`;\n try {\n const oembedUrl = `https://www.loom.com/api/oembed?url=${encodeURIComponent(\n url\n )}`;\n const response = await fetch(oembedUrl);\n if (!response.ok) {\n throw new Error(`oEmbed API returned ${response.status}`);\n }\n const data = await response.json();\n return {\n type: 'loom',\n videoId: id,\n embedUrl,\n thumbnailUrl: data.thumbnail_url,\n };\n } catch (e) {\n // Fallback if oEmbed fails\n console.warn('Loom oEmbed fetch failed:', e);\n return {\n type: 'loom',\n videoId: id,\n embedUrl,\n thumbnailUrl: null,\n };\n }\n }\n }\n\n // Fallback\n return { type: 'unknown', videoId: null, embedUrl: null, thumbnailUrl: null };\n } catch (e) {\n console.error('getVideoMetadata error:', e);\n return { type: 'unknown', videoId: null, embedUrl: null, thumbnailUrl: null };\n }\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport X from '../svgs/X';\n\nimport { getVideoMetadata, VideoMetadata } from '../../helpers/video.helpers';\n\nexport type LightboxItemType = 'photo' | 'video';\n\nexport type LightboxItem = {\n url: string;\n type: LightboxItemType;\n};\n\nexport type LightboxImage = LightboxItem & {\n type: 'photo';\n alt?: string;\n};\n\nexport type LightboxVideo = LightboxItem & {\n type: 'video';\n};\n\nexport type LightboxProps = {\n items: LightboxItem[];\n currentUrl: string | undefined;\n setCurrentUrl: (url: string | undefined) => void;\n showCloseButton?: boolean;\n enableImageClick?: boolean;\n};\n\nexport const Lightbox: React.FC<LightboxProps> = ({\n items,\n currentUrl,\n setCurrentUrl,\n showCloseButton = true,\n enableImageClick = false,\n}) => {\n const currentItem = items.find(item => item.url === currentUrl);\n const innerRef = useRef<HTMLImageElement>(null);\n const [videoMetadata, setVideoMetadata] = useState<VideoMetadata | null>(null);\n\n const goToNextItem = useCallback(() => {\n const currentIndex = items.findIndex(item => item.url === currentUrl);\n const nextItem = items.at((currentIndex + 1) % items.length);\n if (nextItem) setCurrentUrl(nextItem.url);\n }, [currentUrl, items, setCurrentUrl]);\n\n const goToPreviousItem = useCallback(() => {\n const currentIndex = items.findIndex(item => item.url === currentUrl);\n const previousItem = items.at((currentIndex - 1 + items.length) % items.length);\n if (previousItem) setCurrentUrl(previousItem.url);\n }, [currentUrl, items, setCurrentUrl]);\n\n useEffect(() => {\n const keydownListener = (e: KeyboardEvent) => {\n if (!currentUrl || !currentItem) return;\n\n if (e.key === 'Escape') {\n e.preventDefault();\n setCurrentUrl(undefined);\n }\n\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n goToNextItem();\n }\n\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n goToPreviousItem();\n }\n };\n\n window.addEventListener('keydown', keydownListener);\n return () => window.removeEventListener('keydown', keydownListener);\n }, [currentUrl, currentItem, goToNextItem, goToPreviousItem, setCurrentUrl]);\n\n useEffect(() => {\n const fetchMetadata = async () => {\n if (currentItem?.type === 'video') {\n const metadata = await getVideoMetadata(currentItem.url);\n setVideoMetadata(metadata);\n } else {\n setVideoMetadata(null);\n }\n };\n\n fetchMetadata();\n }, [currentItem]);\n\n if (!currentUrl || !currentItem) return null;\n\n return createPortal(\n <div\n className=\"absolute top-0 left-0 w-screen h-screen bg-[rgba(0,0,0,0.9)] text-white flex justify-center items-center z-[999999]\"\n onClick={e => {\n if (e.target !== innerRef.current) {\n setCurrentUrl(undefined);\n }\n }}\n >\n {showCloseButton && (\n <button onClick={() => setCurrentUrl(undefined)}>\n <X className=\"absolute w-[30px] h-[30px] top-[20px] right-[20px] cursor-pointer text-white z-[999999]\" />\n </button>\n )}\n {currentItem.type === 'photo' && (\n <img\n className=\"cursor-pointer max-w-[90vw] max-h-[90vh]\"\n src={currentUrl}\n onClick={() => enableImageClick && window.open(currentUrl, '_blank')}\n ref={innerRef}\n alt=\"\"\n />\n )}\n\n {currentItem.type === 'video' && videoMetadata?.embedUrl && (\n <div className=\"relative w-[90vw] max-w-[800px] aspect-video\">\n <iframe\n src={videoMetadata.embedUrl}\n className=\"absolute top-0 left-0 w-full h-full rounded-md\"\n title=\"Video player\"\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n </div>\n )}\n </div>,\n document.body\n );\n};\n"],"names":["__async"],"mappings":"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"}
1
+ {"version":3,"file":"Lightbox-f0338a0c.js","sources":["../../src/components/svgs/X.tsx","../../src/helpers/video.helpers.ts","../../src/components/Lightbox/Lightbox.tsx"],"sourcesContent":["import React from 'react';\n\ntype XProps = {\n className?: string;\n strokeWidth?: string;\n};\n\nconst X: React.FC<XProps> = ({ className = '', strokeWidth = '2' }) => {\n return (\n <svg\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-label=\"X\"\n >\n <path\n d=\"M25 7L7 25\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M25 25L7 7\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\nexport default X;\n","export type VideoPlatform = 'youtube' | 'vimeo' | 'drive' | 'loom' | 'unknown';\n\nexport type VideoMetadata = {\n type: VideoPlatform;\n videoId: string | null;\n embedUrl: string | null;\n thumbnailUrl: string | null;\n};\n\nexport const getVideoMetadata = async (url: string): Promise<VideoMetadata> => {\n try {\n const parsed = new URL(url);\n const host = parsed.hostname.replace(/^www\\./, '');\n let id: string | null = null;\n\n // YouTube\n if (host === 'youtu.be' || host.includes('youtube.com')) {\n if (host === 'youtu.be') {\n id = parsed.pathname.slice(1);\n } else {\n id =\n parsed.searchParams.get('v') ||\n parsed.pathname.split('/').filter(Boolean).pop() ||\n null;\n }\n if (id) {\n let thumb = `https://img.youtube.com/vi/${id}/maxresdefault.jpg`;\n try {\n const res = await fetch(thumb, { method: 'HEAD' });\n if (!res.ok) thumb = `https://img.youtube.com/vi/${id}/hqdefault.jpg`;\n } catch {\n thumb = `https://img.youtube.com/vi/${id}/hqdefault.jpg`;\n }\n return {\n type: 'youtube',\n videoId: id,\n embedUrl: `https://www.youtube.com/embed/${id}`,\n thumbnailUrl: thumb,\n };\n }\n }\n\n // Vimeo\n if (host.includes('vimeo.com')) {\n const match = url.match(/vimeo\\.com\\/(\\d+)/);\n id = match?.[1] ?? null;\n if (id) {\n try {\n const oembed = `https://vimeo.com/api/oembed.json?url=${encodeURIComponent(\n url\n )}`;\n const data = await fetch(oembed).then(r => r.json());\n return {\n type: 'vimeo',\n videoId: id,\n embedUrl: `https://player.vimeo.com/video/${id}`,\n thumbnailUrl: data.thumbnail_url,\n };\n } catch (e) {\n // Fallback if oEmbed fails\n return {\n type: 'vimeo',\n videoId: id,\n embedUrl: `https://player.vimeo.com/video/${id}`,\n thumbnailUrl: null,\n };\n }\n }\n }\n\n // Google Drive\n if (host === 'drive.google.com' || host === 'docs.google.com') {\n const match = parsed.pathname.match(/\\/d\\/([^/]+)/);\n id = match?.[1] ?? parsed.searchParams.get('id');\n if (id) {\n return {\n type: 'drive',\n videoId: id,\n embedUrl: `https://drive.google.com/file/d/${id}/preview`,\n thumbnailUrl: `https://drive.google.com/thumbnail?sz=w320-h320&id=${id}`,\n };\n }\n }\n\n // Loom\n if (host === 'loom.com') {\n const match = parsed.pathname.match(/\\/(?:share|embed|watch)\\/([A-Za-z0-9]+)/);\n id = match?.[1] ?? null;\n if (id) {\n const embedUrl = `https://www.loom.com/embed/${id}`;\n try {\n const oembedUrl = `https://www.loom.com/api/oembed?url=${encodeURIComponent(\n url\n )}`;\n const response = await fetch(oembedUrl);\n if (!response.ok) {\n throw new Error(`oEmbed API returned ${response.status}`);\n }\n const data = await response.json();\n return {\n type: 'loom',\n videoId: id,\n embedUrl,\n thumbnailUrl: data.thumbnail_url,\n };\n } catch (e) {\n // Fallback if oEmbed fails\n console.warn('Loom oEmbed fetch failed:', e);\n return {\n type: 'loom',\n videoId: id,\n embedUrl,\n thumbnailUrl: null,\n };\n }\n }\n }\n\n // Fallback\n return { type: 'unknown', videoId: null, embedUrl: null, thumbnailUrl: null };\n } catch (e) {\n console.error('getVideoMetadata error:', e);\n return { type: 'unknown', videoId: null, embedUrl: null, thumbnailUrl: null };\n }\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport X from '../svgs/X';\n\nimport { getVideoMetadata, VideoMetadata } from '../../helpers/video.helpers';\n\nexport type LightboxItemType = 'photo' | 'video';\n\nexport type LightboxItem = {\n url: string;\n type: LightboxItemType;\n};\n\nexport type LightboxImage = LightboxItem & {\n type: 'photo';\n alt?: string;\n};\n\nexport type LightboxVideo = LightboxItem & {\n type: 'video';\n};\n\nexport type LightboxProps = {\n items: LightboxItem[];\n currentUrl: string | undefined;\n setCurrentUrl: (url: string | undefined) => void;\n showCloseButton?: boolean;\n enableImageClick?: boolean;\n};\n\nexport const Lightbox: React.FC<LightboxProps> = ({\n items,\n currentUrl,\n setCurrentUrl,\n showCloseButton = true,\n enableImageClick = false,\n}) => {\n const currentItem = items.find(item => item.url === currentUrl);\n const innerRef = useRef<HTMLImageElement>(null);\n const [videoMetadata, setVideoMetadata] = useState<VideoMetadata | null>(null);\n\n const goToNextItem = useCallback(() => {\n const currentIndex = items.findIndex(item => item.url === currentUrl);\n const nextItem = items.at((currentIndex + 1) % items.length);\n if (nextItem) setCurrentUrl(nextItem.url);\n }, [currentUrl, items, setCurrentUrl]);\n\n const goToPreviousItem = useCallback(() => {\n const currentIndex = items.findIndex(item => item.url === currentUrl);\n const previousItem = items.at((currentIndex - 1 + items.length) % items.length);\n if (previousItem) setCurrentUrl(previousItem.url);\n }, [currentUrl, items, setCurrentUrl]);\n\n useEffect(() => {\n const keydownListener = (e: KeyboardEvent) => {\n if (!currentUrl || !currentItem) return;\n\n if (e.key === 'Escape') {\n e.preventDefault();\n setCurrentUrl(undefined);\n }\n\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n goToNextItem();\n }\n\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n goToPreviousItem();\n }\n };\n\n window.addEventListener('keydown', keydownListener);\n return () => window.removeEventListener('keydown', keydownListener);\n }, [currentUrl, currentItem, goToNextItem, goToPreviousItem, setCurrentUrl]);\n\n useEffect(() => {\n const fetchMetadata = async () => {\n if (currentItem?.type === 'video') {\n const metadata = await getVideoMetadata(currentItem.url);\n setVideoMetadata(metadata);\n } else {\n setVideoMetadata(null);\n }\n };\n\n fetchMetadata();\n }, [currentItem]);\n\n if (!currentUrl || !currentItem) return null;\n\n return createPortal(\n <div\n className=\"absolute top-0 left-0 w-screen h-screen bg-[rgba(0,0,0,0.9)] text-white flex justify-center items-center z-[999999]\"\n onClick={e => {\n if (e.target !== innerRef.current) {\n setCurrentUrl(undefined);\n }\n }}\n >\n {showCloseButton && (\n <button onClick={() => setCurrentUrl(undefined)}>\n <X className=\"absolute w-[30px] h-[30px] top-[20px] right-[20px] cursor-pointer text-white z-[999999]\" />\n </button>\n )}\n {currentItem.type === 'photo' && (\n <img\n className=\"cursor-pointer max-w-[90vw] max-h-[90vh]\"\n src={currentUrl}\n onClick={() => enableImageClick && window.open(currentUrl, '_blank')}\n ref={innerRef}\n alt=\"\"\n />\n )}\n\n {currentItem.type === 'video' && videoMetadata?.embedUrl && (\n <div className=\"relative w-[90vw] max-w-[800px] aspect-video\">\n <iframe\n src={videoMetadata.embedUrl}\n className=\"absolute top-0 left-0 w-full h-full rounded-md\"\n title=\"Video player\"\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n </div>\n )}\n </div>,\n document.body\n );\n};\n"],"names":["__async"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+
3
+ const IDSleeve = ({ className = "" }) => {
4
+ return /* @__PURE__ */ React.createElement(
5
+ "svg",
6
+ {
7
+ xmlns: "http://www.w3.org/2000/svg",
8
+ width: "295",
9
+ height: "89",
10
+ viewBox: "0 0 295 89",
11
+ fill: "none",
12
+ className
13
+ },
14
+ /* @__PURE__ */ React.createElement(
15
+ "path",
16
+ {
17
+ d: "M148.777 31.7103H146.223C116.199 31.7103 114.71 0 94.4184 0H0V88.0597H295V0H200.582C178.526 0 176.899 31.7103 148.777 31.7103Z",
18
+ fill: "currentColor"
19
+ }
20
+ )
21
+ );
22
+ };
23
+
24
+ const Lightbulb = ({ className = "" }) => {
25
+ return /* @__PURE__ */ React.createElement("svg", { viewBox: "0 0 31 30", fill: "none", className, "data-testid": "skill-icon" }, /* @__PURE__ */ React.createElement(
26
+ "path",
27
+ {
28
+ d: "M21.8624 3.52515C20.7128 2.57963 19.3666 1.90268 17.922 1.5437C16.4774 1.18472 14.9709 1.15276 13.5124 1.45015C11.5704 1.84242 9.78866 2.80274 8.39328 4.20925C6.9979 5.61576 6.05177 7.40506 5.67493 9.35015C5.39974 10.8085 5.44974 12.3097 5.82138 13.7466C6.19302 15.1834 6.87713 16.5206 7.82493 17.6626C8.70453 18.6552 9.20872 19.9245 9.24993 21.2501V25.0001C9.24993 25.9947 9.64502 26.9485 10.3483 27.6518C11.0515 28.3551 12.0054 28.7501 12.9999 28.7501H17.9999C18.9945 28.7501 19.9483 28.3551 20.6516 27.6518C21.3548 26.9485 21.7499 25.9947 21.7499 25.0001V21.4876C21.7919 20.0241 22.3296 18.6182 23.2749 17.5001C24.9313 15.4511 25.7121 12.8312 25.4476 10.2097C25.1832 7.58819 23.8947 5.17701 21.8624 3.50015V3.52515ZM19.2499 25.0001C19.2499 25.3317 19.1182 25.6496 18.8838 25.884C18.6494 26.1185 18.3314 26.2501 17.9999 26.2501H12.9999C12.6684 26.2501 12.3505 26.1185 12.116 25.884C11.8816 25.6496 11.7499 25.3317 11.7499 25.0001V23.7501H19.2499V25.0001ZM21.3374 15.9501C20.0806 17.4409 19.3473 19.3027 19.2499 21.2501H16.7499V17.5001C16.7499 17.1686 16.6182 16.8507 16.3838 16.6163C16.1494 16.3818 15.8314 16.2501 15.4999 16.2501C15.1684 16.2501 14.8505 16.3818 14.616 16.6163C14.3816 16.8507 14.2499 17.1686 14.2499 17.5001V21.2501H11.7499C11.7169 19.3353 11.0086 17.4936 9.74993 16.0501C8.91948 15.0551 8.36104 13.8619 8.12907 12.5868C7.89709 11.3117 7.99949 9.99829 8.42629 8.77456C8.85308 7.55083 9.58971 6.45858 10.5643 5.6043C11.539 4.75003 12.7183 4.1629 13.9874 3.90015C15.0781 3.67558 16.2051 3.6967 17.2866 3.96198C18.3681 4.22727 19.377 4.73005 20.24 5.43384C21.103 6.13762 21.7984 7.02474 22.2758 8.03079C22.7532 9.03685 23.0005 10.1366 22.9999 11.2501C23.0092 12.9625 22.4213 14.6245 21.3374 15.9501V15.9501Z",
29
+ fill: "currentColor"
30
+ }
31
+ ));
32
+ };
33
+
34
+ export { IDSleeve as I, Lightbulb as L };
35
+ //# sourceMappingURL=Lightbulb-7e24711e.js.map