@learncard/react 2.3.35 → 2.3.38

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 (44) hide show
  1. package/dist/cjs/{VCCard-b63f75fc.js → VCCard-044ddc90.js} +2 -2
  2. package/dist/cjs/{VCCard-b63f75fc.js.map → VCCard-044ddc90.js.map} +1 -1
  3. package/dist/cjs/{VCDisplayBackFace-4ae2b5c5.js → VCDisplayBackFace-bf803e55.js} +2 -2
  4. package/dist/cjs/{VCDisplayBackFace-4ae2b5c5.js.map → VCDisplayBackFace-bf803e55.js.map} +1 -1
  5. package/dist/cjs/{VCDisplayCard-b67f991b.js → VCDisplayCard-04b39d6f.js} +20 -11
  6. package/dist/{esm/VCDisplayCard-07dc6715.js.map → cjs/VCDisplayCard-04b39d6f.js.map} +1 -1
  7. package/dist/cjs/{VCThumbnail-584d0b5f.js → VCThumbnail-6bf86bb2.js} +15 -8
  8. package/dist/cjs/VCThumbnail-6bf86bb2.js.map +1 -0
  9. package/dist/cjs/{VCVerificationPill-1d535a72.js → VCVerificationPill-8bef8dfc.js} +11 -3
  10. package/dist/cjs/VCVerificationPill-8bef8dfc.js.map +1 -0
  11. package/dist/cjs/index-732996e9.js.map +1 -1
  12. package/dist/cjs/index.js +5 -5
  13. package/dist/cjs/index27.js +4 -4
  14. package/dist/cjs/index28.js +2 -2
  15. package/dist/cjs/index29.js +3 -3
  16. package/dist/cjs/index31.js +1 -1
  17. package/dist/cjs/index33.js +1 -1
  18. package/dist/cjs/index9.js +5 -5
  19. package/dist/esm/{VCCard-271ef60d.js → VCCard-83ac3b15.js} +2 -2
  20. package/dist/esm/{VCCard-271ef60d.js.map → VCCard-83ac3b15.js.map} +1 -1
  21. package/dist/esm/{VCDisplayBackFace-1bc89b3c.js → VCDisplayBackFace-87de9e83.js} +2 -2
  22. package/dist/esm/{VCDisplayBackFace-1bc89b3c.js.map → VCDisplayBackFace-87de9e83.js.map} +1 -1
  23. package/dist/esm/{VCDisplayCard-07dc6715.js → VCDisplayCard-2d9b32e9.js} +20 -11
  24. package/dist/{cjs/VCDisplayCard-b67f991b.js.map → esm/VCDisplayCard-2d9b32e9.js.map} +1 -1
  25. package/dist/esm/{VCThumbnail-2571a0c6.js → VCThumbnail-3c254bda.js} +15 -8
  26. package/dist/esm/VCThumbnail-3c254bda.js.map +1 -0
  27. package/dist/esm/{VCVerificationPill-a35e1dad.js → VCVerificationPill-15462b47.js} +11 -3
  28. package/dist/esm/VCVerificationPill-15462b47.js.map +1 -0
  29. package/dist/esm/index-e5252279.js.map +1 -1
  30. package/dist/esm/index.js +5 -5
  31. package/dist/esm/index27.js +4 -4
  32. package/dist/esm/index28.js +2 -2
  33. package/dist/esm/index29.js +3 -3
  34. package/dist/esm/index31.js +1 -1
  35. package/dist/esm/index33.js +1 -1
  36. package/dist/esm/index9.js +5 -5
  37. package/dist/index.d.ts +3 -0
  38. package/dist/main.css +1 -1
  39. package/dist/main.js +1 -1
  40. package/package.json +3 -3
  41. package/dist/cjs/VCThumbnail-584d0b5f.js.map +0 -1
  42. package/dist/cjs/VCVerificationPill-1d535a72.js.map +0 -1
  43. package/dist/esm/VCThumbnail-2571a0c6.js.map +0 -1
  44. package/dist/esm/VCVerificationPill-a35e1dad.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var core = require('@learncard/core');
5
- var VCDisplayCard = require('./VCDisplayCard-b67f991b.js');
5
+ var VCDisplayCard = require('./VCDisplayCard-04b39d6f.js');
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -50,4 +50,4 @@ const VCCard = ({ credential, issueeOverride, className = "" }) => {
50
50
  };
51
51
 
52
52
  exports.VCCard = VCCard;
53
- //# sourceMappingURL=VCCard-b63f75fc.js.map
53
+ //# sourceMappingURL=VCCard-044ddc90.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VCCard-b63f75fc.js","sources":["../../src/components/VCCard/VCCard.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { initLearnCard } from '@learncard/core';\nimport { VC, Profile, VerificationItem } from '@learncard/types';\n\nimport { VCDisplayCard } from '../VCDisplayCard';\n\nexport type VCCardProps = {\n credential: VC;\n issueeOverride?: Profile;\n className?: string;\n};\n\nexport const VCCard: React.FC<VCCardProps> = ({ credential, issueeOverride, className = '' }) => {\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.verifyCredential(credential);\n setVCVerification(verification);\n setLoading(false);\n };\n\n verify();\n }, [credential]);\n\n return (\n <VCDisplayCard\n credential={credential}\n issueeOverride={issueeOverride}\n className={className}\n loading={loading}\n verification={vcVerification}\n />\n );\n};\n\nexport default VCCard;\n"],"names":["useState","useEffect","initLearnCard","React","VCDisplayCard"],"mappings":";;;;;;;;;;AAAA,IAAI,OAAO,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,KAAK;AAClD,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC1C,IAAI,IAAI,SAAS,GAAG,CAAC,KAAK,KAAK;AAC/B,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,OAAO,CAAC,OAAO,CAAC,EAAE;AAClB,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,IAAI,QAAQ,GAAG,CAAC,KAAK,KAAK;AAC9B,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,OAAO,CAAC,OAAO,CAAC,EAAE;AAClB,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACrG,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AAIU,MAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK;AAC1E,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGA,cAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGA,cAAQ,CAAC,EAAE,CAAC,CAAC;AAC3D,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa;AAC5D,MAAM,MAAM,MAAM,GAAG,MAAMC,kBAAa,EAAE,CAAC;AAC3C,MAAM,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACrE,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACtC,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,EAAE,CAAC;AACb,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACnB,EAAE,uBAAuBC,yBAAK,CAAC,aAAa,CAACC,2BAAa,EAAE;AAC5D,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,YAAY,EAAE,cAAc;AAChC,GAAG,CAAC,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"VCCard-044ddc90.js","sources":["../../src/components/VCCard/VCCard.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { initLearnCard } from '@learncard/core';\nimport { VC, Profile, VerificationItem } from '@learncard/types';\n\nimport { VCDisplayCard } from '../VCDisplayCard';\n\nexport type VCCardProps = {\n credential: VC;\n issueeOverride?: Profile;\n className?: string;\n};\n\nexport const VCCard: React.FC<VCCardProps> = ({ credential, issueeOverride, className = '' }) => {\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.verifyCredential(credential);\n setVCVerification(verification);\n setLoading(false);\n };\n\n verify();\n }, [credential]);\n\n return (\n <VCDisplayCard\n credential={credential}\n issueeOverride={issueeOverride}\n className={className}\n loading={loading}\n verification={vcVerification}\n />\n );\n};\n\nexport default VCCard;\n"],"names":["useState","useEffect","initLearnCard","React","VCDisplayCard"],"mappings":";;;;;;;;;;AAAA,IAAI,OAAO,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,KAAK;AAClD,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC1C,IAAI,IAAI,SAAS,GAAG,CAAC,KAAK,KAAK;AAC/B,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,OAAO,CAAC,OAAO,CAAC,EAAE;AAClB,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,IAAI,QAAQ,GAAG,CAAC,KAAK,KAAK;AAC9B,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,OAAO,CAAC,OAAO,CAAC,EAAE;AAClB,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACrG,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AAIU,MAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK;AAC1E,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGA,cAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGA,cAAQ,CAAC,EAAE,CAAC,CAAC;AAC3D,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa;AAC5D,MAAM,MAAM,MAAM,GAAG,MAAMC,kBAAa,EAAE,CAAC;AAC3C,MAAM,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACrE,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACtC,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,EAAE,CAAC;AACb,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACnB,EAAE,uBAAuBC,yBAAK,CAAC,aAAa,CAACC,2BAAa,EAAE;AAC5D,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,YAAY,EAAE,cAAc;AAChC,GAAG,CAAC,CAAC;AACL;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var VCVerificationCheck = require('./VCVerificationCheck-04f3f7bc.js');
5
- var VCVerificationPill = require('./VCVerificationPill-1d535a72.js');
5
+ var VCVerificationPill = require('./VCVerificationPill-8bef8dfc.js');
6
6
  var FlipArrowRight = require('./ArrowArcRight.svg');
7
7
 
8
8
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -99,4 +99,4 @@ const VCDisplayBackFace = ({
99
99
  exports.VCDisplayBackFace = VCDisplayBackFace;
100
100
  exports.getImageFromProfile = getImageFromProfile;
101
101
  exports.getNameFromProfile = getNameFromProfile;
102
- //# sourceMappingURL=VCDisplayBackFace-4ae2b5c5.js.map
102
+ //# sourceMappingURL=VCDisplayBackFace-bf803e55.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VCDisplayBackFace-4ae2b5c5.js","sources":["../../src/helpers/credential.helpers.ts","../../src/components/VCDisplayBackFace/VCDisplayBackFace.tsx"],"sourcesContent":["import { Image, Profile } from '@learncard/types';\n\nexport const getImageFromImage = (image: Image): string => {\n if (typeof image === 'string') return image;\n\n return image.id ?? '';\n};\n\nexport const getNameFromProfile = (profile: Profile): string => {\n if (typeof profile === 'string') return profile;\n\n return profile.name ?? '';\n};\n\nexport const getImageFromProfile = (profile: Profile): string => {\n if (typeof profile === 'string') return '';\n\n return getImageFromImage(profile.image ?? '');\n};\n","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}) => {\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\n return (\n <div\n className={`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 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 <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-4 subpixel-antialiased text-grayscale-600 text-[14px]\">\n {descriptionText}\n </p>\n </div>\n\n <div className=\"width-full mt-7\">\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-4 subpixel-antialiased text-grayscale-600 text-[14px] \">\n {criteriaText}\n </p>\n </div>\n\n <div className=\"width-full mt-7 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 </section>\n\n <div className=\"w-full mt-2\"></div>\n\n <button className=\"bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 border border-indigo-300 rounded-full\">\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":["React","FlipArrowRight","VCVerificationCheckWithText","VCVerificationPill"],"mappings":"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"}
1
+ {"version":3,"file":"VCDisplayBackFace-bf803e55.js","sources":["../../src/helpers/credential.helpers.ts","../../src/components/VCDisplayBackFace/VCDisplayBackFace.tsx"],"sourcesContent":["import { Image, Profile } from '@learncard/types';\n\nexport const getImageFromImage = (image: Image): string => {\n if (typeof image === 'string') return image;\n\n return image.id ?? '';\n};\n\nexport const getNameFromProfile = (profile: Profile): string => {\n if (typeof profile === 'string') return profile;\n\n return profile.name ?? '';\n};\n\nexport const getImageFromProfile = (profile: Profile): string => {\n if (typeof profile === 'string') return '';\n\n return getImageFromImage(profile.image ?? '');\n};\n","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}) => {\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\n return (\n <div\n className={`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 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 <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-4 subpixel-antialiased text-grayscale-600 text-[14px]\">\n {descriptionText}\n </p>\n </div>\n\n <div className=\"width-full mt-7\">\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-4 subpixel-antialiased text-grayscale-600 text-[14px] \">\n {criteriaText}\n </p>\n </div>\n\n <div className=\"width-full mt-7 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 </section>\n\n <div className=\"w-full mt-2\"></div>\n\n <button className=\"bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 border border-indigo-300 rounded-full\">\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":["React","FlipArrowRight","VCVerificationCheckWithText","VCVerificationPill"],"mappings":"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"}
@@ -6,7 +6,7 @@ var FatArrow = require('./icon.green.fat-arrow.png');
6
6
  var FlipArrowRight = require('./ArrowArcRight.svg');
7
7
  var DefaultFace = require('./default-face.jpeg');
8
8
  var VCVerificationCheck = require('./VCVerificationCheck-04f3f7bc.js');
9
- var VCDisplayBackFace = require('./VCDisplayBackFace-4ae2b5c5.js');
9
+ var VCDisplayBackFace = require('./VCDisplayBackFace-bf803e55.js');
10
10
 
11
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
12
 
@@ -2432,6 +2432,7 @@ const VCDisplayFrontFace = ({
2432
2432
  createdAt,
2433
2433
  issuer,
2434
2434
  issuee,
2435
+ subjectImageComponent,
2435
2436
  credentialSubject,
2436
2437
  className = "",
2437
2438
  loading
@@ -2442,6 +2443,18 @@ const VCDisplayFrontFace = ({
2442
2443
  const issueeName = VCDisplayBackFace.getNameFromProfile(issuee != null ? issuee : "");
2443
2444
  const issuerImage = VCDisplayBackFace.getImageFromProfile(issuer != null ? issuer : "");
2444
2445
  const issueeImage = VCDisplayBackFace.getImageFromProfile(issuee != null ? issuee : "");
2446
+ let issueeImageEl = null;
2447
+ if (issueeImage) {
2448
+ issueeImageEl = /* @__PURE__ */ React__default["default"].createElement("div", {
2449
+ className: "flex flex-row items-center justify-center h-full w-full rounded-full border-solid border-4 border-white overflow-hidden bg-white"
2450
+ }, /* @__PURE__ */ React__default["default"].createElement("img", {
2451
+ className: "h-full w-full object-cover",
2452
+ src: issueeImage || DefaultFace__default["default"],
2453
+ alt: "Issuee image"
2454
+ }));
2455
+ } else if (!issueeImage && subjectImageComponent) {
2456
+ issueeImageEl = subjectImageComponent;
2457
+ }
2445
2458
  return /* @__PURE__ */ React__default["default"].createElement("div", {
2446
2459
  className: `flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] max-h-[600px] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`
2447
2460
  }, /* @__PURE__ */ React__default["default"].createElement("section", {
@@ -2477,20 +2490,14 @@ const VCDisplayFrontFace = ({
2477
2490
  alt: "fat arrow icon"
2478
2491
  }), /* @__PURE__ */ React__default["default"].createElement("div", {
2479
2492
  className: "flex items-center justify-center h-16 w-16 shadow-3xl rounded-full overflow-hidden bg-white"
2480
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
2481
- className: "flex flex-row items-center justify-center h-full w-full rounded-full border-solid border-4 border-white overflow-hidden bg-white"
2482
- }, /* @__PURE__ */ React__default["default"].createElement("img", {
2483
- className: "h-full w-full object-cover",
2484
- src: issueeImage || DefaultFace__default["default"],
2485
- alt: "Issuee image"
2486
- })))), /* @__PURE__ */ React__default["default"].createElement("div", {
2493
+ }, issueeImageEl)), /* @__PURE__ */ React__default["default"].createElement("div", {
2487
2494
  className: "w-full mt-2 vc-card-issued-to-info"
2488
2495
  }, /* @__PURE__ */ React__default["default"].createElement("p", {
2489
2496
  className: "text-sm font-light text-center line-clamp-2 vc-display-issue-details text-gray-900",
2490
2497
  "data-testid": "vc-thumbnail-createdAt"
2491
2498
  }, "Issued to ", /* @__PURE__ */ React__default["default"].createElement("span", {
2492
2499
  className: "font-bold text-gray-900"
2493
- }, issueeName), " on", " ", createdAt != null ? createdAt : "", " by ", /* @__PURE__ */ React__default["default"].createElement("span", {
2500
+ }, issueeName), " on", " ", createdAt != null ? createdAt : "", " by", " ", /* @__PURE__ */ React__default["default"].createElement("span", {
2494
2501
  className: "font-bold text-gray-900"
2495
2502
  }, " ", issuerName))), /* @__PURE__ */ React__default["default"].createElement("button", {
2496
2503
  className: "cursor-alias bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 border border-indigo-300 rounded-full"
@@ -2523,7 +2530,8 @@ const VCDisplayCard = ({
2523
2530
  issueeOverride,
2524
2531
  className = "",
2525
2532
  loading = false,
2526
- verification = []
2533
+ verification = [],
2534
+ subjectImageComponent
2527
2535
  }) => {
2528
2536
  const {
2529
2537
  title,
@@ -2538,6 +2546,7 @@ const VCDisplayCard = ({
2538
2546
  credentialSubject,
2539
2547
  issuer,
2540
2548
  issuee,
2549
+ subjectImageComponent,
2541
2550
  createdAt,
2542
2551
  className,
2543
2552
  loading
@@ -2554,4 +2563,4 @@ const VCDisplayCard = ({
2554
2563
  };
2555
2564
 
2556
2565
  exports.VCDisplayCard = VCDisplayCard;
2557
- //# sourceMappingURL=VCDisplayCard-b67f991b.js.map
2566
+ //# sourceMappingURL=VCDisplayCard-04b39d6f.js.map