@learncard/react 2.6.52 → 2.6.54

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.
@@ -1 +1 @@
1
- {"version":3,"file":"VCDisplayCard2-b868c0b6.js","sources":["../../src/components/svgs/AcuteCheckmark.tsx","../../src/components/svgs/Camera.tsx","../../src/components/svgs/ExclamationPoint.tsx","../../src/components/svgs/GenericDocumentIcon.tsx","../../src/components/svgs/InfoIcon.tsx","../../src/components/svgs/LeftArrow.tsx","../../src/components/svgs/LinkIcon.tsx","../../src/components/svgs/RoundedX.tsx","../../src/components/svgs/VideoIcon.tsx","../../src/components/svgs/X.tsx","../../src/components/VCDisplayCard2/FitText.tsx","../../src/components/VCDisplayCard2/InfoBox.tsx","../../src/components/VCDisplayCard2/IssueHistoryBox.tsx","../../../../node_modules/.pnpm/pretty-bytes@6.0.0/node_modules/pretty-bytes/index.js","../../src/helpers/url.helpers.ts","../../src/components/VCDisplayCard2/MediaAttachmentsBox.tsx","../../src/components/VCDisplayCard2/RibbonEnd.tsx","../../src/components/VCDisplayCard2/TruncateTextBox.tsx","../../src/helpers/string.helpers.ts","../../src/components/VCDisplayCard2/VerificationRow.tsx","../../src/components/VCDisplayCard2/VerificationsBox.tsx","../../src/components/VCDisplayCard2/VC2BackFace.tsx","../../src/components/VCDisplayCard2/VC2FrontFaceInfo.tsx","../../src/components/VCDisplayCard2/VCDisplayCardCategoryType.tsx","../../src/components/VCDisplayCard2/VCDisplayCard2.tsx"],"sourcesContent":["import React from 'react';\n\ntype AcuteCheckmarkProps = {\n className?: string;\n};\n\nconst AcuteCheckmark: React.FC<AcuteCheckmarkProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"16\"\n height=\"11\"\n viewBox=\"0 0 16 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M0.5 4.26859L5.96103 10.5L15.3 0.5H10.6348L5.96103 6.3205L4.49338 4.06677L0.5 4.26859Z\"\n fill=\"#00BA88\"\n />\n </svg>\n );\n};\n\nexport default AcuteCheckmark;\n","import React from 'react';\n\ntype CameraProps = {\n className?: string;\n};\n\nconst Camera: React.FC<CameraProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M20.7415 5.81958H18.6871C18.0439 5.81958 17.4439 5.49798 17.0887 4.96518L16.2295 3.67398C15.8743 3.14118 15.2743 2.81958 14.6311 2.81958L10.6855 2.81958C10.0423 2.81958 9.44231 3.14118 9.08711 3.67398L8.22791 4.96518C7.87271 5.49798 7.27271 5.81958 6.62951 5.81958H4.57991C3.51911 5.81958 2.65991 6.67878 2.65991 7.73958L2.65991 18.8996C2.65991 19.9604 3.51911 20.8196 4.57991 20.8196L20.7415 20.8196C21.8023 20.8196 22.6615 19.9604 22.6615 18.8996L22.6615 7.73958C22.6615 6.67878 21.8023 5.81958 20.7415 5.81958ZM12.7399 17.738C10.0903 17.738 7.93991 15.5876 7.93991 12.938C7.93991 10.2884 10.0903 8.13798 12.7399 8.13798C15.3895 8.13798 17.5399 10.2884 17.5399 12.938C17.5399 15.5876 15.3895 17.738 12.7399 17.738Z\"\n fill=\"white\"\n />\n </svg>\n );\n};\n\nexport default Camera;\n","import React from 'react';\n\ntype ExclamationPointProps = {\n className?: string;\n};\n\nconst ExclamationPoint: React.FC<ExclamationPointProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"5\"\n height=\"11\"\n viewBox=\"0 0 5 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M1.1338 6.58451L0.5 0.5H4.30282L3.66901 6.58451H1.1338ZM2.40141 10.5C1.85681 10.5 1.4108 10.3357 1.06338 10.007C0.715963 9.66901 0.542253 9.26995 0.542253 8.80986C0.542253 8.34037 0.715963 7.94601 1.06338 7.62676C1.4108 7.30751 1.85681 7.14789 2.40141 7.14789C2.9554 7.14789 3.40141 7.30751 3.73944 7.62676C4.08685 7.94601 4.26056 8.34037 4.26056 8.80986C4.26056 9.26995 4.08685 9.66901 3.73944 10.007C3.40141 10.3357 2.9554 10.5 2.40141 10.5Z\"\n fill=\"#FACC15\"\n />\n </svg>\n );\n};\n\nexport default ExclamationPoint;\n","import React from 'react';\n\ntype GenericDocumentIconProps = {\n className?: string;\n};\n\nconst GenericDocumentIcon: React.FC<GenericDocumentIconProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"41\"\n height=\"40\"\n viewBox=\"0 0 41 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M5.5 4.66675C5.5 3.0099 6.84315 1.66675 8.5 1.66675H18.6813C21.3361 1.66675 23.8555 2.83885 25.5655 4.86953L33.3842 14.1542C34.7507 15.7769 35.5 17.8301 35.5 19.9515V35.3334C35.5 36.9903 34.1569 38.3334 32.5 38.3334H8.5C6.84315 38.3334 5.5 36.9903 5.5 35.3334V4.66675Z\"\n fill=\"#FF3636\"\n />\n <path d=\"M22 13V2.5C26 3.5 34.5 14 35.5 18H27C23 18 22 16 22 13Z\" fill=\"#FF7A7A\" />\n </svg>\n );\n};\n\nexport default GenericDocumentIcon;\n","import React from 'react';\n\ntype InfoIconProps = {\n className?: string;\n color?: string;\n};\n\nconst InfoIcon: React.FC<InfoIconProps> = ({ className = '', color = '#A8ACBD' }) => {\n return (\n <svg\n width=\"22\"\n height=\"21\"\n viewBox=\"0 0 22 21\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M11.0003 0.34375C8.99153 0.34375 7.02793 0.939404 5.35774 2.05539C3.68755 3.17137 2.3858 4.75756 1.6171 6.61337C0.848395 8.46918 0.647267 10.5113 1.03915 12.4814C1.43103 14.4515 2.39832 16.2612 3.8187 17.6816C5.23907 19.1019 7.04874 20.0692 9.01886 20.4611C10.989 20.853 13.0311 20.6519 14.8869 19.8832C16.7427 19.1144 18.3289 17.8127 19.4449 16.1425C20.5608 14.4723 21.1565 12.5087 21.1565 10.5C21.1534 7.80735 20.0824 5.22588 18.1784 3.32188C16.2744 1.41789 13.6929 0.346862 11.0003 0.34375V0.34375ZM11.0002 5.03125C11.2319 5.03125 11.4585 5.09998 11.6512 5.22875C11.8439 5.35751 11.9941 5.54054 12.0828 5.75467C12.1715 5.9688 12.1947 6.20443 12.1495 6.43175C12.1043 6.65907 11.9927 6.86788 11.8288 7.03177C11.6649 7.19566 11.4561 7.30727 11.2288 7.35248C11.0015 7.3977 10.7658 7.37449 10.5517 7.2858C10.3376 7.1971 10.1545 7.0469 10.0258 6.85418C9.89701 6.66147 9.82828 6.4349 9.82828 6.20313C9.82828 6.04923 9.85859 5.89685 9.91748 5.75467C9.97637 5.61249 10.0627 5.4833 10.1715 5.37448C10.2803 5.26566 10.4095 5.17934 10.5517 5.12045C10.6939 5.06156 10.8463 5.03125 11.0002 5.03125H11.0002ZM11.7815 15.9688H11.0003C10.8976 15.9688 10.796 15.9486 10.7012 15.9094C10.6064 15.8702 10.5202 15.8126 10.4477 15.7401C10.3751 15.6675 10.3176 15.5814 10.2783 15.4865C10.2391 15.3917 10.2189 15.2901 10.219 15.1875V10.5C10.0118 10.5 9.81309 10.4177 9.66657 10.2712C9.52006 10.1247 9.43775 9.92595 9.43775 9.71875C9.43775 9.51155 9.52006 9.31284 9.66657 9.16632C9.81309 9.01981 10.0118 8.9375 10.219 8.9375H11.0003C11.1029 8.93744 11.2045 8.95761 11.2993 8.99685C11.3941 9.03609 11.4803 9.09363 11.5528 9.16619C11.6254 9.23875 11.6829 9.3249 11.7222 9.41971C11.7614 9.51452 11.7816 9.61614 11.7815 9.71875V14.4063C11.9887 14.4063 12.1874 14.4886 12.3339 14.6351C12.4804 14.7816 12.5628 14.9803 12.5628 15.1875C12.5628 15.3947 12.4804 15.5934 12.3339 15.7399C12.1874 15.8864 11.9887 15.9688 11.7815 15.9688Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default InfoIcon;\n","import React from 'react';\n\ntype LeftArrowProps = {\n className?: string;\n color?: string;\n size?: string;\n};\n\nconst LeftArrow: React.FC<LeftArrowProps> = ({ className = '', 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 className={className}\n >\n <path\n d=\"M8.93299 17.942L1.43299 10.442C1.31582 10.3247 1.25 10.1657 1.25 9.99999C1.25 9.83423 1.31582 9.67526 1.43299 9.55802L8.93299 2.05802C9.02041 1.97062 9.13178 1.91111 9.25301 1.887C9.37425 1.8629 9.49991 1.87528 9.61412 1.92258C9.72832 1.96989 9.82593 2.04999 9.89461 2.15277C9.96329 2.25554 9.99995 2.37638 9.99996 2.49999V5.62499H16.25C16.5814 5.62537 16.8991 5.75718 17.1334 5.99152C17.3678 6.22586 17.4996 6.54358 17.5 6.87499V13.125C17.4996 13.4564 17.3678 13.7741 17.1334 14.0085C16.8991 14.2428 16.5814 14.3746 16.25 14.375H9.99996V17.5C9.99995 17.6236 9.96329 17.7444 9.89461 17.8472C9.82593 17.95 9.72832 18.0301 9.61412 18.0774C9.49991 18.1247 9.37425 18.1371 9.25301 18.113C9.13178 18.0889 9.02041 18.0294 8.93299 17.942Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default LeftArrow;\n","import React from 'react';\n\ntype LinkIconProps = {\n className?: string;\n};\n\nconst LinkIcon: React.FC<LinkIconProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"33\"\n height=\"32\"\n viewBox=\"0 0 33 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M16.8117 7.91003L18.2677 6.45403C18.7784 5.94292 19.3847 5.53742 20.0521 5.26071C20.7195 4.98399 21.4348 4.84148 22.1573 4.84131C22.8798 4.84114 23.5953 4.98332 24.2628 5.25973C24.9303 5.53613 25.5368 5.94135 26.0477 6.45222C26.5586 6.9631 26.9638 7.56962 27.2402 8.23714C27.5166 8.90466 27.6588 9.6201 27.6586 10.3426C27.6584 11.0651 27.5159 11.7804 27.2392 12.4478C26.9625 13.1152 26.557 13.7216 26.0459 14.2322L22.5104 17.7677C21.9996 18.2785 21.3933 18.6836 20.726 18.96C20.0587 19.2364 19.3435 19.3787 18.6213 19.3787C17.899 19.3787 17.1838 19.2364 16.5165 18.96C15.8492 18.6836 15.2429 18.2785 14.7322 17.7677\"\n stroke=\"#6366F1\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M16.188 24.0902L14.7322 25.546C14.2216 26.0571 13.6152 26.4626 12.9478 26.7393C12.2804 27.016 11.5651 27.1585 10.8426 27.1587C10.1201 27.1589 9.40466 27.0167 8.73714 26.7403C8.06962 26.4639 7.4631 26.0586 6.95222 25.5478C6.44135 25.0369 6.03613 24.4304 5.75973 23.7629C5.48332 23.0953 5.34114 22.3799 5.34131 21.6574C5.34148 20.9349 5.48399 20.2195 5.76071 19.5521C6.03742 18.8848 6.44292 18.2784 6.95403 17.7678L10.4896 14.2323C11.0003 13.7215 11.6066 13.3164 12.2739 13.04C12.9412 12.7636 13.6564 12.6213 14.3787 12.6213C15.1009 12.6213 15.8161 12.7636 16.4834 13.04C17.1507 13.3164 17.757 13.7215 18.2677 14.2323\"\n stroke=\"#6366F1\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\nexport default LinkIcon;\n","import React from 'react';\n\ntype RoundedXProps = {\n className?: string;\n};\n\nconst RoundedX: React.FC<RoundedXProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M18.75 5.25L5.25 18.75\"\n stroke=\"#18224E\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M18.75 18.75L5.25 5.25\"\n stroke=\"#18224E\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\nexport default RoundedX;\n","import React from 'react';\n\ntype VideoIconProps = {\n className?: string;\n size?: string;\n};\n\nconst VideoIcon: React.FC<VideoIconProps> = ({ className = '', size = '25' }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.61304 4.5H12.4051C14.8271 4.5 16.5181 6.16904 16.5181 8.56091V15.4391C16.5181 17.831 14.8271 19.5 12.4051 19.5H6.61304C4.19102 19.5 2.5 17.831 2.5 15.4391V8.56091C2.5 6.16904 4.19102 4.5 6.61304 4.5ZM20.458 6.87898C20.897 6.65563 21.412 6.67898 21.831 6.94294C22.25 7.20589 22.5 7.66274 22.5 8.16223V15.8384C22.5 16.3389 22.25 16.7947 21.831 17.0577C21.602 17.2008 21.346 17.2739 21.088 17.2739C20.873 17.2739 20.658 17.2231 20.457 17.1206L18.976 16.3734C18.428 16.0952 18.088 15.5369 18.088 14.9165V9.08305C18.088 8.46173 18.428 7.90335 18.976 7.62721L20.458 6.87898Z\"\n fill=\"white\"\n />\n </svg>\n );\n};\n\nexport default VideoIcon;\n","import React from 'react';\n\ntype XProps = {\n className?: string;\n};\n\nconst X: React.FC<XProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"11\"\n height=\"11\"\n viewBox=\"0 0 11 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M7.47753 10.25C7.20582 9.8045 6.92868 9.37104 6.6461 8.94962C6.37439 8.52218 6.08637 8.09173 5.78206 7.65827C5.49948 8.07969 5.22233 8.50412 4.95062 8.93156C4.67891 9.35298 4.41807 9.78042 4.1681 10.2139L0.5 10.1055C1.15211 9.33492 1.78247 8.57335 2.39111 7.82082C3.01061 7.06828 3.60294 6.3007 4.1681 5.51806C3.5812 4.74747 2.98344 3.98891 2.3748 3.2424C1.77704 2.48986 1.17384 1.73131 0.565211 0.96673L4.38003 0.75C4.77129 1.57478 5.23864 2.3815 5.78206 3.17015C6.01029 2.77883 6.24397 2.38451 6.48307 1.98717C6.73305 1.58983 6.96672 1.17744 7.18409 0.75L10.95 0.912548C10.2979 1.67712 9.67839 2.43267 9.0915 3.17918C8.5046 3.9257 7.92314 4.68124 7.34711 5.44582C7.9014 6.21039 8.46113 6.95691 9.02629 7.68536C9.60231 8.41382 10.1783 9.1513 10.7544 9.89781L7.47753 10.25Z\"\n fill=\"#FF2C3C\"\n />\n </svg>\n );\n};\n\nexport default X;\n","import React, { useEffect, useRef } from 'react';\n\ninterface FitTextProps {\n text: string;\n width: string;\n className?: string;\n minFontSize?: number;\n maxFontSize?: number;\n}\n\nconst FitText: React.FC<FitTextProps> = ({\n text,\n width,\n className = '',\n minFontSize = 10,\n maxFontSize = 100,\n}) => {\n const textRef = useRef<HTMLDivElement>(null);\n let animationFrameId: number | null = null;\n\n const adjustFontSize = () => {\n if (textRef.current) {\n const currentFontSize = parseFloat(\n window.getComputedStyle(textRef.current).getPropertyValue('font-size')\n );\n\n // Need to calculate spacing based on nowrap to prevent thrashing\n textRef.current.style.whiteSpace = 'nowrap';\n const parentWidth = (textRef.current.parentNode as any)?.clientWidth;\n const scrollWidth = textRef.current.scrollWidth || textRef.current.offsetWidth;\n\n // Sometimes scrollWidth can temporarily be 0. If so, just try again next frame\n if (scrollWidth === 0) {\n if (animationFrameId !== null) {\n cancelAnimationFrame(animationFrameId);\n }\n\n animationFrameId = requestAnimationFrame(adjustFontSize);\n\n return;\n }\n\n const newFontSize = Math.min(\n Math.max((parentWidth / scrollWidth) * currentFontSize, minFontSize),\n maxFontSize\n );\n\n textRef.current.style.fontSize = `${newFontSize}px`;\n textRef.current.style.whiteSpace = newFontSize === minFontSize ? 'normal' : 'nowrap';\n }\n };\n\n const handleResize = () => {\n if (animationFrameId !== null) {\n cancelAnimationFrame(animationFrameId);\n }\n\n animationFrameId = requestAnimationFrame(adjustFontSize);\n };\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n adjustFontSize();\n\n return () => {\n window.removeEventListener('resize', handleResize);\n if (animationFrameId !== null) {\n cancelAnimationFrame(animationFrameId);\n }\n };\n }, [text]);\n\n return (\n <div style={{ width }} className={`text-center ${className}`}>\n <span\n className={`text-[${minFontSize}px] transition-[font-size] whitespace-nowrap`}\n ref={textRef}\n >\n {text}\n </span>\n </div>\n );\n};\n\nexport default FitText;\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 onClick={handleClose} className=\"text-indigo-500 font-[700] select-none\">\n Close\n </button>\n </div>\n );\n};\n\nexport default InfoBox;\n","import React, { useState } from 'react';\nimport DefaultFace from '../../assets/images/default-face.jpeg';\n\nimport { IssueHistory } from '../../types';\n\ntype SkillsBoxProps = {\n issueHistory: IssueHistory[];\n customIssueHistoryComponent?: React.ReactNode;\n};\n\nconst IssueHistoryBox: React.FC<SkillsBoxProps> = ({\n issueHistory,\n customIssueHistoryComponent,\n}) => {\n let renderIssueHistory = issueHistory?.map(issueItem => {\n return (\n <div\n className=\"flex items-center issue-log-item border-b-[1px] py-[5px] border-grayscale-200 border-solid w-full\"\n key={issueItem?.id}\n >\n <div className=\"profile-thumb-img vc-issuee-image h-[35px] w-[35px] rounded-full overflow-hidden\">\n <img\n className=\"h-full w-full object-cover select-none\"\n src={issueItem?.thumb || DefaultFace}\n alt=\"profile\"\n />\n </div>\n <div className=\"ml-[9px] flex flex-col justify-center\">\n <p className=\"issue-item-name font-montserrat font-semibold text-grayscale-900 text-[14px] \">\n {issueItem?.name}\n </p>\n <p className=\"issue-item-date font-montserrat text-[12px] text-grayscale-600 \">\n {issueItem?.date}\n </p>\n </div>\n </div>\n );\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 relative\">\n <h3 className=\"text-[20px] leading-[20px] text-grayscale-900\">Issue Log</h3>\n {!customIssueHistoryComponent ? renderIssueHistory : customIssueHistoryComponent}\n </div>\n );\n};\n\nexport default IssueHistoryBox;\n","const BYTE_UNITS = [\n\t'B',\n\t'kB',\n\t'MB',\n\t'GB',\n\t'TB',\n\t'PB',\n\t'EB',\n\t'ZB',\n\t'YB',\n];\n\nconst BIBYTE_UNITS = [\n\t'B',\n\t'kiB',\n\t'MiB',\n\t'GiB',\n\t'TiB',\n\t'PiB',\n\t'EiB',\n\t'ZiB',\n\t'YiB',\n];\n\nconst BIT_UNITS = [\n\t'b',\n\t'kbit',\n\t'Mbit',\n\t'Gbit',\n\t'Tbit',\n\t'Pbit',\n\t'Ebit',\n\t'Zbit',\n\t'Ybit',\n];\n\nconst BIBIT_UNITS = [\n\t'b',\n\t'kibit',\n\t'Mibit',\n\t'Gibit',\n\t'Tibit',\n\t'Pibit',\n\t'Eibit',\n\t'Zibit',\n\t'Yibit',\n];\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number, locale, options) => {\n\tlet result = number;\n\tif (typeof locale === 'string' || Array.isArray(locale)) {\n\t\tresult = number.toLocaleString(locale, options);\n\t} else if (locale === true || options !== undefined) {\n\t\tresult = number.toLocaleString(undefined, options);\n\t}\n\n\treturn result;\n};\n\nexport default function prettyBytes(number, options) {\n\tif (!Number.isFinite(number)) {\n\t\tthrow new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n\t}\n\n\toptions = {\n\t\tbits: false,\n\t\tbinary: false,\n\t\t...options,\n\t};\n\n\tconst UNITS = options.bits\n\t\t? (options.binary ? BIBIT_UNITS : BIT_UNITS)\n\t\t: (options.binary ? BIBYTE_UNITS : BYTE_UNITS);\n\n\tif (options.signed && number === 0) {\n\t\treturn ` 0 ${UNITS[0]}`;\n\t}\n\n\tconst isNegative = number < 0;\n\tconst prefix = isNegative ? '-' : (options.signed ? '+' : '');\n\n\tif (isNegative) {\n\t\tnumber = -number;\n\t}\n\n\tlet localeOptions;\n\n\tif (options.minimumFractionDigits !== undefined) {\n\t\tlocaleOptions = {minimumFractionDigits: options.minimumFractionDigits};\n\t}\n\n\tif (options.maximumFractionDigits !== undefined) {\n\t\tlocaleOptions = {maximumFractionDigits: options.maximumFractionDigits, ...localeOptions};\n\t}\n\n\tif (number < 1) {\n\t\tconst numberString = toLocaleString(number, options.locale, localeOptions);\n\t\treturn prefix + numberString + ' ' + UNITS[0];\n\t}\n\n\tconst exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);\n\tnumber /= (options.binary ? 1024 : 1000) ** exponent;\n\n\tif (!localeOptions) {\n\t\tnumber = number.toPrecision(3);\n\t}\n\n\tconst numberString = toLocaleString(Number(number), options.locale, localeOptions);\n\n\tconst unit = UNITS[exponent];\n\n\treturn prefix + numberString + ' ' + unit;\n}\n","export const getBaseUrl = (url: string) => {\n return url.replace(/(https?:\\/\\/(www\\.)?)/, '').split('/')[0];\n};\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 } from '../../types';\nimport { getBaseUrl } from '../../helpers/url.helpers';\nimport { Lightbox, LightboxItem } from '../Lightbox';\n\nexport type MediaMetadata = {\n fileExtension?: string;\n sizeInBytes?: number;\n numberOfPages?: number;\n};\n\nexport type VideoMetadata = {\n title?: string;\n videoLength?: string;\n imageUrl?: string;\n};\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 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\nconst defaultGetVideoMetadata = async (url: string) => {\n const isYoutube = url.includes('youtube');\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 if (fetchFailed) return;\n\n return {\n title: metadata.title,\n imageUrl: metadata.thumbnail_url,\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=\"media-attachments-box bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full\">\n <h3 className=\"text-[20px] leading-[20px] text-grayscale-900\">Media 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 const iconTop = title || baseUrl;\n\n innerContent = (\n <div\n className=\"absolute top-0 left-0 right-0 bottom-0 bg-cover bg-no-repeat 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]\"\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(${\n metadata?.imageUrl ?? ''\n })`\n : undefined,\n }}\n >\n {!metadata?.imageUrl && (\n <VideoIcon size=\"60\" className=\"m-auto\" />\n )}\n <div\n className={`absolute ${\n iconTop ? 'top-[10px]' : 'bottom-[10px]'\n } left-[10px] z-10 flex items-center gap-[5px]`}\n >\n {metadata?.imageUrl && <VideoIcon />}\n {metadata?.videoLength && (\n <span className=\"leading-[23px]\">\n {metadata.videoLength}\n </span>\n )}\n </div>\n {baseUrl && <span className=\"font-[600]\">{baseUrl}</span>}\n {title && <span className=\"line-clamp-2\">{title}</span>}\n </div>\n );\n } else {\n innerContent = (\n <div className=\"absolute top-0 left-0 right-0 bottom-0 h-min\">\n <img className=\"rounded-[15px]\" src={media.url} />\n <Camera className=\"relative bottom-[30px] 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 <button\n key={index}\n className={className}\n onClick={() =>\n handleMediaAttachmentClick(media.url, media.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 {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 <span className=\"text-grayscale-900 font-[400]\">\n {docOrLink.title ?? 'No title'}\n </span>\n </div>\n {docOrLink.type === 'document' && metadata && (\n <a\n href={docOrLink.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"text-grayscale-600 font-[600] px-[5px] hover:underline\"\n >\n {fileExtension && (\n <span className=\"uppercase\">{fileExtension}</span>\n )}\n {fileExtension && (numberOfPages || sizeInBytes) && ' • '}\n {numberOfPages && (\n <span>\n {numberOfPages} page{numberOfPages === 1 ? '' : 's'}\n </span>\n )}\n {numberOfPages && sizeInBytes && ' • '}\n {sizeInBytes && <span>{prettyBytes(sizeInBytes)}</span>}\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-[600] px-[5px] hover:underline\"\n >\n {baseUrl}\n </a>\n )}\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={() =>\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 from 'react';\n\nconst RibbonEnd: React.FC<{ side: 'left' | 'right'; className?: string; height?: string }> = ({\n side,\n className = '',\n height = '64',\n}) => {\n const halfHeight = parseInt(height) / 2;\n return (\n <svg\n className={className}\n width=\"30\"\n height={height}\n viewBox={`0 0 30 ${height}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ transform: `scaleX(${side === 'left' ? '1' : '-1'})` }}\n >\n <g filter=\"url(#filter0_d_4620_22659)\">\n <path d={`M0 0H30V${height}H0L6.36364 ${halfHeight}L0 0Z`} fill=\"white\" />\n <path\n d={`M3.08593 2.5H27.5V${height}H3.08593L8.80922 ${halfHeight}L8.91926 30L8.80922 29.4812L3.08593 2.5Z`}\n stroke=\"#EEF2FF\"\n strokeWidth=\"5\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_d_4620_22659\"\n x=\"0\"\n y=\"0\"\n width=\"30\"\n height={height}\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.25 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_4620_22659\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_4620_22659\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n );\n};\n\nexport default RibbonEnd;\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} bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full\"`}\n >\n <h3 className={`${headerClassName} text-[20px] leading-[20px] text-grayscale-900`}>\n {headerText}\n </h3>\n\n <p className=\"text-[12px] text-grayscale-700 leading-[18px] font-poppins font-[400] mb-0\">\n {displayText}\n {truncated && (\n <>\n ...{' '}\n <button\n className=\"text-indigo-500 font-[700]\"\n onClick={() => setShowFullText(true)}\n >\n More\n </button>\n </>\n )}\n {needsTruncate && showFullText && (\n <>\n {' '}\n <button\n className=\"text-indigo-500 font-[700]\"\n onClick={() => setShowFullText(false)}\n >\n Close\n </button>\n </>\n )}\n </p>\n\n {children}\n </div>\n );\n};\n\nexport default TruncateTextBox;\n","export const truncateWithEllipsis = (str: string, maxLength: number) => {\n return str.length > maxLength ? `${str.substring(0, maxLength)}...` : str;\n};\n\nexport const capitalize = (string?: string): string => {\n return string ? string[0].toUpperCase() + string.slice(1) : '';\n};\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] leading-[16px] 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=\"font-[400] text-[14px] leading-[21px] text-grayscale-900\">\n {primaryText}\n </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=\"verifications-box bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full relative\">\n <h3 className=\"text-[20px] leading-[20px] text-grayscale-900\">\n Credential Verifications\n </h3>\n <button\n className=\"absolute top-[17px] right-[17px]\"\n onClick={() => setShowInfo(!showInfo)}\n >\n <InfoIcon color={showInfo ? '#6366F1' : undefined} />\n </button>\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 from 'react';\nimport { format } from 'date-fns';\n\nimport MediaAttachmentsBox, { MediaMetadata, VideoMetadata } from './MediaAttachmentsBox';\nimport TruncateTextBox from './TruncateTextBox';\n// import SkillsBox from './SkillsBox';\nimport IssueHistoryBox from './IssueHistoryBox';\nimport { VC, VerificationItem } from '@learncard/types';\nimport VerificationsBox from './VerificationsBox';\nimport { BoostAchievementCredential, IssueHistory } from '../../types';\nimport LeftArrow from '../svgs/LeftArrow';\n\n/*\nconst defaultTagsToSkills = (tags: string[]) => {\n const skillsObj: { [skill: string]: string[] } = {};\n tags.forEach(tag => {\n skillsObj[tag] = [];\n });\n};\n*/\n\ntype VC2BackFaceProps = {\n credential: VC | BoostAchievementCredential;\n verificationItems: VerificationItem[];\n // convertTagsToSkills?: (tags: string[]) => { [skill: string]: string[] };\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string, type: 'photo' | 'document' | 'video' | 'link') => void;\n issueHistory?: IssueHistory[];\n showBackButton?: boolean;\n showFrontFace: () => void;\n customDescription?: React.ReactNode;\n customCriteria?: React.ReactNode;\n customIssueHistoryComponent?: React.ReactNode;\n enableLightbox?: boolean;\n};\n\nconst VC2BackFace: React.FC<VC2BackFaceProps> = ({\n credential,\n verificationItems,\n // convertTagsToSkills = defaultTagsToSkills,\n getFileMetadata,\n getVideoMetadata,\n onMediaAttachmentClick,\n issueHistory,\n showBackButton,\n showFrontFace,\n customDescription,\n customCriteria,\n customIssueHistoryComponent,\n enableLightbox,\n}) => {\n const expiration = credential.expirationDate\n ? format(new Date(credential.expirationDate), 'MMM dd, yyyy')\n : undefined;\n\n const isExpired =\n credential.expirationDate &&\n Number(new Date(credential.expirationDate)) < Number(new Date());\n\n const achievement =\n 'achievement' in credential.credentialSubject\n ? credential.credentialSubject.achievement\n : undefined;\n const criteria = achievement?.criteria?.narrative;\n const description = achievement?.description;\n\n /* \n const tags = credential.credentialSubject.achievement?.tag;\n const skillsObject = tags && tags.length > 0 ? convertTagsToSkills(tags) : undefined;\n */\n\n return (\n <section className=\"vc-back-face flex flex-col gap-[20px] w-full px-[15px]\">\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={showFrontFace}\n >\n <LeftArrow className=\"text-white\" size=\"25\" />\n Details\n </button>\n </div>\n )}\n\n {customDescription && (\n <TruncateTextBox headerText=\"About\" text={description} className=\"description-box\">\n {customDescription}\n </TruncateTextBox>\n )}\n {!customDescription && (description || expiration) && (\n <TruncateTextBox headerText=\"About\" text={description} className=\"description-box\">\n {expiration && (\n <p className=\"text-grayscale-800 font-poppins font-[600] text-[12px] leading-[18px] mb-0\">\n Expire{isExpired ? 'd' : 's'} on {expiration}\n </p>\n )}\n </TruncateTextBox>\n )}\n\n {customCriteria && (\n <TruncateTextBox\n headerText=\"Criteria\"\n text={description}\n className=\"description-box\"\n >\n {customCriteria}\n </TruncateTextBox>\n )}\n {!customCriteria && criteria && (\n <TruncateTextBox headerText=\"Criteria\" text={criteria} className=\"criteria-box\" />\n )}\n {/* {skillsObject && <SkillsBox skillsObject={skillsObject} />} */}\n\n {issueHistory && issueHistory?.length > 0 && (\n <IssueHistoryBox\n issueHistory={issueHistory}\n customIssueHistoryComponent={customIssueHistoryComponent}\n />\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 {/* {credential.notes && <TruncateTextBox headerText=\"Notes\" text={credential.notes} />} */}\n\n {verificationItems && verificationItems.length > 0 && (\n <VerificationsBox verificationItems={verificationItems} />\n )}\n </section>\n );\n};\n\nexport default VC2BackFace;\n","import React from 'react';\n\nimport DefaultFace from '../../assets/images/default-face.jpeg';\n\nimport { getImageFromProfile, getNameFromProfile } from '../../helpers/credential.helpers';\nimport { truncateWithEllipsis } from '../../helpers/string.helpers';\nimport { Profile } from '@learncard/types';\n\ntype VC2FrontFaceInfoProps = {\n issuee: Profile | string;\n issuer: Profile | string;\n title: string;\n subjectDID?: string | undefined;\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n createdAt: string;\n imageUrl?: string;\n customBodyCardComponent?: React.ReactNode;\n customThumbComponent?: React.ReactNode;\n};\n\nconst VC2FrontFaceInfo: React.FC<VC2FrontFaceInfoProps> = ({\n issuee,\n issuer,\n subjectDID,\n subjectImageComponent,\n issuerImageComponent,\n customBodyCardComponent,\n createdAt,\n imageUrl,\n customThumbComponent,\n}) => {\n const issuerName = truncateWithEllipsis(getNameFromProfile(issuer ?? ''), 25);\n const issueeName = truncateWithEllipsis(getNameFromProfile(issuee ?? ''), 25);\n const issuerImage = getImageFromProfile(issuer ?? '');\n const issueeImage = getImageFromProfile(issuee ?? '');\n\n const getImageElement = (\n imageUrl: string,\n alt: string,\n overrideComponent: React.ReactNode | undefined\n ) => {\n if (overrideComponent) return overrideComponent;\n\n return (\n <img\n className=\"h-full w-full object-cover select-none\"\n src={imageUrl || DefaultFace}\n alt={alt}\n />\n );\n };\n\n const issueeImageEl: React.ReactNode = getImageElement(\n issueeImage,\n 'Issuee image',\n subjectImageComponent\n );\n const issuerImageEl: React.ReactNode = getImageElement(\n issuerImage,\n 'Issuer image',\n issuerImageComponent\n );\n\n return (\n <section className=\"vc-front-face w-full px-[15px] flex flex-col items-center gap-[15px]\">\n {imageUrl && !customThumbComponent && (\n <img className=\"vc-front-image h-[130px] w-[130px] rounded-[10px]\" src={imageUrl} />\n )}\n\n {customThumbComponent && customThumbComponent}\n <div className=\"vc-issue-info-box bg-white flex flex-col items-center gap-[5px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full\">\n {customBodyCardComponent && customBodyCardComponent}\n\n {!customBodyCardComponent && (\n <>\n <h3 className=\"text-[27px] flex flex-col text-center leading-[130%] text-grayscale-900 capitalize\">\n {issueeName}\n {subjectDID && (\n <span className=\"text-[12px] text-grayscale-700 leading-[18px] font-poppins font-[400] m-0 p-0 normal-case\">\n {subjectDID}\n </span>\n )}\n </h3>\n <div className=\"relative\">\n <div className=\"vc-issuee-image h-[60px] w-[60px] rounded-full overflow-hidden\">\n {issueeImageEl}\n </div>\n <div className=\"vc-issuer-image h-[30px] w-[30px] rounded-full overflow-hidden absolute bottom-[-12px] right-[-12px]\">\n {issuerImageEl}\n </div>\n </div>\n <div className=\"vc-issue-details mt-[10px] flex flex-col items-center font-montserrat text-[14px] leading-[20px]\">\n <span className=\"created-at text-grayscale-700\">{createdAt}</span>\n <span className=\"issued-by text-grayscale-900 font-[500]\">\n by <strong className=\"font-[700]\">{issuerName}</strong>\n </span>\n </div>\n </>\n )}\n </div>\n </section>\n );\n};\n\nexport default VC2FrontFaceInfo;\n","import React from 'react';\nimport { LCCategoryEnum } from '../../types';\n\nconst getCategoryTextColor = (category = LCCategoryEnum.achievement): string => {\n if (category === LCCategoryEnum.socialBadge) return 'text-cyan-700';\n if (category === LCCategoryEnum.skill) return 'text-indigo-600';\n if (category === LCCategoryEnum.achievement) return 'text-spice-600';\n\n if (category === LCCategoryEnum.learningHistory) return 'text-emerald-700';\n if (category === LCCategoryEnum.id) return 'text-yellow-400';\n if (category === LCCategoryEnum.workHistory) return 'text-rose-600';\n\n if (category === LCCategoryEnum.course) return 'text-emerald-700';\n if (category === LCCategoryEnum.job) return 'text-rose-600';\n if (category === LCCategoryEnum.currency) return 'text-cyan-700';\n if (category === LCCategoryEnum.membership) return 'text-teal-500';\n\n return 'text-spice-600';\n};\n\nconst VCDisplayCardCategoryType: React.FC<{ categoryType?: LCCategoryEnum }> = ({\n categoryType = LCCategoryEnum.achievement,\n}) => {\n const categoryColor = getCategoryTextColor(categoryType);\n\n return (\n <span\n className={`uppercase font-poppins text-[12px] font-[600] leading-[12px] select-none ${categoryColor}`}\n >\n {categoryType}\n </span>\n );\n};\n\nexport default VCDisplayCardCategoryType;\n","import React, { useLayoutEffect, useRef, useState } from 'react';\n\nimport { VCVerificationCheckWithSpinner } from '../VCVerificationCheck/VCVerificationCheck';\nimport VC2FrontFaceInfo from './VC2FrontFaceInfo';\nimport VC2BackFace from './VC2BackFace';\nimport RibbonEnd from './RibbonEnd';\nimport FitText from './FitText';\nimport AwardRibbon from '../svgs/AwardRibbon';\nimport LeftArrow from '../svgs/LeftArrow';\nimport RoundedX from '../svgs/RoundedX';\n\nimport { Profile, VC, VerificationItem, VerificationStatusEnum } from '@learncard/types';\nimport {\n getColorForVerificationStatus,\n getInfoFromCredential,\n} from '../../helpers/credential.helpers';\nimport { BoostAchievementCredential, IssueHistory, LCCategoryEnum } from '../../types';\nimport { MediaMetadata, VideoMetadata } from './MediaAttachmentsBox';\nimport VCDisplayCardCategoryType from './VCDisplayCardCategoryType';\n\nexport type CredentialIconType = {\n image?: React.ReactNode;\n color?: string;\n};\n\nexport type VCDisplayCard2Props = {\n categoryType?: LCCategoryEnum;\n credential: VC | BoostAchievementCredential;\n verificationItems: VerificationItem[];\n issueeOverride?: Profile;\n issuerOverride?: Profile;\n subjectDID?: string;\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n verificationInProgress?: boolean;\n // convertTagsToSkills?: (tags: string[]) => { [skill: string]: string[] };\n handleXClick?: () => void;\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string, type: 'photo' | 'document' | 'video' | 'link') => void;\n bottomRightIcon?: CredentialIconType;\n customFooterComponent?: React.ReactNode;\n customBodyCardComponent?: React.ReactNode;\n customThumbComponent?: React.ReactNode;\n customDescription?: React.ReactNode;\n customCriteria?: React.ReactNode;\n customIssueHistoryComponent?: React.ReactNode;\n issueHistory?: IssueHistory[];\n titleOverride?: string;\n showBackButton?: boolean;\n enableLightbox?: boolean;\n customRibbonCategoryComponent?: React.ReactNode;\n customFrontButton?: React.ReactNode;\n};\n\nexport const VCDisplayCard2: React.FC<VCDisplayCard2Props> = ({\n categoryType,\n credential,\n verificationItems,\n issueeOverride,\n issuerOverride,\n subjectDID,\n subjectImageComponent,\n issuerImageComponent,\n verificationInProgress = false,\n // convertTagsToSkills,\n handleXClick,\n getFileMetadata,\n getVideoMetadata,\n onMediaAttachmentClick,\n bottomRightIcon,\n customFooterComponent,\n customBodyCardComponent,\n customThumbComponent,\n customCriteria,\n customDescription,\n customIssueHistoryComponent,\n issueHistory,\n titleOverride,\n showBackButton = true,\n enableLightbox,\n customRibbonCategoryComponent,\n customFrontButton,\n}) => {\n const {\n title = '',\n createdAt,\n issuer: _issuer = '',\n issuee: _issuee = '',\n imageUrl,\n } = getInfoFromCredential(credential, 'MMM dd, yyyy');\n const issuee = issueeOverride || _issuee;\n const issuer = issuerOverride || _issuer;\n\n const [isFront, setIsFront] = useState(true);\n const [headerHeight, setHeaderHeight] = useState(100); // 79 is the height if the header is one line\n const [headerWidth, setHeaderWidth] = useState(0);\n\n const headerRef = useRef<HTMLHeadingElement>(null);\n\n useLayoutEffect(() => {\n // Needs a small setTimeout otherwise it'll be wrong sometimes with multiline header.\n // Probably because of the interaction with FitText\n setTimeout(() => {\n setHeaderHeight(headerRef.current?.clientHeight ?? 100);\n setHeaderWidth(headerRef.current?.clientWidth ?? 0);\n }, 10);\n });\n\n let worstVerificationStatus = verificationItems.reduce(\n (\n currentWorst: (typeof VerificationStatusEnum)[keyof typeof VerificationStatusEnum],\n verification\n ) => {\n switch (currentWorst) {\n case VerificationStatusEnum.Success:\n return verification.status;\n case VerificationStatusEnum.Error:\n return verification.status === VerificationStatusEnum.Failed\n ? verification.status\n : currentWorst;\n case VerificationStatusEnum.Failed:\n return currentWorst;\n }\n },\n VerificationStatusEnum.Success\n );\n\n const statusColor = getColorForVerificationStatus(worstVerificationStatus);\n\n const backgroundStyle = {\n backgroundColor: credential.display?.backgroundColor,\n backgroundImage: credential.display?.backgroundImage\n ? `linear-gradient(to bottom, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.25)), url(${credential.display?.backgroundImage})`\n : undefined,\n backgroundSize: 'contain',\n backgroundPosition: 'center',\n backgroundAttachment: 'fixed',\n };\n\n const _title = titleOverride || title;\n\n return (\n <section className=\"vc-display-card font-mouse flex flex-col items-center border-solid border-[5px] border-white rounded-[30px] overflow-visible z-10 max-w-[400px] relative bg-white shadow-3xl\">\n <RibbonEnd\n side=\"left\"\n className=\"absolute left-[-30px] top-[50px] z-0\"\n height={'100'}\n />\n <RibbonEnd\n side=\"right\"\n className=\"absolute right-[-30px] top-[50px] z-0\"\n height={'100'}\n />\n\n <h1\n ref={headerRef}\n className=\"vc-card-header px-[20px] pb-[10px] pt-[3px] overflow-visible mt-[40px] absolute text-center bg-white border-y-[5px] border-[#EEF2FF] shadow-bottom w-[calc(100%_+_16px)] rounded-t-[8px] z-50\"\n style={{ wordBreak: 'break-word' }}\n >\n {customRibbonCategoryComponent && customRibbonCategoryComponent}\n {!customRibbonCategoryComponent && (\n <VCDisplayCardCategoryType categoryType={categoryType} />\n )}\n\n <FitText\n text={_title ?? ''}\n maxFontSize={32}\n minFontSize={20}\n width={((headerWidth ?? 290) - 40).toString()}\n className=\"vc-card-header-main-title text-[#18224E] leading-[100%] text-shadow text-[32px]\"\n />\n </h1>\n\n {isFront && handleXClick && (\n <button\n className=\"vc-card-x-button absolute top-[-25px] bg-white rounded-full h-[50px] w-[50px] flex items-center justify-center z-50\"\n onClick={handleXClick}\n >\n <RoundedX />\n </button>\n )}\n\n {/* Hide content so that it doesn't appear above the header when it scrolls */}\n <div\n className=\"vc-card-background-hider absolute h-[40px] w-full z-20 flex grow rounded-t-[30px] \"\n style={backgroundStyle}\n />\n\n <div className=\"vc-card-content-container flex flex-col items-center grow w-full rounded-t-[30px] rounded-b-[20px] overflow-scroll scrollbar-hide\">\n {/* \n div in a div here so that we can have an outer scroll container with an inner container\n that has a rounded bottom at the bottom of the scrollable content \n */}\n <div\n className=\"vc-card-content-scroll-container w-full flex flex-col justify-center items-center rounded-b-[200px] bg-[#353E64] pb-[50px]\"\n style={{ paddingTop: '170px', ...backgroundStyle }}\n >\n {isFront && (\n <VC2FrontFaceInfo\n issuee={issuee}\n subjectDID={subjectDID}\n issuer={issuer}\n title={title}\n subjectImageComponent={subjectImageComponent}\n issuerImageComponent={issuerImageComponent}\n customBodyCardComponent={customBodyCardComponent}\n customThumbComponent={customThumbComponent}\n createdAt={createdAt ?? ''}\n imageUrl={imageUrl}\n />\n )}\n {!isFront && (\n <VC2BackFace\n credential={credential}\n verificationItems={verificationItems}\n // convertTagsToSkills={convertTagsToSkills}\n issueHistory={issueHistory}\n getFileMetadata={getFileMetadata}\n getVideoMetadata={getVideoMetadata}\n onMediaAttachmentClick={onMediaAttachmentClick}\n showBackButton={showBackButton}\n showFrontFace={() => setIsFront(true)}\n customDescription={customDescription}\n customCriteria={customCriteria}\n customIssueHistoryComponent={customIssueHistoryComponent}\n enableLightbox={enableLightbox}\n />\n )}\n {isFront && customFrontButton}\n {isFront && !customFrontButton && (\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-[40px] w-fit select-none\"\n onClick={() => setIsFront(!isFront)}\n >\n Details\n </button>\n )}\n {!isFront && (\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-[40px] w-fit select-none\"\n onClick={() => setIsFront(!isFront)}\n >\n <span className=\"flex gap-[10px] items-center\">\n <LeftArrow />\n Back\n </span>\n </button>\n )}\n </div>\n </div>\n <footer className=\"vc-card-footer w-full flex justify-between p-[5px] mt-[5px]\">\n {customFooterComponent && customFooterComponent}\n {!customFooterComponent && (\n <>\n {worstVerificationStatus === VerificationStatusEnum.Failed ? (\n <div className=\"w-[40px]\" role=\"presentation\" />\n ) : (\n <VCVerificationCheckWithSpinner\n spinnerSize=\"40px\"\n size={'32px'}\n loading={verificationInProgress}\n />\n )}\n <div className=\"vc-footer-text font-montserrat flex flex-col items-center justify-center text-[12px] font-[700] leading-[15px] select-none\">\n <span className=\"text-[#4F4F4F]\">Verified Credential</span>\n <span\n className=\"vc-footer-status uppercase\"\n style={{ color: statusColor }}\n >\n {worstVerificationStatus}\n </span>\n </div>\n <div\n className=\"vc-footer-icon rounded-[20px] h-[40px] w-[40px] flex items-center justify-center overflow-hidden\"\n style={{ backgroundColor: bottomRightIcon?.color ?? '#6366F1' }}\n >\n {bottomRightIcon?.image ?? <AwardRibbon />}\n </div>\n </>\n )}\n </footer>\n </section>\n );\n};\n\nexport default VCDisplayCard2;\n"],"names":["this"],"mappings":"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"}
1
+ {"version":3,"file":"VCDisplayCard2-4dfa901d.js","sources":["../../src/components/svgs/AcuteCheckmark.tsx","../../src/components/svgs/Camera.tsx","../../src/components/svgs/ExclamationPoint.tsx","../../src/components/svgs/GenericDocumentIcon.tsx","../../src/components/svgs/InfoIcon.tsx","../../src/components/svgs/LeftArrow.tsx","../../src/components/svgs/LinkIcon.tsx","../../src/components/svgs/RoundedX.tsx","../../src/components/svgs/VideoIcon.tsx","../../src/components/svgs/X.tsx","../../src/components/VCDisplayCard2/FitText.tsx","../../src/components/VCDisplayCard2/InfoBox.tsx","../../src/components/VCDisplayCard2/IssueHistoryBox.tsx","../../../../node_modules/.pnpm/pretty-bytes@6.0.0/node_modules/pretty-bytes/index.js","../../src/helpers/url.helpers.ts","../../src/components/VCDisplayCard2/MediaAttachmentsBox.tsx","../../src/components/VCDisplayCard2/RibbonEnd.tsx","../../src/components/VCDisplayCard2/TruncateTextBox.tsx","../../src/helpers/string.helpers.ts","../../src/components/VCDisplayCard2/VerificationRow.tsx","../../src/components/VCDisplayCard2/VerificationsBox.tsx","../../src/components/VCDisplayCard2/VC2BackFace.tsx","../../src/components/VCDisplayCard2/VC2FrontFaceInfo.tsx","../../src/components/VCDisplayCard2/VCDisplayCardCategoryType.tsx","../../src/components/VCDisplayCard2/VCDisplayCard2.tsx"],"sourcesContent":["import React from 'react';\n\ntype AcuteCheckmarkProps = {\n className?: string;\n};\n\nconst AcuteCheckmark: React.FC<AcuteCheckmarkProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"16\"\n height=\"11\"\n viewBox=\"0 0 16 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M0.5 4.26859L5.96103 10.5L15.3 0.5H10.6348L5.96103 6.3205L4.49338 4.06677L0.5 4.26859Z\"\n fill=\"#00BA88\"\n />\n </svg>\n );\n};\n\nexport default AcuteCheckmark;\n","import React from 'react';\n\ntype CameraProps = {\n className?: string;\n};\n\nconst Camera: React.FC<CameraProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M20.7415 5.81958H18.6871C18.0439 5.81958 17.4439 5.49798 17.0887 4.96518L16.2295 3.67398C15.8743 3.14118 15.2743 2.81958 14.6311 2.81958L10.6855 2.81958C10.0423 2.81958 9.44231 3.14118 9.08711 3.67398L8.22791 4.96518C7.87271 5.49798 7.27271 5.81958 6.62951 5.81958H4.57991C3.51911 5.81958 2.65991 6.67878 2.65991 7.73958L2.65991 18.8996C2.65991 19.9604 3.51911 20.8196 4.57991 20.8196L20.7415 20.8196C21.8023 20.8196 22.6615 19.9604 22.6615 18.8996L22.6615 7.73958C22.6615 6.67878 21.8023 5.81958 20.7415 5.81958ZM12.7399 17.738C10.0903 17.738 7.93991 15.5876 7.93991 12.938C7.93991 10.2884 10.0903 8.13798 12.7399 8.13798C15.3895 8.13798 17.5399 10.2884 17.5399 12.938C17.5399 15.5876 15.3895 17.738 12.7399 17.738Z\"\n fill=\"white\"\n />\n </svg>\n );\n};\n\nexport default Camera;\n","import React from 'react';\n\ntype ExclamationPointProps = {\n className?: string;\n};\n\nconst ExclamationPoint: React.FC<ExclamationPointProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"5\"\n height=\"11\"\n viewBox=\"0 0 5 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M1.1338 6.58451L0.5 0.5H4.30282L3.66901 6.58451H1.1338ZM2.40141 10.5C1.85681 10.5 1.4108 10.3357 1.06338 10.007C0.715963 9.66901 0.542253 9.26995 0.542253 8.80986C0.542253 8.34037 0.715963 7.94601 1.06338 7.62676C1.4108 7.30751 1.85681 7.14789 2.40141 7.14789C2.9554 7.14789 3.40141 7.30751 3.73944 7.62676C4.08685 7.94601 4.26056 8.34037 4.26056 8.80986C4.26056 9.26995 4.08685 9.66901 3.73944 10.007C3.40141 10.3357 2.9554 10.5 2.40141 10.5Z\"\n fill=\"#FACC15\"\n />\n </svg>\n );\n};\n\nexport default ExclamationPoint;\n","import React from 'react';\n\ntype GenericDocumentIconProps = {\n className?: string;\n};\n\nconst GenericDocumentIcon: React.FC<GenericDocumentIconProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"41\"\n height=\"40\"\n viewBox=\"0 0 41 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M5.5 4.66675C5.5 3.0099 6.84315 1.66675 8.5 1.66675H18.6813C21.3361 1.66675 23.8555 2.83885 25.5655 4.86953L33.3842 14.1542C34.7507 15.7769 35.5 17.8301 35.5 19.9515V35.3334C35.5 36.9903 34.1569 38.3334 32.5 38.3334H8.5C6.84315 38.3334 5.5 36.9903 5.5 35.3334V4.66675Z\"\n fill=\"#FF3636\"\n />\n <path d=\"M22 13V2.5C26 3.5 34.5 14 35.5 18H27C23 18 22 16 22 13Z\" fill=\"#FF7A7A\" />\n </svg>\n );\n};\n\nexport default GenericDocumentIcon;\n","import React from 'react';\n\ntype InfoIconProps = {\n className?: string;\n color?: string;\n};\n\nconst InfoIcon: React.FC<InfoIconProps> = ({ className = '', color = '#A8ACBD' }) => {\n return (\n <svg\n width=\"22\"\n height=\"21\"\n viewBox=\"0 0 22 21\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M11.0003 0.34375C8.99153 0.34375 7.02793 0.939404 5.35774 2.05539C3.68755 3.17137 2.3858 4.75756 1.6171 6.61337C0.848395 8.46918 0.647267 10.5113 1.03915 12.4814C1.43103 14.4515 2.39832 16.2612 3.8187 17.6816C5.23907 19.1019 7.04874 20.0692 9.01886 20.4611C10.989 20.853 13.0311 20.6519 14.8869 19.8832C16.7427 19.1144 18.3289 17.8127 19.4449 16.1425C20.5608 14.4723 21.1565 12.5087 21.1565 10.5C21.1534 7.80735 20.0824 5.22588 18.1784 3.32188C16.2744 1.41789 13.6929 0.346862 11.0003 0.34375V0.34375ZM11.0002 5.03125C11.2319 5.03125 11.4585 5.09998 11.6512 5.22875C11.8439 5.35751 11.9941 5.54054 12.0828 5.75467C12.1715 5.9688 12.1947 6.20443 12.1495 6.43175C12.1043 6.65907 11.9927 6.86788 11.8288 7.03177C11.6649 7.19566 11.4561 7.30727 11.2288 7.35248C11.0015 7.3977 10.7658 7.37449 10.5517 7.2858C10.3376 7.1971 10.1545 7.0469 10.0258 6.85418C9.89701 6.66147 9.82828 6.4349 9.82828 6.20313C9.82828 6.04923 9.85859 5.89685 9.91748 5.75467C9.97637 5.61249 10.0627 5.4833 10.1715 5.37448C10.2803 5.26566 10.4095 5.17934 10.5517 5.12045C10.6939 5.06156 10.8463 5.03125 11.0002 5.03125H11.0002ZM11.7815 15.9688H11.0003C10.8976 15.9688 10.796 15.9486 10.7012 15.9094C10.6064 15.8702 10.5202 15.8126 10.4477 15.7401C10.3751 15.6675 10.3176 15.5814 10.2783 15.4865C10.2391 15.3917 10.2189 15.2901 10.219 15.1875V10.5C10.0118 10.5 9.81309 10.4177 9.66657 10.2712C9.52006 10.1247 9.43775 9.92595 9.43775 9.71875C9.43775 9.51155 9.52006 9.31284 9.66657 9.16632C9.81309 9.01981 10.0118 8.9375 10.219 8.9375H11.0003C11.1029 8.93744 11.2045 8.95761 11.2993 8.99685C11.3941 9.03609 11.4803 9.09363 11.5528 9.16619C11.6254 9.23875 11.6829 9.3249 11.7222 9.41971C11.7614 9.51452 11.7816 9.61614 11.7815 9.71875V14.4063C11.9887 14.4063 12.1874 14.4886 12.3339 14.6351C12.4804 14.7816 12.5628 14.9803 12.5628 15.1875C12.5628 15.3947 12.4804 15.5934 12.3339 15.7399C12.1874 15.8864 11.9887 15.9688 11.7815 15.9688Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default InfoIcon;\n","import React from 'react';\n\ntype LeftArrowProps = {\n className?: string;\n color?: string;\n size?: string;\n};\n\nconst LeftArrow: React.FC<LeftArrowProps> = ({ className = '', 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 className={className}\n >\n <path\n d=\"M8.93299 17.942L1.43299 10.442C1.31582 10.3247 1.25 10.1657 1.25 9.99999C1.25 9.83423 1.31582 9.67526 1.43299 9.55802L8.93299 2.05802C9.02041 1.97062 9.13178 1.91111 9.25301 1.887C9.37425 1.8629 9.49991 1.87528 9.61412 1.92258C9.72832 1.96989 9.82593 2.04999 9.89461 2.15277C9.96329 2.25554 9.99995 2.37638 9.99996 2.49999V5.62499H16.25C16.5814 5.62537 16.8991 5.75718 17.1334 5.99152C17.3678 6.22586 17.4996 6.54358 17.5 6.87499V13.125C17.4996 13.4564 17.3678 13.7741 17.1334 14.0085C16.8991 14.2428 16.5814 14.3746 16.25 14.375H9.99996V17.5C9.99995 17.6236 9.96329 17.7444 9.89461 17.8472C9.82593 17.95 9.72832 18.0301 9.61412 18.0774C9.49991 18.1247 9.37425 18.1371 9.25301 18.113C9.13178 18.0889 9.02041 18.0294 8.93299 17.942Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default LeftArrow;\n","import React from 'react';\n\ntype LinkIconProps = {\n className?: string;\n};\n\nconst LinkIcon: React.FC<LinkIconProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"33\"\n height=\"32\"\n viewBox=\"0 0 33 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M16.8117 7.91003L18.2677 6.45403C18.7784 5.94292 19.3847 5.53742 20.0521 5.26071C20.7195 4.98399 21.4348 4.84148 22.1573 4.84131C22.8798 4.84114 23.5953 4.98332 24.2628 5.25973C24.9303 5.53613 25.5368 5.94135 26.0477 6.45222C26.5586 6.9631 26.9638 7.56962 27.2402 8.23714C27.5166 8.90466 27.6588 9.6201 27.6586 10.3426C27.6584 11.0651 27.5159 11.7804 27.2392 12.4478C26.9625 13.1152 26.557 13.7216 26.0459 14.2322L22.5104 17.7677C21.9996 18.2785 21.3933 18.6836 20.726 18.96C20.0587 19.2364 19.3435 19.3787 18.6213 19.3787C17.899 19.3787 17.1838 19.2364 16.5165 18.96C15.8492 18.6836 15.2429 18.2785 14.7322 17.7677\"\n stroke=\"#6366F1\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M16.188 24.0902L14.7322 25.546C14.2216 26.0571 13.6152 26.4626 12.9478 26.7393C12.2804 27.016 11.5651 27.1585 10.8426 27.1587C10.1201 27.1589 9.40466 27.0167 8.73714 26.7403C8.06962 26.4639 7.4631 26.0586 6.95222 25.5478C6.44135 25.0369 6.03613 24.4304 5.75973 23.7629C5.48332 23.0953 5.34114 22.3799 5.34131 21.6574C5.34148 20.9349 5.48399 20.2195 5.76071 19.5521C6.03742 18.8848 6.44292 18.2784 6.95403 17.7678L10.4896 14.2323C11.0003 13.7215 11.6066 13.3164 12.2739 13.04C12.9412 12.7636 13.6564 12.6213 14.3787 12.6213C15.1009 12.6213 15.8161 12.7636 16.4834 13.04C17.1507 13.3164 17.757 13.7215 18.2677 14.2323\"\n stroke=\"#6366F1\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\nexport default LinkIcon;\n","import React from 'react';\n\ntype RoundedXProps = {\n className?: string;\n};\n\nconst RoundedX: React.FC<RoundedXProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M18.75 5.25L5.25 18.75\"\n stroke=\"#18224E\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M18.75 18.75L5.25 5.25\"\n stroke=\"#18224E\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\nexport default RoundedX;\n","import React from 'react';\n\ntype VideoIconProps = {\n className?: string;\n size?: string;\n};\n\nconst VideoIcon: React.FC<VideoIconProps> = ({ className = '', size = '25' }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.61304 4.5H12.4051C14.8271 4.5 16.5181 6.16904 16.5181 8.56091V15.4391C16.5181 17.831 14.8271 19.5 12.4051 19.5H6.61304C4.19102 19.5 2.5 17.831 2.5 15.4391V8.56091C2.5 6.16904 4.19102 4.5 6.61304 4.5ZM20.458 6.87898C20.897 6.65563 21.412 6.67898 21.831 6.94294C22.25 7.20589 22.5 7.66274 22.5 8.16223V15.8384C22.5 16.3389 22.25 16.7947 21.831 17.0577C21.602 17.2008 21.346 17.2739 21.088 17.2739C20.873 17.2739 20.658 17.2231 20.457 17.1206L18.976 16.3734C18.428 16.0952 18.088 15.5369 18.088 14.9165V9.08305C18.088 8.46173 18.428 7.90335 18.976 7.62721L20.458 6.87898Z\"\n fill=\"white\"\n />\n </svg>\n );\n};\n\nexport default VideoIcon;\n","import React from 'react';\n\ntype XProps = {\n className?: string;\n};\n\nconst X: React.FC<XProps> = ({ className = '' }) => {\n return (\n <svg\n width=\"11\"\n height=\"11\"\n viewBox=\"0 0 11 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M7.47753 10.25C7.20582 9.8045 6.92868 9.37104 6.6461 8.94962C6.37439 8.52218 6.08637 8.09173 5.78206 7.65827C5.49948 8.07969 5.22233 8.50412 4.95062 8.93156C4.67891 9.35298 4.41807 9.78042 4.1681 10.2139L0.5 10.1055C1.15211 9.33492 1.78247 8.57335 2.39111 7.82082C3.01061 7.06828 3.60294 6.3007 4.1681 5.51806C3.5812 4.74747 2.98344 3.98891 2.3748 3.2424C1.77704 2.48986 1.17384 1.73131 0.565211 0.96673L4.38003 0.75C4.77129 1.57478 5.23864 2.3815 5.78206 3.17015C6.01029 2.77883 6.24397 2.38451 6.48307 1.98717C6.73305 1.58983 6.96672 1.17744 7.18409 0.75L10.95 0.912548C10.2979 1.67712 9.67839 2.43267 9.0915 3.17918C8.5046 3.9257 7.92314 4.68124 7.34711 5.44582C7.9014 6.21039 8.46113 6.95691 9.02629 7.68536C9.60231 8.41382 10.1783 9.1513 10.7544 9.89781L7.47753 10.25Z\"\n fill=\"#FF2C3C\"\n />\n </svg>\n );\n};\n\nexport default X;\n","import React, { useEffect, useRef } from 'react';\n\ninterface FitTextProps {\n text: string;\n width: string;\n className?: string;\n minFontSize?: number;\n maxFontSize?: number;\n}\n\nconst FitText: React.FC<FitTextProps> = ({\n text,\n width,\n className = '',\n minFontSize = 10,\n maxFontSize = 100,\n}) => {\n const textRef = useRef<HTMLDivElement>(null);\n let animationFrameId: number | null = null;\n\n const adjustFontSize = () => {\n if (textRef.current) {\n const currentFontSize = parseFloat(\n window.getComputedStyle(textRef.current).getPropertyValue('font-size')\n );\n\n // Need to calculate spacing based on nowrap to prevent thrashing\n textRef.current.style.whiteSpace = 'nowrap';\n const parentWidth = (textRef.current.parentNode as any)?.clientWidth;\n const scrollWidth = textRef.current.scrollWidth || textRef.current.offsetWidth;\n\n // Sometimes scrollWidth can temporarily be 0. If so, just try again next frame\n if (scrollWidth === 0) {\n if (animationFrameId !== null) {\n cancelAnimationFrame(animationFrameId);\n }\n\n animationFrameId = requestAnimationFrame(adjustFontSize);\n\n return;\n }\n\n const newFontSize = Math.min(\n Math.max((parentWidth / scrollWidth) * currentFontSize, minFontSize),\n maxFontSize\n );\n\n textRef.current.style.fontSize = `${newFontSize}px`;\n textRef.current.style.whiteSpace = newFontSize === minFontSize ? 'normal' : 'nowrap';\n }\n };\n\n const handleResize = () => {\n if (animationFrameId !== null) {\n cancelAnimationFrame(animationFrameId);\n }\n\n animationFrameId = requestAnimationFrame(adjustFontSize);\n };\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n adjustFontSize();\n\n return () => {\n window.removeEventListener('resize', handleResize);\n if (animationFrameId !== null) {\n cancelAnimationFrame(animationFrameId);\n }\n };\n }, [text]);\n\n return (\n <div style={{ width }} className={`text-center ${className}`}>\n <span\n className={`text-[${minFontSize}px] transition-[font-size] whitespace-nowrap`}\n ref={textRef}\n >\n {text}\n </span>\n </div>\n );\n};\n\nexport default FitText;\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 onClick={handleClose} className=\"text-indigo-500 font-[700] select-none\">\n Close\n </button>\n </div>\n );\n};\n\nexport default InfoBox;\n","import React, { useState } from 'react';\nimport DefaultFace from '../../assets/images/default-face.jpeg';\n\nimport { IssueHistory } from '../../types';\n\ntype SkillsBoxProps = {\n issueHistory: IssueHistory[];\n customIssueHistoryComponent?: React.ReactNode;\n};\n\nconst IssueHistoryBox: React.FC<SkillsBoxProps> = ({\n issueHistory,\n customIssueHistoryComponent,\n}) => {\n let renderIssueHistory = issueHistory?.map(issueItem => {\n return (\n <div\n className=\"flex items-center issue-log-item border-b-[1px] py-[5px] border-grayscale-200 border-solid w-full\"\n key={issueItem?.id}\n >\n <div className=\"profile-thumb-img vc-issuee-image h-[35px] w-[35px] rounded-full overflow-hidden\">\n <img\n className=\"h-full w-full object-cover select-none\"\n src={issueItem?.thumb || DefaultFace}\n alt=\"profile\"\n />\n </div>\n <div className=\"ml-[9px] flex flex-col justify-center\">\n <p className=\"issue-item-name font-montserrat font-semibold text-grayscale-900 text-[14px] \">\n {issueItem?.name}\n </p>\n <p className=\"issue-item-date font-montserrat text-[12px] text-grayscale-600 \">\n {issueItem?.date}\n </p>\n </div>\n </div>\n );\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 relative\">\n <h3 className=\"text-[20px] leading-[20px] text-grayscale-900\">Issue Log</h3>\n {!customIssueHistoryComponent ? renderIssueHistory : customIssueHistoryComponent}\n </div>\n );\n};\n\nexport default IssueHistoryBox;\n","const BYTE_UNITS = [\n\t'B',\n\t'kB',\n\t'MB',\n\t'GB',\n\t'TB',\n\t'PB',\n\t'EB',\n\t'ZB',\n\t'YB',\n];\n\nconst BIBYTE_UNITS = [\n\t'B',\n\t'kiB',\n\t'MiB',\n\t'GiB',\n\t'TiB',\n\t'PiB',\n\t'EiB',\n\t'ZiB',\n\t'YiB',\n];\n\nconst BIT_UNITS = [\n\t'b',\n\t'kbit',\n\t'Mbit',\n\t'Gbit',\n\t'Tbit',\n\t'Pbit',\n\t'Ebit',\n\t'Zbit',\n\t'Ybit',\n];\n\nconst BIBIT_UNITS = [\n\t'b',\n\t'kibit',\n\t'Mibit',\n\t'Gibit',\n\t'Tibit',\n\t'Pibit',\n\t'Eibit',\n\t'Zibit',\n\t'Yibit',\n];\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number, locale, options) => {\n\tlet result = number;\n\tif (typeof locale === 'string' || Array.isArray(locale)) {\n\t\tresult = number.toLocaleString(locale, options);\n\t} else if (locale === true || options !== undefined) {\n\t\tresult = number.toLocaleString(undefined, options);\n\t}\n\n\treturn result;\n};\n\nexport default function prettyBytes(number, options) {\n\tif (!Number.isFinite(number)) {\n\t\tthrow new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n\t}\n\n\toptions = {\n\t\tbits: false,\n\t\tbinary: false,\n\t\t...options,\n\t};\n\n\tconst UNITS = options.bits\n\t\t? (options.binary ? BIBIT_UNITS : BIT_UNITS)\n\t\t: (options.binary ? BIBYTE_UNITS : BYTE_UNITS);\n\n\tif (options.signed && number === 0) {\n\t\treturn ` 0 ${UNITS[0]}`;\n\t}\n\n\tconst isNegative = number < 0;\n\tconst prefix = isNegative ? '-' : (options.signed ? '+' : '');\n\n\tif (isNegative) {\n\t\tnumber = -number;\n\t}\n\n\tlet localeOptions;\n\n\tif (options.minimumFractionDigits !== undefined) {\n\t\tlocaleOptions = {minimumFractionDigits: options.minimumFractionDigits};\n\t}\n\n\tif (options.maximumFractionDigits !== undefined) {\n\t\tlocaleOptions = {maximumFractionDigits: options.maximumFractionDigits, ...localeOptions};\n\t}\n\n\tif (number < 1) {\n\t\tconst numberString = toLocaleString(number, options.locale, localeOptions);\n\t\treturn prefix + numberString + ' ' + UNITS[0];\n\t}\n\n\tconst exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);\n\tnumber /= (options.binary ? 1024 : 1000) ** exponent;\n\n\tif (!localeOptions) {\n\t\tnumber = number.toPrecision(3);\n\t}\n\n\tconst numberString = toLocaleString(Number(number), options.locale, localeOptions);\n\n\tconst unit = UNITS[exponent];\n\n\treturn prefix + numberString + ' ' + unit;\n}\n","export const getBaseUrl = (url: string) => {\n return url.replace(/(https?:\\/\\/(www\\.)?)/, '').split('/')[0];\n};\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 } from '../../types';\nimport { getBaseUrl } from '../../helpers/url.helpers';\nimport { Lightbox, LightboxItem } from '../Lightbox';\n\nexport type MediaMetadata = {\n fileExtension?: string;\n sizeInBytes?: number;\n numberOfPages?: number;\n};\n\nexport type VideoMetadata = {\n title?: string;\n videoLength?: string;\n imageUrl?: string;\n};\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 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\nconst defaultGetVideoMetadata = async (url: string) => {\n const isYoutube = url.includes('youtube');\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 if (fetchFailed) return;\n\n return {\n title: metadata.title,\n imageUrl: metadata.thumbnail_url,\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=\"media-attachments-box bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full\">\n <h3 className=\"text-[20px] leading-[20px] text-grayscale-900\">Media 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 const iconTop = title || baseUrl;\n\n innerContent = (\n <div\n className=\"absolute top-0 left-0 right-0 bottom-0 bg-cover bg-no-repeat 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]\"\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(${\n metadata?.imageUrl ?? ''\n })`\n : undefined,\n }}\n >\n {!metadata?.imageUrl && (\n <VideoIcon size=\"60\" className=\"m-auto\" />\n )}\n <div\n className={`absolute ${\n iconTop ? 'top-[10px]' : 'bottom-[10px]'\n } left-[10px] z-10 flex items-center gap-[5px]`}\n >\n {metadata?.imageUrl && <VideoIcon />}\n {metadata?.videoLength && (\n <span className=\"leading-[23px]\">\n {metadata.videoLength}\n </span>\n )}\n </div>\n {baseUrl && <span className=\"font-[600]\">{baseUrl}</span>}\n {title && <span className=\"line-clamp-2\">{title}</span>}\n </div>\n );\n } else {\n innerContent = (\n <div className=\"absolute top-0 left-0 right-0 bottom-0 h-min\">\n <img className=\"rounded-[15px]\" src={media.url} />\n <Camera className=\"relative bottom-[30px] 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 <button\n key={index}\n className={className}\n onClick={() =>\n handleMediaAttachmentClick(media.url, media.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 {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 <span className=\"text-grayscale-900 font-[400]\">\n {docOrLink.title ?? 'No title'}\n </span>\n </div>\n {docOrLink.type === 'document' && metadata && (\n <a\n href={docOrLink.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"text-grayscale-600 font-[600] px-[5px] hover:underline\"\n >\n {fileExtension && (\n <span className=\"uppercase\">{fileExtension}</span>\n )}\n {fileExtension && (numberOfPages || sizeInBytes) && ' • '}\n {numberOfPages && (\n <span>\n {numberOfPages} page{numberOfPages === 1 ? '' : 's'}\n </span>\n )}\n {numberOfPages && sizeInBytes && ' • '}\n {sizeInBytes && <span>{prettyBytes(sizeInBytes)}</span>}\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-[600] px-[5px] hover:underline\"\n >\n {baseUrl}\n </a>\n )}\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={() =>\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 from 'react';\n\nconst RibbonEnd: React.FC<{ side: 'left' | 'right'; className?: string; height?: string }> = ({\n side,\n className = '',\n height = '64',\n}) => {\n const halfHeight = parseInt(height) / 2;\n return (\n <svg\n className={className}\n width=\"30\"\n height={height}\n viewBox={`0 0 30 ${height}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ transform: `scaleX(${side === 'left' ? '1' : '-1'})` }}\n >\n <g filter=\"url(#filter0_d_4620_22659)\">\n <path d={`M0 0H30V${height}H0L6.36364 ${halfHeight}L0 0Z`} fill=\"white\" />\n <path\n d={`M3.08593 2.5H27.5V${height}H3.08593L8.80922 ${halfHeight}L8.91926 30L8.80922 29.4812L3.08593 2.5Z`}\n stroke=\"#EEF2FF\"\n strokeWidth=\"5\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_d_4620_22659\"\n x=\"0\"\n y=\"0\"\n width=\"30\"\n height={height}\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.25 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_4620_22659\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_4620_22659\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n );\n};\n\nexport default RibbonEnd;\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} bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full\"`}\n >\n <h3 className={`${headerClassName} text-[20px] leading-[20px] text-grayscale-900`}>\n {headerText}\n </h3>\n\n <p className=\"text-[12px] text-grayscale-700 leading-[18px] font-poppins font-[400] mb-0\">\n {displayText}\n {truncated && (\n <>\n ...{' '}\n <button\n className=\"text-indigo-500 font-[700]\"\n onClick={() => setShowFullText(true)}\n >\n More\n </button>\n </>\n )}\n {needsTruncate && showFullText && (\n <>\n {' '}\n <button\n className=\"text-indigo-500 font-[700]\"\n onClick={() => setShowFullText(false)}\n >\n Close\n </button>\n </>\n )}\n </p>\n\n {children}\n </div>\n );\n};\n\nexport default TruncateTextBox;\n","export const truncateWithEllipsis = (str: string, maxLength: number) => {\n return str.length > maxLength ? `${str.substring(0, maxLength)}...` : str;\n};\n\nexport const capitalize = (string?: string): string => {\n return string ? string[0].toUpperCase() + string.slice(1) : '';\n};\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] leading-[16px] 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=\"font-[400] text-[14px] leading-[21px] text-grayscale-900\">\n {primaryText}\n </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=\"verifications-box bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full relative\">\n <h3 className=\"text-[20px] leading-[20px] text-grayscale-900\">\n Credential Verifications\n </h3>\n <button\n className=\"absolute top-[17px] right-[17px]\"\n onClick={() => setShowInfo(!showInfo)}\n >\n <InfoIcon color={showInfo ? '#6366F1' : undefined} />\n </button>\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 from 'react';\nimport { format } from 'date-fns';\n\nimport MediaAttachmentsBox, { MediaMetadata, VideoMetadata } from './MediaAttachmentsBox';\nimport TruncateTextBox from './TruncateTextBox';\n// import SkillsBox from './SkillsBox';\nimport IssueHistoryBox from './IssueHistoryBox';\nimport { VC, VerificationItem } from '@learncard/types';\nimport VerificationsBox from './VerificationsBox';\nimport { BoostAchievementCredential, IssueHistory } from '../../types';\nimport LeftArrow from '../svgs/LeftArrow';\n\n/*\nconst defaultTagsToSkills = (tags: string[]) => {\n const skillsObj: { [skill: string]: string[] } = {};\n tags.forEach(tag => {\n skillsObj[tag] = [];\n });\n};\n*/\n\ntype VC2BackFaceProps = {\n credential: VC | BoostAchievementCredential;\n verificationItems: VerificationItem[];\n // convertTagsToSkills?: (tags: string[]) => { [skill: string]: string[] };\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string, type: 'photo' | 'document' | 'video' | 'link') => void;\n issueHistory?: IssueHistory[];\n showBackButton?: boolean;\n showFrontFace: () => void;\n customDescription?: React.ReactNode;\n customCriteria?: React.ReactNode;\n customIssueHistoryComponent?: React.ReactNode;\n enableLightbox?: boolean;\n};\n\nconst VC2BackFace: React.FC<VC2BackFaceProps> = ({\n credential,\n verificationItems,\n // convertTagsToSkills = defaultTagsToSkills,\n getFileMetadata,\n getVideoMetadata,\n onMediaAttachmentClick,\n issueHistory,\n showBackButton,\n showFrontFace,\n customDescription,\n customCriteria,\n customIssueHistoryComponent,\n enableLightbox,\n}) => {\n const expiration = credential.expirationDate\n ? format(new Date(credential.expirationDate), 'MMM dd, yyyy')\n : undefined;\n\n const isExpired =\n credential.expirationDate &&\n Number(new Date(credential.expirationDate)) < Number(new Date());\n\n const achievement =\n 'achievement' in credential.credentialSubject\n ? credential.credentialSubject.achievement\n : undefined;\n const criteria = achievement?.criteria?.narrative;\n const description = achievement?.description;\n\n /* \n const tags = credential.credentialSubject.achievement?.tag;\n const skillsObject = tags && tags.length > 0 ? convertTagsToSkills(tags) : undefined;\n */\n\n return (\n <section className=\"vc-back-face flex flex-col gap-[20px] w-full px-[15px]\">\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={showFrontFace}\n >\n <LeftArrow className=\"text-white\" size=\"25\" />\n Details\n </button>\n </div>\n )}\n\n {customDescription && (\n <TruncateTextBox headerText=\"About\" text={description} className=\"description-box\">\n {customDescription}\n </TruncateTextBox>\n )}\n {!customDescription && (description || expiration) && (\n <TruncateTextBox headerText=\"About\" text={description} className=\"description-box\">\n {expiration && (\n <p className=\"text-grayscale-800 font-poppins font-[600] text-[12px] leading-[18px] mb-0\">\n Expire{isExpired ? 'd' : 's'} on {expiration}\n </p>\n )}\n </TruncateTextBox>\n )}\n\n {customCriteria && (\n <TruncateTextBox\n headerText=\"Criteria\"\n text={description}\n className=\"description-box\"\n >\n {customCriteria}\n </TruncateTextBox>\n )}\n {!customCriteria && criteria && (\n <TruncateTextBox headerText=\"Criteria\" text={criteria} className=\"criteria-box\" />\n )}\n {/* {skillsObject && <SkillsBox skillsObject={skillsObject} />} */}\n\n {issueHistory && issueHistory?.length > 0 && (\n <IssueHistoryBox\n issueHistory={issueHistory}\n customIssueHistoryComponent={customIssueHistoryComponent}\n />\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 {/* {credential.notes && <TruncateTextBox headerText=\"Notes\" text={credential.notes} />} */}\n\n {verificationItems && verificationItems.length > 0 && (\n <VerificationsBox verificationItems={verificationItems} />\n )}\n </section>\n );\n};\n\nexport default VC2BackFace;\n","import React from 'react';\n\nimport DefaultFace from '../../assets/images/default-face.jpeg';\n\nimport { getImageFromProfile, getNameFromProfile } from '../../helpers/credential.helpers';\nimport { truncateWithEllipsis } from '../../helpers/string.helpers';\nimport { Profile } from '@learncard/types';\n\ntype VC2FrontFaceInfoProps = {\n issuee: Profile | string;\n issuer: Profile | string;\n title: string;\n subjectDID?: string | undefined;\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n createdAt: string;\n imageUrl?: string;\n customBodyCardComponent?: React.ReactNode;\n customThumbComponent?: React.ReactNode;\n};\n\nconst VC2FrontFaceInfo: React.FC<VC2FrontFaceInfoProps> = ({\n issuee,\n issuer,\n subjectDID,\n subjectImageComponent,\n issuerImageComponent,\n customBodyCardComponent,\n createdAt,\n imageUrl,\n customThumbComponent,\n}) => {\n const issuerName = truncateWithEllipsis(getNameFromProfile(issuer ?? ''), 25);\n const issueeName = truncateWithEllipsis(getNameFromProfile(issuee ?? ''), 25);\n const issuerImage = getImageFromProfile(issuer ?? '');\n const issueeImage = getImageFromProfile(issuee ?? '');\n\n const getImageElement = (\n imageUrl: string,\n alt: string,\n overrideComponent: React.ReactNode | undefined\n ) => {\n if (overrideComponent) return overrideComponent;\n\n return (\n <img\n className=\"h-full w-full object-cover select-none\"\n src={imageUrl || DefaultFace}\n alt={alt}\n />\n );\n };\n\n const issueeImageEl: React.ReactNode = getImageElement(\n issueeImage,\n 'Issuee image',\n subjectImageComponent\n );\n const issuerImageEl: React.ReactNode = getImageElement(\n issuerImage,\n 'Issuer image',\n issuerImageComponent\n );\n\n return (\n <section className=\"vc-front-face w-full px-[15px] flex flex-col items-center gap-[15px]\">\n {imageUrl && !customThumbComponent && (\n <img className=\"vc-front-image h-[130px] w-[130px] rounded-[10px]\" src={imageUrl} />\n )}\n\n {customThumbComponent && customThumbComponent}\n <div className=\"vc-issue-info-box bg-white flex flex-col items-center gap-[5px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full\">\n {customBodyCardComponent && customBodyCardComponent}\n\n {!customBodyCardComponent && (\n <>\n <h3 className=\"text-[27px] flex flex-col text-center leading-[130%] text-grayscale-900 capitalize\">\n {issueeName}\n {subjectDID && (\n <span className=\"text-[12px] text-grayscale-700 leading-[18px] font-poppins font-[400] m-0 p-0 normal-case\">\n {subjectDID}\n </span>\n )}\n </h3>\n <div className=\"relative\">\n <div className=\"vc-issuee-image h-[60px] w-[60px] rounded-full overflow-hidden\">\n {issueeImageEl}\n </div>\n <div className=\"vc-issuer-image h-[30px] w-[30px] rounded-full overflow-hidden absolute bottom-[-12px] right-[-12px]\">\n {issuerImageEl}\n </div>\n </div>\n <div className=\"vc-issue-details mt-[10px] flex flex-col items-center font-montserrat text-[14px] leading-[20px]\">\n <span className=\"created-at text-grayscale-700\">{createdAt}</span>\n <span className=\"issued-by text-grayscale-900 font-[500]\">\n by <strong className=\"font-[700]\">{issuerName}</strong>\n </span>\n </div>\n </>\n )}\n </div>\n </section>\n );\n};\n\nexport default VC2FrontFaceInfo;\n","import React from 'react';\nimport { LCCategoryEnum } from '../../types';\n\nconst getCategoryTextColor = (category = LCCategoryEnum.achievement): string => {\n if (category === LCCategoryEnum.socialBadge) return 'text-cyan-700';\n if (category === LCCategoryEnum.skill) return 'text-indigo-600';\n if (category === LCCategoryEnum.achievement) return 'text-spice-600';\n\n if (category === LCCategoryEnum.learningHistory) return 'text-emerald-700';\n if (category === LCCategoryEnum.id) return 'text-yellow-400';\n if (category === LCCategoryEnum.workHistory) return 'text-rose-600';\n\n if (category === LCCategoryEnum.course) return 'text-emerald-700';\n if (category === LCCategoryEnum.job) return 'text-rose-600';\n if (category === LCCategoryEnum.currency) return 'text-cyan-700';\n if (category === LCCategoryEnum.membership) return 'text-teal-500';\n\n return 'text-spice-600';\n};\n\nconst VCDisplayCardCategoryType: React.FC<{ categoryType?: LCCategoryEnum }> = ({\n categoryType = LCCategoryEnum.achievement,\n}) => {\n const categoryColor = getCategoryTextColor(categoryType);\n\n return (\n <span\n className={`uppercase font-poppins text-[12px] font-[600] leading-[12px] select-none ${categoryColor}`}\n >\n {categoryType}\n </span>\n );\n};\n\nexport default VCDisplayCardCategoryType;\n","import React, { useLayoutEffect, useRef, useState } from 'react';\n\nimport { VCVerificationCheckWithSpinner } from '../VCVerificationCheck/VCVerificationCheck';\nimport VC2FrontFaceInfo from './VC2FrontFaceInfo';\nimport VC2BackFace from './VC2BackFace';\nimport RibbonEnd from './RibbonEnd';\nimport FitText from './FitText';\nimport AwardRibbon from '../svgs/AwardRibbon';\nimport LeftArrow from '../svgs/LeftArrow';\nimport RoundedX from '../svgs/RoundedX';\n\nimport { Profile, VC, VerificationItem, VerificationStatusEnum } from '@learncard/types';\nimport {\n getColorForVerificationStatus,\n getInfoFromCredential,\n} from '../../helpers/credential.helpers';\nimport { BoostAchievementCredential, IssueHistory, LCCategoryEnum } from '../../types';\nimport { MediaMetadata, VideoMetadata } from './MediaAttachmentsBox';\nimport VCDisplayCardCategoryType from './VCDisplayCardCategoryType';\n\nexport type CredentialIconType = {\n image?: React.ReactNode;\n color?: string;\n};\n\nexport type VCDisplayCard2Props = {\n categoryType?: LCCategoryEnum;\n credential: VC | BoostAchievementCredential;\n verificationItems: VerificationItem[];\n issueeOverride?: Profile;\n issuerOverride?: Profile;\n subjectDID?: string;\n subjectImageComponent?: React.ReactNode;\n issuerImageComponent?: React.ReactNode;\n verificationInProgress?: boolean;\n // convertTagsToSkills?: (tags: string[]) => { [skill: string]: string[] };\n handleXClick?: () => void;\n getFileMetadata?: (url: string) => MediaMetadata;\n getVideoMetadata?: (url: string) => VideoMetadata;\n onMediaAttachmentClick?: (url: string, type: 'photo' | 'document' | 'video' | 'link') => void;\n bottomRightIcon?: CredentialIconType;\n customFooterComponent?: React.ReactNode;\n customBodyCardComponent?: React.ReactNode;\n customThumbComponent?: React.ReactNode;\n customDescription?: React.ReactNode;\n customCriteria?: React.ReactNode;\n customIssueHistoryComponent?: React.ReactNode;\n issueHistory?: IssueHistory[];\n titleOverride?: string;\n showBackButton?: boolean;\n enableLightbox?: boolean;\n customRibbonCategoryComponent?: React.ReactNode;\n customFrontButton?: React.ReactNode;\n};\n\nexport const VCDisplayCard2: React.FC<VCDisplayCard2Props> = ({\n categoryType,\n credential,\n verificationItems,\n issueeOverride,\n issuerOverride,\n subjectDID,\n subjectImageComponent,\n issuerImageComponent,\n verificationInProgress = false,\n // convertTagsToSkills,\n handleXClick,\n getFileMetadata,\n getVideoMetadata,\n onMediaAttachmentClick,\n bottomRightIcon,\n customFooterComponent,\n customBodyCardComponent,\n customThumbComponent,\n customCriteria,\n customDescription,\n customIssueHistoryComponent,\n issueHistory,\n titleOverride,\n showBackButton = true,\n enableLightbox,\n customRibbonCategoryComponent,\n customFrontButton,\n}) => {\n const {\n title = '',\n createdAt,\n issuer: _issuer = '',\n issuee: _issuee = '',\n imageUrl,\n } = getInfoFromCredential(credential, 'MMM dd, yyyy');\n const issuee = issueeOverride || _issuee;\n const issuer = issuerOverride || _issuer;\n\n const [isFront, setIsFront] = useState(true);\n const [headerHeight, setHeaderHeight] = useState(100); // 79 is the height if the header is one line\n const [headerWidth, setHeaderWidth] = useState(0);\n\n const headerRef = useRef<HTMLHeadingElement>(null);\n\n useLayoutEffect(() => {\n // Needs a small setTimeout otherwise it'll be wrong sometimes with multiline header.\n // Probably because of the interaction with FitText\n setTimeout(() => {\n setHeaderHeight(headerRef.current?.clientHeight ?? 100);\n setHeaderWidth(headerRef.current?.clientWidth ?? 0);\n }, 10);\n });\n\n let worstVerificationStatus = verificationItems.reduce(\n (\n currentWorst: (typeof VerificationStatusEnum)[keyof typeof VerificationStatusEnum],\n verification\n ) => {\n switch (currentWorst) {\n case VerificationStatusEnum.Success:\n return verification.status;\n case VerificationStatusEnum.Error:\n return verification.status === VerificationStatusEnum.Failed\n ? verification.status\n : currentWorst;\n case VerificationStatusEnum.Failed:\n return currentWorst;\n }\n },\n VerificationStatusEnum.Success\n );\n\n const statusColor = getColorForVerificationStatus(worstVerificationStatus);\n\n const backgroundStyle = {\n backgroundColor: credential.display?.backgroundColor,\n backgroundImage: credential.display?.backgroundImage\n ? `linear-gradient(to bottom, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.25)), url(${credential.display?.backgroundImage})`\n : undefined,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundAttachment: 'fixed',\n };\n\n const _title = titleOverride || title;\n\n return (\n <section className=\"vc-display-card font-mouse flex flex-col items-center border-solid border-[5px] border-white rounded-[30px] overflow-visible z-10 max-w-[400px] relative bg-white shadow-3xl\">\n <RibbonEnd\n side=\"left\"\n className=\"absolute left-[-30px] top-[50px] z-0\"\n height={'100'}\n />\n <RibbonEnd\n side=\"right\"\n className=\"absolute right-[-30px] top-[50px] z-0\"\n height={'100'}\n />\n\n <h1\n ref={headerRef}\n className=\"vc-card-header px-[20px] pb-[10px] pt-[3px] overflow-visible mt-[40px] absolute text-center bg-white border-y-[5px] border-[#EEF2FF] shadow-bottom w-[calc(100%_+_16px)] rounded-t-[8px] z-50\"\n style={{ wordBreak: 'break-word' }}\n >\n {customRibbonCategoryComponent && customRibbonCategoryComponent}\n {!customRibbonCategoryComponent && (\n <VCDisplayCardCategoryType categoryType={categoryType} />\n )}\n\n <FitText\n text={_title ?? ''}\n maxFontSize={32}\n minFontSize={20}\n width={((headerWidth ?? 290) - 40).toString()}\n className=\"vc-card-header-main-title text-[#18224E] leading-[100%] text-shadow text-[32px]\"\n />\n </h1>\n\n {isFront && handleXClick && (\n <button\n className=\"vc-card-x-button absolute top-[-25px] bg-white rounded-full h-[50px] w-[50px] flex items-center justify-center z-50\"\n onClick={handleXClick}\n >\n <RoundedX />\n </button>\n )}\n\n {/* Hide content so that it doesn't appear above the header when it scrolls */}\n <div\n className=\"vc-card-background-hider absolute h-[40px] w-full z-20 flex grow rounded-t-[30px] \"\n style={backgroundStyle}\n />\n\n <div className=\"vc-card-content-container flex flex-col items-center grow w-full rounded-t-[30px] rounded-b-[20px] overflow-scroll scrollbar-hide\">\n {/* \n div in a div here so that we can have an outer scroll container with an inner container\n that has a rounded bottom at the bottom of the scrollable content \n */}\n <div\n className=\"vc-card-content-scroll-container w-full flex flex-col justify-center items-center rounded-b-[200px] bg-[#353E64] pb-[50px]\"\n style={{ paddingTop: '170px', ...backgroundStyle }}\n >\n {isFront && (\n <VC2FrontFaceInfo\n issuee={issuee}\n subjectDID={subjectDID}\n issuer={issuer}\n title={title}\n subjectImageComponent={subjectImageComponent}\n issuerImageComponent={issuerImageComponent}\n customBodyCardComponent={customBodyCardComponent}\n customThumbComponent={customThumbComponent}\n createdAt={createdAt ?? ''}\n imageUrl={imageUrl}\n />\n )}\n {!isFront && (\n <VC2BackFace\n credential={credential}\n verificationItems={verificationItems}\n // convertTagsToSkills={convertTagsToSkills}\n issueHistory={issueHistory}\n getFileMetadata={getFileMetadata}\n getVideoMetadata={getVideoMetadata}\n onMediaAttachmentClick={onMediaAttachmentClick}\n showBackButton={showBackButton}\n showFrontFace={() => setIsFront(true)}\n customDescription={customDescription}\n customCriteria={customCriteria}\n customIssueHistoryComponent={customIssueHistoryComponent}\n enableLightbox={enableLightbox}\n />\n )}\n {isFront && customFrontButton}\n {isFront && !customFrontButton && (\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-[40px] w-fit select-none\"\n onClick={() => setIsFront(!isFront)}\n >\n Details\n </button>\n )}\n {!isFront && (\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-[40px] w-fit select-none\"\n onClick={() => setIsFront(!isFront)}\n >\n <span className=\"flex gap-[10px] items-center\">\n <LeftArrow />\n Back\n </span>\n </button>\n )}\n </div>\n </div>\n <footer className=\"vc-card-footer w-full flex justify-between p-[5px] mt-[5px]\">\n {customFooterComponent && customFooterComponent}\n {!customFooterComponent && (\n <>\n {worstVerificationStatus === VerificationStatusEnum.Failed ? (\n <div className=\"w-[40px]\" role=\"presentation\" />\n ) : (\n <VCVerificationCheckWithSpinner\n spinnerSize=\"40px\"\n size={'32px'}\n loading={verificationInProgress}\n />\n )}\n <div className=\"vc-footer-text font-montserrat flex flex-col items-center justify-center text-[12px] font-[700] leading-[15px] select-none\">\n <span className=\"text-[#4F4F4F]\">Verified Credential</span>\n <span\n className=\"vc-footer-status uppercase\"\n style={{ color: statusColor }}\n >\n {worstVerificationStatus}\n </span>\n </div>\n <div\n className=\"vc-footer-icon rounded-[20px] h-[40px] w-[40px] flex items-center justify-center overflow-hidden\"\n style={{ backgroundColor: bottomRightIcon?.color ?? '#6366F1' }}\n >\n {bottomRightIcon?.image ?? <AwardRibbon />}\n </div>\n </>\n )}\n </footer>\n </section>\n );\n};\n\nexport default VCDisplayCard2;\n"],"names":["this"],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -31,13 +31,13 @@ export { S as SkillVerticalCard } from './SkillVerticalCard-108f49bb.js';
31
31
  export { a as SkillsCard, S as SkillsMeterSegment } from './SkillsCard-92a51db2.js';
32
32
  export { S as SkillsStatsCard } from './SkillsStatsCard-1628fe9c.js';
33
33
  export { S as SmallAchievementCard } from './SmallAchievementCard-2d87ac82.js';
34
- export { V as VCCard } from './VCCard-72b77d65.js';
34
+ export { V as VCCard } from './VCCard-fd481422.js';
35
35
  export { V as VCDisplayBackFace } from './VCDisplayBackFace-c8f0cb3a.js';
36
36
  export { V as VCDisplayCard } from './VCDisplayCard-a35f3a6a.js';
37
37
  import 'react';
38
38
  import './default-face.jpeg';
39
39
  import './types.esm-b07820bb.js';
40
- export { V as VCDisplayCard2 } from './VCDisplayCard2-b868c0b6.js';
40
+ export { V as VCDisplayCard2 } from './VCDisplayCard2-4dfa901d.js';
41
41
  import './icon.green.fat-arrow.png';
42
42
  export { V as VCVerificationCheck, a as VCVerificationCheckWithSpinner, b as VCVerificationCheckWithText } from './VCVerificationCheck-80249524.js';
43
43
  export { V as VCThumbnail } from './VCThumbnail-3c254bda.js';
@@ -31,13 +31,13 @@ export { S as SkillVerticalCard } from './SkillVerticalCard-108f49bb.js';
31
31
  export { a as SkillsCard, S as SkillsMeterSegment } from './SkillsCard-92a51db2.js';
32
32
  export { S as SkillsStatsCard } from './SkillsStatsCard-1628fe9c.js';
33
33
  export { S as SmallAchievementCard } from './SmallAchievementCard-2d87ac82.js';
34
- export { V as VCCard } from './VCCard-72b77d65.js';
34
+ export { V as VCCard } from './VCCard-fd481422.js';
35
35
  export { V as VCDisplayBackFace } from './VCDisplayBackFace-c8f0cb3a.js';
36
36
  export { V as VCDisplayCard } from './VCDisplayCard-a35f3a6a.js';
37
37
  import 'react';
38
38
  import './default-face.jpeg';
39
39
  import './types.esm-b07820bb.js';
40
- export { V as VCDisplayCard2 } from './VCDisplayCard2-b868c0b6.js';
40
+ export { V as VCDisplayCard2 } from './VCDisplayCard2-4dfa901d.js';
41
41
  import './icon.green.fat-arrow.png';
42
42
  export { V as VCVerificationCheck, a as VCVerificationCheckWithSpinner, b as VCVerificationCheckWithText } from './VCVerificationCheck-80249524.js';
43
43
  export { V as VCThumbnail } from './VCThumbnail-3c254bda.js';