@learncard/react 2.8.60 → 2.8.62
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/base.css +1 -1
- package/dist/base.js +1 -1
- package/dist/cjs/{BoostGenericCard-dd01e934.js → BoostGenericCard-55f710ad.js} +41 -5
- package/dist/cjs/BoostGenericCard-55f710ad.js.map +1 -0
- package/dist/cjs/{CertificateDisplayCard-e228ff3d.js → CertificateDisplayCard-9f619468.js} +43 -7
- package/dist/cjs/CertificateDisplayCard-9f619468.js.map +1 -0
- package/dist/cjs/{MeritBadgeDisplayCard-5cbc63e8.js → MeritBadgeDisplayCard-81bd14b8.js} +7 -5
- package/dist/cjs/MeritBadgeDisplayCard-81bd14b8.js.map +1 -0
- package/dist/cjs/{MeritBadgeSkillsCount-54879719.js → MeritBadgeSkillsCount-85cf4a91.js} +3 -3
- package/dist/cjs/{MeritBadgeSkillsCount-54879719.js.map → MeritBadgeSkillsCount-85cf4a91.js.map} +1 -1
- package/dist/cjs/{Notification-d212fa7b.js → Notification-3fe4a359.js} +2 -2
- package/dist/cjs/{Notification-d212fa7b.js.map → Notification-3fe4a359.js.map} +1 -1
- package/dist/cjs/{NotificationBoostCard-cf2140c0.js → NotificationBoostCard-be514ddb.js} +2 -2
- package/dist/cjs/{NotificationBoostCard-cf2140c0.js.map → NotificationBoostCard-be514ddb.js.map} +1 -1
- package/dist/cjs/PuzzlePiece-088d2b00.js +77 -0
- package/dist/cjs/PuzzlePiece-088d2b00.js.map +1 -0
- package/dist/cjs/{SchoolIDCard-39a099d2.js → SchoolIDCard-42d7c96f.js} +628 -347
- package/dist/cjs/SchoolIDCard-42d7c96f.js.map +1 -0
- package/dist/cjs/{VCCard-32aeadb3.js → VCCard-f5bc1db8.js} +3 -3
- package/dist/cjs/{VCCard-32aeadb3.js.map → VCCard-f5bc1db8.js.map} +1 -1
- package/dist/cjs/{VCDisplayBackFace-4543749f.js → VCDisplayBackFace-6000a58b.js} +3 -3
- package/dist/cjs/{VCDisplayBackFace-4543749f.js.map → VCDisplayBackFace-6000a58b.js.map} +1 -1
- package/dist/cjs/{VCDisplayCard-353cc9ed.js → VCDisplayCard-9512d8f2.js} +3 -3
- package/dist/cjs/{VCDisplayCard-353cc9ed.js.map → VCDisplayCard-9512d8f2.js.map} +1 -1
- package/dist/cjs/{VCDisplayCard2-50acd7c8.js → VCDisplayCard2-2a1d5f57.js} +11 -9
- package/dist/cjs/VCDisplayCard2-2a1d5f57.js.map +1 -0
- package/dist/cjs/{VCVerificationPill-88723dfa.js → VCVerificationPill-d6303ad0.js} +2 -2
- package/dist/cjs/{VCVerificationPill-88723dfa.js.map → VCVerificationPill-d6303ad0.js.map} +1 -1
- package/dist/cjs/{VerifierStateBadgeAndText-08aea854.js → VerifierStateBadgeAndText-67eddbaf.js} +2 -2
- package/dist/cjs/{VerifierStateBadgeAndText-08aea854.js.map → VerifierStateBadgeAndText-67eddbaf.js.map} +1 -1
- package/dist/cjs/{credential.helpers-90b66932.js → credential.helpers-60b421b9.js} +4 -4
- package/dist/cjs/{credential.helpers-90b66932.js.map → credential.helpers-60b421b9.js.map} +1 -1
- package/dist/cjs/{index-a9e3ddf5.js → index-0cac2c5b.js} +1 -1
- package/dist/cjs/{index-a9e3ddf5.js.map → index-0cac2c5b.js.map} +1 -1
- package/dist/cjs/index.js +78 -21
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index13.js +19 -20
- package/dist/cjs/index13.js.map +1 -1
- package/dist/cjs/index21.js +7 -7
- package/dist/cjs/index23.js +3 -3
- package/dist/cjs/index24.js +3 -3
- package/dist/cjs/index3.js +6 -7
- package/dist/cjs/index3.js.map +1 -1
- package/dist/cjs/index30.js +1 -1
- package/dist/cjs/index38.js +12 -13
- package/dist/cjs/index38.js.map +1 -1
- package/dist/cjs/index39.js +6 -6
- package/dist/cjs/index40.js +7 -7
- package/dist/cjs/index41.js +8 -9
- package/dist/cjs/index41.js.map +1 -1
- package/dist/cjs/index42.js +2 -2
- package/dist/cjs/index45.js +2 -2
- package/dist/cjs/index6.js +7 -8
- package/dist/cjs/index6.js.map +1 -1
- package/dist/cjs/{types-8eab1382.js → types-f01c65d1.js} +2 -2
- package/dist/cjs/{types-8eab1382.js.map → types-f01c65d1.js.map} +1 -1
- package/dist/cjs/{types.esm-6ce4cc67.js → types.esm-ae4cdf49.js} +1086 -1032
- package/dist/cjs/types.esm-ae4cdf49.js.map +1 -0
- package/dist/esm/{BoostGenericCard-5b70fa63.js → BoostGenericCard-4cfa6556.js} +41 -5
- package/dist/esm/BoostGenericCard-4cfa6556.js.map +1 -0
- package/dist/esm/{CertificateDisplayCard-d2a0d0e3.js → CertificateDisplayCard-58c52cdb.js} +42 -7
- package/dist/esm/CertificateDisplayCard-58c52cdb.js.map +1 -0
- package/dist/esm/{MeritBadgeDisplayCard-bc462990.js → MeritBadgeDisplayCard-c87b0271.js} +7 -5
- package/dist/esm/MeritBadgeDisplayCard-c87b0271.js.map +1 -0
- package/dist/esm/{MeritBadgeSkillsCount-d2408dfe.js → MeritBadgeSkillsCount-77ceb64c.js} +3 -3
- package/dist/esm/{MeritBadgeSkillsCount-d2408dfe.js.map → MeritBadgeSkillsCount-77ceb64c.js.map} +1 -1
- package/dist/esm/{Notification-95d159d2.js → Notification-76adb92c.js} +2 -2
- package/dist/esm/{Notification-95d159d2.js.map → Notification-76adb92c.js.map} +1 -1
- package/dist/esm/{NotificationBoostCard-42596c2c.js → NotificationBoostCard-e6f1ab86.js} +2 -2
- package/dist/esm/{NotificationBoostCard-42596c2c.js.map → NotificationBoostCard-e6f1ab86.js.map} +1 -1
- package/dist/esm/PuzzlePiece-4541648e.js +71 -0
- package/dist/esm/PuzzlePiece-4541648e.js.map +1 -0
- package/dist/esm/{SchoolIDCard-752092fb.js → SchoolIDCard-7c3ba74c.js} +628 -347
- package/dist/esm/SchoolIDCard-7c3ba74c.js.map +1 -0
- package/dist/esm/{VCCard-afbea3f5.js → VCCard-a5dda1f4.js} +3 -3
- package/dist/esm/{VCCard-afbea3f5.js.map → VCCard-a5dda1f4.js.map} +1 -1
- package/dist/esm/{VCDisplayBackFace-f08563e9.js → VCDisplayBackFace-af01c8b3.js} +3 -3
- package/dist/esm/{VCDisplayBackFace-f08563e9.js.map → VCDisplayBackFace-af01c8b3.js.map} +1 -1
- package/dist/esm/{VCDisplayCard-7fc1dd02.js → VCDisplayCard-36f34504.js} +3 -3
- package/dist/esm/{VCDisplayCard-7fc1dd02.js.map → VCDisplayCard-36f34504.js.map} +1 -1
- package/dist/esm/{VCDisplayCard2-415128f5.js → VCDisplayCard2-04e304db.js} +11 -9
- package/dist/esm/VCDisplayCard2-04e304db.js.map +1 -0
- package/dist/esm/{VCVerificationPill-2ef031c2.js → VCVerificationPill-0e2c1172.js} +2 -2
- package/dist/esm/{VCVerificationPill-2ef031c2.js.map → VCVerificationPill-0e2c1172.js.map} +1 -1
- package/dist/esm/{VerifierStateBadgeAndText-151db666.js → VerifierStateBadgeAndText-2e5414f4.js} +2 -2
- package/dist/esm/{VerifierStateBadgeAndText-151db666.js.map → VerifierStateBadgeAndText-2e5414f4.js.map} +1 -1
- package/dist/esm/{credential.helpers-5731a09d.js → credential.helpers-97c7e3d4.js} +4 -4
- package/dist/esm/{credential.helpers-5731a09d.js.map → credential.helpers-97c7e3d4.js.map} +1 -1
- package/dist/esm/{index-1fa04a2d.js → index-eae3ca64.js} +1 -1
- package/dist/esm/{index-1fa04a2d.js.map → index-eae3ca64.js.map} +1 -1
- package/dist/esm/index.js +75 -20
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index13.js +18 -19
- package/dist/esm/index13.js.map +1 -1
- package/dist/esm/index21.js +7 -7
- package/dist/esm/index23.js +3 -3
- package/dist/esm/index24.js +3 -3
- package/dist/esm/index3.js +6 -7
- package/dist/esm/index3.js.map +1 -1
- package/dist/esm/index30.js +1 -1
- package/dist/esm/index38.js +12 -13
- package/dist/esm/index38.js.map +1 -1
- package/dist/esm/index39.js +6 -6
- package/dist/esm/index40.js +7 -7
- package/dist/esm/index41.js +8 -9
- package/dist/esm/index41.js.map +1 -1
- package/dist/esm/index42.js +2 -2
- package/dist/esm/index45.js +2 -2
- package/dist/esm/index6.js +6 -7
- package/dist/esm/index6.js.map +1 -1
- package/dist/esm/{types-cfde3c2b.js → types-05bc737d.js} +2 -2
- package/dist/esm/{types-cfde3c2b.js.map → types-05bc737d.js.map} +1 -1
- package/dist/esm/{types.esm-00eeb9f6.js → types.esm-c7016566.js} +1086 -1032
- package/dist/esm/types.esm-c7016566.js.map +1 -0
- package/dist/index.d.ts +16 -2
- package/dist/main.css +1 -1
- package/dist/main.js +1 -1
- package/package.json +10 -3
- package/dist/cjs/BoostGenericCard-dd01e934.js.map +0 -1
- package/dist/cjs/CertDisplayCardSkillsCount-8cc13d5b.js +0 -45
- package/dist/cjs/CertDisplayCardSkillsCount-8cc13d5b.js.map +0 -1
- package/dist/cjs/CertificateDisplayCard-e228ff3d.js.map +0 -1
- package/dist/cjs/MeritBadgeDisplayCard-5cbc63e8.js.map +0 -1
- package/dist/cjs/PuzzlePiece-937c216a.js +0 -31
- package/dist/cjs/PuzzlePiece-937c216a.js.map +0 -1
- package/dist/cjs/SchoolIDCard-39a099d2.js.map +0 -1
- package/dist/cjs/VCDisplayCard2-50acd7c8.js.map +0 -1
- package/dist/cjs/types.esm-6ce4cc67.js.map +0 -1
- package/dist/esm/BoostGenericCard-5b70fa63.js.map +0 -1
- package/dist/esm/CertDisplayCardSkillsCount-c5a21373.js +0 -39
- package/dist/esm/CertDisplayCardSkillsCount-c5a21373.js.map +0 -1
- package/dist/esm/CertificateDisplayCard-d2a0d0e3.js.map +0 -1
- package/dist/esm/MeritBadgeDisplayCard-bc462990.js.map +0 -1
- package/dist/esm/PuzzlePiece-1fb12c2e.js +0 -25
- package/dist/esm/PuzzlePiece-1fb12c2e.js.map +0 -1
- package/dist/esm/SchoolIDCard-752092fb.js.map +0 -1
- package/dist/esm/VCDisplayCard2-415128f5.js.map +0 -1
- package/dist/esm/types.esm-00eeb9f6.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeritBadgeDisplayCard-c87b0271.js","sources":["../../src/components/svgs/Smiley.tsx","../../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';\n\ntype SmileyProps = {\n className?: string;\n};\n\nconst Smiley: React.FC<SmileyProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"35\"\n height=\"36\"\n viewBox=\"0 0 35 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M17.5 30.7008C24.7487 30.7008 30.625 24.8245 30.625 17.5758C30.625 10.3271 24.7487 4.45081 17.5 4.45081C10.2513 4.45081 4.375 10.3271 4.375 17.5758C4.375 24.8245 10.2513 30.7008 17.5 30.7008Z\"\n stroke=\"#FBFBFC\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M23.1846 20.8566C22.608 21.8538 21.7792 22.6818 20.7815 23.2575C19.7837 23.8332 18.652 24.1362 17.5001 24.1362C16.3482 24.1363 15.2165 23.8332 14.2187 23.2576C13.2209 22.6819 12.3921 21.8539 11.8156 20.8567\"\n stroke=\"#FBFBFC\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M12.5781 16.2086C13.3332 16.2086 13.9453 15.5965 13.9453 14.8414C13.9453 14.0864 13.3332 13.4742 12.5781 13.4742C11.823 13.4742 11.2109 14.0864 11.2109 14.8414C11.2109 15.5965 11.823 16.2086 12.5781 16.2086Z\"\n fill=\"#FBFBFC\"\n />\n <path\n d=\"M22.4219 16.2086C23.177 16.2086 23.7891 15.5965 23.7891 14.8414C23.7891 14.0864 23.177 13.4742 22.4219 13.4742C21.6668 13.4742 21.0547 14.0864 21.0547 14.8414C21.0547 15.5965 21.6668 16.2086 22.4219 16.2086Z\"\n fill=\"#FBFBFC\"\n />\n </svg>\n );\n};\n\nexport default Smiley;\n","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\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 && <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 media-attachment-box bg-grayscale-100 items-center rounded-[15px] w-full\"\n >\n <button\n className=\"relative 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 className=\"w-[15px] h-[15px]\" />;\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 customLinkedCredentialsComponent?: React.ReactNode;\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 customLinkedCredentialsComponent,\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 ${\n 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 {customLinkedCredentialsComponent && customLinkedCredentialsComponent}\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, '25');\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 image: string;\n};\n\nconst MeritBadgeRibbon: React.FC<MeritBadgeRibbonProps> = ({ className = '', image }) => {\n return (\n <svg\n width=\"207\"\n height=\"170\"\n viewBox=\"0 0 207 170\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <g filter=\"url(#filter0_d_10755_290433)\">\n <circle cx=\"102.988\" cy=\"83\" r=\"81.5\" fill=\"white\" stroke=\"white\" strokeWidth=\"3\" />\n <path\n d=\"M3.94446 50C3.41654 50 2.92748 50.2775 2.65674 50.7307C2.38599 51.1839 2.37343 51.7461 2.62365 52.211L19.4659 83.5L2.62365 114.789C2.37343 115.254 2.386 115.816 2.65674 116.269C2.92748 116.722 3.41654 117 3.94446 117L203.056 117C203.583 117 204.073 116.722 204.343 116.269C204.614 115.816 204.627 115.254 204.376 114.789L187.534 83.5L204.376 52.211C204.627 51.7461 204.614 51.1839 204.343 50.7307C204.073 50.2775 203.583 50 203.056 50L3.94446 50Z\"\n fill=\"currentColor\"\n stroke=\"white\"\n strokeWidth=\"3\"\n strokeLinejoin=\"round\"\n />\n <rect\n x=\"25.3273\"\n y=\"5.34741\"\n width=\"156.6\"\n height=\"156.6\"\n rx=\"78.2999\"\n fill=\"#FBFBFC\"\n />\n <rect\n x=\"25.3273\"\n y=\"5.34741\"\n width=\"156.6\"\n height=\"156.6\"\n rx=\"78.2999\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n />\n <rect x=\"29.8273\" y=\"9.84741\" width=\"147.6\" height=\"147.6\" fill=\"none\" />\n </g>\n\n <clipPath id=\"circleClip\">\n <circle cx=\"103.5\" cy=\"84\" r=\"75\" />\n </clipPath>\n <image\n xlinkHref={image}\n x=\"28.5\"\n y=\"9\"\n width=\"150\"\n height=\"150\"\n clipPath=\"url(#circleClip)\"\n />\n\n <defs>\n <filter\n id=\"filter0_d_10755_290433\"\n x=\"0.944458\"\n y=\"0\"\n width=\"205.111\"\n height=\"170\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"4\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_10755_290433\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_10755_290433\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n );\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=\"none\" />\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-[176px] h-[176px] rounded-full bg-white z-50 ${className}`}\n >\n <MeritBadgeRibbon className=\"absolute z-[1]\" image={imageUrl} />\n </div>\n );\n};\n\nexport default MeritBadgeImageDisplay;\n","import React from 'react';\nimport IssuerSeal from '../svgs/IssuerSeal';\nimport { UserProfilePicture } from '../UserProfilePicture';\n\ntype MeritBadgeProfileImageDisplayProps = {\n imageUrl?: string;\n imageComponent?: React.ReactNode;\n showSeal?: boolean;\n className?: string;\n size?: string;\n userName?: string;\n};\n\nconst MeritBadgeProfileImageDisplay: React.FC<MeritBadgeProfileImageDisplayProps> = ({\n imageUrl,\n showSeal = false,\n className = '',\n imageComponent,\n size = 'big',\n userName,\n}) => {\n const imageClassName = `${\n size === 'big' ? 'h-[60px] w-[60px]' : 'h-[39px] w-[39px]'\n } rounded-full overflow-hidden ${\n showSeal ? 'absolute border-[2px] border-solid border-grayscale-200' : ''\n }`;\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 && (\n <UserProfilePicture\n customContainerClass={`${imageClassName} ${!imageUrl ? 'pt-[6px]' : ''}`}\n customImageClass=\"h-full w-full object-cover\"\n user={{ image: imageUrl, name: userName }}\n />\n )}\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';\nimport { KnownDIDRegistryType } from '../../types';\n\ntype MeritBadgeFrontFaceProps = {\n isFront?: boolean;\n credential: VC | BoostAchievementCredential;\n categoryType?: LCCategoryEnum;\n issuerOverride?: Profile;\n issueeOverride?: Profile;\n knownDIDRegistry?: KnownDIDRegistryType;\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n customBodyCardComponent?: React.ReactNode;\n hideIssueDate?: boolean;\n handleViewBackFace?: () => void;\n showDetailsBtn?: boolean;\n formattedDisplayType?: string;\n customBodyContentSlot?: React.ReactNode;\n};\n\nexport const MeritBadgeFrontFace: React.FC<MeritBadgeFrontFaceProps> = ({\n isFront,\n credential,\n categoryType,\n issuerOverride,\n issueeOverride,\n knownDIDRegistry,\n subjectImageComponent,\n issuerImageComponent,\n customBodyCardComponent,\n hideIssueDate,\n handleViewBackFace,\n showDetailsBtn = false,\n formattedDisplayType,\n customBodyContentSlot,\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-violet-500';\n textDarkColor = 'text-violet-700';\n borderColor = 'border-violet-500';\n } else if (categoryType === LCCategoryEnum.accomplishments) {\n textLightColor = 'text-yellow-500';\n textDarkColor = 'text-yellow-700';\n borderColor = 'border-yellow-500';\n categoryTitle = 'Portfolio';\n } else if (categoryType === LCCategoryEnum.learningHistory) {\n categoryTitle = 'Study';\n } else if (categoryType === LCCategoryEnum.workHistory) {\n categoryTitle = 'Experiences';\n textLightColor = 'text-cyan-500';\n textDarkColor = 'text-cyan-700';\n borderColor = 'border-cyan-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 if (knownDIDRegistry?.source === 'trusted') {\n verifierState = VERIFIER_STATES.trustedVerifier;\n } else if (knownDIDRegistry?.source === 'untrusted') {\n verifierState = VERIFIER_STATES.untrustedVerifier;\n } else if (knownDIDRegistry?.source === 'unknown') {\n verifierState = VERIFIER_STATES.unknownVerifier;\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-[68px] bg-white border-[5px] rounded-[30px] border-soid border-grayscale-200 min-w-[295px]\"\n >\n <div className=\"w-[calc(100%-26px)] absolute top-[-72px]\">\n <MeritBadgeImageDisplay\n imageUrl={imageUrl ?? ''}\n className={`mx-auto ${textLightColor}`}\n />\n </div>\n\n <div\n className={`flex flex-col gap-[15px] items-center px-[20px] pt-[92px] pb-[19px] border-solid border-[4px] ${borderColor} rounded-[30px]`}\n >\n <div className=\"flex flex-col gap-[5px] w-full\">\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-[25px] font-jacques w-full\">\n {title}\n </h1>\n <div\n className={`${textLightColor} uppercase text-[14px] font-notoSans font-[600]`}\n >\n {formattedDisplayType}\n </div>\n </div>\n </div>\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 <div className=\"flex flex-col 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 </div>\n </div>\n <MeritBadgeProfileImageDisplay\n imageUrl={issuerImage}\n userName={issuerName}\n imageComponent={issuerImageComponent}\n className={`w-[calc(100%-26px)] flex justify-center items-center ${textLightColor}`}\n size=\"small\"\n showSeal\n />\n {customBodyContentSlot && customBodyContentSlot}\n <div className={`${textLightColor} uppercase text-[14px] font-notoSans font-[600]`}>\n {categoryTitle}\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 <div className=\"absolute bottom-0 w-[calc(100%-26px)] flex justify-center\">\n <VerifierStateBadgeAndText\n verifierState={verifierState}\n className=\"bg-white px-[5px] pb-[5px]\"\n />\n </div>\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';\nimport { KnownDIDRegistryType } from '../../types';\n\ntype MeritBadgeDisplayCardProps = {\n credential: VC | BoostAchievementCredential;\n categoryType?: LCCategoryEnum;\n verificationItems: VerificationItem[];\n issuerOverride?: Profile;\n issueeOverride?: Profile;\n knownDIDRegistry?: KnownDIDRegistryType;\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 formattedDisplayType?: string;\n customLinkedCredentialsComponent?: React.ReactNode;\n customBodyContentSlot?: React.ReactNode;\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 knownDIDRegistry,\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 formattedDisplayType,\n customLinkedCredentialsComponent,\n customBodyContentSlot,\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] items-center justify-center relative min-w-[220px]\">\n <section className=\"max-w-[350px] w-full\">\n {isFront && (\n <MeritBadgeFrontFace\n credential={credential}\n categoryType={categoryType}\n issuerOverride={issuerOverride}\n issueeOverride={issueeOverride}\n knownDIDRegistry={knownDIDRegistry}\n subjectImageComponent={subjectImageComponent}\n issuerImageComponent={issuerImageComponent}\n customBodyCardComponent={customBodyCardComponent}\n hideIssueDate={hideIssueDate}\n handleViewBackFace={() => setIsFront(!isFront)}\n isFront={isFront}\n showDetailsBtn={showDetailsBtn}\n formattedDisplayType={formattedDisplayType}\n customBodyContentSlot={customBodyContentSlot}\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 customLinkedCredentialsComponent={customLinkedCredentialsComponent}\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":["attachments","videoMetadata"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { P as PuzzlePiece } from './PuzzlePiece-
|
|
3
|
-
import { g as getTotalCountOfSkills, c as categorizeSkills } from './credential.helpers-
|
|
2
|
+
import { P as PuzzlePiece } from './PuzzlePiece-4541648e.js';
|
|
3
|
+
import { g as getTotalCountOfSkills, c as categorizeSkills } from './credential.helpers-97c7e3d4.js';
|
|
4
4
|
|
|
5
5
|
const MeritBadgeSkillsCount = ({ skills, onClick }) => {
|
|
6
6
|
const skillsCount = getTotalCountOfSkills(skills);
|
|
@@ -31,4 +31,4 @@ const MeritBadgeSkillsCount = ({ skills, onClick }) => {
|
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
export { MeritBadgeSkillsCount as M };
|
|
34
|
-
//# sourceMappingURL=MeritBadgeSkillsCount-
|
|
34
|
+
//# sourceMappingURL=MeritBadgeSkillsCount-77ceb64c.js.map
|
package/dist/esm/{MeritBadgeSkillsCount-d2408dfe.js.map → MeritBadgeSkillsCount-77ceb64c.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeritBadgeSkillsCount-
|
|
1
|
+
{"version":3,"file":"MeritBadgeSkillsCount-77ceb64c.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":["total"],"mappings":";;;;AAOO,MAAM,qBAGR,GAAA,CAAC,EAAE,MAAA,EAAQ,SAAc,KAAA;AAC1B,EAAM,MAAA,WAAA,GAAc,sBAAsB,MAAM,CAAA,CAAA;AAEhD,EAAA,IAAI,WAAgB,KAAA,CAAA;AAAG,IAAA,uBAAS,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;AAEhC,EAAM,MAAA,SAAA,GAAY,iBAAiB,MAAM,CAAA,CAAA;AAGzC,EAAA,MAAM,WAAmB,GAAA,MAAA,CAAO,MAAO,CAAA,SAAS,CAAE,CAAA,MAAA;AAAA,IAC9C,CAACA,MAAAA,EAAY,QAAkBA,KAAAA,MAAAA,IAAQ,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,MAAA,CAAA;AAAA,IACjD,CAAA;AAAA,GACJ,CAAA;AACA,EAAA,MAAM,cAAsB,GAAA,MAAA,CAAO,MAAO,CAAA,SAAS,CAAE,CAAA,MAAA;AAAA,IACjD,CAACA,MAAAA,EAAY,QAAkBA,KAAAA,MAAAA,IAAAA,CAAS,qCAAU,mBAAuB,KAAA,CAAA,CAAA;AAAA,IACzE,CAAA;AAAA,GACJ,CAAA;AAEA,EAAA,MAAM,QAAa,WAAc,GAAA,cAAA,CAAA;AAEjC,EAAM,MAAA,IAAA,GAAe,WAAgB,KAAA,CAAA,GAAI,OAAU,GAAA,QAAA,CAAA;AAEnD,EAAA,uBACK,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IACG,SAAU,EAAA,sGAAA;AAAA,IACV,OAAA;AAAA,GAAA,kBAEC,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IAAI,SAAU,EAAA,uGAAA;AAAA,GAAA,EAAwG,GACjH,EAAA,KAAA,EAAM,GAAE,EAAA,IAAA,EAAM,qBACf,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IAAI,SAAU,EAAA,wFAAA;AAAA,GAAA,kBACV,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA;AAAA,IAAY,SAAU,EAAA,YAAA;AAAA,IAAa,IAAK,EAAA,MAAA;AAAA,GAAO,CACpD,CACJ,CACJ,CAAA,CAAA;AAER;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
|
-
import { N as NotificationTypeStyles } from './types-
|
|
2
|
+
import { N as NotificationTypeStyles } from './types-05bc737d.js';
|
|
3
3
|
import { N as NotificationTypeEnum } from './notifications-009bbd80.js';
|
|
4
4
|
import { C as Checkmark } from './Checkmark-d8b8f43d.js';
|
|
5
5
|
|
|
@@ -85,4 +85,4 @@ const Notification = ({
|
|
|
85
85
|
};
|
|
86
86
|
|
|
87
87
|
export { Notification as N };
|
|
88
|
-
//# sourceMappingURL=Notification-
|
|
88
|
+
//# sourceMappingURL=Notification-76adb92c.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Notification-
|
|
1
|
+
{"version":3,"file":"Notification-76adb92c.js","sources":["../../src/components/Notification/Notification.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\n\nimport { NotificationProps, NotificationTypeStyles } from './types';\nimport { NotificationTypeEnum } from '../../constants/notifications';\n\nimport Checkmark from '../svgs/Checkmark';\n\nexport const Notification: React.FC<NotificationProps> = ({\n title,\n issuerImage,\n issueDate,\n className,\n notificationType = NotificationTypeEnum.Achievement,\n handleViewOnClick = () => {},\n claimStatus = false,\n handleClaimOnClick = () => {},\n loadingState = false,\n}) => {\n const [isClaimed, setIsClaimed] = useState<boolean>(claimStatus || false);\n const [isLoading, setIsLoading] = useState<boolean>(loadingState || false);\n\n useEffect(() => {\n setIsClaimed(claimStatus);\n }, [claimStatus]);\n\n useEffect(() => {\n setIsLoading(loadingState);\n }, [loadingState]);\n\n const {\n IconComponent,\n iconCircleStyles,\n textStyles,\n viewButtonStyles,\n claimedButtonStyles,\n unclaimedButtonStyles,\n typeText,\n } = NotificationTypeStyles[notificationType];\n\n const claimButtonStyles = isClaimed ? claimedButtonStyles : unclaimedButtonStyles;\n\n let buttonText: string = '';\n\n if (isClaimed) {\n buttonText = 'Claimed';\n } else if (!isClaimed) {\n buttonText = 'Claim';\n }\n\n return (\n <div\n className={`flex justify-center items-center relative w-full rounded-3xl shadow-2xl py-3 bg-white ${className}`}\n >\n <div\n className={`absolute flex items-center justify-center top-2 right-2 h-8 w-8 overflow-hidden rounded-full z-10 ${iconCircleStyles}`}\n >\n <IconComponent className=\"h-4/5 text-white\" />\n </div>\n <div className=\"flex flex-col justify-center items-center relative w-11/12\">\n <div className=\"flex flex-row items-center justify-start w-full\">\n <div\n className={`h-12 w-12 max-h-12 max-w-[48px] min-h-[48px] min-w-[48px] overflow-hidden rounded-full ${iconCircleStyles}`}\n >\n <img\n src={issuerImage}\n alt=\"issuer image\"\n className=\"w-full h-full object-cover\"\n />\n </div>\n <div className=\"text-left ml-3\">\n <h4\n className=\"font-bold tracking-wide line-clamp-1 text-black\"\n data-testid=\"notification-title\"\n >\n {title}\n </h4>\n <p\n className={`font-semibold p-0 m-0 leading-none tracking-wide line-clamp-1 ${textStyles}`}\n data-testid=\"notification-type\"\n >\n {typeText}{' '}\n <span\n className=\"text-grayscale-600 normal-case font-normal text-sm\"\n data-testid=\"notification-cred-issue-date\"\n >\n • {issueDate}\n </span>\n </p>\n </div>\n </div>\n <div className=\"flex items-center justify-between w-full mt-3\">\n <button\n onClick={handleViewOnClick}\n className={`flex-1 rounded-[24px] border-solid border-2 bg-white font-semibold mr-2 py-2 px-3 tracking-wide ${viewButtonStyles}`}\n role=\"button\"\n name=\"notification-view-button\"\n >\n View\n </button>\n <button\n className={`flex items-center justify-center flex-1 rounded-[24px] border-2 border-solid font-semibold py-2 px-3 tracking-wide ${claimButtonStyles}`}\n onClick={handleClaimOnClick}\n role=\"button\"\n name=\"notification-claim-button\"\n >\n {isClaimed && <Checkmark className=\"h-[24px] p-0 m-0\" />}{' '}\n {isLoading ? 'Loading...' : buttonText}\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nexport default Notification;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import X from './X.svg';
|
|
3
|
-
import { N as NotificationTypeStyles } from './types-
|
|
3
|
+
import { N as NotificationTypeStyles } from './types-05bc737d.js';
|
|
4
4
|
import { N as NotificationTypeEnum } from './notifications-009bbd80.js';
|
|
5
5
|
import { C as Checkmark } from './Checkmark-d8b8f43d.js';
|
|
6
6
|
import ArrowArcLeft from './ArrowArcLeft.svg';
|
|
@@ -109,4 +109,4 @@ const NotificationBoostCard = ({
|
|
|
109
109
|
};
|
|
110
110
|
|
|
111
111
|
export { NotificationBoostCard as N };
|
|
112
|
-
//# sourceMappingURL=NotificationBoostCard-
|
|
112
|
+
//# sourceMappingURL=NotificationBoostCard-e6f1ab86.js.map
|
package/dist/esm/{NotificationBoostCard-42596c2c.js.map → NotificationBoostCard-e6f1ab86.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationBoostCard-42596c2c.js","sources":["../../src/components/NotificationBoostCard/NotificationBoostCard.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport X from '../../assets/images/X.svg';\nimport { NotificationBoostCardProps } from './types';\nimport { NotificationTypeStyles } from '../Notification/types';\nimport { NotificationTypeEnum } from '../../constants/notifications';\nimport Checkmark from '../svgs/Checkmark';\nimport ArrowArcLeft from '../../assets/images/ArrowArcLeft.svg';\nimport UserProfilePicture from '../UserProfilePicture/UserProfilePicture';\n\nexport const NotificationBoostCard: React.FC<NotificationBoostCardProps> = ({\n title,\n customThumbComponent,\n className,\n thumbImage,\n notificationType = NotificationTypeEnum.Achievement,\n issueDate,\n issuerInfo,\n claimStatus = false,\n loadingState = false,\n handleButtonClick,\n handleCancelClick,\n handleCardClick,\n showIssuerInfo = true,\n isArchived,\n}) => {\n const [isClaimed, setIsClaimed] = useState<boolean>(claimStatus || false);\n const [isLoading, setIsLoading] = useState<boolean>(loadingState || false);\n\n useEffect(() => {\n setIsClaimed(claimStatus);\n }, [claimStatus]);\n\n useEffect(() => {\n setIsLoading(loadingState);\n }, [loadingState]);\n\n const {\n iconCircleStyles,\n textStyles,\n viewButtonStyles,\n claimedButtonStyles,\n unclaimedButtonStyles,\n typeText,\n } = NotificationTypeStyles[notificationType];\n\n const claimButtonStyles = isClaimed ? claimedButtonStyles : unclaimedButtonStyles;\n\n let buttonText: string = '';\n\n if (isClaimed) {\n buttonText = 'Claimed';\n } else if (!isClaimed) {\n buttonText = 'Claim';\n }\n\n return (\n <div\n className={`flex justify-start max-w-[600px] items-start relative w-full rounded-3xl shadow-bottom py-[10px] px-[10px] bg-white ${className}`}\n >\n <div className=\"notification-card-left-side px-[0px] flex\">\n {!customThumbComponent && (\n <div\n onClick={handleCardClick}\n className={`overflow-hidden cursor-pointer w-[90px] h-[90px] rounded-full flex items-start ${iconCircleStyles} notification-card-thumbnail`}\n >\n <img\n src={thumbImage}\n alt=\"Notification Thumb\"\n className=\"w-full h-full w-[100px] h-[100px] object-cover\"\n />\n </div>\n )}\n {customThumbComponent && { customThumbComponent }}\n </div>\n <div className=\"flex flex-col justify-center items-start relative w-full\">\n <div className=\"text-left ml-3 flex flex-col items-start justify-start w-full\">\n <h4\n onClick={handleCardClick}\n className=\"cursor-pointer font-bold tracking-wide line-clamp-2 text-black text-[14px] pr-[20px] notification-card-title\"\n data-testid=\"notification-title\"\n >\n {title}\n </h4>\n <p\n className={`font-semibold p-0 mt-[10px] leading-none tracking-wide line-clamp-1 text-[12px] notification-card-type-text ${textStyles}`}\n data-testid=\"notification-type\"\n >\n {typeText}{' '}\n {issueDate && (\n <span\n className=\"text-grayscale-600 normal-case font-normal text-[12px] notification-card-type-issue-date\"\n data-testid=\"notification-cred-issue-date\"\n >\n • {issueDate}\n </span>\n )}\n </p>\n\n {showIssuerInfo && (\n <div className=\"notification-card-issuer-info flex items-center mt-[10px]\">\n <div className=\"profile-thumb-img border-[2px] border-white border-solid vc-issuee-image h-[35px] w-[35px] rounded-full overflow-hidden mx-[-5px]\">\n <UserProfilePicture\n customContainerClass={`h-full w-full object-cover text-xl ${\n !issuerInfo?.image ? 'pt-[3px]' : ''\n }`}\n user={{ image: issuerInfo?.image, name: issuerInfo?.fullName }}\n alt=\"profile\"\n />\n </div>\n <div className=\"notification-issuer-info-text flex items-center px-[10px]\">\n <p className=\"text-[13px] text-gray-700 font-medium\">\n From {issuerInfo?.fullName || issuerInfo?.displayName}\n </p>\n </div>\n </div>\n )}\n\n <div className=\"flex items-center justify-between mt-3 w-full\">\n <button\n className={`notification-claim-btn flex items-center mr-[15px] w-[143px] justify-center flex-1 rounded-[24px] border-2 border-solid font-semibold py-2 px-3 tracking-wide ${claimButtonStyles}`}\n onClick={handleButtonClick}\n role=\"button\"\n name=\"notification-claim-button\"\n >\n {isClaimed && <Checkmark className=\"h-[24px] p-0 m-0\" />}{' '}\n {isLoading ? 'Loading...' : buttonText}\n </button>\n\n <button\n onClick={handleCancelClick}\n className={`rounded-[24px] flex items-center justify-center h-[42px] w-[42px] shadow-bottom bg-white font-semibold mr-2 p-[0px] tracking-wide ${viewButtonStyles}`}\n role=\"button\"\n name=\"notification-view-button\"\n >\n {!isArchived && (\n <img src={X ?? ''} alt=\"Cancel\" className=\"notification-card-x\" />\n )}\n {isArchived && (\n <img\n src={ArrowArcLeft ?? ''}\n alt=\"Cancel\"\n className=\"notification-card-x\"\n />\n )}\n </button>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default NotificationBoostCard;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NotificationBoostCard-e6f1ab86.js","sources":["../../src/components/NotificationBoostCard/NotificationBoostCard.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport X from '../../assets/images/X.svg';\nimport { NotificationBoostCardProps } from './types';\nimport { NotificationTypeStyles } from '../Notification/types';\nimport { NotificationTypeEnum } from '../../constants/notifications';\nimport Checkmark from '../svgs/Checkmark';\nimport ArrowArcLeft from '../../assets/images/ArrowArcLeft.svg';\nimport UserProfilePicture from '../UserProfilePicture/UserProfilePicture';\n\nexport const NotificationBoostCard: React.FC<NotificationBoostCardProps> = ({\n title,\n customThumbComponent,\n className,\n thumbImage,\n notificationType = NotificationTypeEnum.Achievement,\n issueDate,\n issuerInfo,\n claimStatus = false,\n loadingState = false,\n handleButtonClick,\n handleCancelClick,\n handleCardClick,\n showIssuerInfo = true,\n isArchived,\n}) => {\n const [isClaimed, setIsClaimed] = useState<boolean>(claimStatus || false);\n const [isLoading, setIsLoading] = useState<boolean>(loadingState || false);\n\n useEffect(() => {\n setIsClaimed(claimStatus);\n }, [claimStatus]);\n\n useEffect(() => {\n setIsLoading(loadingState);\n }, [loadingState]);\n\n const {\n iconCircleStyles,\n textStyles,\n viewButtonStyles,\n claimedButtonStyles,\n unclaimedButtonStyles,\n typeText,\n } = NotificationTypeStyles[notificationType];\n\n const claimButtonStyles = isClaimed ? claimedButtonStyles : unclaimedButtonStyles;\n\n let buttonText: string = '';\n\n if (isClaimed) {\n buttonText = 'Claimed';\n } else if (!isClaimed) {\n buttonText = 'Claim';\n }\n\n return (\n <div\n className={`flex justify-start max-w-[600px] items-start relative w-full rounded-3xl shadow-bottom py-[10px] px-[10px] bg-white ${className}`}\n >\n <div className=\"notification-card-left-side px-[0px] flex\">\n {!customThumbComponent && (\n <div\n onClick={handleCardClick}\n className={`overflow-hidden cursor-pointer w-[90px] h-[90px] rounded-full flex items-start ${iconCircleStyles} notification-card-thumbnail`}\n >\n <img\n src={thumbImage}\n alt=\"Notification Thumb\"\n className=\"w-full h-full w-[100px] h-[100px] object-cover\"\n />\n </div>\n )}\n {customThumbComponent && { customThumbComponent }}\n </div>\n <div className=\"flex flex-col justify-center items-start relative w-full\">\n <div className=\"text-left ml-3 flex flex-col items-start justify-start w-full\">\n <h4\n onClick={handleCardClick}\n className=\"cursor-pointer font-bold tracking-wide line-clamp-2 text-black text-[14px] pr-[20px] notification-card-title\"\n data-testid=\"notification-title\"\n >\n {title}\n </h4>\n <p\n className={`font-semibold p-0 mt-[10px] leading-none tracking-wide line-clamp-1 text-[12px] notification-card-type-text ${textStyles}`}\n data-testid=\"notification-type\"\n >\n {typeText}{' '}\n {issueDate && (\n <span\n className=\"text-grayscale-600 normal-case font-normal text-[12px] notification-card-type-issue-date\"\n data-testid=\"notification-cred-issue-date\"\n >\n • {issueDate}\n </span>\n )}\n </p>\n\n {showIssuerInfo && (\n <div className=\"notification-card-issuer-info flex items-center mt-[10px]\">\n <div className=\"profile-thumb-img border-[2px] border-white border-solid vc-issuee-image h-[35px] w-[35px] rounded-full overflow-hidden mx-[-5px]\">\n <UserProfilePicture\n customContainerClass={`h-full w-full object-cover text-xl ${\n !issuerInfo?.image ? 'pt-[3px]' : ''\n }`}\n user={{ image: issuerInfo?.image, name: issuerInfo?.fullName }}\n alt=\"profile\"\n />\n </div>\n <div className=\"notification-issuer-info-text flex items-center px-[10px]\">\n <p className=\"text-[13px] text-gray-700 font-medium\">\n From {issuerInfo?.fullName || issuerInfo?.displayName}\n </p>\n </div>\n </div>\n )}\n\n <div className=\"flex items-center justify-between mt-3 w-full\">\n <button\n className={`notification-claim-btn flex items-center mr-[15px] w-[143px] justify-center flex-1 rounded-[24px] border-2 border-solid font-semibold py-2 px-3 tracking-wide ${claimButtonStyles}`}\n onClick={handleButtonClick}\n role=\"button\"\n name=\"notification-claim-button\"\n >\n {isClaimed && <Checkmark className=\"h-[24px] p-0 m-0\" />}{' '}\n {isLoading ? 'Loading...' : buttonText}\n </button>\n\n <button\n onClick={handleCancelClick}\n className={`rounded-[24px] flex items-center justify-center h-[42px] w-[42px] shadow-bottom bg-white font-semibold mr-2 p-[0px] tracking-wide ${viewButtonStyles}`}\n role=\"button\"\n name=\"notification-view-button\"\n >\n {!isArchived && (\n <img src={X ?? ''} alt=\"Cancel\" className=\"notification-card-x\" />\n )}\n {isArchived && (\n <img\n src={ArrowArcLeft ?? ''}\n alt=\"Cancel\"\n className=\"notification-card-x\"\n />\n )}\n </button>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default NotificationBoostCard;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
const PuzzlePiece = ({ className = "", size = "21", fill = "none", version = "outline" }) => {
|
|
4
|
+
if (version === "outline") {
|
|
5
|
+
return /* @__PURE__ */ React.createElement("svg", {
|
|
6
|
+
width: size,
|
|
7
|
+
height: size,
|
|
8
|
+
viewBox: "0 0 26 26",
|
|
9
|
+
fill,
|
|
10
|
+
className,
|
|
11
|
+
"data-testid": "skill-icon"
|
|
12
|
+
}, /* @__PURE__ */ React.createElement("path", {
|
|
13
|
+
d: "M6.49991 21.9374C6.39321 21.9374 6.28756 21.9164 6.18898 21.8756C6.0904 21.8347 6.00083 21.7749 5.92538 21.6994C5.84994 21.624 5.79009 21.5344 5.74926 21.4358C5.70843 21.3372 5.68741 21.2316 5.68741 21.1249L5.68747 16.7887C5.25402 16.994 4.7757 17.0863 4.29699 17.0571C3.81827 17.0279 3.35473 16.8781 2.94947 16.6216C2.5442 16.3651 2.21039 16.0103 1.97908 15.5902C1.74776 15.1701 1.62646 14.6983 1.62646 14.2187C1.62646 13.7391 1.74776 13.2672 1.97908 12.8471C2.21039 12.427 2.5442 12.0722 2.94947 11.8157C3.35473 11.5592 3.81827 11.4094 4.29699 11.3802C4.7757 11.351 5.25402 11.4433 5.68747 11.6486L5.68741 7.31241C5.68741 7.20571 5.70843 7.10005 5.74926 7.00148C5.79009 6.9029 5.84994 6.81333 5.92539 6.73788C6.00084 6.66243 6.09041 6.60258 6.18899 6.56175C6.28757 6.52092 6.39322 6.4999 6.49993 6.4999L11.2423 6.49996C11.0371 6.06651 10.9447 5.58819 10.9739 5.10948C11.0031 4.63077 11.153 4.16722 11.4094 3.76196C11.6659 3.3567 12.0207 3.02289 12.4409 2.79158C12.861 2.56026 13.3328 2.43896 13.8124 2.43896C14.292 2.43896 14.7638 2.56026 15.1839 2.79158C15.6041 3.02289 15.9589 3.3567 16.2154 3.76196C16.4718 4.16722 16.6216 4.63077 16.6509 5.10948C16.6801 5.58819 16.5877 6.06651 16.3825 6.49996L21.1249 6.4999C21.3404 6.4999 21.547 6.5855 21.6994 6.73787C21.8518 6.89024 21.9374 7.0969 21.9374 7.31239L21.9374 11.6486C21.504 11.4433 21.0257 11.351 20.5469 11.3802C20.0682 11.4094 19.6047 11.5592 19.1994 11.8157C18.7942 12.0722 18.4604 12.427 18.229 12.8471C17.9977 13.2672 17.8764 13.739 17.8764 14.2187C17.8764 14.6983 17.9977 15.1701 18.229 15.5902C18.4604 16.0103 18.7942 16.3651 19.1994 16.6216C19.6047 16.8781 20.0682 17.0279 20.5469 17.0571C21.0257 17.0863 21.504 16.994 21.9374 16.7887L21.9374 21.1249C21.9374 21.3404 21.8518 21.5471 21.6994 21.6994C21.547 21.8518 21.3404 21.9374 21.1249 21.9374L6.49991 21.9374Z",
|
|
14
|
+
stroke: "currentColor",
|
|
15
|
+
strokeWidth: "2",
|
|
16
|
+
strokeLinecap: "round",
|
|
17
|
+
strokeLinejoin: "round"
|
|
18
|
+
}));
|
|
19
|
+
} else if (version === "filled") {
|
|
20
|
+
return /* @__PURE__ */ React.createElement("svg", {
|
|
21
|
+
width: size,
|
|
22
|
+
height: size,
|
|
23
|
+
viewBox: "0 0 20 20",
|
|
24
|
+
fill: "none",
|
|
25
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
26
|
+
className
|
|
27
|
+
}, /* @__PURE__ */ React.createElement("path", {
|
|
28
|
+
d: "M7.98568 4.5553C7.98343 4.30027 8.02149 4.02612 8.10099 3.7348C8.48783 2.31721 9.51754 1.73347 10.9613 2.11331C12.405 2.49316 12.9995 3.50422 12.6127 4.92181C12.5332 5.21313 12.4265 5.46924 12.2947 5.689C13.1188 5.95141 13.9369 6.22525 14.5182 6.42268C15.0089 6.58936 15.3237 7.05717 15.2988 7.5664L15.2907 7.73448C15.2562 8.44639 15.1845 9.15653 15.0762 9.86126C15.1259 9.87224 15.176 9.88439 15.2267 9.8977C16.6758 10.279 17.2724 11.2938 16.8842 12.7166C16.4959 14.1394 15.4624 14.7253 14.0133 14.3441C13.9663 14.3317 13.9202 14.3186 13.875 14.305C13.6191 14.9537 13.3298 15.5898 13.0079 16.2098L12.9265 16.3665C12.6907 16.8212 12.181 17.0747 11.6702 16.9805C8.64907 16.4237 5.67688 15.6417 2.77696 14.6407C2.28678 14.4714 1.97434 14.0017 2.00166 13.4922L2.01102 13.3165C2.0496 12.5913 2.08683 11.8911 2.17738 11.154C2.36284 11.2449 2.57011 11.3208 2.79865 11.3809C4.24239 11.7608 5.2721 11.177 5.65894 9.75943C6.04579 8.34183 5.4513 7.33077 4.00756 6.95092C3.78313 6.89188 3.56869 6.85612 3.36513 6.84316C3.67005 6.15033 4.00362 5.51517 4.3499 4.85582L4.42837 4.70637C4.66617 4.25312 5.17702 4.00255 5.68688 4.09913C6.2907 4.21351 7.13852 4.378 7.98568 4.5553Z",
|
|
29
|
+
fill: "currentColor"
|
|
30
|
+
}));
|
|
31
|
+
} else if (version === "with-plus") {
|
|
32
|
+
return /* @__PURE__ */ React.createElement("svg", {
|
|
33
|
+
width: size,
|
|
34
|
+
height: size,
|
|
35
|
+
viewBox: "0 0 25 25",
|
|
36
|
+
fill: "none",
|
|
37
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
38
|
+
className
|
|
39
|
+
}, /* @__PURE__ */ React.createElement("g", {
|
|
40
|
+
clipPath: "url(#clip0_6520_365435)"
|
|
41
|
+
}, /* @__PURE__ */ React.createElement("path", {
|
|
42
|
+
d: "M10.178 4.91813C10.1746 4.52708 10.233 4.10672 10.3548 3.66003C10.948 1.48639 12.5269 0.591323 14.7406 1.17375C16.9544 1.75618 17.8659 3.30647 17.2728 5.48011C17.1509 5.9268 16.9873 6.3195 16.7852 6.65646C18.0488 7.05882 19.3033 7.47872 20.1945 7.78145C20.947 8.03702 21.4297 8.75432 21.3915 9.53515L21.3791 9.79286C21.3262 10.8845 21.2162 11.9734 21.0502 13.0539C21.1263 13.0708 21.2033 13.0894 21.2809 13.1098C23.5028 13.6944 24.4177 15.2504 23.8224 17.4321C23.227 19.6138 21.6423 20.5122 19.4204 19.9276C19.3483 19.9086 19.2777 19.8886 19.2084 19.8676C18.8159 20.8624 18.3723 21.8376 17.8788 22.7883L17.754 23.0287C17.3924 23.7259 16.6108 24.1145 15.8277 23.9701C11.1952 23.1164 6.63788 21.9173 2.19133 20.3824C1.43973 20.1228 0.960661 19.4026 1.00254 18.6214L1.01689 18.352C1.07606 17.24 1.13314 16.1663 1.27199 15.0361C1.55636 15.1755 1.87417 15.2919 2.2246 15.3841C4.43834 15.9665 6.01722 15.0714 6.61038 12.8978C7.20355 10.7241 6.292 9.17384 4.07826 8.59141C3.73413 8.50088 3.40533 8.44605 3.0932 8.42617C3.56074 7.36385 4.07222 6.38992 4.60317 5.37893L4.7235 5.14977C5.08813 4.45479 5.87143 4.07058 6.65321 4.21867C7.57907 4.39405 8.87907 4.64627 10.178 4.91813Z",
|
|
43
|
+
stroke: "white",
|
|
44
|
+
strokeWidth: "2",
|
|
45
|
+
strokeLinecap: "round",
|
|
46
|
+
strokeLinejoin: "round"
|
|
47
|
+
}), /* @__PURE__ */ React.createElement("path", {
|
|
48
|
+
d: "M13 10V16",
|
|
49
|
+
stroke: "white",
|
|
50
|
+
strokeWidth: "2",
|
|
51
|
+
strokeLinecap: "round",
|
|
52
|
+
strokeLinejoin: "round"
|
|
53
|
+
}), /* @__PURE__ */ React.createElement("path", {
|
|
54
|
+
d: "M10 13H16",
|
|
55
|
+
stroke: "white",
|
|
56
|
+
strokeWidth: "2",
|
|
57
|
+
strokeLinecap: "round",
|
|
58
|
+
strokeLinejoin: "round"
|
|
59
|
+
})), /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement("clipPath", {
|
|
60
|
+
id: "clip0_6520_365435"
|
|
61
|
+
}, /* @__PURE__ */ React.createElement("rect", {
|
|
62
|
+
width: "25",
|
|
63
|
+
height: "25",
|
|
64
|
+
fill: "white"
|
|
65
|
+
}))));
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export { PuzzlePiece as P };
|
|
71
|
+
//# sourceMappingURL=PuzzlePiece-4541648e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PuzzlePiece-4541648e.js","sources":["../../src/components/svgs/PuzzlePiece.tsx"],"sourcesContent":["import React from 'react';\n\nconst PuzzlePiece: React.FC<{\n className?: string;\n size?: string;\n fill?: string;\n version?: 'outline' | 'filled' | 'with-plus';\n}> = ({ className = '', size = '21', fill = 'none', version = 'outline' }) => {\n if (version === 'outline') {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 26 26\"\n fill={fill}\n className={className}\n data-testid=\"skill-icon\"\n >\n <path\n d=\"M6.49991 21.9374C6.39321 21.9374 6.28756 21.9164 6.18898 21.8756C6.0904 21.8347 6.00083 21.7749 5.92538 21.6994C5.84994 21.624 5.79009 21.5344 5.74926 21.4358C5.70843 21.3372 5.68741 21.2316 5.68741 21.1249L5.68747 16.7887C5.25402 16.994 4.7757 17.0863 4.29699 17.0571C3.81827 17.0279 3.35473 16.8781 2.94947 16.6216C2.5442 16.3651 2.21039 16.0103 1.97908 15.5902C1.74776 15.1701 1.62646 14.6983 1.62646 14.2187C1.62646 13.7391 1.74776 13.2672 1.97908 12.8471C2.21039 12.427 2.5442 12.0722 2.94947 11.8157C3.35473 11.5592 3.81827 11.4094 4.29699 11.3802C4.7757 11.351 5.25402 11.4433 5.68747 11.6486L5.68741 7.31241C5.68741 7.20571 5.70843 7.10005 5.74926 7.00148C5.79009 6.9029 5.84994 6.81333 5.92539 6.73788C6.00084 6.66243 6.09041 6.60258 6.18899 6.56175C6.28757 6.52092 6.39322 6.4999 6.49993 6.4999L11.2423 6.49996C11.0371 6.06651 10.9447 5.58819 10.9739 5.10948C11.0031 4.63077 11.153 4.16722 11.4094 3.76196C11.6659 3.3567 12.0207 3.02289 12.4409 2.79158C12.861 2.56026 13.3328 2.43896 13.8124 2.43896C14.292 2.43896 14.7638 2.56026 15.1839 2.79158C15.6041 3.02289 15.9589 3.3567 16.2154 3.76196C16.4718 4.16722 16.6216 4.63077 16.6509 5.10948C16.6801 5.58819 16.5877 6.06651 16.3825 6.49996L21.1249 6.4999C21.3404 6.4999 21.547 6.5855 21.6994 6.73787C21.8518 6.89024 21.9374 7.0969 21.9374 7.31239L21.9374 11.6486C21.504 11.4433 21.0257 11.351 20.5469 11.3802C20.0682 11.4094 19.6047 11.5592 19.1994 11.8157C18.7942 12.0722 18.4604 12.427 18.229 12.8471C17.9977 13.2672 17.8764 13.739 17.8764 14.2187C17.8764 14.6983 17.9977 15.1701 18.229 15.5902C18.4604 16.0103 18.7942 16.3651 19.1994 16.6216C19.6047 16.8781 20.0682 17.0279 20.5469 17.0571C21.0257 17.0863 21.504 16.994 21.9374 16.7887L21.9374 21.1249C21.9374 21.3404 21.8518 21.5471 21.6994 21.6994C21.547 21.8518 21.3404 21.9374 21.1249 21.9374L6.49991 21.9374Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n } else if (version === 'filled') {\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 className={className}\n >\n <path\n d=\"M7.98568 4.5553C7.98343 4.30027 8.02149 4.02612 8.10099 3.7348C8.48783 2.31721 9.51754 1.73347 10.9613 2.11331C12.405 2.49316 12.9995 3.50422 12.6127 4.92181C12.5332 5.21313 12.4265 5.46924 12.2947 5.689C13.1188 5.95141 13.9369 6.22525 14.5182 6.42268C15.0089 6.58936 15.3237 7.05717 15.2988 7.5664L15.2907 7.73448C15.2562 8.44639 15.1845 9.15653 15.0762 9.86126C15.1259 9.87224 15.176 9.88439 15.2267 9.8977C16.6758 10.279 17.2724 11.2938 16.8842 12.7166C16.4959 14.1394 15.4624 14.7253 14.0133 14.3441C13.9663 14.3317 13.9202 14.3186 13.875 14.305C13.6191 14.9537 13.3298 15.5898 13.0079 16.2098L12.9265 16.3665C12.6907 16.8212 12.181 17.0747 11.6702 16.9805C8.64907 16.4237 5.67688 15.6417 2.77696 14.6407C2.28678 14.4714 1.97434 14.0017 2.00166 13.4922L2.01102 13.3165C2.0496 12.5913 2.08683 11.8911 2.17738 11.154C2.36284 11.2449 2.57011 11.3208 2.79865 11.3809C4.24239 11.7608 5.2721 11.177 5.65894 9.75943C6.04579 8.34183 5.4513 7.33077 4.00756 6.95092C3.78313 6.89188 3.56869 6.85612 3.36513 6.84316C3.67005 6.15033 4.00362 5.51517 4.3499 4.85582L4.42837 4.70637C4.66617 4.25312 5.17702 4.00255 5.68688 4.09913C6.2907 4.21351 7.13852 4.378 7.98568 4.5553Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n } else if (version === 'with-plus') {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <g clipPath=\"url(#clip0_6520_365435)\">\n <path\n d=\"M10.178 4.91813C10.1746 4.52708 10.233 4.10672 10.3548 3.66003C10.948 1.48639 12.5269 0.591323 14.7406 1.17375C16.9544 1.75618 17.8659 3.30647 17.2728 5.48011C17.1509 5.9268 16.9873 6.3195 16.7852 6.65646C18.0488 7.05882 19.3033 7.47872 20.1945 7.78145C20.947 8.03702 21.4297 8.75432 21.3915 9.53515L21.3791 9.79286C21.3262 10.8845 21.2162 11.9734 21.0502 13.0539C21.1263 13.0708 21.2033 13.0894 21.2809 13.1098C23.5028 13.6944 24.4177 15.2504 23.8224 17.4321C23.227 19.6138 21.6423 20.5122 19.4204 19.9276C19.3483 19.9086 19.2777 19.8886 19.2084 19.8676C18.8159 20.8624 18.3723 21.8376 17.8788 22.7883L17.754 23.0287C17.3924 23.7259 16.6108 24.1145 15.8277 23.9701C11.1952 23.1164 6.63788 21.9173 2.19133 20.3824C1.43973 20.1228 0.960661 19.4026 1.00254 18.6214L1.01689 18.352C1.07606 17.24 1.13314 16.1663 1.27199 15.0361C1.55636 15.1755 1.87417 15.2919 2.2246 15.3841C4.43834 15.9665 6.01722 15.0714 6.61038 12.8978C7.20355 10.7241 6.292 9.17384 4.07826 8.59141C3.73413 8.50088 3.40533 8.44605 3.0932 8.42617C3.56074 7.36385 4.07222 6.38992 4.60317 5.37893L4.7235 5.14977C5.08813 4.45479 5.87143 4.07058 6.65321 4.21867C7.57907 4.39405 8.87907 4.64627 10.178 4.91813Z\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M13 10V16\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M10 13H16\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_6520_365435\">\n <rect width=\"25\" height=\"25\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n }\n\n return null;\n};\n\nexport default PuzzlePiece;\n"],"names":[],"mappings":"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"}
|