@learncard/react 2.7.10 → 2.7.11
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.
- package/dist/cjs/{AchievementCard-27fc10b5.js → AchievementCard-2ad4cb64.js} +5 -5
- package/dist/cjs/{AchievementCard-27fc10b5.js.map → AchievementCard-2ad4cb64.js.map} +1 -1
- package/dist/cjs/{BoostGenericCard-c7b6a8ac.js → BoostGenericCard-e540e459.js} +8 -6
- package/dist/cjs/{BoostGenericCard-c7b6a8ac.js.map → BoostGenericCard-e540e459.js.map} +1 -1
- package/dist/cjs/{BoostSmallCard-2a588dc6.js → BoostSmallCard-9dc75a95.js} +4 -4
- package/dist/cjs/{BoostSmallCard-2a588dc6.js.map → BoostSmallCard-9dc75a95.js.map} +1 -1
- package/dist/cjs/CertificateDisplayCard-96545851.js +824 -0
- package/dist/cjs/CertificateDisplayCard-96545851.js.map +1 -0
- package/dist/cjs/{CircleCheckButton-abff235d.js → CircleCheckButton-82d47ee2.js} +2 -2
- package/dist/cjs/{CircleCheckButton-abff235d.js.map → CircleCheckButton-82d47ee2.js.map} +1 -1
- package/dist/cjs/{CircleIcon-3d6a536a.js → CircleIcon-617c38fa.js} +3 -3
- package/dist/cjs/{CircleIcon-3d6a536a.js.map → CircleIcon-617c38fa.js.map} +1 -1
- package/dist/cjs/{CourseVerticalCard-2958d043.js → CourseVerticalCard-5a73ab74.js} +4 -4
- package/dist/cjs/{CourseVerticalCard-2958d043.js.map → CourseVerticalCard-5a73ab74.js.map} +1 -1
- package/dist/cjs/{GenericCard-6ac2620f.js → GenericCard-46248807.js} +4 -4
- package/dist/cjs/{GenericCard-6ac2620f.js.map → GenericCard-46248807.js.map} +1 -1
- package/dist/cjs/{JobListCard-cdb1aa2f.js → JobListCard-458c8585.js} +3 -3
- package/dist/cjs/{JobListCard-cdb1aa2f.js.map → JobListCard-458c8585.js.map} +1 -1
- package/dist/cjs/{LearnPill-64fbabc8.js → LearnPill-21b47475.js} +3 -3
- package/dist/cjs/{LearnPill-64fbabc8.js.map → LearnPill-21b47475.js.map} +1 -1
- package/dist/cjs/MeritBadgeDisplayCard-d153be39.js +826 -0
- package/dist/cjs/MeritBadgeDisplayCard-d153be39.js.map +1 -0
- package/dist/cjs/MeritBadgeSkillsCount-bfd5681a.js +34 -0
- package/dist/cjs/MeritBadgeSkillsCount-bfd5681a.js.map +1 -0
- package/dist/cjs/{RoundedPill-4bce9068.js → RoundedPill-bda7c067.js} +2 -2
- package/dist/cjs/{RoundedPill-4bce9068.js.map → RoundedPill-bda7c067.js.map} +1 -1
- package/dist/cjs/{SkillTabCard-2be1570e.js → SkillTabCard-d8f3f5d4.js} +4 -4
- package/dist/cjs/{SkillTabCard-2be1570e.js.map → SkillTabCard-d8f3f5d4.js.map} +1 -1
- package/dist/cjs/{VCCard-a4aca9ab.js → VCCard-85e20a61.js} +3 -3
- package/dist/cjs/{VCCard-a4aca9ab.js.map → VCCard-85e20a61.js.map} +1 -1
- package/dist/cjs/{VCDisplayBackFace-dc2d4cd8.js → VCDisplayBackFace-bf564112.js} +2 -2
- package/dist/cjs/{VCDisplayBackFace-dc2d4cd8.js.map → VCDisplayBackFace-bf564112.js.map} +1 -1
- package/dist/cjs/{VCDisplayCard-738d9e74.js → VCDisplayCard-a2dbebac.js} +3 -3
- package/dist/cjs/{VCDisplayCard-738d9e74.js.map → VCDisplayCard-a2dbebac.js.map} +1 -1
- package/dist/cjs/{VCDisplayCard2-0960b02d.js → VCDisplayCard2-e779aa25.js} +57 -30
- package/dist/cjs/VCDisplayCard2-e779aa25.js.map +1 -0
- package/dist/cjs/{CertificateDisplayCard-538033fd.js → VerifierStateBadgeAndText-fd0bd814.js} +10 -818
- package/dist/cjs/VerifierStateBadgeAndText-fd0bd814.js.map +1 -0
- package/dist/cjs/{constants-20986f04.js → constants-737d10f6.js} +7 -6
- package/dist/cjs/constants-737d10f6.js.map +1 -0
- package/dist/cjs/{credential.helpers-07221424.js → credential.helpers-c1f43597.js} +31 -2
- package/dist/cjs/credential.helpers-c1f43597.js.map +1 -0
- package/dist/cjs/{icons-9878f84c.js → icons-0404f605.js} +2 -2
- package/dist/cjs/{icons-9878f84c.js.map → icons-0404f605.js.map} +1 -1
- package/dist/cjs/{index-7d94d5ac.js → index-5488badc.js} +2 -1
- package/dist/cjs/index-5488badc.js.map +1 -0
- package/dist/cjs/{index-503d0d98.js → index-7cd11826.js} +2 -2
- package/dist/cjs/{index-503d0d98.js.map → index-7cd11826.js.map} +1 -1
- package/dist/cjs/index.js +30 -23
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index10.js +5 -5
- package/dist/cjs/index12.js +6 -6
- package/dist/cjs/index13.js +30 -23
- package/dist/cjs/index13.js.map +1 -1
- package/dist/cjs/index15.js +3 -3
- package/dist/cjs/index18.js +3 -3
- package/dist/cjs/index2.js +6 -6
- package/dist/cjs/index21.js +26 -3
- package/dist/cjs/index21.js.map +1 -1
- package/dist/cjs/index22.js +3 -10
- package/dist/cjs/index22.js.map +1 -1
- package/dist/cjs/index23.js +5 -7
- package/dist/cjs/index23.js.map +1 -1
- package/dist/cjs/index24.js +9 -3
- package/dist/cjs/index24.js.map +1 -1
- package/dist/cjs/index25.js +3 -5
- package/dist/cjs/index25.js.map +1 -1
- package/dist/cjs/index26.js +8 -3
- package/dist/cjs/index26.js.map +1 -1
- package/dist/cjs/index27.js +3 -28
- package/dist/cjs/index27.js.map +1 -1
- package/dist/cjs/index28.js +5 -31
- package/dist/cjs/index28.js.map +1 -1
- package/dist/cjs/index29.js +54 -3
- package/dist/cjs/index29.js.map +1 -1
- package/dist/cjs/index3.js +6 -6
- package/dist/cjs/index30.js +3 -3
- package/dist/cjs/index31.js +3 -3
- package/dist/cjs/index32.js +3 -29
- package/dist/cjs/index32.js.map +1 -1
- package/dist/cjs/index33.js +29 -3
- package/dist/cjs/index33.js.map +1 -1
- package/dist/cjs/index34.js +3 -3
- package/dist/cjs/index35.js +3 -19
- package/dist/cjs/index35.js.map +1 -1
- package/dist/cjs/index36.js +19 -40
- package/dist/cjs/index36.js.map +1 -1
- package/dist/cjs/index37.js +34 -8
- package/dist/cjs/index37.js.map +1 -1
- package/dist/cjs/index38.js +8 -12
- package/dist/cjs/index38.js.map +1 -1
- package/dist/cjs/index39.js +15 -27
- package/dist/cjs/index39.js.map +1 -1
- package/dist/cjs/index4.js +6 -6
- package/dist/cjs/index40.js +36 -2
- package/dist/cjs/index40.js.map +1 -1
- package/dist/cjs/index41.js +3 -7
- package/dist/cjs/index41.js.map +1 -1
- package/dist/cjs/index42.js +4 -6
- package/dist/cjs/index42.js.map +1 -1
- package/dist/cjs/index43.js +6 -6
- package/dist/cjs/index44.js +15 -0
- package/dist/cjs/index44.js.map +1 -0
- package/dist/cjs/index6.js +6 -5
- package/dist/cjs/index6.js.map +1 -1
- package/dist/cjs/index7.js +4 -4
- package/dist/cjs/index8.js +3 -3
- package/dist/esm/{AchievementCard-36de6ca1.js → AchievementCard-1d5d1b61.js} +5 -5
- package/dist/esm/{AchievementCard-36de6ca1.js.map → AchievementCard-1d5d1b61.js.map} +1 -1
- package/dist/esm/{BoostGenericCard-563c1b3e.js → BoostGenericCard-de8e2a84.js} +8 -6
- package/dist/esm/{BoostGenericCard-563c1b3e.js.map → BoostGenericCard-de8e2a84.js.map} +1 -1
- package/dist/esm/{BoostSmallCard-675c85e8.js → BoostSmallCard-902844fc.js} +4 -4
- package/dist/esm/{BoostSmallCard-675c85e8.js.map → BoostSmallCard-902844fc.js.map} +1 -1
- package/dist/esm/CertificateDisplayCard-0db06790.js +812 -0
- package/dist/esm/CertificateDisplayCard-0db06790.js.map +1 -0
- package/dist/esm/{CircleCheckButton-aba0f804.js → CircleCheckButton-5a97f071.js} +2 -2
- package/dist/esm/{CircleCheckButton-aba0f804.js.map → CircleCheckButton-5a97f071.js.map} +1 -1
- package/dist/esm/{CircleIcon-b0eb81d2.js → CircleIcon-4200733b.js} +3 -3
- package/dist/esm/{CircleIcon-b0eb81d2.js.map → CircleIcon-4200733b.js.map} +1 -1
- package/dist/esm/{CourseVerticalCard-da219627.js → CourseVerticalCard-6b11b2a1.js} +4 -4
- package/dist/esm/{CourseVerticalCard-da219627.js.map → CourseVerticalCard-6b11b2a1.js.map} +1 -1
- package/dist/esm/{GenericCard-9b48aec8.js → GenericCard-7b21d3e2.js} +4 -4
- package/dist/esm/{GenericCard-9b48aec8.js.map → GenericCard-7b21d3e2.js.map} +1 -1
- package/dist/esm/{JobListCard-afc060d7.js → JobListCard-1299ff04.js} +3 -3
- package/dist/esm/{JobListCard-afc060d7.js.map → JobListCard-1299ff04.js.map} +1 -1
- package/dist/esm/{LearnPill-ebb251f6.js → LearnPill-b8885ed1.js} +3 -3
- package/dist/esm/{LearnPill-ebb251f6.js.map → LearnPill-b8885ed1.js.map} +1 -1
- package/dist/esm/MeritBadgeDisplayCard-3ac56267.js +816 -0
- package/dist/esm/MeritBadgeDisplayCard-3ac56267.js.map +1 -0
- package/dist/esm/MeritBadgeSkillsCount-f2b1ab14.js +28 -0
- package/dist/esm/MeritBadgeSkillsCount-f2b1ab14.js.map +1 -0
- package/dist/esm/{RoundedPill-3f27d4ac.js → RoundedPill-6a6e8aaf.js} +2 -2
- package/dist/esm/{RoundedPill-3f27d4ac.js.map → RoundedPill-6a6e8aaf.js.map} +1 -1
- package/dist/esm/{SkillTabCard-3670457e.js → SkillTabCard-8177895b.js} +4 -4
- package/dist/esm/{SkillTabCard-3670457e.js.map → SkillTabCard-8177895b.js.map} +1 -1
- package/dist/esm/{VCCard-717446a2.js → VCCard-1ae6ae1b.js} +3 -3
- package/dist/esm/{VCCard-717446a2.js.map → VCCard-1ae6ae1b.js.map} +1 -1
- package/dist/esm/{VCDisplayBackFace-d7597ab2.js → VCDisplayBackFace-f05a047b.js} +2 -2
- package/dist/esm/{VCDisplayBackFace-d7597ab2.js.map → VCDisplayBackFace-f05a047b.js.map} +1 -1
- package/dist/esm/{VCDisplayCard-0593b168.js → VCDisplayCard-3e11b093.js} +3 -3
- package/dist/esm/{VCDisplayCard-0593b168.js.map → VCDisplayCard-3e11b093.js.map} +1 -1
- package/dist/esm/{VCDisplayCard2-efbf2972.js → VCDisplayCard2-e8a1f9f5.js} +31 -4
- package/dist/esm/{VCDisplayCard2-efbf2972.js.map → VCDisplayCard2-e8a1f9f5.js.map} +1 -1
- package/dist/esm/{CertificateDisplayCard-c1c15c0d.js → VerifierStateBadgeAndText-86214479.js} +7 -813
- package/dist/esm/VerifierStateBadgeAndText-86214479.js.map +1 -0
- package/dist/esm/{constants-e1c856cf.js → constants-a7601fa8.js} +7 -6
- package/dist/esm/constants-a7601fa8.js.map +1 -0
- package/dist/esm/{credential.helpers-e8fe0001.js → credential.helpers-3d9244b6.js} +31 -2
- package/dist/esm/credential.helpers-3d9244b6.js.map +1 -0
- package/dist/esm/{icons-6ed3416f.js → icons-03afd795.js} +2 -2
- package/dist/esm/{icons-6ed3416f.js.map → icons-03afd795.js.map} +1 -1
- package/dist/esm/{index-43f63ea7.js → index-28917993.js} +2 -1
- package/dist/esm/index-28917993.js.map +1 -0
- package/dist/esm/{index-09573aa0.js → index-5d5219f7.js} +2 -2
- package/dist/esm/{index-09573aa0.js.map → index-5d5219f7.js.map} +1 -1
- package/dist/esm/index.js +24 -21
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index10.js +5 -5
- package/dist/esm/index12.js +6 -6
- package/dist/esm/index13.js +24 -21
- package/dist/esm/index13.js.map +1 -1
- package/dist/esm/index15.js +3 -3
- package/dist/esm/index18.js +3 -3
- package/dist/esm/index2.js +6 -6
- package/dist/esm/index21.js +22 -2
- package/dist/esm/index21.js.map +1 -1
- package/dist/esm/index22.js +2 -8
- package/dist/esm/index22.js.map +1 -1
- package/dist/esm/index23.js +3 -6
- package/dist/esm/index23.js.map +1 -1
- package/dist/esm/index24.js +8 -2
- package/dist/esm/index24.js.map +1 -1
- package/dist/esm/index25.js +2 -3
- package/dist/esm/index25.js.map +1 -1
- package/dist/esm/index26.js +6 -2
- package/dist/esm/index26.js.map +1 -1
- package/dist/esm/index27.js +2 -26
- package/dist/esm/index27.js.map +1 -1
- package/dist/esm/index28.js +3 -26
- package/dist/esm/index28.js.map +1 -1
- package/dist/esm/index29.js +49 -2
- package/dist/esm/index29.js.map +1 -1
- package/dist/esm/index3.js +6 -6
- package/dist/esm/index30.js +2 -1
- package/dist/esm/index30.js.map +1 -1
- package/dist/esm/index31.js +1 -2
- package/dist/esm/index31.js.map +1 -1
- package/dist/esm/index32.js +2 -28
- package/dist/esm/index32.js.map +1 -1
- package/dist/esm/index33.js +28 -2
- package/dist/esm/index33.js.map +1 -1
- package/dist/esm/index34.js +2 -2
- package/dist/esm/index35.js +2 -7
- package/dist/esm/index35.js.map +1 -1
- package/dist/esm/index36.js +7 -39
- package/dist/esm/index36.js.map +1 -1
- package/dist/esm/index37.js +33 -7
- package/dist/esm/index37.js.map +1 -1
- package/dist/esm/index38.js +7 -11
- package/dist/esm/index38.js.map +1 -1
- package/dist/esm/index39.js +14 -23
- package/dist/esm/index39.js.map +1 -1
- package/dist/esm/index4.js +6 -6
- package/dist/esm/index40.js +28 -2
- package/dist/esm/index40.js.map +1 -1
- package/dist/esm/index41.js +3 -2
- package/dist/esm/index41.js.map +1 -1
- package/dist/esm/index42.js +3 -3
- package/dist/esm/index43.js +3 -5
- package/dist/esm/index43.js.map +1 -1
- package/dist/esm/index44.js +7 -0
- package/dist/esm/index44.js.map +1 -0
- package/dist/esm/index6.js +5 -4
- package/dist/esm/index6.js.map +1 -1
- package/dist/esm/index7.js +4 -4
- package/dist/esm/index8.js +3 -3
- package/dist/index.d.ts +70 -2
- package/dist/main.css +1 -1
- package/dist/main.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/CertificateDisplayCard-538033fd.js.map +0 -1
- package/dist/cjs/VCDisplayCard2-0960b02d.js.map +0 -1
- package/dist/cjs/constants-20986f04.js.map +0 -1
- package/dist/cjs/credential.helpers-07221424.js.map +0 -1
- package/dist/cjs/index-7d94d5ac.js.map +0 -1
- package/dist/esm/CertificateDisplayCard-c1c15c0d.js.map +0 -1
- package/dist/esm/constants-e1c856cf.js.map +0 -1
- package/dist/esm/credential.helpers-e8fe0001.js.map +0 -1
- package/dist/esm/index-43f63ea7.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeritBadgeDisplayCard-3ac56267.js","sources":["../../src/components/MeritBadgeDisplayCard/AlignmentRow.tsx","../../src/components/MeritBadgeDisplayCard/InfoBox.tsx","../../src/components/MeritBadgeDisplayCard/AlignmentsBox.tsx","../../src/components/MeritBadgeDisplayCard/MediaAttachmentsBox.tsx","../../src/components/MeritBadgeDisplayCard/VerificationRow.tsx","../../src/components/MeritBadgeDisplayCard/VerificationsBox.tsx","../../src/components/MeritBadgeDisplayCard/TruncateTextBox.tsx","../../src/components/MeritBadgeDisplayCard/MeritBadgeBackFace.tsx","../../src/components/MeritBadgeDisplayCard/MeritBadgeCornerIcon.tsx","../../src/components/MeritBadgeDisplayCard/MeritBadgeRibbon.tsx","../../src/components/MeritBadgeDisplayCard/MeritBadgeImageDisplay.tsx","../../src/components/MeritBadgeDisplayCard/MeritBadgeProfileImageDisplay.tsx","../../src/components/MeritBadgeDisplayCard/MeritBadgeFrontFace.tsx","../../src/components/MeritBadgeDisplayCard/MeritBadgeDisplayCard.tsx"],"sourcesContent":["import React from 'react';\nimport CaretRightFilled from '../../assets/images/CaretRightFilled.svg';\n\ntype AlignmentsRowProps = {\n url?: string\n name?: string\n framework?: string\n};\nconst AlignmentRow:React.FC<AlignmentsRowProps> = ({ \n url,\n name,\n framework\n }) => {\n return (\n <div className=\"flex flex-col gap-[5px] font-poppins text-[12px] bg-[#DBEAFE] rounded-[15px] border-b-[1px] border-grayscale-200 border-solid w-full p-[10px] last:border-0\">\n <h1 className=\"text-blue-800 font-semibold uppercase\">{framework}</h1>\n {/* this might need to change to a link depends on how it comes back after the api call */}\n <button className=\"flex\" onClick={() => window.open(url)}>\n <span className=\"text-left\">{name}</span>\n <img className=\"w-[20px] self-end\" src={CaretRightFilled} alt=\"right-caret\"/>\n </button>\n </div>\n );\n};\n\nexport default AlignmentRow;\n","import React from 'react';\n\ntype InfoBoxProps = {\n text: string;\n handleClose: () => void;\n backgroundColor?: string;\n};\n\nconst InfoBox: React.FC<InfoBoxProps> = ({ text, handleClose, backgroundColor = '#6366F1' }) => {\n const bgColorWithOpacity = `${backgroundColor}1F`; // 12% opacity\n return (\n <div\n className=\"info-box p-[10px] rounded-[10px] w-full font-poppins text-[12px] leading[18px]\"\n style={{ backgroundColor: bgColorWithOpacity }}\n >\n {text}{' '}\n <button\n onClick={e => {\n e.stopPropagation();\n handleClose();\n }}\n className=\"text-indigo-500 font-[700] select-none\"\n >\n Close\n </button>\n </div>\n );\n};\n\nexport default InfoBox;\n","import React, { useState } from 'react';\n\nimport AlignmentRow from './AlignmentRow';\nimport InfoIcon from '../svgs/InfoIcon';\nimport InfoBox from './InfoBox';\n\ntype Alignment = {\n targetUrl: string;\n targetName: string;\n targetFramework: string;\n};\n\ntype AlignmentsBoxProps = {\n alignment: Alignment | Alignment[];\n style: 'MeritBadge' | 'boost';\n};\n\nconst AlignmentsBox: React.FC<AlignmentsBoxProps> = ({ alignment, style }) => {\n const [showInfo, setShowInfo] = useState(false);\n const alignmentText = `\n Alignments in your Open Badge credential link your achievement to established frameworks, standards, or competencies. \n Each alignment shows how your boost directly relates to skills, knowledge areas, and professional standards that are recognized in your field.\n `;\n\n const alignments = Array.isArray(alignment)\n ? alignment.map((object, index) => (\n <AlignmentRow\n key={index}\n url={object.targetUrl}\n name={object.targetName}\n framework={object.targetFramework}\n />\n ))\n : alignment && (\n <AlignmentRow\n url={alignment.targetUrl}\n name={alignment.targetName}\n framework={alignment.targetFramework}\n />\n );\n\n return (\n <div className=\"bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom p-[15px] w-full\">\n <div className=\"flex w-full items-center\">\n <h3\n className={\n style === 'MeritBadge'\n ? 'text-[17px] text-grayscale-900 font-poppins'\n : 'text-[22px] font-mouse'\n }\n >\n Alignments\n </h3>\n <button className=\"ml-auto\" onClick={() => setShowInfo(!showInfo)}>\n <InfoIcon color={showInfo ? '#6366F1' : undefined} />\n </button>\n </div>\n {showInfo && <InfoBox text={alignmentText} handleClose={() => setShowInfo(false)} />}\n {alignments}\n </div>\n );\n};\n\nexport default AlignmentsBox;\n","import React, { useEffect, useState } from 'react';\nimport prettyBytes from 'pretty-bytes';\n\nimport Camera from '../svgs/Camera';\nimport LinkIcon from '../svgs/LinkIcon';\nimport VideoIcon from '../svgs/VideoIcon';\nimport GenericDocumentIcon from '../svgs/GenericDocumentIcon';\n\nimport { Attachment, MediaMetadata, VideoMetadata } from '../../types';\nimport { getBaseUrl } from '../../helpers/url.helpers';\nimport { Lightbox, LightboxItem } from '../Lightbox';\n\ntype MediaAttachmentsBoxProps = {\n attachments: Attachment[];\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string, type: 'photo' | 'document' | 'video' | 'link') => void;\n enableLightbox?: boolean;\n};\n\nconst defaultGetFileMetadata = async (url: string) => {\n console.log({ url });\n const isFilestack = url.includes('filestack');\n if (!isFilestack) return;\n\n const urlParams = url.split('.com/')[1]?.split('/');\n if (!urlParams) return;\n const handle = urlParams[urlParams.length - 1];\n\n let fetchFailed = false;\n const data = await fetch(`https://cdn.filestackcontent.com/${handle}/metadata`)\n .then(res => res.json())\n .catch(() => (fetchFailed = true));\n\n if (fetchFailed) return;\n\n const fileExtension = data.filename.split('.')[1];\n\n return {\n fileExtension,\n sizeInBytes: data.size,\n numberOfPages: undefined,\n };\n};\n\n// Function to determine if the URL is from YouTube\nconst isYoutubeUrl = (url: string) => {\n const youtubeUrl = new URL(url);\n return youtubeUrl.hostname === 'www.youtube.com';\n};\n\n// Function to get the YouTube video ID from the URL\nconst getYoutubeVideoId = (url: string) => {\n const regex = /(?:\\?v=|\\.com\\/embed\\/)([^&]+)/;\n const match = url.match(regex);\n return match ? match[1] : '';\n};\n\n// Function to get the cover image URL for YouTube videos\nconst getCoverImageUrl = (youtubeWatchUrl: string) => {\n if (!isYoutubeUrl(youtubeWatchUrl)) {\n return ''; // Return an empty string if the URL is not a YouTube URL\n }\n\n const videoId = getYoutubeVideoId(youtubeWatchUrl);\n // Construct and return the URL for the video's cover image\n // This URL fetches the highest resolution image available\n return videoId ? `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg` : '';\n};\n\nconst defaultGetVideoMetadata = async (url: string) => {\n const isYoutube = isYoutubeUrl(url);\n if (!isYoutube) return;\n\n const metadataUrl = `http://youtube.com/oembed?url=${url}&format=json`;\n\n let fetchFailed = false;\n const metadata = await fetch(metadataUrl)\n .then(res => res.json())\n .catch(() => (fetchFailed = true));\n\n const coverImageUrl = getCoverImageUrl(url);\n\n if (fetchFailed) return { imageUrl: coverImageUrl };\n\n return {\n title: metadata.title,\n imageUrl: coverImageUrl,\n videoLength: '', // TODO figure out how to get this\n };\n};\n\nconst MediaAttachmentsBox: React.FC<MediaAttachmentsBoxProps> = ({\n attachments,\n getFileMetadata = defaultGetFileMetadata,\n getVideoMetadata = defaultGetVideoMetadata,\n onMediaAttachmentClick,\n enableLightbox = false,\n}) => {\n const [documentMetadata, setDocumentMetadata] = useState<{\n [documentUrl: string]: MediaMetadata | undefined;\n }>({});\n const [videoMetadata, setVideoMetadata] = useState<{\n [videoUrl: string]: VideoMetadata | undefined;\n }>({});\n\n const mediaAttachments: Attachment[] = [];\n const documentsAndLinks: Attachment[] = [];\n attachments.forEach(a => {\n switch (a.type) {\n case 'document':\n case 'link':\n documentsAndLinks.push(a);\n break;\n case 'photo':\n case 'video':\n mediaAttachments.push(a);\n break;\n default:\n break;\n }\n });\n\n useEffect(() => {\n const getMetadata = async (attachments: Attachment[]): Promise<any> => {\n const docMetadata: { [docUrl: string]: MediaMetadata | undefined } = {};\n const videoMetadata: { [videoUrl: string]: VideoMetadata | undefined } = {};\n await Promise.all(\n attachments.map(async attachment => {\n if (attachment.type === 'document') {\n docMetadata[attachment.url] = await getFileMetadata(attachment.url);\n } else if (attachment.type === 'video') {\n videoMetadata[attachment.url] = await getVideoMetadata(attachment.url);\n }\n })\n );\n\n setVideoMetadata(videoMetadata);\n setDocumentMetadata(docMetadata);\n };\n\n const videos = attachments.filter(a => a.type === 'video');\n getMetadata([...documentsAndLinks, ...videos]);\n }, []);\n\n const [currentLightboxUrl, setCurrentLightboxUrl] = useState<string | undefined>(undefined);\n const lightboxItems = mediaAttachments.filter(\n a => a.type === 'photo' || a.type === 'video'\n ) as LightboxItem[];\n const handleMediaAttachmentClick = (\n url: string,\n type: 'photo' | 'document' | 'video' | 'link'\n ) => {\n if (type === 'photo' || type === 'video') {\n setCurrentLightboxUrl(url);\n }\n\n onMediaAttachmentClick?.(url, type);\n };\n\n return (\n <div className=\"bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full\">\n <h3 className=\"text-[17px] text-grayscale-900 font-poppins\">Attachments</h3>\n {mediaAttachments.length > 0 && (\n <div className=\"flex gap-[5px] justify-between flex-wrap w-full\">\n {enableLightbox && (\n <Lightbox\n items={lightboxItems}\n currentUrl={currentLightboxUrl}\n setCurrentUrl={setCurrentLightboxUrl}\n />\n )}\n {mediaAttachments.map((media, index) => {\n let innerContent: React.ReactNode;\n let title = media.title;\n\n if (media.type === 'video') {\n const metadata = videoMetadata[media.url];\n title = (title || metadata?.title) ?? '';\n const baseUrl = getBaseUrl(media.url);\n\n innerContent = (\n <div\n className=\"bg-cover bg-no-repeat bg-center relative font-poppins text-white text-[12px] font-[400] leading-[17px] flex flex-col justify-end items-start p-[10px] text-left bg-rose-600 rounded-[15px] h-full\"\n style={{\n backgroundImage: metadata?.imageUrl\n ? `linear-gradient(180deg, rgba(0, 0, 0, 0) 44.20%, rgba(0, 0, 0, 0.6) 69%), url(${metadata?.imageUrl ?? ''\n })`\n : undefined,\n }}\n >\n {!metadata?.imageUrl && (\n <VideoIcon size=\"60\" className=\"m-auto\" />\n )}\n <div className=\"absolute bottom-[10px] left-[10px] z-10 flex items-center gap-[5px]\">\n {metadata?.imageUrl && <VideoIcon />}\n {metadata?.videoLength && (\n <span className=\"leading-[23px]\">\n {metadata.videoLength}\n </span>\n )}\n </div>\n </div>\n );\n } else {\n innerContent = (\n <div className=\"h-full w-full flex items-center justify-center\">\n <img className=\"object-cover h-full w-full\" src={media.url} />\n <Camera className=\"absolute bottom-[10px] left-[10px] z-10\" />\n </div>\n );\n }\n\n const className = `media-attachment ${media.type} w-[49%] pt-[49%] overflow-hidden relative`;\n\n if (onMediaAttachmentClick || enableLightbox) {\n return (\n <div\n key={index}\n className=\"flex bg-grayscale-100 items-center rounded-[15px] w-full\"\n >\n <button\n className=\"h-[80px] w-[80px] rounded-[15px] overflow-hidden flex-shrink-0\"\n onClick={e => {\n e.stopPropagation();\n handleMediaAttachmentClick(media.url, media.type);\n }}\n >\n {innerContent}\n </button>\n {title && (\n <div className=\"text-[12px] text-grayscale-900 font-poppins px-[10px] line-clamp-3\">\n {title}\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div key={index} className={className}>\n {innerContent}\n </div>\n );\n })}\n </div>\n )}\n {documentsAndLinks.length > 0 && (\n <div className=\"w-full flex flex-col gap-[5px]\">\n {documentsAndLinks.map((docOrLink, index) => {\n const metadata =\n docOrLink.type === 'document'\n ? documentMetadata[docOrLink.url]\n : undefined;\n const { fileExtension, sizeInBytes, numberOfPages } = metadata ?? {};\n\n let baseUrl = '';\n if (docOrLink.type === 'link') {\n baseUrl = getBaseUrl(docOrLink.url);\n }\n\n const innerContent = (\n <div className=\"flex flex-col gap-[5px]\">\n <div className=\"flex gap-[5px] items-center\">\n {docOrLink.type === 'document' && (\n <GenericDocumentIcon className=\"shrink-0\" />\n )}\n {docOrLink.type === 'link' && <LinkIcon className=\"shrink-0\" />}\n\n <div className=\"flex flex-col\">\n <span className=\"text-grayscale-900 font-[400]\">\n {docOrLink.title ?? 'No title'}\n </span>\n {docOrLink.type === 'document' && metadata && (\n <a\n href={docOrLink.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"text-grayscale-700 font-[500] text-[12px] font-poppins hover:underline\"\n onClick={e => e.stopPropagation()}\n >\n {fileExtension && (\n <span className=\"uppercase\">\n {fileExtension}\n </span>\n )}\n {fileExtension &&\n (numberOfPages || sizeInBytes) &&\n ' • '}\n {numberOfPages && (\n <span>\n {numberOfPages} page\n {numberOfPages === 1 ? '' : 's'}\n </span>\n )}\n {numberOfPages && sizeInBytes && ' • '}\n {sizeInBytes && (\n <span>{prettyBytes(sizeInBytes)}</span>\n )}\n </a>\n )}\n {docOrLink.type === 'link' && (\n <a\n href={docOrLink.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"text-indigo-500 font-[500] text-[12px] font-poppins hover:underline\"\n onClick={e => e.stopPropagation()}\n >\n {baseUrl}\n </a>\n )}\n </div>\n </div>\n </div>\n );\n\n const className = `row-attachment ${docOrLink.type} bg-grayscale-100 rounded-[15px] p-[10px] w-full font-poppins text-[12px] leading-[18px] tracking-[-0.33px] text-left`;\n\n if (onMediaAttachmentClick) {\n return (\n <button\n key={index}\n className={className}\n onClick={e => {\n e.stopPropagation();\n handleMediaAttachmentClick(docOrLink.url, docOrLink.type);\n }}\n >\n {innerContent}\n </button>\n );\n }\n\n return (\n <div key={index} className={className}>\n {innerContent}\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nexport default MediaAttachmentsBox;\n","import React, { useState } from 'react';\nimport { VerificationItem, VerificationStatusEnum } from '@learncard/types';\nimport { getColorForVerificationStatus } from '../../helpers/credential.helpers';\n\nimport InfoBox from './InfoBox';\nimport InfoIcon from '../svgs/InfoIcon';\nimport AcuteCheckmark from '../svgs/AcuteCheckmark';\nimport ExclamationPoint from '../svgs/ExclamationPoint';\nimport X from '../svgs/X';\nimport { capitalize } from '../../helpers/string.helpers';\n\ntype VerificationRowProps = {\n verification: VerificationItem;\n};\n\nconst VerificationRow: React.FC<VerificationRowProps> = ({ verification }) => {\n const [showInfo, setShowInfo] = useState(false);\n const statusColor = getColorForVerificationStatus(verification.status);\n\n const getIcon = () => {\n switch (verification.status) {\n case VerificationStatusEnum.Success:\n return <AcuteCheckmark />;\n case VerificationStatusEnum.Error:\n return <ExclamationPoint />;\n case VerificationStatusEnum.Failed:\n return <X />;\n }\n };\n\n let primaryText = verification.check\n ? `${verification.check}: ${verification.message}`\n : verification.message;\n if (verification.status === VerificationStatusEnum.Failed) {\n primaryText = verification.message ?? verification.details ?? '';\n }\n primaryText = capitalize(primaryText);\n\n const infoText = ''; // if we want certain verifications to have extra explanation, we can set this variable\n\n return (\n <div className=\"verification-row flex flex-col gap-[5px] font-poppins border-b-[1px] border-grayscale-200 border-solid w-full py-[10px] last:border-0 last:pb-0\">\n <span\n className=\"font-[700] text-[11px] uppercase flex items-center gap-[3px] select-none\"\n style={{ color: statusColor }}\n >\n {getIcon()}\n {verification.status}\n {infoText && (\n <button className=\"ml-auto\" onClick={() => setShowInfo(!showInfo)}>\n <InfoIcon color={statusColor} />\n </button>\n )}\n </span>\n {showInfo && infoText && (\n <InfoBox\n text={infoText}\n handleClose={() => setShowInfo(false)}\n backgroundColor={statusColor}\n />\n )}\n <span className=\"text-[14px] text-grayscale-900 font-poppins\">{primaryText}</span>\n </div>\n );\n};\n\nexport default VerificationRow;\n","import React, { useState } from 'react';\n\nimport VerificationRow from './VerificationRow';\nimport InfoIcon from '../svgs/InfoIcon';\nimport InfoBox from './InfoBox';\n\nimport { VerificationItem } from '@learncard/types';\n\ntype VerificationsBoxProps = {\n verificationItems: VerificationItem[];\n};\n\nconst VerificationsBox: React.FC<VerificationsBoxProps> = ({ verificationItems }) => {\n const [showInfo, setShowInfo] = useState(false);\n\n return (\n <div className=\"bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom p-[15px] w-full\">\n <div className=\"flex w-full items-center\">\n <h3 className=\"text-[17px] text-grayscale-900 font-poppins\">Verifications</h3>\n <button\n className=\"ml-auto\"\n onClick={e => {\n e.stopPropagation();\n setShowInfo(!showInfo);\n }}\n >\n <InfoIcon color={showInfo ? '#6366F1' : undefined} />\n </button>\n </div>\n {showInfo && (\n <InfoBox\n text=\"Credential verifications check the cryptographic proof of digital credentials to ensure their authenticity and accuracy.\"\n handleClose={() => setShowInfo(false)}\n />\n )}\n\n {verificationItems.map((verification, index) => (\n <VerificationRow key={index} verification={verification} />\n ))}\n </div>\n );\n};\n\nexport default VerificationsBox;\n","import React, { useState } from 'react';\n\ntype TruncateTextBoxProps = {\n headerText: string;\n headerClassName?: string;\n\n // the text to be truncated if it's too long\n text: string;\n\n truncateThreshold?: number;\n\n // extra things to put at the bottom of the box\n children?: React.ReactNode;\n className?: string;\n};\n\nconst TruncateTextBox: React.FC<TruncateTextBoxProps> = ({\n headerText,\n headerClassName = '',\n text,\n truncateThreshold = 132,\n children,\n className = 'truncate-text-box',\n}) => {\n const needsTruncate = text?.length > truncateThreshold;\n const [showFullText, setShowFullText] = useState(false);\n const truncated = needsTruncate && !showFullText;\n\n const displayText = truncated ? text.substring(0, truncateThreshold) : text;\n\n return (\n <div\n className={`${className} w-full bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom p-[15px]`}\n >\n <h3 className={`${headerClassName} text-[17px] text-grayscale-900 font-poppins`}>\n {headerText}\n </h3>\n\n <p className=\"text-[12px] text-grayscale-700 font-poppins mb-0 flex flex-col items-start\">\n {displayText}\n {truncated && (\n <>\n ...\n <button\n className=\"text-indigo-500 text-[12px]\"\n onClick={e => {\n e.stopPropagation();\n setShowFullText(true);\n }}\n >\n Show more\n </button>\n </>\n )}\n {needsTruncate && showFullText && (\n <button\n className=\"text-indigo-500 text-[12px]\"\n onClick={e => {\n e.stopPropagation();\n setShowFullText(false);\n }}\n >\n Show less\n </button>\n )}\n </p>\n\n {children}\n </div>\n );\n};\n\nexport default TruncateTextBox;\n","import React from 'react';\nimport { getCategoryDarkColor, getInfoFromCredential } from '../../helpers/credential.helpers';\nimport { VC, VerificationItem } from '@learncard/types';\nimport {\n BoostAchievementCredential,\n LCCategoryEnum,\n MediaMetadata,\n VideoMetadata,\n} from '../../types';\nimport VerificationsBox from './VerificationsBox';\nimport AlignmentsBox from './AlignmentsBox';\nimport TruncateTextBox from './TruncateTextBox';\nimport MediaAttachmentsBox from './MediaAttachmentsBox';\nimport SkillsBox from '../VCDisplayCard2/SkillsBox';\nimport LeftArrow from '../svgs/LeftArrow';\n\ntype MeritBadgeBackFaceProps = {\n isFront?: boolean;\n credential: VC | BoostAchievementCredential;\n categoryType?: LCCategoryEnum;\n verificationItems: VerificationItem[];\n customSkillsComponent?: React.ReactNode;\n\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string, type: 'photo' | 'document' | 'video' | 'link') => void;\n enableLightbox?: boolean;\n showBackButton?: boolean;\n handleViewFrontFace?: () => void;\n};\n\nexport const MeritBadgeBackFace: React.FC<MeritBadgeBackFaceProps> = ({\n credential,\n categoryType,\n verificationItems,\n customSkillsComponent,\n\n getFileMetadata,\n getVideoMetadata,\n onMediaAttachmentClick,\n enableLightbox,\n showBackButton,\n handleViewFrontFace,\n}) => {\n const { createdAt, credentialSubject } = getInfoFromCredential(credential, 'MMM dd, yyyy', {\n uppercaseDate: false,\n });\n\n const { description } = credentialSubject?.achievement ?? {};\n const criteria = credentialSubject?.achievement?.criteria?.narrative;\n const alignment = credentialSubject?.achievement?.alignment;\n\n const credentialDarkColor = getCategoryDarkColor(categoryType);\n\n let bgColor = `bg-${credentialDarkColor}`;\n\n if (categoryType === LCCategoryEnum.accommodations) {\n bgColor = 'bg-amber-700';\n } else if (categoryType === LCCategoryEnum.accomplishments) {\n bgColor = 'bg-lime-700';\n }\n\n return (\n <div\n role=\"button\"\n onClick={() => handleViewFrontFace?.()}\n className={`flex flex-col gap-[15px] items-center border-[5px] border-solid border-grayscale-200 py-[30px] px-[20px] rounded-[25px] max-w-[400px] ${bgColor}`}\n >\n {showBackButton ? (\n <div className=\"w-full\">\n <button\n className=\"vc-card-back-button rounded-full h-[50px] px-[15px] flex items-center justify-center gap-[5px] z-50 text-[30px] text-white select-none\"\n onClick={() => handleViewFrontFace?.()}\n >\n <LeftArrow className=\"text-white\" size=\"25\" />\n Details\n </button>\n </div>\n ) : (\n <h1 className=\"text-white text-center text-[22px] font-jacques\">Details</h1>\n )}\n\n <TruncateTextBox headerText=\"About\" text={description}>\n <span\n className={`text-grayscale-600 font-poppins text-[12px] font-[600] w-full ${description\n ? 'pt-[10px] border-t-[1px] border-solid border-grayscale-200'\n : ''\n }`}\n >\n Awarded on {createdAt}\n </span>\n </TruncateTextBox>\n\n {criteria && <TruncateTextBox headerText=\"Criteria\" text={criteria} />}\n\n {(credential.skills?.length ?? 0) > 0 &&\n (customSkillsComponent ? (\n customSkillsComponent\n ) : (\n <SkillsBox skills={credential.skills ?? []} />\n ))}\n\n {credential.attachments && credential.attachments.length > 0 && (\n <MediaAttachmentsBox\n attachments={credential.attachments}\n getFileMetadata={getFileMetadata}\n getVideoMetadata={getVideoMetadata}\n onMediaAttachmentClick={onMediaAttachmentClick}\n enableLightbox={enableLightbox}\n />\n )}\n\n {alignment && <AlignmentsBox alignment={alignment} style=\"MeritBadge\" />}\n\n {verificationItems && verificationItems.length > 0 && (\n <VerificationsBox verificationItems={verificationItems} />\n )}\n\n {/* so that tailwind will put these colors in the css */}\n <span className=\"hidden bg-amber-700 bg-spice-700 bg-rose-700 bg-yellow-700 bg-teal-700\"></span>\n </div>\n );\n};\n\nexport default MeritBadgeBackFace;\n","import React from 'react';\nimport RoundedCorner from '../svgs/RoundedCorner';\nimport { getCategoryIcon, getCategoryLightColor } from '../../helpers/credential.helpers';\nimport { LCCategoryEnum } from '../../types';\n\ntype MeritBadgeCornerIconProps = {\n categoryType: LCCategoryEnum;\n position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n};\n\nconst MeritBadgeCornerIcon: React.FC<MeritBadgeCornerIconProps> = ({ categoryType, position }) => {\n const credentialPrimaryColor = getCategoryLightColor(categoryType);\n const credentialIcon = getCategoryIcon(categoryType);\n\n let iconPositionClassName, cornerPositionClassName;\n switch (position) {\n case 'top-left':\n iconPositionClassName = 'top-[3px] left-[3px] pb-[10px] pr-[10px] pl-[4px] pt-[4px]';\n cornerPositionClassName = 'bottom-[-1px] right-0';\n break;\n case 'top-right':\n iconPositionClassName = 'top-[3px] right-[3px] pl-[10px] pb-[10px] pr-[4px] pt-[4px]';\n cornerPositionClassName = 'bottom-[-1px] left-0 rotate-90';\n break;\n case 'bottom-left':\n iconPositionClassName = 'bottom-[3px] left-[3px] pr-[10px] pt-[10px] pl-[4px] pb-[4px]';\n cornerPositionClassName = 'top-0 right-0 rotate-[270deg]';\n break;\n case 'bottom-right':\n iconPositionClassName =\n 'bottom-[3px] right-[3px] pl-[10px] pt-[10px] pr-[4px] pb-[4px]';\n cornerPositionClassName = 'top-[-1px] left-0 rotate-180';\n break;\n }\n\n return (\n <div\n className={`text-${credentialPrimaryColor} rounded-full bg-white absolute ${iconPositionClassName}`}\n >\n {credentialIcon}\n <RoundedCorner className={`absolute ${cornerPositionClassName}`} />\n </div>\n );\n};\n\nexport default MeritBadgeCornerIcon;\n","import React from 'react';\n\ntype MeritBadgeRibbonProps = {\n className?: string;\n};\n\nconst MeritBadgeRibbon: React.FC<MeritBadgeRibbonProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"167\"\n height=\"131\"\n viewBox=\"0 0 167 131\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <circle cx=\"83.1426\" cy=\"65.5\" r=\"64\" fill=\"white\" stroke=\"white\" strokeWidth=\"3\" />\n <path\n d=\"M29.3926 3.70096C28.9354 3.437 28.3731 3.43281 27.912 3.68993C27.4509 3.94705 27.159 4.42762 27.1432 4.95531L26.3214 32.5274L2.85421 47.0252C2.40508 47.3026 2.13488 47.7958 2.14274 48.3236C2.15061 48.8515 2.43538 49.3363 2.89258 49.6003L137.608 127.378C138.065 127.642 138.627 127.646 139.088 127.389C139.549 127.132 139.841 126.651 139.857 126.124L140.679 98.5517L164.146 84.0539C164.595 83.7764 164.865 83.2833 164.857 82.7554C164.85 82.2276 164.565 81.7427 164.108 81.4787L29.3926 3.70096Z\"\n fill=\"#622599\"\n stroke=\"white\"\n strokeWidth=\"3\"\n strokeLinejoin=\"round\"\n />\n <rect x=\"22.1426\" y=\"4.5\" width=\"123\" height=\"123\" rx=\"61.5\" fill=\"white\" />\n <rect\n x=\"22.1426\"\n y=\"4.5\"\n width=\"123\"\n height=\"123\"\n rx=\"61.5\"\n stroke=\"#622599\"\n strokeWidth=\"3\"\n />\n <rect\n x=\"28.6426\"\n y=\"11\"\n width=\"110\"\n height=\"110\"\n rx=\"55\"\n stroke=\"#622599\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"5 5\"\n />\n <rect x=\"33.6426\" y=\"16\" width=\"100\" height=\"100\" fill=\"url(#pattern0_10101_43072)\" />\n <defs>\n <pattern\n id=\"pattern0_10101_43072\"\n patternContentUnits=\"objectBoundingBox\"\n width=\"1\"\n height=\"1\"\n >\n <use xlinkHref=\"#image0_10101_43072\" transform=\"scale(0.00416667)\" />\n </pattern>\n </defs>\n </svg>\n );\n};\n\nexport default MeritBadgeRibbon;\n","import React from 'react';\nimport MeritBadgeRibbon from './MeritBadgeRibbon';\n\ntype MeritBadgeImageDisplayProps = {\n imageUrl: string;\n className?: string;\n};\n\nconst MeritBadgeImageDisplay: React.FC<MeritBadgeImageDisplayProps> = ({\n imageUrl,\n className = '',\n}) => {\n return (\n <div\n className={`flex items-center justify-center w-[120px] h-[120px] rounded-full bg-white z-50 ${className}`}\n >\n <div className=\"relative left-[1px] top-[1px] w-full h-full p-[10px] flex items-center justify-center rounded-full overflow-hidden object-contain z-[2]\">\n <img src={imageUrl} alt=\"merit badge thumbnail\" />\n </div>\n\n <MeritBadgeRibbon className=\"absolute z-[1]\" />\n </div>\n );\n};\n\nexport default MeritBadgeImageDisplay;\n","import React from 'react';\nimport IssuerSeal from '../svgs/IssuerSeal';\n\ntype MeritBadgeProfileImageDisplayProps = {\n imageUrl?: string;\n imageComponent?: React.ReactNode;\n showSeal?: boolean;\n className?: string;\n size?: string;\n};\n\nconst MeritBadgeProfileImageDisplay: React.FC<MeritBadgeProfileImageDisplayProps> = ({\n imageUrl,\n showSeal = false,\n className = '',\n imageComponent,\n size = 'big',\n}) => {\n const imageClassName = `${size === 'big' ? 'h-[60px] w-[60px]' : 'h-[39px] w-[39px]'\n } rounded-full overflow-hidden ${showSeal ? 'absolute border-[2px] border-solid border-grayscale-200' : ''\n }`;\n return (\n <div className={className}>\n {showSeal && (\n <div className=\"bg-white rounded-full p-[5px]\">\n <IssuerSeal size=\"58\" />\n </div>\n )}\n\n {imageComponent && <div className={imageClassName}>{imageComponent}</div>}\n {!imageComponent && <img className={imageClassName} src={imageUrl} />}\n </div>\n );\n};\n\nexport default MeritBadgeProfileImageDisplay;\n","import React from 'react';\n\nimport MeritBadgeCornerIcon from './MeritBadgeCornerIcon';\nimport MeritBadgeImageDisplay from './MeritBadgeImageDisplay';\nimport MeritBadgeSkillsCount from './MeritBadgeSkillsCount';\nimport MeritBadgeProfileImageDisplay from './MeritBadgeProfileImageDisplay';\n\nimport Smiley from '../svgs/Smiley';\nimport Line from '../svgs/Line';\n\nimport {\n getInfoFromCredential,\n getNameFromProfile,\n getImageFromProfile,\n getCategoryLightColor,\n getCategoryDarkColor,\n} from '../../helpers/credential.helpers';\n\nimport { VC, Profile } from '@learncard/types';\nimport { BoostAchievementCredential, LCCategoryEnum } from '../../types';\nimport VerifierStateBadgeAndText, {\n VerifierState,\n VERIFIER_STATES,\n} from '../CertificateDisplayCard/VerifierStateBadgeAndText';\n\ntype MeritBadgeFrontFaceProps = {\n isFront?: boolean;\n credential: VC | BoostAchievementCredential;\n categoryType?: LCCategoryEnum;\n issuerOverride?: Profile;\n issueeOverride?: Profile;\n trustedAppRegistry?: any[];\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n customBodyCardComponent?: React.ReactNode;\n hideIssueDate?: boolean;\n handleViewBackFace?: () => void;\n showDetailsBtn?: boolean;\n};\n\nexport const MeritBadgeFrontFace: React.FC<MeritBadgeFrontFaceProps> = ({\n isFront,\n credential,\n categoryType,\n issuerOverride,\n issueeOverride,\n trustedAppRegistry,\n subjectImageComponent,\n issuerImageComponent,\n customBodyCardComponent,\n hideIssueDate,\n handleViewBackFace,\n showDetailsBtn = false,\n}) => {\n const {\n title = '',\n createdAt,\n issuer: _issuer = '',\n issuee: _issuee = '',\n credentialSubject,\n imageUrl,\n } = getInfoFromCredential(credential, 'MMM dd, yyyy', { uppercaseDate: false });\n\n const issuee = issueeOverride || _issuee;\n const issuer = issuerOverride || _issuer;\n\n const { description } = credentialSubject?.achievement ?? {};\n\n const credentialLightColor = getCategoryLightColor(categoryType); // 500\n const credentialDarkColor = getCategoryDarkColor(categoryType); // 700\n\n let categoryTitle: string | undefined = categoryType;\n\n let textLightColor = `text-${credentialLightColor}`;\n let textDarkColor = `text-${credentialDarkColor}`;\n let borderColor = `border-${credentialLightColor}`;\n\n if (categoryType === LCCategoryEnum.accommodations) {\n textLightColor = 'text-amber-500';\n textDarkColor = 'text-amber-700';\n borderColor = 'border-amber-500';\n } else if (categoryType === LCCategoryEnum.accomplishments) {\n textLightColor = 'text-lime-500';\n textDarkColor = 'text-lime-700';\n borderColor = 'border-lime-500';\n } else if (categoryType === LCCategoryEnum.learningHistory) {\n categoryTitle = 'Course';\n } else if (categoryType === LCCategoryEnum.workHistory) {\n categoryTitle = 'Experiences';\n textLightColor = 'text-blue-500';\n textDarkColor = 'text-blue-700';\n borderColor = 'border-blue-500';\n }\n\n const issuerName = getNameFromProfile(issuer ?? '');\n const issueeName = getNameFromProfile(issuee ?? '');\n const issuerImage = getImageFromProfile(issuer ?? '');\n const issueeImage = getImageFromProfile(issuee ?? '');\n\n const issuerDid =\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id;\n\n let verifierState: VerifierState;\n if (credentialSubject?.id === issuerDid && issuerDid && issuerDid !== 'did:example:123') {\n // the extra \"&& issuerDid\" is so that the credential preview doesn't say \"Self Verified\"\n // the did:example:123 condition is so that we don't show this status from the Manage Boosts tab\n verifierState = VERIFIER_STATES.selfVerified;\n } else {\n const appRegistryEntry = trustedAppRegistry?.find(\n registryEntry => registryEntry.did === issuerDid\n );\n\n if (appRegistryEntry) {\n verifierState = appRegistryEntry.isTrusted\n ? VERIFIER_STATES.trustedVerifier\n : VERIFIER_STATES.untrustedVerifier;\n } else {\n verifierState = VERIFIER_STATES.unknownVerifier;\n }\n }\n const isSelfVerified = verifierState === VERIFIER_STATES.selfVerified;\n\n const issueeImageExists = issueeImage || subjectImageComponent;\n\n return (\n <section\n role=\"button\"\n onClick={() => handleViewBackFace?.()}\n className=\"relative p-[13px] mt-[25px] bg-white border-[5px] rounded-[30px] border-soid border-grayscale-200 max-w-[300px]\"\n >\n <div className=\"w-[calc(100%-26px)] absolute top-[-19px]\">\n <MeritBadgeImageDisplay imageUrl={imageUrl ?? ''} className=\"mx-auto\" />\n </div>\n\n <div\n className={`flex flex-col gap-[15px] items-center px-[20px] pt-[92px] pb-[50px] border-solid border-[4px] ${borderColor} rounded-[30px]`}\n >\n <div className=\"flex flex-col gap-[5px]\">\n <div className=\"flex flex-col items-center text-grayscale-900\">\n <span className=\"text-[16px] leading-[150%] font-jacques\">\n {issueeName || <Line width=\"60\" />}\n </span>\n <span className=\"text-[14px] leading-[150%] font-jacques\">\n has met the requirements for\n </span>\n </div>\n <div className=\"flex flex-col items-center\">\n <h1 className=\"text-grayscale-900 text-center text-[20px] font-jacques\">\n {title}\n </h1>\n\n <div className={`${textLightColor} uppercase text-[14px] font-poppins`}>\n {categoryTitle}\n </div>\n </div>\n </div>\n\n {customBodyCardComponent}\n {issueeImageExists && !customBodyCardComponent && (\n <MeritBadgeProfileImageDisplay\n imageUrl={issueeImage}\n imageComponent={subjectImageComponent}\n className={`flex justify-center items-center ${textDarkColor}`}\n />\n )}\n {!issueeImageExists && !customBodyCardComponent && (\n <div className=\"h-[50px] w-[50px] rounded-full bg-grayscale-500 flex items-center justify-center\">\n <Smiley />\n </div>\n )}\n\n <div className=\"border-t-[2px] border-solid border-sp-purple-base flex flex-col py-[20px] w-full\">\n <div className=\"text-[14px] text-grayscale-900 flex flex-col items-center w-full mb-[10px]\">\n <span className=\"font-jacques flex gap-[5px] items-center w-full overflow-ellipsis whitespace-nowrap overflow-hidden justify-center\">\n {issueeName === '0 person' ? (\n 'Not yet awarded'\n ) : (\n <>Awarded on {createdAt} by</>\n )}\n </span>\n </div>\n\n {/* <div className=\"flex flex-col gap-[10px] items-center\">\n <MeritBadgeSkillsCount\n skills={credential?.skills ?? []}\n onClick={handleViewBackFace}\n />\n\n {isFront && showDetailsBtn && (\n <button\n type=\"button\"\n className=\"vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[30px] py-[8px] rounded-[40px] text-[28px] tracking-[0.75px] uppercase leading-[28px] mt-[25px] w-fit select-none\"\n onClick={() => handleViewBackFace?.()}\n >\n Details\n </button>\n )}\n </div> */}\n\n <div className=\"flex flex-col gap-[5px] items-center w-full\">\n <span className=\"mb-[3px] pt-[3px] text-grayscale-900 text-[25px] leading-[90%] font-sacramento border-b-[1px] border-solid border-grayscale-200 w-full text-center overflow-ellipsis whitespace-normal scrollbar-hide\">\n {issuerName}\n </span>\n\n {/* <div className=\"flex flex-col text-[12px] text-grayscale-900 items-center\">\n <span className=\"font-jacques\">Troop Leader, Troop 1142</span>\n <span className=\"font-jacques\">Boy Scouts of America</span>\n </div> */}\n\n <VerifierStateBadgeAndText verifierState={verifierState} />\n </div>\n </div>\n </div>\n\n {categoryType && (\n <>\n <MeritBadgeCornerIcon categoryType={categoryType} position=\"top-left\" />\n <MeritBadgeCornerIcon categoryType={categoryType} position=\"top-right\" />\n <MeritBadgeCornerIcon categoryType={categoryType} position=\"bottom-left\" />\n <MeritBadgeCornerIcon categoryType={categoryType} position=\"bottom-right\" />\n </>\n )}\n\n <MeritBadgeProfileImageDisplay\n imageUrl={issuerImage}\n imageComponent={issuerImageComponent}\n className=\"w-[calc(100%-26px)] absolute bottom-0 flex justify-center items-center text-sp-purple-base\"\n size=\"small\"\n showSeal\n />\n\n {/* so that tailwind will put these colors in the css */}\n <span className=\"hidden border-rose-500 text-spice-500 border-spice-500 border-cyan-500 text-cyan-500 border-indigo-500 border-sp-purple-base\"></span>\n </section>\n );\n};\n\nexport default MeritBadgeFrontFace;\n","import React, { useState } from 'react';\nimport { VC, Profile, VerificationItem } from '@learncard/types';\nimport {\n BoostAchievementCredential,\n LCCategoryEnum,\n MediaMetadata,\n VideoMetadata,\n} from '../../types';\nimport MeritBadgeFrontFace from './MeritBadgeFrontFace';\nimport MeritBadgeBackFace from './MeritBadgeBackFace';\nimport FatArrow from '../svgs/FatArrow';\nimport ThreeDots from '../../assets/images/DotsThreeOutline.svg';\n\ntype MeritBadgeDisplayCardProps = {\n credential: VC | BoostAchievementCredential;\n categoryType?: LCCategoryEnum;\n verificationItems: VerificationItem[];\n issuerOverride?: Profile;\n issueeOverride?: Profile;\n trustedAppRegistry?: any[];\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n customBodyCardComponent?: React.ReactNode;\n hideIssueDate?: boolean;\n customSkillsComponent?: React.ReactNode;\n\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string, type: 'photo' | 'document' | 'video' | 'link') => void;\n enableLightbox?: boolean;\n\n handleXClick?: () => void;\n onDotsClick?: () => void;\n isFrontOverride?: boolean;\n setIsFrontOverride?: (value: boolean) => void;\n hideNavButtons?: boolean;\n showBackButton?: boolean;\n showDetailsBtn?: boolean;\n};\n\nexport const MeritBadgeDisplayCard: React.FC<MeritBadgeDisplayCardProps> = ({\n credential,\n categoryType,\n verificationItems,\n issuerOverride,\n issueeOverride,\n subjectImageComponent,\n issuerImageComponent,\n customBodyCardComponent,\n trustedAppRegistry,\n hideIssueDate,\n customSkillsComponent,\n\n getFileMetadata,\n getVideoMetadata,\n onMediaAttachmentClick,\n enableLightbox,\n\n handleXClick,\n onDotsClick,\n isFrontOverride,\n setIsFrontOverride,\n hideNavButtons,\n showBackButton = false,\n showDetailsBtn = false,\n}) => {\n const [_isFront, _setIsFront] = useState(isFrontOverride ?? true);\n\n const isFront = isFrontOverride ?? _isFront;\n const setIsFront = setIsFrontOverride ?? _setIsFront;\n\n return (\n <section className=\"w-full flex flex-col gap-[15px] justify-center relative min-w-[220px]\">\n <section className=\"mx-auto\">\n {isFront && (\n <MeritBadgeFrontFace\n credential={credential}\n categoryType={categoryType}\n issuerOverride={issuerOverride}\n issueeOverride={issueeOverride}\n trustedAppRegistry={trustedAppRegistry}\n subjectImageComponent={subjectImageComponent}\n issuerImageComponent={issuerImageComponent}\n customBodyCardComponent={customBodyCardComponent}\n hideIssueDate={hideIssueDate}\n handleViewBackFace={() => setIsFront(!isFront)}\n isFront={isFront}\n showDetailsBtn={showDetailsBtn}\n />\n )}\n\n {!isFront && (\n <MeritBadgeBackFace\n credential={credential}\n categoryType={categoryType}\n verificationItems={verificationItems}\n getFileMetadata={getFileMetadata}\n getVideoMetadata={getVideoMetadata}\n onMediaAttachmentClick={onMediaAttachmentClick}\n enableLightbox={enableLightbox}\n showBackButton={(showBackButton && !hideNavButtons) || showDetailsBtn}\n handleViewFrontFace={() => setIsFront(!isFront)}\n />\n )}\n\n {onDotsClick && (\n <button\n className=\"absolute right-[-20px] top-[-52px] bg-white rounded-full p-[10px] shadow-bottom\"\n onClick={onDotsClick}\n >\n <img\n alt=\"Menu dropdown icon\"\n className=\"h-[20px] w-[20px]\"\n src={ThreeDots}\n />\n </button>\n )}\n </section>\n\n {!hideNavButtons && (\n <div className=\"flex gap-[10px] font-mouse text-[30px] leading-[28px] tracking-[0.75px] relative top-[-10px] left-0 w-full\">\n {!isFront && (\n <button\n className=\"bg-grayscale-900 text-white py-[15px] px-[20px] rounded-[20px] flex mx-auto justify-center items-center gap-[5px] border-[3px] border-solid border-white\"\n onClick={() => setIsFront(!isFront)}\n >\n <FatArrow direction=\"left\" /> Back\n </button>\n )}\n\n {handleXClick && (\n <button\n onClick={handleXClick}\n className=\"bg-white text-grayscale-900 rounded-[20px] py-[15px] px-[20px] grow\"\n >\n Close\n </button>\n )}\n\n {isFront && (\n <button\n className=\"bg-grayscale-900 text-white py-[15px] px-[20px] rounded-[20px] mx-auto flex justify-center items-center gap-[5px] border-[3px] border-solid border-white\"\n onClick={() => setIsFront(!isFront)}\n >\n Details <FatArrow direction=\"right\" />\n </button>\n )}\n </div>\n )}\n </section>\n );\n};\n\nexport default MeritBadgeDisplayCard;\n"],"names":["this"],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { P as PuzzlePiece } from './PuzzlePiece-1fb12c2e.js';
|
|
3
|
+
import { g as getTotalCountOfSkills, c as categorizeSkills } from './credential.helpers-3d9244b6.js';
|
|
4
|
+
|
|
5
|
+
const MeritBadgeSkillsCount = ({ skills, onClick }) => {
|
|
6
|
+
const skillsCount = getTotalCountOfSkills(skills);
|
|
7
|
+
if (skillsCount === 0)
|
|
8
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null);
|
|
9
|
+
const skillsMap = categorizeSkills(skills);
|
|
10
|
+
const totalSkills = Object.values(skillsMap).reduce((total2, category) => total2 + (category == null ? void 0 : category.length), 0);
|
|
11
|
+
const totalSubskills = Object.values(skillsMap).reduce((total2, category) => total2 + ((category == null ? void 0 : category.totalSubskillsCount) || 0), 0);
|
|
12
|
+
const total = totalSkills + totalSubskills;
|
|
13
|
+
const text = skillsCount === 1 ? "Skill" : "Skills";
|
|
14
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
15
|
+
className: "flex items-center justify-center mt-8 cursor-pointer px-4 py-2 bg-white rounded-[20px] shadow-bottom",
|
|
16
|
+
onClick
|
|
17
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
18
|
+
className: "text-violet-500 text-xl flex items-center justify-center tracking-[0.75px] font-poppins font-semibold"
|
|
19
|
+
}, "+", total, " ", text, " ", /* @__PURE__ */ React.createElement("div", {
|
|
20
|
+
className: "bg-violet-500 rounded-full flex items-center justify-center ml-2 h-[30px] w-[30px] p-1"
|
|
21
|
+
}, /* @__PURE__ */ React.createElement(PuzzlePiece, {
|
|
22
|
+
className: "text-white",
|
|
23
|
+
fill: "#fff"
|
|
24
|
+
}))));
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { MeritBadgeSkillsCount as M };
|
|
28
|
+
//# sourceMappingURL=MeritBadgeSkillsCount-f2b1ab14.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeritBadgeSkillsCount-f2b1ab14.js","sources":["../../src/components/MeritBadgeDisplayCard/MeritBadgeSkillsCount.tsx"],"sourcesContent":["import React from 'react';\n\nimport PuzzlePiece from '../svgs/PuzzlePiece';\n\nimport { categorizeSkills, getTotalCountOfSkills } from '../../helpers/credential.helpers';\n\n// Copy of VCDisplayCardSkillsCount, necessary to avoid circular dependency\nexport const MeritBadgeSkillsCount: React.FC<{\n skills: { category: string; skill: string; subSkills: string[] }[];\n onClick?: () => void;\n}> = ({ skills, onClick }) => {\n const skillsCount = getTotalCountOfSkills(skills);\n\n if (skillsCount === 0) return <></>;\n\n const skillsMap = categorizeSkills(skills);\n\n // Calculate total count of skills and subskills\n const totalSkills: any = Object.values(skillsMap).reduce(\n (total: any, category: any) => total + category?.length,\n 0\n );\n const totalSubskills: any = Object.values(skillsMap).reduce(\n (total: any, category: any) => total + (category?.totalSubskillsCount || 0),\n 0\n );\n\n const total: any = totalSkills + totalSubskills;\n\n const text: string = skillsCount === 1 ? 'Skill' : 'Skills';\n\n return (\n <div\n className=\"flex items-center justify-center mt-8 cursor-pointer px-4 py-2 bg-white rounded-[20px] shadow-bottom\"\n onClick={onClick}\n >\n <div className=\"text-violet-500 text-xl flex items-center justify-center tracking-[0.75px] font-poppins font-semibold\">\n +{total} {text}{' '}\n <div className=\"bg-violet-500 rounded-full flex items-center justify-center ml-2 h-[30px] w-[30px] p-1\">\n <PuzzlePiece className=\"text-white\" fill=\"#fff\" />\n </div>\n </div>\n </div>\n );\n};\n\nexport default MeritBadgeSkillsCount;\n"],"names":[],"mappings":";;;;AAGY,MAAC,qBAAqB,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC9D,EAAE,MAAM,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACpD,EAAE,IAAI,WAAW,KAAK,CAAC;AACvB,IAAI,uBAAuB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACrE,EAAE,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC7C,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,KAAK,MAAM,IAAI,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACvI,EAAE,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,KAAK,MAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,mBAAmB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9J,EAAE,MAAM,KAAK,GAAG,WAAW,GAAG,cAAc,CAAC;AAC7C,EAAE,MAAM,IAAI,GAAG,WAAW,KAAK,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAC;AACtD,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACpD,IAAI,SAAS,EAAE,sGAAsG;AACrH,IAAI,OAAO;AACX,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAChD,IAAI,SAAS,EAAE,uGAAuG;AACtH,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAC5E,IAAI,SAAS,EAAE,wFAAwF;AACvG,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;AACtD,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACR;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { T as TYPE_TO_ICON } from './icons-
|
|
2
|
+
import { T as TYPE_TO_ICON } from './icons-03afd795.js';
|
|
3
3
|
|
|
4
4
|
const TYPE_TO_BG_COLOR_CLASS = {
|
|
5
5
|
skill: "indigo-50",
|
|
@@ -96,4 +96,4 @@ const RoundedPill = ({
|
|
|
96
96
|
};
|
|
97
97
|
|
|
98
98
|
export { CheckmarkSvg as C, RoundedPill as R };
|
|
99
|
-
//# sourceMappingURL=RoundedPill-
|
|
99
|
+
//# sourceMappingURL=RoundedPill-6a6e8aaf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoundedPill-
|
|
1
|
+
{"version":3,"file":"RoundedPill-6a6e8aaf.js","sources":["../../src/components/RoundedPill/RoundedPill.tsx"],"sourcesContent":["import React from 'react';\nimport { TYPE_TO_ICON } from '../../constants/icons';\nimport { RoundedPillProps } from '../../types';\n\nconst TYPE_TO_BG_COLOR_CLASS: any = {\n skill: 'indigo-50',\n achievement: 'spice-50',\n course: 'emerald-50',\n locked: 'grayscale-100',\n};\n\nconst TYPE_TO_FOREGROUND_COLOR: any = {\n skill: 'indigo-500',\n achievement: 'spice-500',\n course: 'emerald-700',\n locked: 'grayscale-700',\n};\n\nconst TYPE_TO_CHECKMARK_COLOR: any = {\n skill: '#6366F1',\n achievement: '#FF5820',\n course: '#00BA88',\n locked: '#52597A',\n};\n\ntype InlineSVGProps = {\n color?: string;\n size?: string | number;\n};\n\nexport const CheckmarkSvg: React.FC<InlineSVGProps> = ({ color = '#00BA88', size = '20' }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.875 5.62537L8.125 14.375L3.75 10.0004\"\n stroke={color}\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\nconst LockedIcon: React.FC<InlineSVGProps> = ({ color = '#52597A', size = '20' }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.25 6.875H3.75C3.40482 6.875 3.125 7.15482 3.125 7.5V16.25C3.125 16.5952 3.40482 16.875 3.75 16.875H16.25C16.5952 16.875 16.875 16.5952 16.875 16.25V7.5C16.875 7.15482 16.5952 6.875 16.25 6.875Z\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M7.1875 6.875V4.0625C7.1875 3.31658 7.48382 2.60121 8.01126 2.07376C8.53871 1.54632 9.25408 1.25 10 1.25C10.7459 1.25 11.4613 1.54632 11.9887 2.07376C12.5162 2.60121 12.8125 3.31658 12.8125 4.0625V6.875\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M10 13.125C10.6904 13.125 11.25 12.5654 11.25 11.875C11.25 11.1846 10.6904 10.625 10 10.625C9.30964 10.625 8.75 11.1846 8.75 11.875C8.75 12.5654 9.30964 13.125 10 13.125Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport const RoundedPill: React.FC<RoundedPillProps> = ({\n statusText,\n type = 'skill',\n onClick,\n showCheckmark = false,\n}) => {\n const backgroundColor = `bg-${TYPE_TO_BG_COLOR_CLASS[type]}`;\n const iconBgColor = `bg-${TYPE_TO_FOREGROUND_COLOR[type]}`;\n const circleClass = `flex w-full items-center justify-center icon-display h-[40px] w-[40px] rounded-full ${iconBgColor} absolute flex-shrink-0 `;\n\n const handleClick = () => {\n onClick?.();\n };\n\n const iconSrc = TYPE_TO_ICON[type];\n const textColor = `text-${TYPE_TO_FOREGROUND_COLOR[type]}`;\n const checkColor = TYPE_TO_CHECKMARK_COLOR[type];\n const locked = type === 'locked';\n\n const displayText = !locked ? statusText : 'Locked';\n\n return (\n <button\n onClick={handleClick}\n className={`flex relative ${backgroundColor} items-center px-[5px] py-[2px] w-[180px] h-[46px] rounded-[40px] rounded-pill-el`}\n >\n {!locked && (\n <div className={circleClass}>\n <img\n className=\"h-full w-full object-cover max-h-[24px] max-w-[24px] flex-shrink-0 \"\n src={iconSrc ?? ''}\n alt=\"Icon image\"\n />\n </div>\n )}\n <span\n className={`font-semibold ${textColor} w-full flex items-center justify-center text-[14px]`}\n >\n {showCheckmark && !locked && (\n <span className=\"rounded-pill-checkmark mr-[5px]\">\n <CheckmarkSvg color={checkColor} />\n </span>\n )}\n {locked && (\n <span className=\"rounded-pill-checkmark mr-[5px]\">\n <LockedIcon />\n </span>\n )}\n\n {displayText}\n </span>\n </button>\n );\n};\n\nexport default RoundedPill;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { R as RoundedPill } from './RoundedPill-
|
|
3
|
-
import { L as LCSubtypes } from './index-
|
|
4
|
-
import { C as CircleCheckButton } from './CircleCheckButton-
|
|
2
|
+
import { R as RoundedPill } from './RoundedPill-6a6e8aaf.js';
|
|
3
|
+
import { L as LCSubtypes } from './index-28917993.js';
|
|
4
|
+
import { C as CircleCheckButton } from './CircleCheckButton-5a97f071.js';
|
|
5
5
|
|
|
6
6
|
const SkillTabCard = ({
|
|
7
7
|
title,
|
|
@@ -33,4 +33,4 @@ const SkillTabCard = ({
|
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
export { SkillTabCard as S };
|
|
36
|
-
//# sourceMappingURL=SkillTabCard-
|
|
36
|
+
//# sourceMappingURL=SkillTabCard-8177895b.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillTabCard-
|
|
1
|
+
{"version":3,"file":"SkillTabCard-8177895b.js","sources":["../../src/components/SkillTabCard/SkillTabCard.tsx"],"sourcesContent":["import React from 'react';\nimport { RoundedPill } from '../RoundedPill';\nimport { LCSubtypes } from '../../types';\nimport { CircleCheckButton } from '../CircleCheckButton';\nimport { SkillTabCardProps } from '../../types';\n\nexport const SkillTabCard: React.FC<SkillTabCardProps> = ({\n title,\n description,\n checked = false,\n showChecked,\n onClick,\n onCheckClicked,\n showStatus = true,\n className = 'skill-tab-card',\n}) => {\n const buttonClass = checked\n ? 'skill-tab-check-toggle checked'\n : 'skill-tab-check-toggle unchecked';\n return (\n <div\n className={`flex-col flex justify-between items-center font-bold shadow-[0_0_8px_0px_rgba(0,0,0,0.2)] relative $ py-[8px] px-[8px] w-[190px] h-[168px] rounded-[20px] ${className}`}\n >\n {showChecked && (\n <CircleCheckButton\n onClick={onCheckClicked}\n checked={checked}\n className={buttonClass}\n bgColor=\"bg-grayscale-200\"\n />\n )}\n <h4 className=\"text-indigo-600 text-[14px] text-center line-clamp-2\">{title}</h4>\n <p className=\"line-clamp-2 text-[12px] text-center\">{description}</p>\n\n <div>\n {showStatus && (\n <RoundedPill type={LCSubtypes.skill} statusText={'Earned'} onClick={onClick} />\n )}\n </div>\n </div>\n );\n};\n\nexport default SkillTabCard;\n"],"names":[],"mappings":";;;;;AAIY,MAAC,YAAY,GAAG,CAAC;AAC7B,EAAE,KAAK;AACP,EAAE,WAAW;AACb,EAAE,OAAO,GAAG,KAAK;AACjB,EAAE,WAAW;AACb,EAAE,OAAO;AACT,EAAE,cAAc;AAChB,EAAE,UAAU,GAAG,IAAI;AACnB,EAAE,SAAS,GAAG,gBAAgB;AAC9B,CAAC,KAAK;AACN,EAAE,MAAM,WAAW,GAAG,OAAO,GAAG,gCAAgC,GAAG,kCAAkC,CAAC;AACtG,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACpD,IAAI,SAAS,EAAE,CAAC,0JAA0J,EAAE,SAAS,CAAC,CAAC;AACvL,GAAG,EAAE,WAAW,oBAAoB,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE;AAC3E,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,OAAO;AACX,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,OAAO,EAAE,kBAAkB;AAC/B,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AAChD,IAAI,SAAS,EAAE,sDAAsD;AACrE,GAAG,EAAE,KAAK,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AACtD,IAAI,SAAS,EAAE,sCAAsC;AACrD,GAAG,EAAE,WAAW,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,oBAAoB,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;AACnI,IAAI,IAAI,EAAE,UAAU,CAAC,KAAK;AAC1B,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,OAAO;AACX,GAAG,CAAC,CAAC,CAAC,CAAC;AACP;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { initLearnCard } from '@learncard/init';
|
|
3
|
-
import { V as VCDisplayCard } from './VCDisplayCard-
|
|
3
|
+
import { V as VCDisplayCard } from './VCDisplayCard-3e11b093.js';
|
|
4
4
|
import './default-face.jpeg';
|
|
5
5
|
import 'react-dom';
|
|
6
6
|
import './athletics.svg';
|
|
@@ -14,7 +14,7 @@ import './stem.svg';
|
|
|
14
14
|
import './trade.svg';
|
|
15
15
|
import './types.esm-099d2f24.js';
|
|
16
16
|
import './CaretRightFilled.svg';
|
|
17
|
-
import { V as VCDisplayCard2 } from './VCDisplayCard2-
|
|
17
|
+
import { V as VCDisplayCard2 } from './VCDisplayCard2-e8a1f9f5.js';
|
|
18
18
|
import './id-sleeve.png';
|
|
19
19
|
|
|
20
20
|
var __async = (__this, __arguments, generator) => {
|
|
@@ -84,4 +84,4 @@ const VCCard = ({
|
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
export { VCCard as V };
|
|
87
|
-
//# sourceMappingURL=VCCard-
|
|
87
|
+
//# sourceMappingURL=VCCard-1ae6ae1b.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VCCard-
|
|
1
|
+
{"version":3,"file":"VCCard-1ae6ae1b.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":["this"],"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;AAOU,MAAC,MAAM,GAAG,CAAC;AACvB,EAAE,UAAU;AACZ,EAAE,cAAc;AAChB,EAAE,SAAS,GAAG,EAAE;AAChB,EAAE,OAAO,GAAG,GAAG;AACf,EAAE,qBAAqB;AACvB,EAAE,YAAY;AACd,EAAE,eAAe;AACjB,EAAE,gBAAgB;AAClB,EAAE,sBAAsB;AACxB,EAAE,eAAe;AACjB,CAAC,KAAK;AACN,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3D,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,MAAM,MAAM,GAAG,MAAM,OAAO,CAACA,SAAI,EAAE,IAAI,EAAE,aAAa;AAC1D,MAAM,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;AAC3C,MAAM,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACtF,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,IAAI,OAAO,KAAK,GAAG,EAAE;AACvB,IAAI,uBAAuB,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE;AAC9D,MAAM,UAAU;AAChB,MAAM,cAAc;AACpB,MAAM,SAAS;AACf,MAAM,OAAO;AACb,MAAM,YAAY,EAAE,cAAc;AAClC,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE;AAC7D,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,sBAAsB,EAAE,OAAO;AACnC,IAAI,iBAAiB,EAAE,cAAc;AACrC,IAAI,qBAAqB;AACzB,IAAI,YAAY;AAChB,IAAI,eAAe;AACnB,IAAI,gBAAgB;AACpB,IAAI,sBAAsB;AAC1B,IAAI,eAAe;AACnB,GAAG,CAAC,CAAC;AACL;;;;"}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { b as VCVerificationCheckWithText } from './VCVerificationCheck-80249524.js';
|
|
3
3
|
import { a as VCVerificationPill } from './VCVerificationPill-7e5c5fbe.js';
|
|
4
4
|
import FlipArrowRight from './ArrowArcRight.svg';
|
|
5
|
-
import { h as getNameFromProfile } from './credential.helpers-
|
|
5
|
+
import { h as getNameFromProfile } from './credential.helpers-3d9244b6.js';
|
|
6
6
|
|
|
7
7
|
const VCDisplayBackFace = ({
|
|
8
8
|
issuer,
|
|
@@ -77,4 +77,4 @@ const VCDisplayBackFace = ({
|
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
export { VCDisplayBackFace as V };
|
|
80
|
-
//# sourceMappingURL=VCDisplayBackFace-
|
|
80
|
+
//# sourceMappingURL=VCDisplayBackFace-f05a047b.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VCDisplayBackFace-
|
|
1
|
+
{"version":3,"file":"VCDisplayBackFace-f05a047b.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-a2de5cf1.js';
|
|
|
3
3
|
import FatArrow from './icon.green.fat-arrow.png';
|
|
4
4
|
import DefaultFace from './default-face.jpeg';
|
|
5
5
|
import { b as VCVerificationCheckWithText } from './VCVerificationCheck-80249524.js';
|
|
6
|
-
import { h as getNameFromProfile, i as getImageFromProfile, b as getInfoFromCredential } from './credential.helpers-
|
|
7
|
-
import { V as VCDisplayBackFace } from './VCDisplayBackFace-
|
|
6
|
+
import { h as getNameFromProfile, i as getImageFromProfile, b as getInfoFromCredential } from './credential.helpers-3d9244b6.js';
|
|
7
|
+
import { V as VCDisplayBackFace } from './VCDisplayBackFace-f05a047b.js';
|
|
8
8
|
|
|
9
9
|
const VCDisplayFrontFace = ({
|
|
10
10
|
title,
|
|
@@ -180,4 +180,4 @@ const VCDisplayCard = ({
|
|
|
180
180
|
};
|
|
181
181
|
|
|
182
182
|
export { VCDisplayCard as V };
|
|
183
|
-
//# sourceMappingURL=VCDisplayCard-
|
|
183
|
+
//# sourceMappingURL=VCDisplayCard-3e11b093.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VCDisplayCard-0593b168.js","sources":["../../src/components/VCDisplayFrontFace/VCDisplayFrontFace.tsx","../../src/components/VCDisplayCard/VCDisplayCard.tsx"],"sourcesContent":["import React from 'react';\nimport { VCDisplayCardProps } from '../../types';\nimport FatArrow from '../../assets/images/icon.green.fat-arrow.png';\nimport FlipArrowRight from '../../assets/images/ArrowArcRight.svg';\nimport DefaultFace from '../../assets/images/default-face.jpeg';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport { getImageFromProfile, getNameFromProfile } from '../../helpers/credential.helpers';\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 const issuerNameAbr = issuerName?.slice(0, 1) ?? '';\n\n let issueeImageEl: React.ReactNode | null = null;\n const issuerImgExists = issuerImage && issuerImage !== '';\n const issueeImgExists = issueeImage && issueeImage !== '';\n if (issueeImgExists) {\n issueeImageEl = (\n <div className=\"flex flex-row items-center justify-center h-full w-full rounded-full border-solid border-4 border-white overflow-hidden bg-white\">\n <img\n className=\"h-full w-full object-cover\"\n src={issueeImage || DefaultFace}\n alt=\"Issuee image\"\n />\n </div>\n );\n } else if (!issueeImgExists && subjectImageComponent) {\n issueeImageEl = subjectImageComponent;\n }\n\n let issuerImageEl: React.ReactNode | null = null;\n\n if (issuerImgExists) {\n issuerImageEl = (\n <img className=\"w-4/6 h-4/6 object-cover\" src={issuerImage} alt=\"Issuer image\" />\n );\n } else {\n issuerImageEl = (\n <div className=\"flex flex-row items-center justify-center h-full w-full overflow-hidden bg-emerald-700 text-white font-medium text-3xl\">\n {issuerNameAbr}\n </div>\n );\n }\n\n if (issuerImageComponent) {\n issuerImageEl = issuerImageComponent;\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-3e11b093.js","sources":["../../src/components/VCDisplayFrontFace/VCDisplayFrontFace.tsx","../../src/components/VCDisplayCard/VCDisplayCard.tsx"],"sourcesContent":["import React from 'react';\nimport { VCDisplayCardProps } from '../../types';\nimport FatArrow from '../../assets/images/icon.green.fat-arrow.png';\nimport FlipArrowRight from '../../assets/images/ArrowArcRight.svg';\nimport DefaultFace from '../../assets/images/default-face.jpeg';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport { getImageFromProfile, getNameFromProfile } from '../../helpers/credential.helpers';\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 const issuerNameAbr = issuerName?.slice(0, 1) ?? '';\n\n let issueeImageEl: React.ReactNode | null = null;\n const issuerImgExists = issuerImage && issuerImage !== '';\n const issueeImgExists = issueeImage && issueeImage !== '';\n if (issueeImgExists) {\n issueeImageEl = (\n <div className=\"flex flex-row items-center justify-center h-full w-full rounded-full border-solid border-4 border-white overflow-hidden bg-white\">\n <img\n className=\"h-full w-full object-cover\"\n src={issueeImage || DefaultFace}\n alt=\"Issuee image\"\n />\n </div>\n );\n } else if (!issueeImgExists && subjectImageComponent) {\n issueeImageEl = subjectImageComponent;\n }\n\n let issuerImageEl: React.ReactNode | null = null;\n\n if (issuerImgExists) {\n issuerImageEl = (\n <img className=\"w-4/6 h-4/6 object-cover\" src={issuerImage} alt=\"Issuer image\" />\n );\n } else {\n issuerImageEl = (\n <div className=\"flex flex-row items-center justify-center h-full w-full overflow-hidden bg-emerald-700 text-white font-medium text-3xl\">\n {issuerNameAbr}\n </div>\n );\n }\n\n if (issuerImageComponent) {\n issuerImageEl = issuerImageComponent;\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":";;;;;;;;AAKA,MAAM,kBAAkB,GAAG,CAAC;AAC5B,EAAE,KAAK;AACP,EAAE,SAAS;AACX,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,qBAAqB;AACvB,EAAE,oBAAoB;AACtB,EAAE,kBAAkB,GAAG,KAAK;AAC5B,EAAE,iBAAiB;AACnB,EAAE,SAAS,GAAG,EAAE;AAChB,EAAE,OAAO;AACT,EAAE,WAAW;AACb,EAAE,0BAA0B;AAC5B,EAAE,iBAAiB;AACnB,EAAE,qBAAqB;AACvB,CAAC,KAAK;AACN,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACzB,EAAE,MAAM,0BAA0B,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,iBAAiB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,iBAAiB,CAAC,WAAW,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,iBAAiB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,iBAAiB,CAAC,WAAW,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACxR,EAAE,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,IAAI,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;AACtE,EAAE,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,IAAI,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;AACtE,EAAE,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,IAAI,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;AACxE,EAAE,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,IAAI,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;AACxE,EAAE,MAAM,aAAa,GAAG,CAAC,EAAE,GAAG,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AACtG,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC;AAC3B,EAAE,MAAM,eAAe,GAAG,WAAW,IAAI,WAAW,KAAK,EAAE,CAAC;AAC5D,EAAE,MAAM,eAAe,GAAG,WAAW,IAAI,WAAW,KAAK,EAAE,CAAC;AAC5D,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,aAAa,mBAAmB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAC/D,MAAM,SAAS,EAAE,kIAAkI;AACnJ,KAAK,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAClD,MAAM,SAAS,EAAE,4BAA4B;AAC7C,MAAM,GAAG,EAAE,WAAW,IAAI,WAAW;AACrC,MAAM,GAAG,EAAE,cAAc;AACzB,KAAK,CAAC,CAAC,CAAC;AACR,GAAG,MAAM,IAAI,CAAC,eAAe,IAAI,qBAAqB,EAAE;AACxD,IAAI,aAAa,GAAG,qBAAqB,CAAC;AAC1C,GAAG;AACH,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC;AAC3B,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,aAAa,mBAAmB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAC/D,MAAM,SAAS,EAAE,0BAA0B;AAC3C,MAAM,GAAG,EAAE,WAAW;AACtB,MAAM,GAAG,EAAE,cAAc;AACzB,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,aAAa,mBAAmB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAC/D,MAAM,SAAS,EAAE,wHAAwH;AACzI,KAAK,EAAE,aAAa,CAAC,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,oBAAoB,EAAE;AAC5B,IAAI,aAAa,GAAG,oBAAoB,CAAC;AACzC,GAAG;AACH,EAAE,MAAM,OAAO,GAAG,0BAA0B,mBAAmB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1F,IAAI,SAAS,EAAE,4BAA4B;AAC3C,IAAI,GAAG,EAAE,0BAA0B,IAAI,IAAI,GAAG,0BAA0B,GAAG,EAAE;AAC7E,IAAI,GAAG,EAAE,8BAA8B;AACvC,GAAG,CAAC,mBAAmB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACjE,EAAE,MAAM,aAAa,GAAG,0BAA0B,GAAG,0BAA0B,GAAG,OAAO,CAAC;AAC1F,EAAE,MAAM,SAAS,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAClE,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACpD,IAAI,SAAS,EAAE,CAAC,mNAAmN,EAAE,SAAS,CAAC,CAAC;AAChP,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AACpD,IAAI,SAAS,EAAE,4EAA4E;AAC3F,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AACrD,IAAI,SAAS,EAAE,iFAAiF;AAChG,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AACpD,IAAI,SAAS,EAAE,6BAA6B;AAC5C,GAAG,EAAE,aAAa,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AACpE,IAAI,SAAS,EAAE,oCAAoC;AACnD,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAChD,IAAI,SAAS,EAAE,oEAAoE;AACnF,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AAC/C,IAAI,SAAS,EAAE,mIAAmI;AAClJ,IAAI,aAAa,EAAE,oBAAoB;AACvC,GAAG,EAAE,SAAS,IAAI,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC,EAAE,qBAAqB,IAAI,qBAAqB,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AAC3I,IAAI,SAAS,EAAE,kFAAkF;AACjG,GAAG,EAAE,CAAC,kBAAkB,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACjI,IAAI,SAAS,EAAE,6FAA6F;AAC5G,GAAG,EAAE,aAAa,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAChE,IAAI,SAAS,EAAE,mBAAmB;AAClC,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,QAAQ,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE;AAC1C,IAAI,GAAG,EAAE,gBAAgB;AACzB,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACjD,IAAI,SAAS,EAAE,6FAA6F;AAC5G,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAClE,IAAI,SAAS,EAAE,oCAAoC;AACnD,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AAC9C,IAAI,SAAS,EAAE,oFAAoF;AACnG,IAAI,aAAa,EAAE,wBAAwB;AAC3C,GAAG,EAAE,YAAY,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC/D,IAAI,SAAS,EAAE,yBAAyB;AACxC,GAAG,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,IAAI,IAAI,GAAG,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC1H,IAAI,SAAS,EAAE,yBAAyB;AACxC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AACvE,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,SAAS,EAAE,gFAAgF;AAC/F,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACjD,IAAI,SAAS,EAAE,qBAAqB;AACpC,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AAC9C,IAAI,SAAS,EAAE,mBAAmB;AAClC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACpE,IAAI,SAAS,EAAE,yCAAyC;AACxD,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,2BAA2B,EAAE;AACtE,IAAI,OAAO;AACX,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC;;ACzGD,MAAM,UAAU,GAAG,OAAO,CAAC;AAC3B,MAAM,SAAS,GAAG,MAAM,CAAC;AACb,MAAC,aAAa,GAAG,CAAC;AAC9B,EAAE,UAAU;AACZ,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,SAAS,GAAG,EAAE;AAChB,EAAE,OAAO,GAAG,KAAK;AACjB,EAAE,YAAY,GAAG,EAAE;AACnB,EAAE,kBAAkB,GAAG,KAAK;AAC5B,EAAE,qBAAqB;AACvB,EAAE,oBAAoB;AACtB,EAAE,wBAAwB;AAC1B,EAAE,iBAAiB;AACnB,EAAE,0BAA0B;AAC5B,EAAE,qBAAqB;AACvB,CAAC,KAAK;AACN,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AACzD,EAAE,MAAM;AACR,IAAI,KAAK;AACT,IAAI,SAAS;AACb,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,iBAAiB;AACrB,GAAG,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;AACxC,EAAE,MAAM,MAAM,GAAG,cAAc,IAAI,OAAO,CAAC;AAC3C,EAAE,MAAM,MAAM,GAAG,cAAc,IAAI,OAAO,CAAC;AAC3C,EAAE,MAAM,UAAU,GAAG,MAAM;AAC3B,IAAI,IAAI,SAAS,KAAK,UAAU,EAAE;AAClC,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE;AACjC,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;AAC/B,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AACzD,IAAI,SAAS;AACb,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,kBAAkB,EAAE;AAC7D,IAAI,KAAK;AACT,IAAI,iBAAiB;AACrB,IAAI,qBAAqB;AACzB,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,qBAAqB;AACzB,IAAI,oBAAoB;AACxB,IAAI,0BAA0B;AAC9B,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AACtB,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,WAAW,EAAE,UAAU;AAC3B,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE;AAC7D,IAAI,KAAK;AACT,IAAI,iBAAiB;AACrB,IAAI,wBAAwB;AAC5B,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,YAAY;AAChB,IAAI,WAAW,EAAE,UAAU;AAC3B,GAAG,CAAC,CAAC,CAAC;AACN;;;;"}
|