@learncard/react 2.10.8 → 2.12.0

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 (164) hide show
  1. package/dist/base.css +1 -1
  2. package/dist/base.js +1 -1
  3. package/dist/cjs/{BoostGenericCard-99a3ab28.js → BoostGenericCard-71899305.js} +66 -7
  4. package/dist/cjs/BoostGenericCard-71899305.js.map +1 -0
  5. package/dist/cjs/{CertificateDisplayCard-b673e66d.js → CertificateDisplayCard-f10b46b1.js} +5 -5
  6. package/dist/cjs/{CertificateDisplayCard-b673e66d.js.map → CertificateDisplayCard-f10b46b1.js.map} +1 -1
  7. package/dist/cjs/{Lightbox-d72e19ba.js → Lightbox-e2996736.js} +100 -2
  8. package/dist/cjs/Lightbox-e2996736.js.map +1 -0
  9. package/dist/cjs/{MeritBadgeDisplayCard-15b85a79.js → MeritBadgeDisplayCard-d50cfb5e.js} +5 -5
  10. package/dist/cjs/{MeritBadgeDisplayCard-15b85a79.js.map → MeritBadgeDisplayCard-d50cfb5e.js.map} +1 -1
  11. package/dist/cjs/{MeritBadgeSkillsCount-f62ad753.js → MeritBadgeSkillsCount-e46503f5.js} +2 -2
  12. package/dist/cjs/{MeritBadgeSkillsCount-f62ad753.js.map → MeritBadgeSkillsCount-e46503f5.js.map} +1 -1
  13. package/dist/cjs/{SchoolIDCard-10796199.js → SchoolIDCard-2d3cbb2c.js} +3 -1184
  14. package/dist/cjs/SchoolIDCard-2d3cbb2c.js.map +1 -0
  15. package/dist/cjs/{VCCard-4f02e2f4.js → VCCard-42479c97.js} +3 -3
  16. package/dist/cjs/{VCCard-4f02e2f4.js.map → VCCard-42479c97.js.map} +1 -1
  17. package/dist/cjs/{VCDisplayBackFace-aab4d52c.js → VCDisplayBackFace-d1cf9f73.js} +3 -3
  18. package/dist/cjs/{VCDisplayBackFace-aab4d52c.js.map → VCDisplayBackFace-d1cf9f73.js.map} +1 -1
  19. package/dist/cjs/{VCDisplayCard-95b7f7dc.js → VCDisplayCard-cf46c224.js} +3 -3
  20. package/dist/cjs/{VCDisplayCard-95b7f7dc.js.map → VCDisplayCard-cf46c224.js.map} +1 -1
  21. package/dist/cjs/{VCDisplayCard2-8517f419.js → VCDisplayCard2-4a201a8a.js} +95 -69
  22. package/dist/cjs/VCDisplayCard2-4a201a8a.js.map +1 -0
  23. package/dist/cjs/{VCVerificationPill-b5824def.js → VCVerificationPill-6c9dcf80.js} +2 -2
  24. package/dist/cjs/{VCVerificationPill-b5824def.js.map → VCVerificationPill-6c9dcf80.js.map} +1 -1
  25. package/dist/cjs/{VerifierStateBadgeAndText-c15064b2.js → VerifierStateBadgeAndText-934239ab.js} +134 -6
  26. package/dist/cjs/VerifierStateBadgeAndText-934239ab.js.map +1 -0
  27. package/dist/cjs/{credential.helpers-98fc74d8.js → credential.helpers-17a10601.js} +2 -2
  28. package/dist/cjs/{credential.helpers-98fc74d8.js.map → credential.helpers-17a10601.js.map} +1 -1
  29. package/dist/cjs/{i18n-cc7e34ec.js → i18n-8fd90b2f.js} +5 -2
  30. package/dist/cjs/i18n-8fd90b2f.js.map +1 -0
  31. package/dist/cjs/index-47efbf5b.js +1186 -0
  32. package/dist/cjs/index-47efbf5b.js.map +1 -0
  33. package/dist/cjs/index-5488badc.js.map +1 -1
  34. package/dist/cjs/index.js +28 -19
  35. package/dist/cjs/index.js.map +1 -1
  36. package/dist/cjs/index14.js +18 -15
  37. package/dist/cjs/index14.js.map +1 -1
  38. package/dist/cjs/index20.js +2 -1
  39. package/dist/cjs/index20.js.map +1 -1
  40. package/dist/cjs/index22.js +7 -7
  41. package/dist/cjs/index31.js +2 -1
  42. package/dist/cjs/index31.js.map +1 -1
  43. package/dist/cjs/index39.js +13 -12
  44. package/dist/cjs/index39.js.map +1 -1
  45. package/dist/cjs/index4.js +4 -3
  46. package/dist/cjs/index4.js.map +1 -1
  47. package/dist/cjs/index40.js +4 -4
  48. package/dist/cjs/index41.js +5 -5
  49. package/dist/cjs/index42.js +10 -8
  50. package/dist/cjs/index42.js.map +1 -1
  51. package/dist/cjs/index43.js +1 -1
  52. package/dist/cjs/index46.js +2 -2
  53. package/dist/cjs/index7.js +5 -5
  54. package/dist/cjs/{types.esm-f1680b31.js → types.esm-73624b33.js} +105 -4
  55. package/dist/cjs/types.esm-73624b33.js.map +1 -0
  56. package/dist/esm/{AchievementCard-c600788a.js → AchievementCard-0f183e9d.js} +2 -2
  57. package/dist/esm/{AchievementCard-c600788a.js.map → AchievementCard-0f183e9d.js.map} +1 -1
  58. package/dist/esm/{BoostGenericCard-7dfcc887.js → BoostGenericCard-3b3ff784.js} +67 -9
  59. package/dist/esm/BoostGenericCard-3b3ff784.js.map +1 -0
  60. package/dist/esm/{BoostSmallCard-a73b6800.js → BoostSmallCard-3dedb5ae.js} +2 -2
  61. package/dist/esm/{BoostSmallCard-a73b6800.js.map → BoostSmallCard-3dedb5ae.js.map} +1 -1
  62. package/dist/esm/{CertificateDisplayCard-4e9254e0.js → CertificateDisplayCard-f26ef278.js} +5 -5
  63. package/dist/esm/{CertificateDisplayCard-4e9254e0.js.map → CertificateDisplayCard-f26ef278.js.map} +1 -1
  64. package/dist/esm/{GenericCard-a469f2f0.js → GenericCard-b40c0617.js} +2 -2
  65. package/dist/esm/{GenericCard-a469f2f0.js.map → GenericCard-b40c0617.js.map} +1 -1
  66. package/dist/esm/{JobListCard-e8b4ab33.js → JobListCard-dfb94830.js} +2 -2
  67. package/dist/esm/{JobListCard-e8b4ab33.js.map → JobListCard-dfb94830.js.map} +1 -1
  68. package/dist/esm/{LearnPill-e0720485.js → LearnPill-ce240a4a.js} +2 -2
  69. package/dist/esm/{LearnPill-e0720485.js.map → LearnPill-ce240a4a.js.map} +1 -1
  70. package/dist/esm/{Lightbox-f0338a0c.js → Lightbox-11f4888d.js} +95 -3
  71. package/dist/esm/Lightbox-11f4888d.js.map +1 -0
  72. package/dist/esm/{MeritBadgeDisplayCard-2029a552.js → MeritBadgeDisplayCard-0d0b28c7.js} +5 -5
  73. package/dist/esm/{MeritBadgeDisplayCard-2029a552.js.map → MeritBadgeDisplayCard-0d0b28c7.js.map} +1 -1
  74. package/dist/esm/{MeritBadgeSkillsCount-c5271d7f.js → MeritBadgeSkillsCount-09e211fc.js} +2 -2
  75. package/dist/esm/{MeritBadgeSkillsCount-c5271d7f.js.map → MeritBadgeSkillsCount-09e211fc.js.map} +1 -1
  76. package/dist/esm/{SchoolIDCard-f82e40bc.js → SchoolIDCard-fbd1cf6c.js} +2 -1183
  77. package/dist/esm/SchoolIDCard-fbd1cf6c.js.map +1 -0
  78. package/dist/esm/{VCCard-c0f6dff3.js → VCCard-7e5e00d7.js} +3 -3
  79. package/dist/esm/{VCCard-c0f6dff3.js.map → VCCard-7e5e00d7.js.map} +1 -1
  80. package/dist/esm/{VCDisplayBackFace-bb60a881.js → VCDisplayBackFace-ae74476d.js} +3 -3
  81. package/dist/esm/{VCDisplayBackFace-bb60a881.js.map → VCDisplayBackFace-ae74476d.js.map} +1 -1
  82. package/dist/esm/{VCDisplayCard-9905d9d3.js → VCDisplayCard-ac1f367a.js} +3 -3
  83. package/dist/esm/{VCDisplayCard-9905d9d3.js.map → VCDisplayCard-ac1f367a.js.map} +1 -1
  84. package/dist/esm/{VCDisplayCard2-fc5c4225.js → VCDisplayCard2-7011596e.js} +96 -71
  85. package/dist/esm/VCDisplayCard2-7011596e.js.map +1 -0
  86. package/dist/esm/{VCVerificationPill-83eb61f4.js → VCVerificationPill-04ffdf56.js} +2 -2
  87. package/dist/esm/{VCVerificationPill-83eb61f4.js.map → VCVerificationPill-04ffdf56.js.map} +1 -1
  88. package/dist/esm/{VerifierStateBadgeAndText-60b98d25.js → VerifierStateBadgeAndText-750a6c24.js} +134 -6
  89. package/dist/esm/VerifierStateBadgeAndText-750a6c24.js.map +1 -0
  90. package/dist/esm/{constants-f1ed610c.js → constants-010faf74.js} +2 -2
  91. package/dist/esm/{constants-f1ed610c.js.map → constants-010faf74.js.map} +1 -1
  92. package/dist/esm/{credential.helpers-00099c70.js → credential.helpers-4fbdd8e8.js} +2 -2
  93. package/dist/esm/{credential.helpers-00099c70.js.map → credential.helpers-4fbdd8e8.js.map} +1 -1
  94. package/dist/esm/{i18n-8454d6ea.js → i18n-08b606cb.js} +5 -2
  95. package/dist/esm/i18n-08b606cb.js.map +1 -0
  96. package/dist/esm/index-28917993.js.map +1 -1
  97. package/dist/esm/{index-cbe3a76a.js → index-7542e9ee.js} +2 -2
  98. package/dist/esm/{index-cbe3a76a.js.map → index-7542e9ee.js.map} +1 -1
  99. package/dist/esm/index-cbd2e9db.js +1184 -0
  100. package/dist/esm/index-cbd2e9db.js.map +1 -0
  101. package/dist/esm/index.js +25 -24
  102. package/dist/esm/index.js.map +1 -1
  103. package/dist/esm/index13.js +2 -2
  104. package/dist/esm/index14.js +23 -22
  105. package/dist/esm/index14.js.map +1 -1
  106. package/dist/esm/index16.js +2 -2
  107. package/dist/esm/index19.js +2 -2
  108. package/dist/esm/index2.js +2 -2
  109. package/dist/esm/index20.js +1 -1
  110. package/dist/esm/index22.js +7 -7
  111. package/dist/esm/index30.js +2 -2
  112. package/dist/esm/index31.js +2 -1
  113. package/dist/esm/index31.js.map +1 -1
  114. package/dist/esm/index39.js +13 -12
  115. package/dist/esm/index39.js.map +1 -1
  116. package/dist/esm/index4.js +5 -4
  117. package/dist/esm/index4.js.map +1 -1
  118. package/dist/esm/index40.js +4 -4
  119. package/dist/esm/index41.js +5 -5
  120. package/dist/esm/index42.js +9 -8
  121. package/dist/esm/index42.js.map +1 -1
  122. package/dist/esm/index43.js +1 -1
  123. package/dist/esm/index46.js +2 -2
  124. package/dist/esm/index5.js +2 -2
  125. package/dist/esm/index7.js +5 -5
  126. package/dist/esm/{types.esm-d6b48609.js → types.esm-5f75bd4a.js} +105 -4
  127. package/dist/esm/types.esm-5f75bd4a.js.map +1 -0
  128. package/dist/index.d.ts +104 -10
  129. package/dist/main.css +1 -1
  130. package/dist/main.js +1 -1
  131. package/package.json +3 -3
  132. package/src/assets/styles/main.css +10 -0
  133. package/src/components/BoostGenericCard/BoostGenericCard.tsx +60 -19
  134. package/src/components/BoostGenericCard/__tests__/BoostGenericCard.thumb.test.tsx +59 -0
  135. package/src/components/Lightbox/ExternalVideoFallback.tsx +53 -0
  136. package/src/components/Lightbox/Lightbox.tsx +23 -9
  137. package/src/components/Lightbox/__tests__/Lightbox.video.test.tsx +139 -0
  138. package/src/components/Lightbox/index.ts +1 -0
  139. package/src/components/VCDisplayCard2/FitText.tsx +75 -46
  140. package/src/components/VCDisplayCard2/VCDisplayCard2.tsx +59 -19
  141. package/src/components/VCDisplayCard2/VerificationRow.tsx +1 -0
  142. package/src/components/VCDisplayCard2/__tests__/FitText.test.tsx +140 -0
  143. package/src/components/VCDisplayCard2/__tests__/VCDisplayCard2Variant.test.ts +31 -0
  144. package/src/helpers/externalUrl.helpers.ts +51 -0
  145. package/src/helpers/lifecycle.helpers.ts +38 -0
  146. package/src/helpers/video.helpers.ts +41 -0
  147. package/src/i18n/index.test.ts +10 -0
  148. package/src/i18n/index.tsx +3 -0
  149. package/src/index.ts +8 -0
  150. package/src/types/index.ts +1 -0
  151. package/dist/cjs/BoostGenericCard-99a3ab28.js.map +0 -1
  152. package/dist/cjs/Lightbox-d72e19ba.js.map +0 -1
  153. package/dist/cjs/SchoolIDCard-10796199.js.map +0 -1
  154. package/dist/cjs/VCDisplayCard2-8517f419.js.map +0 -1
  155. package/dist/cjs/VerifierStateBadgeAndText-c15064b2.js.map +0 -1
  156. package/dist/cjs/i18n-cc7e34ec.js.map +0 -1
  157. package/dist/cjs/types.esm-f1680b31.js.map +0 -1
  158. package/dist/esm/BoostGenericCard-7dfcc887.js.map +0 -1
  159. package/dist/esm/Lightbox-f0338a0c.js.map +0 -1
  160. package/dist/esm/SchoolIDCard-f82e40bc.js.map +0 -1
  161. package/dist/esm/VCDisplayCard2-fc5c4225.js.map +0 -1
  162. package/dist/esm/VerifierStateBadgeAndText-60b98d25.js.map +0 -1
  163. package/dist/esm/i18n-8454d6ea.js.map +0 -1
  164. package/dist/esm/types.esm-d6b48609.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import { initLearnCard } from '@learncard/init';
3
- import { V as VCDisplayCard } from './VCDisplayCard-9905d9d3.js';
4
- import { V as VCDisplayCard2 } from './VCDisplayCard2-fc5c4225.js';
3
+ import { V as VCDisplayCard } from './VCDisplayCard-ac1f367a.js';
4
+ import { V as VCDisplayCard2 } from './VCDisplayCard2-7011596e.js';
5
5
 
6
6
  var __async = (__this, __arguments, generator) => {
7
7
  return new Promise((resolve, reject) => {
@@ -77,4 +77,4 @@ const VCCard = ({
77
77
  };
78
78
 
79
79
  export { VCCard as V };
80
- //# sourceMappingURL=VCCard-c0f6dff3.js.map
80
+ //# sourceMappingURL=VCCard-7e5e00d7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VCCard-c0f6dff3.js","sources":["../../src/components/VCCard/VCCard.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { initLearnCard } from '@learncard/init';\nimport { VC, Profile, VerificationItem } from '@learncard/types';\n\nimport { VCDisplayCard } from '../VCDisplayCard';\nimport {\n VCDisplayCard2,\n CredentialIconType,\n} from '../VCDisplayCard2';\n\nimport { MediaMetadata, VideoMetadata } from '../../types';\n\nexport type VCCardProps = {\n credential: VC;\n issueeOverride?: Profile;\n className?: string;\n version?: '1' | '2';\n\n /* Only used for version 2 */\n subjectImageComponent?: React.ReactNode;\n // convertTagsToSkills?: (tags: string[]) => { [skill: string]: string[] };\n handleXClick?: () => void;\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string) => void;\n bottomRightIcon?: CredentialIconType;\n};\n\nexport const VCCard: React.FC<VCCardProps> = ({\n credential,\n issueeOverride,\n className = '',\n version = '1',\n subjectImageComponent,\n // convertTagsToSkills,\n handleXClick,\n getFileMetadata,\n getVideoMetadata,\n onMediaAttachmentClick,\n bottomRightIcon,\n}) => {\n const [loading, setLoading] = useState(true);\n const [vcVerification, setVCVerification] = useState<VerificationItem[]>([]);\n\n useEffect(() => {\n const verify = async () => {\n const wallet = await initLearnCard();\n const verification = await wallet.invoke.verifyCredential(credential, {}, true);\n setVCVerification(verification);\n setLoading(false);\n };\n\n verify();\n }, [credential]);\n\n if (version === '1') {\n return (\n <VCDisplayCard\n credential={credential}\n issueeOverride={issueeOverride}\n className={className}\n loading={loading}\n verification={vcVerification}\n />\n );\n }\n return (\n <VCDisplayCard2\n credential={credential}\n issueeOverride={issueeOverride}\n verificationInProgress={loading}\n verificationItems={vcVerification}\n subjectImageComponent={subjectImageComponent}\n // convertTagsToSkills={convertTagsToSkills}\n handleXClick={handleXClick}\n getFileMetadata={getFileMetadata}\n getVideoMetadata={getVideoMetadata}\n onMediaAttachmentClick={onMediaAttachmentClick}\n bottomRightIcon={bottomRightIcon}\n />\n );\n};\n\nexport default VCCard;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,SAAgC,CAAC;AAAA,EAC1C,UAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAY,GAAA,EAAA;AAAA,EACZ,OAAU,GAAA,GAAA;AAAA,EACV,qBAAA;AAAA;AAAA,EAEA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,sBAAA;AAAA,EACA,eAAA;AACJ,CAAM,KAAA;AACF,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,IAAI,CAAA,CAAA;AAC3C,EAAA,MAAM,CAAC,cAAgB,EAAA,iBAAiB,CAAI,GAAA,QAAA,CAA6B,EAAE,CAAA,CAAA;AAE3E,EAAA,SAAA,CAAU,MAAM;AACZ,IAAA,MAAM,SAAS,MAAY,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACvB,MAAM,MAAA,MAAA,GAAS,MAAM,aAAc,EAAA,CAAA;AACnC,MAAM,MAAA,YAAA,GAAe,MAAM,MAAO,CAAA,MAAA,CAAO,iBAAiB,UAAY,EAAA,IAAI,IAAI,CAAA,CAAA;AAC9E,MAAA,iBAAA,CAAkB,YAAY,CAAA,CAAA;AAC9B,MAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,KACpB,CAAA,CAAA;AAEA,IAAO,MAAA,EAAA,CAAA;AAAA,GACX,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAA,IAAI,YAAY,GAAK,EAAA;AACjB,IACI,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACG,UAAA;AAAA,QACA,cAAA;AAAA,QACA,SAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAc,EAAA,cAAA;AAAA,OAAA;AAAA,KAClB,CAAA;AAAA,GAER;AACA,EACI,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACG,UAAA;AAAA,MACA,cAAA;AAAA,MACA,sBAAwB,EAAA,OAAA;AAAA,MACxB,iBAAmB,EAAA,cAAA;AAAA,MACnB,qBAAA;AAAA,MAEA,YAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,sBAAA;AAAA,MACA,eAAA;AAAA,KAAA;AAAA,GACJ,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"VCCard-7e5e00d7.js","sources":["../../src/components/VCCard/VCCard.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { initLearnCard } from '@learncard/init';\nimport { VC, Profile, VerificationItem } from '@learncard/types';\n\nimport { VCDisplayCard } from '../VCDisplayCard';\nimport {\n VCDisplayCard2,\n CredentialIconType,\n} from '../VCDisplayCard2';\n\nimport { MediaMetadata, VideoMetadata } from '../../types';\n\nexport type VCCardProps = {\n credential: VC;\n issueeOverride?: Profile;\n className?: string;\n version?: '1' | '2';\n\n /* Only used for version 2 */\n subjectImageComponent?: React.ReactNode;\n // convertTagsToSkills?: (tags: string[]) => { [skill: string]: string[] };\n handleXClick?: () => void;\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string) => void;\n bottomRightIcon?: CredentialIconType;\n};\n\nexport const VCCard: React.FC<VCCardProps> = ({\n credential,\n issueeOverride,\n className = '',\n version = '1',\n subjectImageComponent,\n // convertTagsToSkills,\n handleXClick,\n getFileMetadata,\n getVideoMetadata,\n onMediaAttachmentClick,\n bottomRightIcon,\n}) => {\n const [loading, setLoading] = useState(true);\n const [vcVerification, setVCVerification] = useState<VerificationItem[]>([]);\n\n useEffect(() => {\n const verify = async () => {\n const wallet = await initLearnCard();\n const verification = await wallet.invoke.verifyCredential(credential, {}, true);\n setVCVerification(verification);\n setLoading(false);\n };\n\n verify();\n }, [credential]);\n\n if (version === '1') {\n return (\n <VCDisplayCard\n credential={credential}\n issueeOverride={issueeOverride}\n className={className}\n loading={loading}\n verification={vcVerification}\n />\n );\n }\n return (\n <VCDisplayCard2\n credential={credential}\n issueeOverride={issueeOverride}\n verificationInProgress={loading}\n verificationItems={vcVerification}\n subjectImageComponent={subjectImageComponent}\n // convertTagsToSkills={convertTagsToSkills}\n handleXClick={handleXClick}\n getFileMetadata={getFileMetadata}\n getVideoMetadata={getVideoMetadata}\n onMediaAttachmentClick={onMediaAttachmentClick}\n bottomRightIcon={bottomRightIcon}\n />\n );\n};\n\nexport default VCCard;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,SAAgC,CAAC;AAAA,EAC1C,UAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAY,GAAA,EAAA;AAAA,EACZ,OAAU,GAAA,GAAA;AAAA,EACV,qBAAA;AAAA;AAAA,EAEA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,sBAAA;AAAA,EACA,eAAA;AACJ,CAAM,KAAA;AACF,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,IAAI,CAAA,CAAA;AAC3C,EAAA,MAAM,CAAC,cAAgB,EAAA,iBAAiB,CAAI,GAAA,QAAA,CAA6B,EAAE,CAAA,CAAA;AAE3E,EAAA,SAAA,CAAU,MAAM;AACZ,IAAA,MAAM,SAAS,MAAY,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACvB,MAAM,MAAA,MAAA,GAAS,MAAM,aAAc,EAAA,CAAA;AACnC,MAAM,MAAA,YAAA,GAAe,MAAM,MAAO,CAAA,MAAA,CAAO,iBAAiB,UAAY,EAAA,IAAI,IAAI,CAAA,CAAA;AAC9E,MAAA,iBAAA,CAAkB,YAAY,CAAA,CAAA;AAC9B,MAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,KACpB,CAAA,CAAA;AAEA,IAAO,MAAA,EAAA,CAAA;AAAA,GACX,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAA,IAAI,YAAY,GAAK,EAAA;AACjB,IACI,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACG,UAAA;AAAA,QACA,cAAA;AAAA,QACA,SAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAc,EAAA,cAAA;AAAA,OAAA;AAAA,KAClB,CAAA;AAAA,GAER;AACA,EACI,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACG,UAAA;AAAA,MACA,cAAA;AAAA,MACA,sBAAwB,EAAA,OAAA;AAAA,MACxB,iBAAmB,EAAA,cAAA;AAAA,MACnB,qBAAA;AAAA,MAEA,YAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,sBAAA;AAAA,MACA,eAAA;AAAA,KAAA;AAAA,GACJ,CAAA;AAER;;;;"}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { b as VCVerificationCheckWithText } from './VCVerificationCheck-8b8b7a76.js';
3
- import { a as VCVerificationPill } from './VCVerificationPill-83eb61f4.js';
3
+ import { a as VCVerificationPill } from './VCVerificationPill-04ffdf56.js';
4
4
  import FlipArrowRight from './ArrowArcRight.svg';
5
- import { i as getNameFromProfile } from './credential.helpers-00099c70.js';
5
+ import { i as getNameFromProfile } from './credential.helpers-4fbdd8e8.js';
6
6
 
7
7
  const VCDisplayBackFace = ({
8
8
  issuer,
@@ -60,4 +60,4 @@ const VCDisplayBackFace = ({
60
60
  };
61
61
 
62
62
  export { VCDisplayBackFace as V };
63
- //# sourceMappingURL=VCDisplayBackFace-bb60a881.js.map
63
+ //# sourceMappingURL=VCDisplayBackFace-ae74476d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VCDisplayBackFace-bb60a881.js","sources":["../../src/components/VCDisplayBackFace/VCDisplayBackFace.tsx"],"sourcesContent":["import React from 'react';\nimport { VCDisplayCardProps } from '../../types';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport VCVerificationPill from '../VCVerificationPill/VCVerificationPill';\nimport FlipArrowRight from '../../assets/images/ArrowArcRight.svg';\nimport { getNameFromProfile } from '../../helpers/credential.helpers';\n\nexport const VCDisplayBackFace: React.FC<VCDisplayCardProps> = ({\n issuer,\n credentialSubject,\n className = '',\n loading,\n verification = [],\n handleClick,\n overrideDetailsComponent,\n}) => {\n const descriptionText = credentialSubject?.achievement?.description;\n const criteriaText = credentialSubject?.achievement?.criteria?.narrative;\n const issuerUrl = typeof issuer === 'object' ? issuer.url : '';\n const issuerName = getNameFromProfile(issuer ?? '');\n const defaultDetails = (\n <>\n <div className=\"width-full\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Description\n </h6>\n <p className=\"line-clamp-3 subpixel-antialiased text-grayscale-600 text-[14px] lc-line-clamp\">\n {descriptionText}\n </p>\n </div>\n\n <div className=\"width-full mt-[10px]\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Criteria\n </h6>\n <p className=\"line-clamp-3 subpixel-antialiased text-grayscale-600 text-[14px] lc-line-clamp\">\n {criteriaText}\n </p>\n </div>\n\n <div className=\"width-full mt-[10px] line-clamp-1 overflow-hidden vc-issuer-name-info\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Issuer\n </h6>\n <p className=\"max-w-[344px] line-clamp-1 subpixel-antialiased text-grayscale-600 text-[14px] block overflow-ellipsis break-all\">\n {issuerName}\n </p>\n </div>\n\n {issuerUrl && (\n <p className=\"text-indigo-500 font-bold text-xs width-full text-center mt-8\">\n {issuerUrl}\n </p>\n )}\n </>\n );\n\n const renderDetails = overrideDetailsComponent ? overrideDetailsComponent : defaultDetails;\n\n return (\n <div\n className={`z-[9] vc-display-main-card-back flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] max-h-[1100px] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`}\n >\n <section className=\"flex max-h-[150px] items-end bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[55%] min-h-[400px]\"></section>\n <section className=\"flex flex-col items-center justify-center w-full z-10 text-left credential-details-container max-w-[100%] relative\">\n <section className=\"flex flex-row items-start justify-start w-full line-clamp-2\">\n <h3\n className=\"text-2xl line-clamp-2 tracking-wide leading-snug text-left text-emerald-700\"\n data-testid=\"vc-credential-details-title tracking-wide subpixel-antialiased\"\n >\n Credential Details\n </h3>\n </section>\n\n <section className=\"flex flex-col mt-2 w-full my-2 min-h-[200px] credential-details-info\">\n {renderDetails}\n </section>\n\n <div className=\"w-full mt-2\"></div>\n\n <button\n onClick={handleClick}\n className=\"vc-flip-btn bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 shadow-3xl rounded-full\"\n >\n <span className=\"flex justify-center\">\n <img\n className=\"h-8 w-8 my-0 mx-4 scale-x-[-1]\"\n src={FlipArrowRight ?? ''}\n alt=\"Flip Card\"\n />\n </span>\n </button>\n\n <section className=\"flex-col items-center justify-center checklist-container justify-center w-[100%] width-full mt-[20px]\">\n <VCVerificationCheckWithText loading={loading} />\n <section>\n {verification.map(item => (\n <VCVerificationPill\n key={item.check}\n status={item.status}\n message={item.message}\n details={item.details}\n />\n ))}\n </section>\n </section>\n </section>\n </div>\n );\n};\n\nexport default VCDisplayBackFace;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VCDisplayBackFace-ae74476d.js","sources":["../../src/components/VCDisplayBackFace/VCDisplayBackFace.tsx"],"sourcesContent":["import React from 'react';\nimport { VCDisplayCardProps } from '../../types';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport VCVerificationPill from '../VCVerificationPill/VCVerificationPill';\nimport FlipArrowRight from '../../assets/images/ArrowArcRight.svg';\nimport { getNameFromProfile } from '../../helpers/credential.helpers';\n\nexport const VCDisplayBackFace: React.FC<VCDisplayCardProps> = ({\n issuer,\n credentialSubject,\n className = '',\n loading,\n verification = [],\n handleClick,\n overrideDetailsComponent,\n}) => {\n const descriptionText = credentialSubject?.achievement?.description;\n const criteriaText = credentialSubject?.achievement?.criteria?.narrative;\n const issuerUrl = typeof issuer === 'object' ? issuer.url : '';\n const issuerName = getNameFromProfile(issuer ?? '');\n const defaultDetails = (\n <>\n <div className=\"width-full\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Description\n </h6>\n <p className=\"line-clamp-3 subpixel-antialiased text-grayscale-600 text-[14px] lc-line-clamp\">\n {descriptionText}\n </p>\n </div>\n\n <div className=\"width-full mt-[10px]\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Criteria\n </h6>\n <p className=\"line-clamp-3 subpixel-antialiased text-grayscale-600 text-[14px] lc-line-clamp\">\n {criteriaText}\n </p>\n </div>\n\n <div className=\"width-full mt-[10px] line-clamp-1 overflow-hidden vc-issuer-name-info\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Issuer\n </h6>\n <p className=\"max-w-[344px] line-clamp-1 subpixel-antialiased text-grayscale-600 text-[14px] block overflow-ellipsis break-all\">\n {issuerName}\n </p>\n </div>\n\n {issuerUrl && (\n <p className=\"text-indigo-500 font-bold text-xs width-full text-center mt-8\">\n {issuerUrl}\n </p>\n )}\n </>\n );\n\n const renderDetails = overrideDetailsComponent ? overrideDetailsComponent : defaultDetails;\n\n return (\n <div\n className={`z-[9] vc-display-main-card-back flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] max-h-[1100px] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`}\n >\n <section className=\"flex max-h-[150px] items-end bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[55%] min-h-[400px]\"></section>\n <section className=\"flex flex-col items-center justify-center w-full z-10 text-left credential-details-container max-w-[100%] relative\">\n <section className=\"flex flex-row items-start justify-start w-full line-clamp-2\">\n <h3\n className=\"text-2xl line-clamp-2 tracking-wide leading-snug text-left text-emerald-700\"\n data-testid=\"vc-credential-details-title tracking-wide subpixel-antialiased\"\n >\n Credential Details\n </h3>\n </section>\n\n <section className=\"flex flex-col mt-2 w-full my-2 min-h-[200px] credential-details-info\">\n {renderDetails}\n </section>\n\n <div className=\"w-full mt-2\"></div>\n\n <button\n onClick={handleClick}\n className=\"vc-flip-btn bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 shadow-3xl rounded-full\"\n >\n <span className=\"flex justify-center\">\n <img\n className=\"h-8 w-8 my-0 mx-4 scale-x-[-1]\"\n src={FlipArrowRight ?? ''}\n alt=\"Flip Card\"\n />\n </span>\n </button>\n\n <section className=\"flex-col items-center justify-center checklist-container justify-center w-[100%] width-full mt-[20px]\">\n <VCVerificationCheckWithText loading={loading} />\n <section>\n {verification.map(item => (\n <VCVerificationPill\n key={item.check}\n status={item.status}\n message={item.message}\n details={item.details}\n />\n ))}\n </section>\n </section>\n </section>\n </div>\n );\n};\n\nexport default VCDisplayBackFace;\n"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { F as FlippyCard } from './FlippyCard-458dc9b1.js';
3
3
  import FatArrow from './icon.green.fat-arrow.png';
4
4
  import { U as UserProfilePicture } from './UserProfilePicture-50c34186.js';
5
5
  import { b as VCVerificationCheckWithText } from './VCVerificationCheck-8b8b7a76.js';
6
- import { i as getNameFromProfile, h as getImageFromProfile, b as getInfoFromCredential } from './credential.helpers-00099c70.js';
7
- import { V as VCDisplayBackFace } from './VCDisplayBackFace-bb60a881.js';
6
+ import { i as getNameFromProfile, h as getImageFromProfile, b as getInfoFromCredential } from './credential.helpers-4fbdd8e8.js';
7
+ import { V as VCDisplayBackFace } from './VCDisplayBackFace-ae74476d.js';
8
8
 
9
9
  const VCDisplayFrontFace = ({
10
10
  title,
@@ -181,4 +181,4 @@ const VCDisplayCard = ({
181
181
  };
182
182
 
183
183
  export { VCDisplayCard as V };
184
- //# sourceMappingURL=VCDisplayCard-9905d9d3.js.map
184
+ //# sourceMappingURL=VCDisplayCard-ac1f367a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VCDisplayCard-9905d9d3.js","sources":["../../src/components/VCDisplayFrontFace/VCDisplayFrontFace.tsx","../../src/components/VCDisplayCard/VCDisplayCard.tsx"],"sourcesContent":["import React from 'react';\nimport FatArrow from '../../assets/images/icon.green.fat-arrow.png';\nimport UserProfilePicture from '../UserProfilePicture/UserProfilePicture';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport { getImageFromProfile, getNameFromProfile } from '../../helpers/credential.helpers';\n\nimport { VCDisplayCardProps } from '../../types';\n\nconst VCDisplayFrontFace: React.FC<VCDisplayCardProps> = ({\n title,\n createdAt,\n issuer,\n issuee,\n subjectImageComponent,\n issuerImageComponent,\n hideProfileBubbles = false,\n credentialSubject,\n className = '',\n loading,\n handleClick,\n overrideCardImageComponent,\n overrideCardTitle,\n customHeaderComponent,\n}) => {\n const credentialAchievementImage =\n credentialSubject?.achievement?.image?.id || credentialSubject?.achievement?.image;\n const issuerName = getNameFromProfile(issuer ?? '');\n const issueeName = getNameFromProfile(issuee ?? '');\n const issuerImage = getImageFromProfile(issuer ?? '');\n const issueeImage = getImageFromProfile(issuee ?? '');\n\n let issueeImageEl: React.ReactNode | null = null;\n if (subjectImageComponent) {\n issueeImageEl = subjectImageComponent;\n } else {\n issueeImageEl = (\n <UserProfilePicture\n customContainerClass={`object-cover h-full w-full text-4xl ${\n !issueeImage ? 'pt-[8px]' : ''\n }`}\n user={{ image: issueeImage, name: issueeName }}\n alt=\"Issuee image\"\n />\n );\n }\n\n let issuerImageEl: React.ReactNode | null = null;\n\n if (issuerImageComponent) {\n issuerImageEl = issuerImageComponent;\n } else {\n issuerImageEl = (\n <UserProfilePicture\n customContainerClass={`object-cover h-full w-full text-4xl ${\n !issuerImage ? 'pt-[8px]' : ''\n }`}\n user={{ image: issuerImage, name: issuerName }}\n alt=\"Issuer image\"\n />\n );\n }\n\n const credImg = credentialAchievementImage ? (\n <img\n className=\"h-full w-full object-cover\"\n src={credentialAchievementImage ?? ''}\n alt=\"Credential Achievement Image\"\n />\n ) : (\n <></>\n );\n\n const renderCardImg = overrideCardImageComponent ? overrideCardImageComponent : credImg;\n const cardTitle = overrideCardTitle ? overrideCardTitle : title;\n\n return (\n <div\n className={`z-[9] vc-display-main-card-front flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`}\n >\n <section className=\"bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[77%]\"></section>\n <section className=\"flex flex-col items-center justify-center z-10 text-center credential-thumb-img\">\n <section className=\"max-w-[100px] max-h-[100px]\">{renderCardImg}</section>\n\n <section className=\"flex flex-row w-full line-clamp-2\">\n <div className=\"flex flex-row w-full line-clamp-2 py-4 vc-flippy-card-title-front \">\n <h3\n className=\"vc-thumbnail-title w-full text-2xl line-clamp-2 tracking-wide leading-snug text-center vc-display-title text-gray-900 font-medium\"\n data-testid=\"vc-thumbnail-title\"\n >\n {cardTitle ?? ''}\n </h3>\n </div>\n\n {customHeaderComponent && customHeaderComponent}\n </section>\n\n <section className=\"flex flex-row items-center justify-center mt-2 w-full my-2 vc-card-issuer-thumbs\">\n {!hideProfileBubbles && (\n <>\n <div className=\"flex items-center justify-center h-16 w-16 shadow-3xl rounded-full overflow-hidden bg-white\">\n {issuerImageEl}\n </div>\n <img\n className=\"h-8 w-8 my-0 mx-4\"\n src={FatArrow ?? ''}\n alt=\"fat arrow icon\"\n />\n <div className=\"flex items-center justify-center h-16 w-16 shadow-3xl rounded-full overflow-hidden bg-white\">\n {issueeImageEl}\n </div>\n </>\n )}\n </section>\n\n <div className=\"w-full mt-2 vc-card-issued-to-info\">\n <p\n className=\"text-sm font-light text-center line-clamp-2 vc-display-issue-details text-gray-900\"\n data-testid=\"vc-thumbnail-createdAt\"\n >\n Issued to <span className=\"font-bold text-gray-900\">{issueeName}</span> on{' '}\n {createdAt ?? ''} by{' '}\n <span className=\"font-bold text-gray-900\"> {issuerName}</span>\n </p>\n </div>\n\n <button\n onClick={handleClick}\n className=\"cursor-alias bg-white my-3 border-0 text-indigo-500 font-semibold py-2 px-4 sl\"\n >\n <span className=\"flex justify-center\">\n <p className=\"flex items-center\">View Details</p>\n </span>\n </button>\n </section>\n\n <div className=\"flex items-center justify-center w-full\">\n <VCVerificationCheckWithText loading={loading} />\n </div>\n </div>\n );\n};\n\nexport default VCDisplayFrontFace;\n","import React, { useState } from 'react';\nimport { AchievementCredential, VC, Profile, VerificationItem } from '@learncard/types';\n\nimport FlippyCard from '../FlippyCard/FlippyCard';\nimport VCDisplayFrontFace from '../VCDisplayFrontFace/VCDisplayFrontFace';\nimport VCDisplayBackFace from '../VCDisplayBackFace/VCDisplayBackFace';\n\nimport { getInfoFromCredential } from '../../helpers/credential.helpers';\n\nconst FRONT_FACE = 'front';\nconst BACK_FACE = 'back';\n\nexport type VCDisplayCardPropsReal = {\n credential: VC | AchievementCredential;\n issueeOverride?: Profile;\n issuerOverride?: Profile;\n className?: string;\n hideProfileBubbles?: boolean;\n loading?: boolean;\n verification?: VerificationItem[];\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n overrideDetailsComponent?: React.ReactNode;\n overrideCardTitle?: string;\n overrideCardImageComponent?: React.ReactNode;\n customHeaderComponent?: React.ReactNode;\n};\n\nexport const VCDisplayCard: React.FC<VCDisplayCardPropsReal> = ({\n credential,\n issueeOverride,\n issuerOverride,\n className = '',\n loading = false,\n verification = [],\n hideProfileBubbles = false,\n subjectImageComponent,\n issuerImageComponent,\n overrideDetailsComponent,\n overrideCardTitle,\n overrideCardImageComponent,\n customHeaderComponent,\n}) => {\n const [flipState, setFlipState] = useState(FRONT_FACE);\n const {\n title,\n createdAt,\n issuer: _issuer,\n issuee: _issuee,\n credentialSubject,\n } = getInfoFromCredential(credential);\n const issuee = issueeOverride || _issuee;\n const issuer = issuerOverride || _issuer;\n\n const handleFlip = () => {\n if (flipState === FRONT_FACE) {\n setFlipState(BACK_FACE);\n }\n if (flipState === BACK_FACE) {\n setFlipState(FRONT_FACE);\n }\n };\n\n return (\n <FlippyCard flipState={flipState}>\n <VCDisplayFrontFace\n title={title}\n credentialSubject={credentialSubject}\n customHeaderComponent={customHeaderComponent}\n issuer={issuer}\n issuee={issuee}\n subjectImageComponent={subjectImageComponent}\n issuerImageComponent={issuerImageComponent}\n overrideCardImageComponent={overrideCardImageComponent}\n overrideCardTitle={overrideCardTitle}\n hideProfileBubbles={hideProfileBubbles}\n createdAt={createdAt}\n className={className}\n loading={loading}\n handleClick={handleFlip}\n />\n <VCDisplayBackFace\n title={title}\n credentialSubject={credentialSubject}\n overrideDetailsComponent={overrideDetailsComponent}\n issuer={issuer}\n issuee={issuee}\n createdAt={createdAt}\n className={className}\n loading={loading}\n verification={verification}\n handleClick={handleFlip}\n />\n </FlippyCard>\n );\n};\n\nexport default VCDisplayCard;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VCDisplayCard-ac1f367a.js","sources":["../../src/components/VCDisplayFrontFace/VCDisplayFrontFace.tsx","../../src/components/VCDisplayCard/VCDisplayCard.tsx"],"sourcesContent":["import React from 'react';\nimport FatArrow from '../../assets/images/icon.green.fat-arrow.png';\nimport UserProfilePicture from '../UserProfilePicture/UserProfilePicture';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport { getImageFromProfile, getNameFromProfile } from '../../helpers/credential.helpers';\n\nimport { VCDisplayCardProps } from '../../types';\n\nconst VCDisplayFrontFace: React.FC<VCDisplayCardProps> = ({\n title,\n createdAt,\n issuer,\n issuee,\n subjectImageComponent,\n issuerImageComponent,\n hideProfileBubbles = false,\n credentialSubject,\n className = '',\n loading,\n handleClick,\n overrideCardImageComponent,\n overrideCardTitle,\n customHeaderComponent,\n}) => {\n const credentialAchievementImage =\n credentialSubject?.achievement?.image?.id || credentialSubject?.achievement?.image;\n const issuerName = getNameFromProfile(issuer ?? '');\n const issueeName = getNameFromProfile(issuee ?? '');\n const issuerImage = getImageFromProfile(issuer ?? '');\n const issueeImage = getImageFromProfile(issuee ?? '');\n\n let issueeImageEl: React.ReactNode | null = null;\n if (subjectImageComponent) {\n issueeImageEl = subjectImageComponent;\n } else {\n issueeImageEl = (\n <UserProfilePicture\n customContainerClass={`object-cover h-full w-full text-4xl ${\n !issueeImage ? 'pt-[8px]' : ''\n }`}\n user={{ image: issueeImage, name: issueeName }}\n alt=\"Issuee image\"\n />\n );\n }\n\n let issuerImageEl: React.ReactNode | null = null;\n\n if (issuerImageComponent) {\n issuerImageEl = issuerImageComponent;\n } else {\n issuerImageEl = (\n <UserProfilePicture\n customContainerClass={`object-cover h-full w-full text-4xl ${\n !issuerImage ? 'pt-[8px]' : ''\n }`}\n user={{ image: issuerImage, name: issuerName }}\n alt=\"Issuer image\"\n />\n );\n }\n\n const credImg = credentialAchievementImage ? (\n <img\n className=\"h-full w-full object-cover\"\n src={credentialAchievementImage ?? ''}\n alt=\"Credential Achievement Image\"\n />\n ) : (\n <></>\n );\n\n const renderCardImg = overrideCardImageComponent ? overrideCardImageComponent : credImg;\n const cardTitle = overrideCardTitle ? overrideCardTitle : title;\n\n return (\n <div\n className={`z-[9] vc-display-main-card-front flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`}\n >\n <section className=\"bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[77%]\"></section>\n <section className=\"flex flex-col items-center justify-center z-10 text-center credential-thumb-img\">\n <section className=\"max-w-[100px] max-h-[100px]\">{renderCardImg}</section>\n\n <section className=\"flex flex-row w-full line-clamp-2\">\n <div className=\"flex flex-row w-full line-clamp-2 py-4 vc-flippy-card-title-front \">\n <h3\n className=\"vc-thumbnail-title w-full text-2xl line-clamp-2 tracking-wide leading-snug text-center vc-display-title text-gray-900 font-medium\"\n data-testid=\"vc-thumbnail-title\"\n >\n {cardTitle ?? ''}\n </h3>\n </div>\n\n {customHeaderComponent && customHeaderComponent}\n </section>\n\n <section className=\"flex flex-row items-center justify-center mt-2 w-full my-2 vc-card-issuer-thumbs\">\n {!hideProfileBubbles && (\n <>\n <div className=\"flex items-center justify-center h-16 w-16 shadow-3xl rounded-full overflow-hidden bg-white\">\n {issuerImageEl}\n </div>\n <img\n className=\"h-8 w-8 my-0 mx-4\"\n src={FatArrow ?? ''}\n alt=\"fat arrow icon\"\n />\n <div className=\"flex items-center justify-center h-16 w-16 shadow-3xl rounded-full overflow-hidden bg-white\">\n {issueeImageEl}\n </div>\n </>\n )}\n </section>\n\n <div className=\"w-full mt-2 vc-card-issued-to-info\">\n <p\n className=\"text-sm font-light text-center line-clamp-2 vc-display-issue-details text-gray-900\"\n data-testid=\"vc-thumbnail-createdAt\"\n >\n Issued to <span className=\"font-bold text-gray-900\">{issueeName}</span> on{' '}\n {createdAt ?? ''} by{' '}\n <span className=\"font-bold text-gray-900\"> {issuerName}</span>\n </p>\n </div>\n\n <button\n onClick={handleClick}\n className=\"cursor-alias bg-white my-3 border-0 text-indigo-500 font-semibold py-2 px-4 sl\"\n >\n <span className=\"flex justify-center\">\n <p className=\"flex items-center\">View Details</p>\n </span>\n </button>\n </section>\n\n <div className=\"flex items-center justify-center w-full\">\n <VCVerificationCheckWithText loading={loading} />\n </div>\n </div>\n );\n};\n\nexport default VCDisplayFrontFace;\n","import React, { useState } from 'react';\nimport { AchievementCredential, VC, Profile, VerificationItem } from '@learncard/types';\n\nimport FlippyCard from '../FlippyCard/FlippyCard';\nimport VCDisplayFrontFace from '../VCDisplayFrontFace/VCDisplayFrontFace';\nimport VCDisplayBackFace from '../VCDisplayBackFace/VCDisplayBackFace';\n\nimport { getInfoFromCredential } from '../../helpers/credential.helpers';\n\nconst FRONT_FACE = 'front';\nconst BACK_FACE = 'back';\n\nexport type VCDisplayCardPropsReal = {\n credential: VC | AchievementCredential;\n issueeOverride?: Profile;\n issuerOverride?: Profile;\n className?: string;\n hideProfileBubbles?: boolean;\n loading?: boolean;\n verification?: VerificationItem[];\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n overrideDetailsComponent?: React.ReactNode;\n overrideCardTitle?: string;\n overrideCardImageComponent?: React.ReactNode;\n customHeaderComponent?: React.ReactNode;\n};\n\nexport const VCDisplayCard: React.FC<VCDisplayCardPropsReal> = ({\n credential,\n issueeOverride,\n issuerOverride,\n className = '',\n loading = false,\n verification = [],\n hideProfileBubbles = false,\n subjectImageComponent,\n issuerImageComponent,\n overrideDetailsComponent,\n overrideCardTitle,\n overrideCardImageComponent,\n customHeaderComponent,\n}) => {\n const [flipState, setFlipState] = useState(FRONT_FACE);\n const {\n title,\n createdAt,\n issuer: _issuer,\n issuee: _issuee,\n credentialSubject,\n } = getInfoFromCredential(credential);\n const issuee = issueeOverride || _issuee;\n const issuer = issuerOverride || _issuer;\n\n const handleFlip = () => {\n if (flipState === FRONT_FACE) {\n setFlipState(BACK_FACE);\n }\n if (flipState === BACK_FACE) {\n setFlipState(FRONT_FACE);\n }\n };\n\n return (\n <FlippyCard flipState={flipState}>\n <VCDisplayFrontFace\n title={title}\n credentialSubject={credentialSubject}\n customHeaderComponent={customHeaderComponent}\n issuer={issuer}\n issuee={issuee}\n subjectImageComponent={subjectImageComponent}\n issuerImageComponent={issuerImageComponent}\n overrideCardImageComponent={overrideCardImageComponent}\n overrideCardTitle={overrideCardTitle}\n hideProfileBubbles={hideProfileBubbles}\n createdAt={createdAt}\n className={className}\n loading={loading}\n handleClick={handleFlip}\n />\n <VCDisplayBackFace\n title={title}\n credentialSubject={credentialSubject}\n overrideDetailsComponent={overrideDetailsComponent}\n issuer={issuer}\n issuee={issuee}\n createdAt={createdAt}\n className={className}\n loading={loading}\n verification={verification}\n handleClick={handleFlip}\n />\n </FlippyCard>\n );\n};\n\nexport default VCDisplayCard;\n"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
- import React, { useRef, useEffect, useState, createContext, Component, Children, cloneElement, useLayoutEffect } from 'react';
1
+ import React, { useRef, useLayoutEffect, useState, useEffect, createContext, Component, Children, cloneElement } from 'react';
2
+ import './index-cbd2e9db.js';
2
3
  import { a as VCVerificationCheckWithSpinner } from './VCVerificationCheck-8b8b7a76.js';
3
4
  import { U as UserProfilePicture } from './UserProfilePicture-50c34186.js';
4
- import { a as getColorForVerificationStatus, j as format$1, h as getImageFromProfile, b as getInfoFromCredential, k as getCategoryColor, g as getTotalCountOfSkills, c as categorizeSkills } from './credential.helpers-00099c70.js';
5
- import { d as getBaseUrl, e as VideoIcon, C as Camera, G as GenericDocumentIcon, L as LinkIcon, p as prettyBytes, c as capitalize, E as ExclamationPoint, A as AcuteCheckmark, I as InfoIcon, h as LeftArrow, j as SkillsBox, r as resolveProfileDisplay, l as isAppDidWeb, V as VERIFIER_STATES, m as VerifierStateBadgeAndText, P as PersonBadge, n as VerifiedBadge, U as UnknownVerifierBadge, o as RedFlag } from './VerifierStateBadgeAndText-60b98d25.js';
5
+ import { a as getColorForVerificationStatus, j as format$1, h as getImageFromProfile, b as getInfoFromCredential, k as getCategoryColor, g as getTotalCountOfSkills, c as categorizeSkills } from './credential.helpers-4fbdd8e8.js';
6
+ import { d as getBaseUrl, e as VideoIcon, C as Camera, G as GenericDocumentIcon, L as LinkIcon, p as prettyBytes, c as capitalize, E as ExclamationPoint, A as AcuteCheckmark, I as InfoIcon, h as LeftArrow, j as SkillsBox, r as resolveProfileDisplay, l as isAppDidWeb, V as VERIFIER_STATES, m as VerifierStateBadgeAndText, P as PersonBadge, n as VerifiedBadge, U as UnknownVerifierBadge, o as RedFlag } from './VerifierStateBadgeAndText-750a6c24.js';
6
7
  import './index-cb3a593b.js';
7
- import { L as Lightbox, X } from './Lightbox-f0338a0c.js';
8
- import { V as VerificationStatusEnum } from './types.esm-d6b48609.js';
9
- import { u as useT } from './i18n-8454d6ea.js';
10
- import { A as AlignmentsBox, b as CertificateDisplayCard } from './CertificateDisplayCard-4e9254e0.js';
8
+ import { L as Lightbox, X } from './Lightbox-11f4888d.js';
9
+ import { V as VerificationStatusEnum } from './types.esm-5f75bd4a.js';
10
+ import { u as useT } from './i18n-08b606cb.js';
11
+ import { A as AlignmentsBox, b as CertificateDisplayCard } from './CertificateDisplayCard-f26ef278.js';
11
12
  import { I as IDIcon, Q as QRCodeIcon, A as AwardRibbon } from './QRCodeIcon-8eef4f7c.js';
12
13
  import { a as LCCategoryEnum } from './index-28917993.js';
13
14
  import { P as PuzzlePiece } from './PuzzlePiece-a3d9cc62.js';
14
15
  import IDSleeve from './id-sleeve.png';
15
- import { a as MeritBadgeDisplayCard } from './MeritBadgeDisplayCard-2029a552.js';
16
+ import { a as MeritBadgeDisplayCard } from './MeritBadgeDisplayCard-0d0b28c7.js';
16
17
 
17
18
  const RoundedX = ({ className = "" }) => {
18
19
  return /* @__PURE__ */ React.createElement(
@@ -48,6 +49,7 @@ const RoundedX = ({ className = "" }) => {
48
49
  );
49
50
  };
50
51
 
52
+ const FIT_GUTTER_PX = 12;
51
53
  const FitText = ({
52
54
  text,
53
55
  width,
@@ -55,56 +57,61 @@ const FitText = ({
55
57
  minFontSize = 10,
56
58
  maxFontSize = 100
57
59
  }) => {
60
+ const containerRef = useRef(null);
58
61
  const textRef = useRef(null);
59
- let animationFrameId = null;
60
- const adjustFontSize = () => {
62
+ useLayoutEffect(() => {
61
63
  var _a;
62
- if (textRef.current) {
63
- const currentFontSize = parseFloat(
64
- window.getComputedStyle(textRef.current).getPropertyValue("font-size")
64
+ const container = containerRef.current;
65
+ const textElement = textRef.current;
66
+ if (!container || !textElement) return;
67
+ const fitText = () => {
68
+ textElement.style.fontSize = `${maxFontSize}px`;
69
+ textElement.style.whiteSpace = "nowrap";
70
+ const availableWidth = Math.max(container.clientWidth - FIT_GUTTER_PX, 0);
71
+ const requiredWidth = textElement.scrollWidth;
72
+ if (!availableWidth || !requiredWidth) return;
73
+ let fittedFontSize = Math.min(
74
+ maxFontSize,
75
+ Math.max(minFontSize, Math.floor(availableWidth / requiredWidth * maxFontSize))
65
76
  );
66
- textRef.current.style.whiteSpace = "nowrap";
67
- const parentWidth = (_a = textRef.current.parentNode) == null ? void 0 : _a.clientWidth;
68
- const scrollWidth = textRef.current.scrollWidth || textRef.current.offsetWidth;
69
- if (scrollWidth === 0) {
70
- if (animationFrameId !== null) {
71
- cancelAnimationFrame(animationFrameId);
72
- }
73
- animationFrameId = requestAnimationFrame(adjustFontSize);
74
- return;
77
+ textElement.style.fontSize = `${fittedFontSize}px`;
78
+ while (textElement.scrollWidth > availableWidth && fittedFontSize > minFontSize) {
79
+ fittedFontSize -= 1;
80
+ textElement.style.fontSize = `${fittedFontSize}px`;
75
81
  }
76
- const newFontSize = Math.min(
77
- Math.max(parentWidth / scrollWidth * currentFontSize, minFontSize),
78
- maxFontSize
79
- );
80
- textRef.current.style.fontSize = `${newFontSize}px`;
81
- textRef.current.style.whiteSpace = newFontSize === minFontSize ? "normal" : "nowrap";
82
- }
83
- };
84
- const handleResize = () => {
85
- if (animationFrameId !== null) {
86
- cancelAnimationFrame(animationFrameId);
82
+ textElement.style.whiteSpace = fittedFontSize === minFontSize && textElement.scrollWidth > availableWidth ? "normal" : "nowrap";
83
+ };
84
+ fitText();
85
+ let resizeObserver;
86
+ if (typeof ResizeObserver !== "undefined") {
87
+ let lastObservedWidth;
88
+ resizeObserver = new ResizeObserver(([entry]) => {
89
+ const observedWidth = entry == null ? void 0 : entry.contentRect.width;
90
+ if (observedWidth === void 0 || observedWidth === lastObservedWidth) return;
91
+ lastObservedWidth = observedWidth;
92
+ fitText();
93
+ });
94
+ resizeObserver.observe(container);
87
95
  }
88
- animationFrameId = requestAnimationFrame(adjustFontSize);
89
- };
90
- useEffect(() => {
91
- window.addEventListener("resize", handleResize);
92
- adjustFontSize();
96
+ let isMounted = true;
97
+ (_a = document.fonts) == null ? void 0 : _a.ready.then(() => {
98
+ if (isMounted) fitText();
99
+ }).catch(() => {
100
+ });
93
101
  return () => {
94
- window.removeEventListener("resize", handleResize);
95
- if (animationFrameId !== null) {
96
- cancelAnimationFrame(animationFrameId);
97
- }
102
+ isMounted = false;
103
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
98
104
  };
99
- }, [text]);
100
- return /* @__PURE__ */ React.createElement("div", { style: { width }, className: `text-center ${className}` }, /* @__PURE__ */ React.createElement(
101
- "span",
105
+ }, [maxFontSize, minFontSize, text, width]);
106
+ return /* @__PURE__ */ React.createElement(
107
+ "div",
102
108
  {
103
- className: `text-[${minFontSize}px] transition-[font-size] whitespace-nowrap`,
104
- ref: textRef
109
+ ref: containerRef,
110
+ style: { width, maxWidth: "100%" },
111
+ className: `text-center ${className}`
105
112
  },
106
- text
107
- ));
113
+ /* @__PURE__ */ React.createElement("span", { className: "inline-block max-w-full whitespace-nowrap", ref: textRef }, text)
114
+ );
108
115
  };
109
116
 
110
117
  const InfoBox = ({ text, handleClose, backgroundColor = "#6366F1" }) => {
@@ -683,6 +690,7 @@ const MESSAGE_KEYS = {
683
690
  Invalid: "invalid",
684
691
  "Not Revoked": "notRevoked",
685
692
  Revoked: "revoked",
693
+ Suspended: "suspended",
686
694
  "Does Not Expire": "doesNotExpire",
687
695
  Expired: "expired",
688
696
  Active: "active",
@@ -1180,6 +1188,16 @@ const VCIDDisplayCard = ({
1180
1188
  };
1181
1189
 
1182
1190
  const Flipped = v;
1191
+ const getVCDisplayCardVariant = (credential, categoryType, formattedDisplayType) => {
1192
+ var _a, _b, _c;
1193
+ const resolvedDisplayType = (_c = (_b = (_a = credential == null ? void 0 : credential.display) == null ? void 0 : _a.displayType) != null ? _b : formattedDisplayType) == null ? void 0 : _c.toLocaleLowerCase();
1194
+ if (categoryType === LCCategoryEnum.meritBadge || resolvedDisplayType === "award") {
1195
+ return "award";
1196
+ }
1197
+ if (resolvedDisplayType === "certificate") return "certificate";
1198
+ if (resolvedDisplayType === "id" || categoryType === LCCategoryEnum.id) return "id";
1199
+ return "ribbon";
1200
+ };
1183
1201
  const VCDisplayCard2 = ({
1184
1202
  categoryType,
1185
1203
  credential,
@@ -1228,7 +1246,7 @@ const VCDisplayCard2 = ({
1228
1246
  hideFrontFaceDetails,
1229
1247
  onVerifierClick
1230
1248
  }) => {
1231
- var _a, _b, _c, _d, _e, _f, _g;
1249
+ var _a, _b, _c, _d, _e;
1232
1250
  const {
1233
1251
  title = "",
1234
1252
  createdAt,
@@ -1241,16 +1259,19 @@ const VCDisplayCard2 = ({
1241
1259
  const [_isFront, _setIsFront] = useState(isFrontOverride != null ? isFrontOverride : true);
1242
1260
  const isFront = isFrontOverride != null ? isFrontOverride : _isFront;
1243
1261
  const setIsFront = setIsFrontOverride != null ? setIsFrontOverride : _setIsFront;
1244
- const [headerHeight, setHeaderHeight] = useState(100);
1245
- const [headerWidth, setHeaderWidth] = useState(0);
1262
+ const [headerHeight, setHeaderHeight] = useState(79);
1246
1263
  const headerRef = useRef(null);
1247
1264
  useLayoutEffect(() => {
1248
- setTimeout(() => {
1249
- var _a2, _b2, _c2;
1250
- setHeaderHeight(((_a2 = headerRef.current) == null ? void 0 : _a2.clientHeight) || 100);
1251
- setHeaderWidth((_c2 = (_b2 = headerRef.current) == null ? void 0 : _b2.clientWidth) != null ? _c2 : 0);
1252
- }, 10);
1253
- });
1265
+ const header = headerRef.current;
1266
+ if (!header) return;
1267
+ const updateHeaderHeight = () => setHeaderHeight(header.clientHeight || 79);
1268
+ updateHeaderHeight();
1269
+ if (typeof ResizeObserver === "undefined") return;
1270
+ const resizeObserver = new ResizeObserver(updateHeaderHeight);
1271
+ resizeObserver.observe(header);
1272
+ return () => resizeObserver.disconnect();
1273
+ }, []);
1274
+ const ribbonEndHeight = Math.max(headerHeight - 4, 75).toString();
1254
1275
  let worstVerificationStatus = verificationItems.reduce(
1255
1276
  (currentWorst, verification) => {
1256
1277
  switch (currentWorst) {
@@ -1273,8 +1294,12 @@ const VCDisplayCard2 = ({
1273
1294
  backgroundAttachment: "fixed"
1274
1295
  };
1275
1296
  const _title = titleOverride || title;
1276
- const resolvedDisplayType = (_e = (_d = credential == null ? void 0 : credential.display) == null ? void 0 : _d.displayType) != null ? _e : formattedDisplayType == null ? void 0 : formattedDisplayType.toLocaleLowerCase();
1277
- if (categoryType === LCCategoryEnum.meritBadge || resolvedDisplayType === "award") {
1297
+ const displayCardVariant = getVCDisplayCardVariant(
1298
+ credential,
1299
+ categoryType,
1300
+ formattedDisplayType
1301
+ );
1302
+ if (displayCardVariant === "award") {
1278
1303
  return /* @__PURE__ */ React.createElement(
1279
1304
  MeritBadgeDisplayCard,
1280
1305
  {
@@ -1308,7 +1333,7 @@ const VCDisplayCard2 = ({
1308
1333
  }
1309
1334
  );
1310
1335
  }
1311
- if (resolvedDisplayType === "certificate") {
1336
+ if (displayCardVariant === "certificate") {
1312
1337
  return /* @__PURE__ */ React.createElement(
1313
1338
  CertificateDisplayCard,
1314
1339
  {
@@ -1341,7 +1366,7 @@ const VCDisplayCard2 = ({
1341
1366
  onVerifierClick
1342
1367
  }
1343
1368
  );
1344
- } else if (resolvedDisplayType === "id" || categoryType === "ID") {
1369
+ } else if (displayCardVariant === "id") {
1345
1370
  return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(
1346
1371
  VCIDDisplayCard,
1347
1372
  {
@@ -1375,7 +1400,7 @@ const VCDisplayCard2 = ({
1375
1400
  }
1376
1401
  const headerClassName = "vc-card-header px-[20px] pb-[10px] pt-[3px] overflow-visible mt-[40px] text-center bg-white border-y-[5px] border-[#EEF2FF] w-[calc(100%_+_16px)] rounded-t-[8px] z-50";
1377
1402
  const headerFitTextClassName = "vc-card-header-main-title text-[#18224E] pt-[3px] leading-[80%] text-[32px]";
1378
- return /* @__PURE__ */ React.createElement(h, { className: "w-full", flipKey: isFront }, /* @__PURE__ */ React.createElement(Flipped, { flipId: "card" }, /* @__PURE__ */ React.createElement(
1403
+ return /* @__PURE__ */ React.createElement(h, { className: "vc-display-card-ribbon-safe-area w-full", flipKey: isFront }, /* @__PURE__ */ React.createElement(Flipped, { flipId: "card" }, /* @__PURE__ */ React.createElement(
1379
1404
  "section",
1380
1405
  {
1381
1406
  className: "vc-display-card font-poppins flex flex-col items-center border-solid border-[5px] border-white rounded-[30px] z-10 min-h-[800px] max-w-[400px] relative bg-white shadow-3xl",
@@ -1387,7 +1412,7 @@ const VCDisplayCard2 = ({
1387
1412
  {
1388
1413
  side: "left",
1389
1414
  className: "absolute left-[-30px] top-[50px] z-0",
1390
- height: "75"
1415
+ height: ribbonEndHeight
1391
1416
  }
1392
1417
  )),
1393
1418
  /* @__PURE__ */ React.createElement(Flipped, { inverseFlipId: "card" }, /* @__PURE__ */ React.createElement(
@@ -1395,7 +1420,7 @@ const VCDisplayCard2 = ({
1395
1420
  {
1396
1421
  side: "right",
1397
1422
  className: "absolute right-[-30px] top-[50px] z-0",
1398
- height: "75"
1423
+ height: ribbonEndHeight
1399
1424
  }
1400
1425
  )),
1401
1426
  /* @__PURE__ */ React.createElement(Flipped, { inverseFlipId: "card" }, /* @__PURE__ */ React.createElement(
@@ -1413,7 +1438,7 @@ const VCDisplayCard2 = ({
1413
1438
  text: _title != null ? _title : "",
1414
1439
  maxFontSize: 32,
1415
1440
  minFontSize: 20,
1416
- width: ((headerWidth != null ? headerWidth : 290) - 40).toString(),
1441
+ width: "100%",
1417
1442
  className: headerFitTextClassName
1418
1443
  }
1419
1444
  )
@@ -1446,7 +1471,7 @@ const VCDisplayCard2 = ({
1446
1471
  text: _title != null ? _title : "",
1447
1472
  maxFontSize: 32,
1448
1473
  minFontSize: 20,
1449
- width: ((headerWidth != null ? headerWidth : 290) - 40).toString(),
1474
+ width: "100%",
1450
1475
  className: headerFitTextClassName
1451
1476
  }
1452
1477
  )
@@ -1529,13 +1554,13 @@ const VCDisplayCard2 = ({
1529
1554
  {
1530
1555
  className: "vc-footer-icon rounded-[20px] h-[40px] w-[40px] flex items-center justify-center overflow-hidden",
1531
1556
  style: {
1532
- backgroundColor: (_f = bottomRightIcon == null ? void 0 : bottomRightIcon.color) != null ? _f : "#6366F1"
1557
+ backgroundColor: (_d = bottomRightIcon == null ? void 0 : bottomRightIcon.color) != null ? _d : "#6366F1"
1533
1558
  }
1534
1559
  },
1535
- (_g = bottomRightIcon == null ? void 0 : bottomRightIcon.image) != null ? _g : /* @__PURE__ */ React.createElement(AwardRibbon, null)
1560
+ (_e = bottomRightIcon == null ? void 0 : bottomRightIcon.image) != null ? _e : /* @__PURE__ */ React.createElement(AwardRibbon, null)
1536
1561
  ))))
1537
1562
  )));
1538
1563
  };
1539
1564
 
1540
- export { VCDisplayCard2 as V, VCDisplayCardSkillsCount as a, VCIDDisplayCard as b };
1541
- //# sourceMappingURL=VCDisplayCard2-fc5c4225.js.map
1565
+ export { VCDisplayCard2 as V, VCDisplayCardSkillsCount as a, VCIDDisplayCard as b, getVCDisplayCardVariant as g };
1566
+ //# sourceMappingURL=VCDisplayCard2-7011596e.js.map