@learncard/react 2.10.6 → 2.10.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/cjs/{MeritBadgeDisplayCard-1de23221.js → MeritBadgeDisplayCard-15b85a79.js} +2 -2
  2. package/dist/cjs/{MeritBadgeDisplayCard-1de23221.js.map → MeritBadgeDisplayCard-15b85a79.js.map} +1 -1
  3. package/dist/cjs/{SchoolIDCard-2d3cbb2c.js → SchoolIDCard-10796199.js} +1184 -3
  4. package/dist/cjs/SchoolIDCard-10796199.js.map +1 -0
  5. package/dist/cjs/{VCCard-31833e79.js → VCCard-4f02e2f4.js} +2 -2
  6. package/dist/cjs/{VCCard-31833e79.js.map → VCCard-4f02e2f4.js.map} +1 -1
  7. package/dist/cjs/{VCDisplayCard2-8b8aaea7.js → VCDisplayCard2-8517f419.js} +28 -14
  8. package/dist/cjs/VCDisplayCard2-8517f419.js.map +1 -0
  9. package/dist/cjs/VerifierStateBadgeAndText-c15064b2.js.map +1 -1
  10. package/dist/cjs/i18n-cc7e34ec.js +55 -0
  11. package/dist/cjs/i18n-cc7e34ec.js.map +1 -0
  12. package/dist/cjs/index.js +8 -5
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/index14.js +5 -5
  15. package/dist/cjs/index22.js +2 -1
  16. package/dist/cjs/index22.js.map +1 -1
  17. package/dist/cjs/index31.js +1 -2
  18. package/dist/cjs/index31.js.map +1 -1
  19. package/dist/cjs/index39.js +4 -4
  20. package/dist/cjs/index42.js +3 -3
  21. package/dist/esm/{MeritBadgeDisplayCard-a7a504e0.js → MeritBadgeDisplayCard-2029a552.js} +2 -2
  22. package/dist/esm/{MeritBadgeDisplayCard-a7a504e0.js.map → MeritBadgeDisplayCard-2029a552.js.map} +1 -1
  23. package/dist/esm/{SchoolIDCard-fbd1cf6c.js → SchoolIDCard-f82e40bc.js} +1183 -2
  24. package/dist/esm/SchoolIDCard-f82e40bc.js.map +1 -0
  25. package/dist/esm/{VCCard-d07dfdc7.js → VCCard-c0f6dff3.js} +2 -2
  26. package/dist/esm/{VCCard-d07dfdc7.js.map → VCCard-c0f6dff3.js.map} +1 -1
  27. package/dist/esm/{VCDisplayCard2-a3f671bc.js → VCDisplayCard2-fc5c4225.js} +28 -14
  28. package/dist/esm/VCDisplayCard2-fc5c4225.js.map +1 -0
  29. package/dist/esm/VerifierStateBadgeAndText-60b98d25.js.map +1 -1
  30. package/dist/esm/i18n-8454d6ea.js +47 -0
  31. package/dist/esm/i18n-8454d6ea.js.map +1 -0
  32. package/dist/esm/index.js +5 -5
  33. package/dist/esm/index14.js +5 -5
  34. package/dist/esm/index22.js +2 -1
  35. package/dist/esm/index22.js.map +1 -1
  36. package/dist/esm/index31.js +1 -2
  37. package/dist/esm/index31.js.map +1 -1
  38. package/dist/esm/index39.js +4 -4
  39. package/dist/esm/index42.js +3 -3
  40. package/dist/index.d.ts +37 -1
  41. package/package.json +2 -2
  42. package/src/components/MeritBadgeDisplayCard/MeritBadgeFrontFace.tsx +1 -1
  43. package/src/components/MeritBadgeDisplayCard/VerifierStateBadgeAndText.tsx +7 -5
  44. package/src/components/VCDisplayCard2/VerificationRow.tsx +27 -4
  45. package/src/components/VCDisplayCard2/VerificationsBox.tsx +4 -5
  46. package/src/i18n/index.tsx +87 -0
  47. package/src/index.ts +3 -0
  48. package/dist/cjs/SchoolIDCard-2d3cbb2c.js.map +0 -1
  49. package/dist/cjs/VCDisplayCard2-8b8aaea7.js.map +0 -1
  50. package/dist/cjs/index-47efbf5b.js +0 -1186
  51. package/dist/cjs/index-47efbf5b.js.map +0 -1
  52. package/dist/esm/SchoolIDCard-fbd1cf6c.js.map +0 -1
  53. package/dist/esm/VCDisplayCard2-a3f671bc.js.map +0 -1
  54. package/dist/esm/index-cbd2e9db.js +0 -1184
  55. package/dist/esm/index-cbd2e9db.js.map +0 -1
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
6
+
7
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
8
+
9
+ const I18nContext = React.createContext(null);
10
+ const EN_DEFAULTS = {
11
+ "verification.selfIssued": "Self Issued",
12
+ "verification.trustedIssuer": "Trusted Issuer",
13
+ "verification.unknownIssuer": "Unknown Issuer",
14
+ "verification.appIssuer": "Trusted App",
15
+ "verification.untrustedIssuer": "Untrusted Issuer",
16
+ "credential.by": "By",
17
+ "verification.title": "Credential Verifications",
18
+ "verification.infoText": "Credential verifications check the cryptographic proof of digital credentials to ensure their authenticity and accuracy.",
19
+ "verification.status.success": "Success",
20
+ "verification.status.error": "Error",
21
+ "verification.status.failed": "Failed",
22
+ "verification.check.proof": "Proof",
23
+ "verification.check.status": "Status",
24
+ "verification.check.expiration": "Expiration",
25
+ "verification.message.valid": "Valid",
26
+ "verification.message.invalid": "Invalid",
27
+ "verification.message.notRevoked": "Not Revoked",
28
+ "verification.message.revoked": "Revoked",
29
+ "verification.message.doesNotExpire": "Does Not Expire",
30
+ "verification.message.expired": "Expired",
31
+ "verification.message.active": "Active",
32
+ "verification.message.couldNotVerify": "Boost Credential could not be verified."
33
+ };
34
+ const interpolate = (str, params) => params ? str.replace(/\{(\w+)\}/g, (_, k) => params[k] != null ? String(params[k]) : `{${k}}`) : str;
35
+ const I18nProvider = ({ resolve, locale, children }) => {
36
+ const value = React.useMemo(() => ({ resolve, locale }), [resolve, locale]);
37
+ return /* @__PURE__ */ React__default["default"].createElement(I18nContext.Provider, { value }, children);
38
+ };
39
+ const useT = () => {
40
+ const ctx = React.useContext(I18nContext);
41
+ return React.useCallback(
42
+ (key, params) => {
43
+ const fromHost = ctx == null ? void 0 : ctx.resolve(key, params);
44
+ if (fromHost != null) return fromHost;
45
+ const def = EN_DEFAULTS[key];
46
+ return def != null ? interpolate(def, params) : key;
47
+ },
48
+ [ctx]
49
+ );
50
+ };
51
+
52
+ exports.EN_DEFAULTS = EN_DEFAULTS;
53
+ exports.I18nProvider = I18nProvider;
54
+ exports.useT = useT;
55
+ //# sourceMappingURL=i18n-cc7e34ec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n-cc7e34ec.js","sources":["../../src/i18n/index.tsx"],"sourcesContent":["/**\n * Lightweight i18n adapter for `@learncard/react`.\n *\n * This is a PUBLISHED SDK consumed by external third parties who have no\n * Paraglide, no app providers, and no catalog. So the rule is: render English\n * with zero configuration, and only *optionally* accept translations.\n *\n * Components call `useT()`. With no provider mounted, `useT()` returns the\n * co-located English default (zero-config English for every consumer). A\n * consumer that wants localization mounts `<I18nProvider resolve={fn} locale={l}>`\n * where `fn` maps a key to a translated string using whatever i18n they use\n * (Paraglide, i18next, a static map — the SDK doesn't care).\n *\n * Kept intentionally dependency-free and self-contained (a ~40-line copy also\n * lives in learn-card-base) so the SDK pulls in no i18n runtime.\n */\nimport React, { createContext, useCallback, useContext, useMemo } from 'react';\n\nexport type I18nResolver = (key: string, params?: Record<string, unknown>) => string | undefined;\n\ntype I18nContextValue = { resolve: I18nResolver; locale: string };\n\nconst I18nContext = createContext<I18nContextValue | null>(null);\n\n/**\n * English defaults co-located with the SDK. One entry per extracted string.\n * Keys are unprefixed; a host app namespaces them (e.g. `sdk.`) in its catalog.\n */\nexport const EN_DEFAULTS: Record<string, string> = {\n 'verification.selfIssued': 'Self Issued',\n 'verification.trustedIssuer': 'Trusted Issuer',\n 'verification.unknownIssuer': 'Unknown Issuer',\n 'verification.appIssuer': 'Trusted App',\n 'verification.untrustedIssuer': 'Untrusted Issuer',\n 'credential.by': 'By',\n 'verification.title': 'Credential Verifications',\n 'verification.infoText':\n 'Credential verifications check the cryptographic proof of digital credentials to ensure their authenticity and accuracy.',\n 'verification.status.success': 'Success',\n 'verification.status.error': 'Error',\n 'verification.status.failed': 'Failed',\n 'verification.check.proof': 'Proof',\n 'verification.check.status': 'Status',\n 'verification.check.expiration': 'Expiration',\n 'verification.message.valid': 'Valid',\n 'verification.message.invalid': 'Invalid',\n 'verification.message.notRevoked': 'Not Revoked',\n 'verification.message.revoked': 'Revoked',\n 'verification.message.doesNotExpire': 'Does Not Expire',\n 'verification.message.expired': 'Expired',\n 'verification.message.active': 'Active',\n 'verification.message.couldNotVerify': 'Boost Credential could not be verified.',\n};\n\n/** Minimal `{var}` interpolation — no dependency. */\nconst interpolate = (str: string, params?: Record<string, unknown>): string =>\n params\n ? str.replace(/\\{(\\w+)\\}/g, (_, k) => (params[k] != null ? String(params[k]) : `{${k}}`))\n : str;\n\nexport const I18nProvider: React.FC<{\n resolve: I18nResolver;\n locale: string;\n children: React.ReactNode;\n}> = ({ resolve, locale, children }) => {\n const value = useMemo<I18nContextValue>(() => ({ resolve, locale }), [resolve, locale]);\n return <I18nContext.Provider value={value}>{children}</I18nContext.Provider>;\n};\n\n/**\n * Returns a translate function. Resolution order:\n * 1. host resolver (consumer catalog) if a provider is mounted and has the key\n * 2. co-located English default (interpolated)\n * 3. the key itself (last-resort)\n */\nexport const useT = (): ((key: string, params?: Record<string, unknown>) => string) => {\n const ctx = useContext(I18nContext);\n return useCallback(\n (key: string, params?: Record<string, unknown>) => {\n const fromHost = ctx?.resolve(key, params);\n if (fromHost != null) return fromHost;\n const def = EN_DEFAULTS[key];\n return def != null ? interpolate(def, params) : key;\n },\n [ctx]\n );\n};\n"],"names":["createContext","useMemo","React","useContext","useCallback"],"mappings":";;;;;;;;AAsBA,MAAM,WAAA,GAAcA,oBAAuC,IAAI,CAAA,CAAA;AAMxD,MAAM,WAAsC,GAAA;AAAA,EAC/C,yBAA2B,EAAA,aAAA;AAAA,EAC3B,4BAA8B,EAAA,gBAAA;AAAA,EAC9B,4BAA8B,EAAA,gBAAA;AAAA,EAC9B,wBAA0B,EAAA,aAAA;AAAA,EAC1B,8BAAgC,EAAA,kBAAA;AAAA,EAChC,eAAiB,EAAA,IAAA;AAAA,EACjB,oBAAsB,EAAA,0BAAA;AAAA,EACtB,uBACI,EAAA,0HAAA;AAAA,EACJ,6BAA+B,EAAA,SAAA;AAAA,EAC/B,2BAA6B,EAAA,OAAA;AAAA,EAC7B,4BAA8B,EAAA,QAAA;AAAA,EAC9B,0BAA4B,EAAA,OAAA;AAAA,EAC5B,2BAA6B,EAAA,QAAA;AAAA,EAC7B,+BAAiC,EAAA,YAAA;AAAA,EACjC,4BAA8B,EAAA,OAAA;AAAA,EAC9B,8BAAgC,EAAA,SAAA;AAAA,EAChC,iCAAmC,EAAA,aAAA;AAAA,EACnC,8BAAgC,EAAA,SAAA;AAAA,EAChC,oCAAsC,EAAA,iBAAA;AAAA,EACtC,8BAAgC,EAAA,SAAA;AAAA,EAChC,6BAA+B,EAAA,QAAA;AAAA,EAC/B,qCAAuC,EAAA,yCAAA;AAC3C,EAAA;AAGA,MAAM,WAAA,GAAc,CAAC,GAAa,EAAA,MAAA,KAC9B,SACM,GAAI,CAAA,OAAA,CAAQ,YAAc,EAAA,CAAC,CAAG,EAAA,CAAA,KAAO,OAAO,CAAC,CAAA,IAAK,IAAO,GAAA,MAAA,CAAO,MAAO,CAAA,CAAC,CAAC,CAAI,GAAA,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAI,CACtF,GAAA,GAAA,CAAA;AAEH,MAAM,eAIR,CAAC,EAAE,OAAS,EAAA,MAAA,EAAQ,UAAe,KAAA;AACpC,EAAM,MAAA,KAAA,GAAQC,aAA0B,CAAA,OAAO,EAAE,OAAA,EAAS,QAAW,CAAA,EAAA,CAAC,OAAS,EAAA,MAAM,CAAC,CAAA,CAAA;AACtF,EAAA,uBAAQC,yBAAA,CAAA,aAAA,CAAA,WAAA,CAAY,QAAZ,EAAA,EAAqB,SAAe,QAAS,CAAA,CAAA;AACzD,EAAA;AAQO,MAAM,OAAO,MAAmE;AACnF,EAAM,MAAA,GAAA,GAAMC,iBAAW,WAAW,CAAA,CAAA;AAClC,EAAO,OAAAC,iBAAA;AAAA,IACH,CAAC,KAAa,MAAqC,KAAA;AAC/C,MAAM,MAAA,QAAA,GAAW,GAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,OAAA,CAAQ,GAAK,EAAA,MAAA,CAAA,CAAA;AACnC,MAAI,IAAA,QAAA,IAAY,MAAa,OAAA,QAAA,CAAA;AAC7B,MAAM,MAAA,GAAA,GAAM,YAAY,GAAG,CAAA,CAAA;AAC3B,MAAA,OAAO,GAAO,IAAA,IAAA,GAAO,WAAY,CAAA,GAAA,EAAK,MAAM,CAAI,GAAA,GAAA,CAAA;AAAA,KACpD;AAAA,IACA,CAAC,GAAG,CAAA;AAAA,GACR,CAAA;AACJ;;;;;;"}
package/dist/cjs/index.js CHANGED
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var VerifierStateBadgeAndText = require('./VerifierStateBadgeAndText-c15064b2.js');
7
+ var i18n = require('./i18n-cc7e34ec.js');
7
8
  var AchievementCard = require('./AchievementCard-98d6c7f9.js');
8
9
  var BoostGenericCard = require('./BoostGenericCard-99a3ab28.js');
9
10
  var BoostSmallCard = require('./BoostSmallCard-ece8f97e.js');
@@ -22,7 +23,7 @@ var LearnCardCreditCardFrontFace = require('./LearnCardCreditCardFrontFace-75fb4
22
23
  var LearnPill = require('./LearnPill-da2d2a8e.js');
23
24
  var Lightbox = require('./Lightbox-d72e19ba.js');
24
25
  var CircleSpinner = require('./CircleSpinner-f518569a.js');
25
- var MeritBadgeDisplayCard = require('./MeritBadgeDisplayCard-1de23221.js');
26
+ var MeritBadgeDisplayCard = require('./MeritBadgeDisplayCard-15b85a79.js');
26
27
  var MeritBadgeSkillsCount = require('./MeritBadgeSkillsCount-f62ad753.js');
27
28
  var MiniVCThumbnail = require('./MiniVCThumbnail-9c510f51.js');
28
29
  var Notification = require('./Notification-24d4de25.js');
@@ -34,17 +35,17 @@ var types$1 = require('./types-e4d9a257.js');
34
35
  var QRCodeCard = require('./QRCodeCard-2378411e.js');
35
36
  var RoundedPill = require('./RoundedPill-b54f3ac1.js');
36
37
  var constants = require('./constants-2430d4bc.js');
37
- var SchoolIDCard = require('./SchoolIDCard-2d3cbb2c.js');
38
+ var SchoolIDCard = require('./SchoolIDCard-10796199.js');
38
39
  var SkillTabCard = require('./SkillTabCard-efade17a.js');
39
40
  var SkillVerticalCard = require('./SkillVerticalCard-62e308b4.js');
40
41
  var SkillsCard = require('./SkillsCard-dae73a71.js');
41
42
  var SkillsStatsCard = require('./SkillsStatsCard-aeef796c.js');
42
43
  var SmallAchievementCard = require('./SmallAchievementCard-d22a4d25.js');
43
44
  var UserProfilePicture = require('./UserProfilePicture-80675455.js');
44
- var VCCard = require('./VCCard-31833e79.js');
45
+ var VCCard = require('./VCCard-4f02e2f4.js');
45
46
  var VCDisplayBackFace = require('./VCDisplayBackFace-aab4d52c.js');
46
47
  var VCDisplayCard = require('./VCDisplayCard-95b7f7dc.js');
47
- var VCDisplayCard2 = require('./VCDisplayCard2-8b8aaea7.js');
48
+ var VCDisplayCard2 = require('./VCDisplayCard2-8517f419.js');
48
49
  var VCThumbnail = require('./VCThumbnail-f84d0d01.js');
49
50
  var VCVerificationCheck = require('./VCVerificationCheck-92198135.js');
50
51
  var VCVerificationPill = require('./VCVerificationPill-b5824def.js');
@@ -129,7 +130,6 @@ require('./X.svg');
129
130
  require('./ArrowArcLeft.svg');
130
131
  require('./walletids.webp');
131
132
  require('./membership-graphic.png');
132
- require('./index-47efbf5b.js');
133
133
  require('./skillplaceholder.png');
134
134
  require('./skillgraph.svg');
135
135
  require('@learncard/init');
@@ -354,6 +354,9 @@ exports.getAvatarLetterFromDid = VerifierStateBadgeAndText.getAvatarLetterFromDi
354
354
  exports.isDid = VerifierStateBadgeAndText.isDid;
355
355
  exports.isLearnCardNetworkDid = VerifierStateBadgeAndText.isLearnCardNetworkDid;
356
356
  exports.resolveProfileDisplay = VerifierStateBadgeAndText.resolveProfileDisplay;
357
+ exports.EN_DEFAULTS = i18n.EN_DEFAULTS;
358
+ exports.I18nProvider = i18n.I18nProvider;
359
+ exports.useT = i18n.useT;
357
360
  exports.AchievementCard = AchievementCard.AchievementCard;
358
361
  exports.BoostGenericCard = BoostGenericCard.BoostGenericCard;
359
362
  exports.BoostSmallCard = BoostSmallCard.BoostSmallCard;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/helpers/useOnMomentumScrollEnd.ts","../../src/helpers/useScrollBorders.ts","../../src/hooks/useCredentialFormat.tsx","../../src/hooks/useParsedSdJwtVc.tsx","../../src/helpers/credentialFormat.helpers.ts"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\n\nexport const useOnMomentumScrollEnd = ({\n onScroll: _onScroll,\n onMomentumScrollEnd,\n debounceTime = 305,\n}: {\n onScroll?: React.UIEventHandler;\n onMomentumScrollEnd: React.UIEventHandler;\n debounceTime?: number;\n}) => {\n const momentumScrollEndTimer = useRef<NodeJS.Timeout>();\n\n useEffect(() => () => clearTimeout(momentumScrollEndTimer.current), []);\n\n const onScroll: React.UIEventHandler = (e) => {\n _onScroll?.(e);\n\n clearTimeout(momentumScrollEndTimer.current);\n momentumScrollEndTimer.current = setTimeout(() => {\n onMomentumScrollEnd(e);\n }, debounceTime);\n };\n\n return onScroll;\n};\n\nexport default useOnMomentumScrollEnd;\n","import React, { useEffect, type RefObject } from 'react';\n\nexport const useScrollBorders = <Ref extends HTMLElement>({\n ref,\n topShowClassName = 'border-t border-t-[--color-grayscale-line]',\n topHideClassName = 'border-t border-t-transparent',\n bottomShowClassName = 'border-b border-b-[--color-grayscale-line]',\n bottomHideClassName = 'border-b border-b-transparent',\n}: {\n ref?: RefObject<Ref>;\n topShowClassName?: string;\n topHideClassName?: string;\n bottomShowClassName?: string;\n bottomHideClassName?: string;\n} = {}) => {\n const internalRef = ref ?? React.createRef<Ref>();\n\n const updateBorderClasses = () => {\n if (\n !internalRef.current ||\n internalRef.current.scrollHeight <= internalRef.current.clientHeight\n )\n return;\n\n // Top border\n if (internalRef.current.scrollTop > 0) {\n internalRef.current.classList.remove(...topHideClassName.split(' '));\n internalRef.current.classList.add(...topShowClassName.split(' '));\n } else {\n internalRef.current.classList.remove(...topShowClassName.split(' '));\n internalRef.current.classList.add(...topHideClassName.split(' '));\n }\n\n // Bottom border\n if (\n internalRef.current.scrollTop <\n internalRef.current.scrollHeight - internalRef.current.clientHeight\n ) {\n internalRef.current.classList.remove(...bottomHideClassName.split(' '));\n internalRef.current.classList.add(...bottomShowClassName.split(' '));\n } else {\n internalRef.current.classList.remove(...bottomShowClassName.split(' '));\n internalRef.current.classList.add(...bottomHideClassName.split(' '));\n }\n };\n\n useEffect(() => {\n const element = internalRef.current;\n if (element) {\n updateBorderClasses();\n\n element.addEventListener('scroll', updateBorderClasses);\n\n return () => element.removeEventListener('scroll', updateBorderClasses);\n }\n }, [internalRef]); // Re-run when ref changes\n\n return internalRef;\n};\n","import { useMemo } from 'react';\n\nexport type CredentialFormat = 'dc+sd-jwt' | 'vc+sd-jwt' | 'jwt-vc-json' | 'ldp-vc' | 'unknown';\n\nexport const useCredentialFormat = (vc: unknown): CredentialFormat => {\n return useMemo(() => {\n if (!vc || typeof vc !== 'object') return 'unknown';\n const proof = (vc as any).proof;\n const proofs: any[] = Array.isArray(proof) ? proof : proof ? [proof] : [];\n\n const sdJwt = proofs.find(\n p => p?.type === 'SdJwtCompactProof' && typeof p?.jwt === 'string'\n );\n if (sdJwt) return 'dc+sd-jwt';\n\n const proofObj = proofs.find(p => p && typeof p === 'object');\n if (typeof proofObj?.jwt === 'string' || proofObj?.type === 'JwtProof2020') {\n return 'jwt-vc-json';\n }\n if (typeof proofObj?.type === 'string') return 'ldp-vc';\n return 'unknown';\n }, [vc]);\n};\n","import { useState, useEffect } from 'react';\nimport { LearnCard } from '@learncard/core';\n\nexport type ParsedSdJwtVc = {\n vct: string;\n issuer: string;\n issuedAt?: Date;\n expiresAt?: Date;\n notBefore?: Date;\n holderPublicKey?: Record<string, unknown>;\n claims: Record<string, unknown>;\n disclosureKeys: string[];\n header: Record<string, unknown>;\n rawPayload: Record<string, unknown>;\n rawSdJwt: string;\n format: 'dc+sd-jwt' | 'vc+sd-jwt';\n hasKeyBinding: boolean;\n};\n\nexport const useParsedSdJwtVc = (learnCard: LearnCard | undefined, compact: string | undefined) => {\n const [data, setData] = useState<ParsedSdJwtVc | undefined>(undefined);\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const [error, setError] = useState<Error | undefined>(undefined);\n\n useEffect(() => {\n let cancelled = false;\n\n if (!learnCard || !compact) {\n setData(undefined);\n setIsLoading(false);\n setError(undefined);\n return;\n }\n\n const parse = async () => {\n setIsLoading(true);\n setError(undefined);\n setData(undefined);\n try {\n const parsed = await (learnCard.invoke as any).parseSdJwtVc(compact);\n if (!cancelled) {\n setData(parsed as ParsedSdJwtVc);\n }\n } catch (err) {\n if (!cancelled) {\n setData(undefined);\n setError(err instanceof Error ? err : new Error(String(err)));\n }\n } finally {\n if (!cancelled) {\n setIsLoading(false);\n }\n }\n };\n\n parse();\n\n return () => {\n cancelled = true;\n };\n }, [learnCard, compact]);\n\n return { data, isLoading, error };\n};\n","export const humanizeClaimLabel = (key: string): string => {\n if (!key) return '';\n\n // Preserve acronyms if all-caps\n if (/^[A-Z]+$/.test(key)) {\n return key;\n }\n\n // Convert snake_case and kebab-case to space-separated\n let humanized = key.replace(/[_-]/g, ' ');\n\n // Convert camelCase to space-separated\n humanized = humanized.replace(/([a-z])([A-Z])/g, '$1 $2');\n\n // Capitalize first letter of each word\n return humanized\n .split(' ')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n};\n\nconst LONG_DATE_FORMAT: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n};\n\nexport const formatClaimValue = (value: unknown): string => {\n if (value === null || value === undefined) {\n return '';\n }\n\n if (typeof value === 'boolean') {\n return value ? 'Yes' : 'No';\n }\n\n if (typeof value === 'string') {\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value)) {\n const [y, m, d] = value.split('-').map(Number);\n const date = new Date(Date.UTC(y, m - 1, d));\n if (!isNaN(date.getTime())) {\n return date.toLocaleDateString(undefined, { ...LONG_DATE_FORMAT, timeZone: 'UTC' });\n }\n }\n if (/^\\d{4}-\\d{2}-\\d{2}T/.test(value)) {\n const date = new Date(value);\n if (!isNaN(date.getTime())) {\n return date.toLocaleDateString(undefined, LONG_DATE_FORMAT);\n }\n }\n return value;\n }\n\n if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const allPrimitive = value.every(v => v === null || typeof v !== 'object');\n if (allPrimitive) return value.map(formatClaimValue).filter(Boolean).join(', ');\n return value.length === 1 ? '1 item' : `${value.length} items`;\n }\n const entries = Object.entries(value as Record<string, unknown>);\n if (entries.length === 0) return '';\n return entries\n .map(([k, v]) => `${humanizeClaimLabel(k)}: ${formatClaimValue(v)}`)\n .join('; ');\n }\n\n return String(value);\n};\n"],"names":["useRef","useEffect","React","useMemo","useState"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/helpers/useOnMomentumScrollEnd.ts","../../src/helpers/useScrollBorders.ts","../../src/hooks/useCredentialFormat.tsx","../../src/hooks/useParsedSdJwtVc.tsx","../../src/helpers/credentialFormat.helpers.ts"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\n\nexport const useOnMomentumScrollEnd = ({\n onScroll: _onScroll,\n onMomentumScrollEnd,\n debounceTime = 305,\n}: {\n onScroll?: React.UIEventHandler;\n onMomentumScrollEnd: React.UIEventHandler;\n debounceTime?: number;\n}) => {\n const momentumScrollEndTimer = useRef<NodeJS.Timeout>();\n\n useEffect(() => () => clearTimeout(momentumScrollEndTimer.current), []);\n\n const onScroll: React.UIEventHandler = (e) => {\n _onScroll?.(e);\n\n clearTimeout(momentumScrollEndTimer.current);\n momentumScrollEndTimer.current = setTimeout(() => {\n onMomentumScrollEnd(e);\n }, debounceTime);\n };\n\n return onScroll;\n};\n\nexport default useOnMomentumScrollEnd;\n","import React, { useEffect, type RefObject } from 'react';\n\nexport const useScrollBorders = <Ref extends HTMLElement>({\n ref,\n topShowClassName = 'border-t border-t-[--color-grayscale-line]',\n topHideClassName = 'border-t border-t-transparent',\n bottomShowClassName = 'border-b border-b-[--color-grayscale-line]',\n bottomHideClassName = 'border-b border-b-transparent',\n}: {\n ref?: RefObject<Ref>;\n topShowClassName?: string;\n topHideClassName?: string;\n bottomShowClassName?: string;\n bottomHideClassName?: string;\n} = {}) => {\n const internalRef = ref ?? React.createRef<Ref>();\n\n const updateBorderClasses = () => {\n if (\n !internalRef.current ||\n internalRef.current.scrollHeight <= internalRef.current.clientHeight\n )\n return;\n\n // Top border\n if (internalRef.current.scrollTop > 0) {\n internalRef.current.classList.remove(...topHideClassName.split(' '));\n internalRef.current.classList.add(...topShowClassName.split(' '));\n } else {\n internalRef.current.classList.remove(...topShowClassName.split(' '));\n internalRef.current.classList.add(...topHideClassName.split(' '));\n }\n\n // Bottom border\n if (\n internalRef.current.scrollTop <\n internalRef.current.scrollHeight - internalRef.current.clientHeight\n ) {\n internalRef.current.classList.remove(...bottomHideClassName.split(' '));\n internalRef.current.classList.add(...bottomShowClassName.split(' '));\n } else {\n internalRef.current.classList.remove(...bottomShowClassName.split(' '));\n internalRef.current.classList.add(...bottomHideClassName.split(' '));\n }\n };\n\n useEffect(() => {\n const element = internalRef.current;\n if (element) {\n updateBorderClasses();\n\n element.addEventListener('scroll', updateBorderClasses);\n\n return () => element.removeEventListener('scroll', updateBorderClasses);\n }\n }, [internalRef]); // Re-run when ref changes\n\n return internalRef;\n};\n","import { useMemo } from 'react';\n\nexport type CredentialFormat = 'dc+sd-jwt' | 'vc+sd-jwt' | 'jwt-vc-json' | 'ldp-vc' | 'unknown';\n\nexport const useCredentialFormat = (vc: unknown): CredentialFormat => {\n return useMemo(() => {\n if (!vc || typeof vc !== 'object') return 'unknown';\n const proof = (vc as any).proof;\n const proofs: any[] = Array.isArray(proof) ? proof : proof ? [proof] : [];\n\n const sdJwt = proofs.find(\n p => p?.type === 'SdJwtCompactProof' && typeof p?.jwt === 'string'\n );\n if (sdJwt) return 'dc+sd-jwt';\n\n const proofObj = proofs.find(p => p && typeof p === 'object');\n if (typeof proofObj?.jwt === 'string' || proofObj?.type === 'JwtProof2020') {\n return 'jwt-vc-json';\n }\n if (typeof proofObj?.type === 'string') return 'ldp-vc';\n return 'unknown';\n }, [vc]);\n};\n","import { useState, useEffect } from 'react';\nimport { LearnCard } from '@learncard/core';\n\nexport type ParsedSdJwtVc = {\n vct: string;\n issuer: string;\n issuedAt?: Date;\n expiresAt?: Date;\n notBefore?: Date;\n holderPublicKey?: Record<string, unknown>;\n claims: Record<string, unknown>;\n disclosureKeys: string[];\n header: Record<string, unknown>;\n rawPayload: Record<string, unknown>;\n rawSdJwt: string;\n format: 'dc+sd-jwt' | 'vc+sd-jwt';\n hasKeyBinding: boolean;\n};\n\nexport const useParsedSdJwtVc = (learnCard: LearnCard | undefined, compact: string | undefined) => {\n const [data, setData] = useState<ParsedSdJwtVc | undefined>(undefined);\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const [error, setError] = useState<Error | undefined>(undefined);\n\n useEffect(() => {\n let cancelled = false;\n\n if (!learnCard || !compact) {\n setData(undefined);\n setIsLoading(false);\n setError(undefined);\n return;\n }\n\n const parse = async () => {\n setIsLoading(true);\n setError(undefined);\n setData(undefined);\n try {\n const parsed = await (learnCard.invoke as any).parseSdJwtVc(compact);\n if (!cancelled) {\n setData(parsed as ParsedSdJwtVc);\n }\n } catch (err) {\n if (!cancelled) {\n setData(undefined);\n setError(err instanceof Error ? err : new Error(String(err)));\n }\n } finally {\n if (!cancelled) {\n setIsLoading(false);\n }\n }\n };\n\n parse();\n\n return () => {\n cancelled = true;\n };\n }, [learnCard, compact]);\n\n return { data, isLoading, error };\n};\n","export const humanizeClaimLabel = (key: string): string => {\n if (!key) return '';\n\n // Preserve acronyms if all-caps\n if (/^[A-Z]+$/.test(key)) {\n return key;\n }\n\n // Convert snake_case and kebab-case to space-separated\n let humanized = key.replace(/[_-]/g, ' ');\n\n // Convert camelCase to space-separated\n humanized = humanized.replace(/([a-z])([A-Z])/g, '$1 $2');\n\n // Capitalize first letter of each word\n return humanized\n .split(' ')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n};\n\nconst LONG_DATE_FORMAT: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n};\n\nexport const formatClaimValue = (value: unknown): string => {\n if (value === null || value === undefined) {\n return '';\n }\n\n if (typeof value === 'boolean') {\n return value ? 'Yes' : 'No';\n }\n\n if (typeof value === 'string') {\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value)) {\n const [y, m, d] = value.split('-').map(Number);\n const date = new Date(Date.UTC(y, m - 1, d));\n if (!isNaN(date.getTime())) {\n return date.toLocaleDateString(undefined, { ...LONG_DATE_FORMAT, timeZone: 'UTC' });\n }\n }\n if (/^\\d{4}-\\d{2}-\\d{2}T/.test(value)) {\n const date = new Date(value);\n if (!isNaN(date.getTime())) {\n return date.toLocaleDateString(undefined, LONG_DATE_FORMAT);\n }\n }\n return value;\n }\n\n if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const allPrimitive = value.every(v => v === null || typeof v !== 'object');\n if (allPrimitive) return value.map(formatClaimValue).filter(Boolean).join(', ');\n return value.length === 1 ? '1 item' : `${value.length} items`;\n }\n const entries = Object.entries(value as Record<string, unknown>);\n if (entries.length === 0) return '';\n return entries\n .map(([k, v]) => `${humanizeClaimLabel(k)}: ${formatClaimValue(v)}`)\n .join('; ');\n }\n\n return String(value);\n};\n"],"names":["useRef","useEffect","React","useMemo","useState"],"mappings":"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"}
@@ -21,7 +21,7 @@ var LearnCardCreditCardFrontFace = require('./LearnCardCreditCardFrontFace-75fb4
21
21
  var LearnPill = require('./LearnPill-da2d2a8e.js');
22
22
  var Lightbox = require('./Lightbox-d72e19ba.js');
23
23
  var CircleSpinner = require('./CircleSpinner-f518569a.js');
24
- var MeritBadgeDisplayCard = require('./MeritBadgeDisplayCard-1de23221.js');
24
+ var MeritBadgeDisplayCard = require('./MeritBadgeDisplayCard-15b85a79.js');
25
25
  var MeritBadgeSkillsCount = require('./MeritBadgeSkillsCount-f62ad753.js');
26
26
  var MiniVCThumbnail = require('./MiniVCThumbnail-9c510f51.js');
27
27
  var Notification = require('./Notification-24d4de25.js');
@@ -33,17 +33,17 @@ var types$1 = require('./types-e4d9a257.js');
33
33
  var QRCodeCard = require('./QRCodeCard-2378411e.js');
34
34
  var RoundedPill = require('./RoundedPill-b54f3ac1.js');
35
35
  var constants = require('./constants-2430d4bc.js');
36
- var SchoolIDCard = require('./SchoolIDCard-2d3cbb2c.js');
36
+ var SchoolIDCard = require('./SchoolIDCard-10796199.js');
37
37
  var SkillTabCard = require('./SkillTabCard-efade17a.js');
38
38
  var SkillVerticalCard = require('./SkillVerticalCard-62e308b4.js');
39
39
  var SkillsCard = require('./SkillsCard-dae73a71.js');
40
40
  var SkillsStatsCard = require('./SkillsStatsCard-aeef796c.js');
41
41
  var SmallAchievementCard = require('./SmallAchievementCard-d22a4d25.js');
42
42
  var UserProfilePicture = require('./UserProfilePicture-80675455.js');
43
- var VCCard = require('./VCCard-31833e79.js');
43
+ var VCCard = require('./VCCard-4f02e2f4.js');
44
44
  var VCDisplayBackFace = require('./VCDisplayBackFace-aab4d52c.js');
45
45
  var VCDisplayCard = require('./VCDisplayCard-95b7f7dc.js');
46
- var VCDisplayCard2 = require('./VCDisplayCard2-8b8aaea7.js');
46
+ var VCDisplayCard2 = require('./VCDisplayCard2-8517f419.js');
47
47
  var VCThumbnail = require('./VCThumbnail-f84d0d01.js');
48
48
  var VCVerificationCheck = require('./VCVerificationCheck-92198135.js');
49
49
  var VCVerificationPill = require('./VCVerificationPill-b5824def.js');
@@ -129,12 +129,12 @@ require('./X.svg');
129
129
  require('./ArrowArcLeft.svg');
130
130
  require('./walletids.webp');
131
131
  require('./membership-graphic.png');
132
- require('./index-47efbf5b.js');
133
132
  require('./skillplaceholder.png');
134
133
  require('./skillgraph.svg');
135
134
  require('@learncard/init');
136
135
  require('./ArrowArcRight.svg');
137
136
  require('./icon.green.fat-arrow.png');
137
+ require('./i18n-cc7e34ec.js');
138
138
  require('./id-sleeve.png');
139
139
  require('./vc.check.svg');
140
140
  require('./RedXCircle.svg');
@@ -3,10 +3,11 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('react');
6
- var MeritBadgeDisplayCard = require('./MeritBadgeDisplayCard-1de23221.js');
6
+ var MeritBadgeDisplayCard = require('./MeritBadgeDisplayCard-15b85a79.js');
7
7
  require('./index-da255c9a.js');
8
8
  require('./types.esm-f1680b31.js');
9
9
  var MeritBadgeSkillsCount = require('./MeritBadgeSkillsCount-f62ad753.js');
10
+ require('./i18n-cc7e34ec.js');
10
11
  require('./VerifierStateBadgeAndText-c15064b2.js');
11
12
  require('./athletics.png');
12
13
  require('./business.png');
@@ -1 +1 @@
1
- {"version":3,"file":"index22.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index22.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,9 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var SchoolIDCard = require('./SchoolIDCard-2d3cbb2c.js');
5
+ var SchoolIDCard = require('./SchoolIDCard-10796199.js');
6
6
  require('react');
7
- require('./index-47efbf5b.js');
8
7
 
9
8
 
10
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"index31.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"index31.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var VCCard = require('./VCCard-31833e79.js');
5
+ var VCCard = require('./VCCard-4f02e2f4.js');
6
6
  require('react');
7
7
  require('@learncard/init');
8
8
  require('./VCDisplayCard-95b7f7dc.js');
@@ -25,8 +25,7 @@ require('./RedXCircle.svg');
25
25
  require('./GreenCheckCircle.svg');
26
26
  require('./YellowWarningCircle.svg');
27
27
  require('./ArrowArcRight.svg');
28
- require('./VCDisplayCard2-8b8aaea7.js');
29
- require('./index-47efbf5b.js');
28
+ require('./VCDisplayCard2-8517f419.js');
30
29
  require('./VerifierStateBadgeAndText-c15064b2.js');
31
30
  require('./athletics.png');
32
31
  require('./business.png');
@@ -39,11 +38,12 @@ require('./stem.png');
39
38
  require('./trade.png');
40
39
  require('./Lightbox-d72e19ba.js');
41
40
  require('react-dom');
41
+ require('./i18n-cc7e34ec.js');
42
42
  require('./CertificateDisplayCard-b673e66d.js');
43
43
  require('./DotsThreeOutline.svg');
44
44
  require('./QRCodeIcon-3021a53b.js');
45
45
  require('./id-sleeve.png');
46
- require('./MeritBadgeDisplayCard-1de23221.js');
46
+ require('./MeritBadgeDisplayCard-15b85a79.js');
47
47
 
48
48
 
49
49
 
@@ -14,11 +14,11 @@ require('./social.png');
14
14
  require('./stem.png');
15
15
  require('./trade.png');
16
16
  require('./index-da255c9a.js');
17
- var VCDisplayCard2 = require('./VCDisplayCard2-8b8aaea7.js');
17
+ var VCDisplayCard2 = require('./VCDisplayCard2-8517f419.js');
18
18
  require('./types.esm-f1680b31.js');
19
+ require('./i18n-cc7e34ec.js');
19
20
  require('./id-sleeve.png');
20
21
  require('./PuzzlePiece-e64f4596.js');
21
- require('./index-47efbf5b.js');
22
22
  require('./VCVerificationCheck-92198135.js');
23
23
  require('./vc.check.svg');
24
24
  require('./CircleSpinner-f518569a.js');
@@ -32,7 +32,7 @@ require('react-dom');
32
32
  require('./CertificateDisplayCard-b673e66d.js');
33
33
  require('./DotsThreeOutline.svg');
34
34
  require('./QRCodeIcon-3021a53b.js');
35
- require('./MeritBadgeDisplayCard-1de23221.js');
35
+ require('./MeritBadgeDisplayCard-15b85a79.js');
36
36
 
37
37
 
38
38
 
@@ -849,7 +849,7 @@ const MeritBadgeFrontFace = ({
849
849
  {
850
850
  className: `flex flex-col gap-[15px] items-center px-[20px] pt-[92px] pb-[19px] border-solid border-[4px] ${borderColor} rounded-[30px]`
851
851
  },
852
- /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-[5px] w-full" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col items-center text-grayscale-900" }, issueeName && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: "flex flex-wrap items-baseline justify-center gap-1 text-[16px] leading-[150%] font-jacques max-w-full overflow-hidden text-ellipsis whitespace-nowrap" }, !issueeDisplay.isMissing && issueeDisplay.isDidValue ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-900" }, "Digital ID:"), /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-600 underline" }, issueeDisplay.displayName)) : issueeName), /* @__PURE__ */ React.createElement("span", { className: "text-[14px] leading-[150%] font-jacques" }, "has met the requirements for"))), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React.createElement("h1", { className: "text-grayscale-900 text-center text-[25px] font-jacques w-full" }, title), /* @__PURE__ */ React.createElement(
852
+ /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-[5px] w-full" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col items-center text-grayscale-900" }, issueeName && !customBodyCardComponent && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: "flex flex-wrap items-baseline justify-center gap-1 text-[16px] leading-[150%] font-jacques max-w-full overflow-hidden text-ellipsis whitespace-nowrap" }, !issueeDisplay.isMissing && issueeDisplay.isDidValue ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-900" }, "Digital ID:"), /* @__PURE__ */ React.createElement("span", { className: "text-grayscale-600 underline" }, issueeDisplay.displayName)) : issueeName), /* @__PURE__ */ React.createElement("span", { className: "text-[14px] leading-[150%] font-jacques" }, "has met the requirements for"))), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React.createElement("h1", { className: "text-grayscale-900 text-center text-[25px] font-jacques w-full" }, title), /* @__PURE__ */ React.createElement(
853
853
  "div",
854
854
  {
855
855
  className: `${textLightColor} uppercase text-[14px] font-notoSans font-[600]`
@@ -1010,4 +1010,4 @@ const MeritBadgeDisplayCard = ({
1010
1010
  };
1011
1011
 
1012
1012
  export { MeritBadgeBackFace as M, MeritBadgeDisplayCard as a, MeritBadgeFrontFace as b };
1013
- //# sourceMappingURL=MeritBadgeDisplayCard-a7a504e0.js.map
1013
+ //# sourceMappingURL=MeritBadgeDisplayCard-2029a552.js.map