@learncard/react 2.12.0 → 2.12.2

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 (121) hide show
  1. package/dist/cjs/{BoostGenericCard-71899305.js → BoostGenericCard-06bedec7.js} +3 -3
  2. package/dist/cjs/{BoostGenericCard-71899305.js.map → BoostGenericCard-06bedec7.js.map} +1 -1
  3. package/dist/cjs/{CertificateDisplayCard-f10b46b1.js → CertificateDisplayCard-9c1d58da.js} +20 -14
  4. package/dist/cjs/CertificateDisplayCard-9c1d58da.js.map +1 -0
  5. package/dist/cjs/{MeritBadgeDisplayCard-d50cfb5e.js → MeritBadgeDisplayCard-201bf5ad.js} +4 -4
  6. package/dist/cjs/{MeritBadgeDisplayCard-d50cfb5e.js.map → MeritBadgeDisplayCard-201bf5ad.js.map} +1 -1
  7. package/dist/cjs/{MeritBadgeSkillsCount-e46503f5.js → MeritBadgeSkillsCount-ef283e0d.js} +2 -2
  8. package/dist/cjs/{MeritBadgeSkillsCount-e46503f5.js.map → MeritBadgeSkillsCount-ef283e0d.js.map} +1 -1
  9. package/dist/cjs/{SchoolIDCard-2d3cbb2c.js → SchoolIDCard-10796199.js} +1184 -3
  10. package/dist/cjs/SchoolIDCard-10796199.js.map +1 -0
  11. package/dist/cjs/{VCCard-42479c97.js → VCCard-d72176f3.js} +3 -3
  12. package/dist/cjs/{VCCard-42479c97.js.map → VCCard-d72176f3.js.map} +1 -1
  13. package/dist/cjs/{VCDisplayBackFace-d1cf9f73.js → VCDisplayBackFace-27460538.js} +3 -3
  14. package/dist/cjs/{VCDisplayBackFace-d1cf9f73.js.map → VCDisplayBackFace-27460538.js.map} +1 -1
  15. package/dist/cjs/{VCDisplayCard-cf46c224.js → VCDisplayCard-b05125ab.js} +3 -3
  16. package/dist/cjs/{VCDisplayCard-cf46c224.js.map → VCDisplayCard-b05125ab.js.map} +1 -1
  17. package/dist/cjs/{VCDisplayCard2-4a201a8a.js → VCDisplayCard2-78d4cc3f.js} +26 -18
  18. package/dist/cjs/VCDisplayCard2-78d4cc3f.js.map +1 -0
  19. package/dist/cjs/{VCVerificationPill-6c9dcf80.js → VCVerificationPill-3c130965.js} +2 -2
  20. package/dist/cjs/{VCVerificationPill-6c9dcf80.js.map → VCVerificationPill-3c130965.js.map} +1 -1
  21. package/dist/cjs/{VerifierStateBadgeAndText-934239ab.js → VerifierStateBadgeAndText-57a7b85f.js} +41 -4
  22. package/dist/cjs/VerifierStateBadgeAndText-57a7b85f.js.map +1 -0
  23. package/dist/cjs/{credential.helpers-17a10601.js → credential.helpers-3d0256cf.js} +2 -2
  24. package/dist/cjs/{credential.helpers-17a10601.js.map → credential.helpers-3d0256cf.js.map} +1 -1
  25. package/dist/cjs/{i18n-8fd90b2f.js → i18n-ddbb18e7.js} +12 -1
  26. package/dist/cjs/{i18n-8fd90b2f.js.map → i18n-ddbb18e7.js.map} +1 -1
  27. package/dist/cjs/index.js +14 -15
  28. package/dist/cjs/index.js.map +1 -1
  29. package/dist/cjs/index14.js +14 -15
  30. package/dist/cjs/index14.js.map +1 -1
  31. package/dist/cjs/index22.js +6 -6
  32. package/dist/cjs/index31.js +1 -2
  33. package/dist/cjs/index31.js.map +1 -1
  34. package/dist/cjs/index39.js +11 -12
  35. package/dist/cjs/index39.js.map +1 -1
  36. package/dist/cjs/index4.js +4 -4
  37. package/dist/cjs/index40.js +4 -4
  38. package/dist/cjs/index41.js +5 -5
  39. package/dist/cjs/index42.js +7 -8
  40. package/dist/cjs/index42.js.map +1 -1
  41. package/dist/cjs/index43.js +1 -1
  42. package/dist/cjs/index46.js +2 -2
  43. package/dist/cjs/index7.js +5 -4
  44. package/dist/cjs/index7.js.map +1 -1
  45. package/dist/cjs/{types.esm-73624b33.js → types.esm-228757cd.js} +30 -2
  46. package/dist/cjs/types.esm-228757cd.js.map +1 -0
  47. package/dist/esm/{BoostGenericCard-3b3ff784.js → BoostGenericCard-d4ea46de.js} +3 -3
  48. package/dist/esm/{BoostGenericCard-3b3ff784.js.map → BoostGenericCard-d4ea46de.js.map} +1 -1
  49. package/dist/esm/{CertificateDisplayCard-f26ef278.js → CertificateDisplayCard-487a3b4e.js} +20 -14
  50. package/dist/esm/CertificateDisplayCard-487a3b4e.js.map +1 -0
  51. package/dist/esm/{MeritBadgeDisplayCard-0d0b28c7.js → MeritBadgeDisplayCard-13622cd4.js} +4 -4
  52. package/dist/esm/{MeritBadgeDisplayCard-0d0b28c7.js.map → MeritBadgeDisplayCard-13622cd4.js.map} +1 -1
  53. package/dist/esm/{MeritBadgeSkillsCount-09e211fc.js → MeritBadgeSkillsCount-11bd0ae3.js} +2 -2
  54. package/dist/esm/{MeritBadgeSkillsCount-09e211fc.js.map → MeritBadgeSkillsCount-11bd0ae3.js.map} +1 -1
  55. package/dist/esm/{SchoolIDCard-fbd1cf6c.js → SchoolIDCard-f82e40bc.js} +1183 -2
  56. package/dist/esm/SchoolIDCard-f82e40bc.js.map +1 -0
  57. package/dist/esm/{VCCard-7e5e00d7.js → VCCard-7fa8f15b.js} +3 -3
  58. package/dist/esm/{VCCard-7e5e00d7.js.map → VCCard-7fa8f15b.js.map} +1 -1
  59. package/dist/esm/{VCDisplayBackFace-ae74476d.js → VCDisplayBackFace-314c1107.js} +3 -3
  60. package/dist/esm/{VCDisplayBackFace-ae74476d.js.map → VCDisplayBackFace-314c1107.js.map} +1 -1
  61. package/dist/esm/{VCDisplayCard-ac1f367a.js → VCDisplayCard-652910f5.js} +3 -3
  62. package/dist/esm/{VCDisplayCard-ac1f367a.js.map → VCDisplayCard-652910f5.js.map} +1 -1
  63. package/dist/esm/{VCDisplayCard2-7011596e.js → VCDisplayCard2-a8b9a519.js} +26 -18
  64. package/dist/esm/VCDisplayCard2-a8b9a519.js.map +1 -0
  65. package/dist/esm/{VCVerificationPill-04ffdf56.js → VCVerificationPill-be1140c5.js} +2 -2
  66. package/dist/esm/{VCVerificationPill-04ffdf56.js.map → VCVerificationPill-be1140c5.js.map} +1 -1
  67. package/dist/esm/{VerifierStateBadgeAndText-750a6c24.js → VerifierStateBadgeAndText-97117c5d.js} +41 -4
  68. package/dist/{cjs/VerifierStateBadgeAndText-934239ab.js.map → esm/VerifierStateBadgeAndText-97117c5d.js.map} +1 -1
  69. package/dist/esm/{credential.helpers-4fbdd8e8.js → credential.helpers-3dfe6b60.js} +2 -2
  70. package/dist/esm/{credential.helpers-4fbdd8e8.js.map → credential.helpers-3dfe6b60.js.map} +1 -1
  71. package/dist/esm/{i18n-08b606cb.js → i18n-35209bfa.js} +12 -1
  72. package/dist/esm/{i18n-08b606cb.js.map → i18n-35209bfa.js.map} +1 -1
  73. package/dist/esm/index.js +14 -15
  74. package/dist/esm/index.js.map +1 -1
  75. package/dist/esm/index14.js +14 -15
  76. package/dist/esm/index14.js.map +1 -1
  77. package/dist/esm/index22.js +6 -6
  78. package/dist/esm/index31.js +1 -2
  79. package/dist/esm/index31.js.map +1 -1
  80. package/dist/esm/index39.js +11 -12
  81. package/dist/esm/index39.js.map +1 -1
  82. package/dist/esm/index4.js +4 -4
  83. package/dist/esm/index40.js +4 -4
  84. package/dist/esm/index41.js +5 -5
  85. package/dist/esm/index42.js +7 -8
  86. package/dist/esm/index42.js.map +1 -1
  87. package/dist/esm/index43.js +1 -1
  88. package/dist/esm/index46.js +2 -2
  89. package/dist/esm/index7.js +5 -4
  90. package/dist/esm/index7.js.map +1 -1
  91. package/dist/esm/{types.esm-5f75bd4a.js → types.esm-a67e86b1.js} +30 -2
  92. package/dist/esm/types.esm-a67e86b1.js.map +1 -0
  93. package/dist/main.css +1 -1
  94. package/dist/main.js +1 -1
  95. package/package.json +6 -10
  96. package/src/components/CertificateDisplayCard/AlignmentRow.tsx +4 -2
  97. package/src/components/CertificateDisplayCard/AlignmentsBox.tsx +12 -9
  98. package/src/components/CertificateDisplayCard/InfoBox.tsx +3 -1
  99. package/src/components/CertificateDisplayCard/VerifierStateBadgeAndText.tsx +10 -6
  100. package/src/components/CircleIcon/__tests__/CircleIcon.test.tsx +1 -1
  101. package/src/components/VCDisplayCard2/InfoBox.tsx +3 -1
  102. package/src/components/VCDisplayCard2/TruncateTextBox.tsx +4 -2
  103. package/src/components/VCDisplayCard2/VC2BackFace.tsx +6 -4
  104. package/src/components/VCDisplayCard2/VC2FrontFaceInfo.tsx +3 -1
  105. package/src/components/VCDisplayCard2/VCDisplayCard2.tsx +10 -2
  106. package/src/components/VCDisplayCard2/__tests__/VC2LocalizedLabels.test.tsx +122 -0
  107. package/src/helpers/credential.helpers.test.ts +1 -1
  108. package/src/i18n/index.tsx +12 -0
  109. package/dist/cjs/CertificateDisplayCard-f10b46b1.js.map +0 -1
  110. package/dist/cjs/SchoolIDCard-2d3cbb2c.js.map +0 -1
  111. package/dist/cjs/VCDisplayCard2-4a201a8a.js.map +0 -1
  112. package/dist/cjs/index-47efbf5b.js +0 -1186
  113. package/dist/cjs/index-47efbf5b.js.map +0 -1
  114. package/dist/cjs/types.esm-73624b33.js.map +0 -1
  115. package/dist/esm/CertificateDisplayCard-f26ef278.js.map +0 -1
  116. package/dist/esm/SchoolIDCard-fbd1cf6c.js.map +0 -1
  117. package/dist/esm/VCDisplayCard2-7011596e.js.map +0 -1
  118. package/dist/esm/VerifierStateBadgeAndText-750a6c24.js.map +0 -1
  119. package/dist/esm/index-cbd2e9db.js +0 -1184
  120. package/dist/esm/index-cbd2e9db.js.map +0 -1
  121. package/dist/esm/types.esm-5f75bd4a.js.map +0 -1
@@ -7,7 +7,18 @@ const EN_DEFAULTS = {
7
7
  "verification.unknownIssuer": "Unknown Issuer",
8
8
  "verification.appIssuer": "Trusted App",
9
9
  "verification.untrustedIssuer": "Untrusted Issuer",
10
+ "credential.about": "About",
11
+ "credential.criteria": "Criteria",
12
+ "credential.alignments": "Alignments",
13
+ "credential.alignmentInfo": "Alignments in your Open Badge credential link your achievement to established frameworks, standards, or competencies. Each alignment shows how your boost directly relates to skills, knowledge areas, and professional standards that are recognized in your field.",
14
+ "credential.verifiedSource": "Verified source",
15
+ "credential.occupationsPrograms": "Occupations & programs",
16
+ "credential.verifiedLabel": "Verified",
17
+ "credential.openAlignmentSource": "Open alignment source",
18
+ "credential.more": "More",
19
+ "credential.close": "Close",
10
20
  "credential.by": "By",
21
+ "credential.verified": "Verified Credential",
11
22
  "verification.title": "Credential Verifications",
12
23
  "verification.infoText": "Credential verifications check the cryptographic proof of digital credentials to ensure their authenticity and accuracy.",
13
24
  "verification.status.success": "Success",
@@ -47,4 +58,4 @@ const useT = () => {
47
58
  };
48
59
 
49
60
  export { EN_DEFAULTS as E, I18nProvider as I, useT as u };
50
- //# sourceMappingURL=i18n-08b606cb.js.map
61
+ //# sourceMappingURL=i18n-35209bfa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-08b606cb.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.suspended': 'Suspended',\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 'credential.lifecycle.revoked': 'Revoked',\n 'credential.lifecycle.suspended': 'Suspended',\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":[],"mappings":";;AAsBA,MAAM,WAAA,GAAc,cAAuC,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,gCAAkC,EAAA,WAAA;AAAA,EAClC,oCAAsC,EAAA,iBAAA;AAAA,EACtC,8BAAgC,EAAA,SAAA;AAAA,EAChC,6BAA+B,EAAA,QAAA;AAAA,EAC/B,qCAAuC,EAAA,yCAAA;AAAA,EACvC,8BAAgC,EAAA,SAAA;AAAA,EAChC,gCAAkC,EAAA,WAAA;AACtC,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,GAAQ,OAA0B,CAAA,OAAO,EAAE,OAAA,EAAS,QAAW,CAAA,EAAA,CAAC,OAAS,EAAA,MAAM,CAAC,CAAA,CAAA;AACtF,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,WAAA,CAAY,QAAZ,EAAA,EAAqB,SAAe,QAAS,CAAA,CAAA;AACzD,EAAA;AAQO,MAAM,OAAO,MAAmE;AACnF,EAAM,MAAA,GAAA,GAAM,WAAW,WAAW,CAAA,CAAA;AAClC,EAAO,OAAA,WAAA;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;;;;"}
1
+ {"version":3,"file":"i18n-35209bfa.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.about': 'About',\n 'credential.criteria': 'Criteria',\n 'credential.alignments': 'Alignments',\n 'credential.alignmentInfo':\n 'Alignments in your Open Badge credential link your achievement to established frameworks, standards, or competencies. Each alignment shows how your boost directly relates to skills, knowledge areas, and professional standards that are recognized in your field.',\n 'credential.verifiedSource': 'Verified source',\n 'credential.occupationsPrograms': 'Occupations & programs',\n 'credential.verifiedLabel': 'Verified',\n 'credential.openAlignmentSource': 'Open alignment source',\n 'credential.more': 'More',\n 'credential.close': 'Close',\n 'credential.by': 'By',\n 'credential.verified': 'Verified Credential',\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.suspended': 'Suspended',\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 'credential.lifecycle.revoked': 'Revoked',\n 'credential.lifecycle.suspended': 'Suspended',\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":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import React, { useRef, useEffect, useMemo, useState } from 'react';
2
- export { S as SelectedSkills, V as VERIFIER_STATES, f as formatDidDisplayName, b as getAvatarColorFromString, g as getAvatarLetterFromDid, i as isDid, a as isLearnCardNetworkDid, r as resolveProfileDisplay } from './VerifierStateBadgeAndText-750a6c24.js';
2
+ export { S as SelectedSkills, V as VERIFIER_STATES, f as formatDidDisplayName, b as getAvatarColorFromString, g as getAvatarLetterFromDid, i as isDid, a as isLearnCardNetworkDid, r as resolveProfileDisplay } from './VerifierStateBadgeAndText-97117c5d.js';
3
3
  export { E as ExternalVideoFallback, L as Lightbox, c as canEmbedVideoIframe, g as getExternalVideoUrl, a as getVideoMetadata, o as openExternalUrl, s as setExternalUrlOpener } from './Lightbox-11f4888d.js';
4
- export { B as BoostGenericCard, g as getLifecycleTreatment } from './BoostGenericCard-3b3ff784.js';
5
- export { E as EN_DEFAULTS, I as I18nProvider, u as useT } from './i18n-08b606cb.js';
4
+ export { B as BoostGenericCard, g as getLifecycleTreatment } from './BoostGenericCard-d4ea46de.js';
5
+ export { E as EN_DEFAULTS, I as I18nProvider, u as useT } from './i18n-35209bfa.js';
6
6
  export { A as AchievementCard } from './AchievementCard-0f183e9d.js';
7
7
  export { B as BoostSmallCard } from './BoostSmallCard-3dedb5ae.js';
8
8
  export { B as Button } from './Button-70eedbf6.js';
9
- export { C as CertDisplayCardSkillsCount, a as CertificateBackFace, b as CertificateDisplayCard, c as CertificateFrontFace } from './CertificateDisplayCard-f26ef278.js';
9
+ export { C as CertDisplayCardSkillsCount, a as CertificateBackFace, b as CertificateDisplayCard, c as CertificateFrontFace } from './CertificateDisplayCard-487a3b4e.js';
10
10
  export { C as CircleCheckButton } from './CircleCheckButton-23a9c7d4.js';
11
11
  export { a as CircleIcon, C as CountCircle } from './CircleIcon-abd5ff06.js';
12
12
  export { C as CourseCard } from './CourseCard-990fdc99.js';
@@ -19,8 +19,8 @@ export { L as LearnCardCreditCardBackFace } from './LearnCardCreditCardBackFace-
19
19
  export { L as LearnCardCreditCardFrontFace } from './LearnCardCreditCardFrontFace-13d29504.js';
20
20
  export { L as LearnPill } from './LearnPill-ce240a4a.js';
21
21
  export { C as CircleLoadingState } from './CircleSpinner-03a329fc.js';
22
- export { M as MeritBadgeBackFace, a as MeritBadgeDisplayCard, b as MeritBadgeFrontFace } from './MeritBadgeDisplayCard-0d0b28c7.js';
23
- export { M as MeritBadgeSkillsCount } from './MeritBadgeSkillsCount-09e211fc.js';
22
+ export { M as MeritBadgeBackFace, a as MeritBadgeDisplayCard, b as MeritBadgeFrontFace } from './MeritBadgeDisplayCard-13622cd4.js';
23
+ export { M as MeritBadgeSkillsCount } from './MeritBadgeSkillsCount-11bd0ae3.js';
24
24
  export { M as MiniVCThumbnail } from './MiniVCThumbnail-cc05e1f8.js';
25
25
  export { N as Notification } from './Notification-279ba207.js';
26
26
  export { N as NotificationTypeStyles } from './types-c765e2a4.js';
@@ -31,20 +31,20 @@ export { U as UserNotificationTypeStyles } from './types-b32d28d5.js';
31
31
  export { Q as QRCodeCard } from './QRCodeCard-3abf9f33.js';
32
32
  export { C as CheckmarkSvg, R as RoundedPill } from './RoundedPill-50279e5d.js';
33
33
  export { R as RoundedSquare, a as TYPE_TO_IMG_SRC, T as TYPE_TO_MINI_ICON, b as TYPE_TO_WALLET_COLOR, W as WALLET_SUBTYPES } from './constants-010faf74.js';
34
- export { S as SchoolIDCard } from './SchoolIDCard-fbd1cf6c.js';
34
+ export { S as SchoolIDCard } from './SchoolIDCard-f82e40bc.js';
35
35
  export { S as SkillTabCard } from './SkillTabCard-f2edb3fc.js';
36
36
  export { S as SkillVerticalCard } from './SkillVerticalCard-045169f9.js';
37
37
  export { a as SkillsCard, S as SkillsMeterSegment } from './SkillsCard-5279aac9.js';
38
38
  export { S as SkillsStatsCard } from './SkillsStatsCard-e0cd6137.js';
39
39
  export { S as SmallAchievementCard } from './SmallAchievementCard-24dfa453.js';
40
40
  export { U as UserProfilePicture } from './UserProfilePicture-50c34186.js';
41
- export { V as VCCard } from './VCCard-7e5e00d7.js';
42
- export { V as VCDisplayBackFace } from './VCDisplayBackFace-ae74476d.js';
43
- export { V as VCDisplayCard } from './VCDisplayCard-ac1f367a.js';
44
- export { V as VCDisplayCard2, a as VCDisplayCardSkillsCount, b as VCIDDisplayCard, g as getVCDisplayCardVariant } from './VCDisplayCard2-7011596e.js';
41
+ export { V as VCCard } from './VCCard-7fa8f15b.js';
42
+ export { V as VCDisplayBackFace } from './VCDisplayBackFace-314c1107.js';
43
+ export { V as VCDisplayCard } from './VCDisplayCard-652910f5.js';
44
+ export { V as VCDisplayCard2, a as VCDisplayCardSkillsCount, b as VCIDDisplayCard, g as getVCDisplayCardVariant } from './VCDisplayCard2-a8b9a519.js';
45
45
  export { V as VCThumbnail } from './VCThumbnail-835921dd.js';
46
46
  export { V as VCVerificationCheck, a as VCVerificationCheckWithSpinner, b as VCVerificationCheckWithText } from './VCVerificationCheck-8b8b7a76.js';
47
- export { V as ValidationStateIndicator } from './VCVerificationPill-04ffdf56.js';
47
+ export { V as ValidationStateIndicator } from './VCVerificationPill-be1140c5.js';
48
48
  export { A as AwardDisplayIcon, B as BadgeDisplayIcon, C as CertificateDisplayIcon, a as CourseDisplayIcon, I as IDDisplayIcon } from './IDDisplayIcon-f6993140.js';
49
49
  export { A as AwardRibbon, I as IDIcon, Q as QRCodeIcon } from './QRCodeIcon-8eef4f7c.js';
50
50
  export { B as Briefcase, G as Graduation, U as User } from './User-f5ea0f01.js';
@@ -64,7 +64,7 @@ import './social.png';
64
64
  import './stem.png';
65
65
  import './trade.png';
66
66
  import './PuzzlePiece-a3d9cc62.js';
67
- import './types.esm-5f75bd4a.js';
67
+ import './types.esm-a67e86b1.js';
68
68
  import 'react-dom';
69
69
  import './index-28917993.js';
70
70
  import './index-7542e9ee.js';
@@ -84,7 +84,7 @@ import './eventsGraphic.png';
84
84
  import './minitrophycolored.svg';
85
85
  import './minigradcapcolored.svg';
86
86
  import './minipuzzlecolored.svg';
87
- import './credential.helpers-4fbdd8e8.js';
87
+ import './credential.helpers-3dfe6b60.js';
88
88
  import './index-cb3a593b.js';
89
89
  import './BadgeThumbnailImg-7d436367.js';
90
90
  import './CaretRightFilled.svg';
@@ -126,7 +126,6 @@ import './X.svg';
126
126
  import './ArrowArcLeft.svg';
127
127
  import './walletids.webp';
128
128
  import './membership-graphic.png';
129
- import './index-cbd2e9db.js';
130
129
  import './skillplaceholder.png';
131
130
  import './skillgraph.svg';
132
131
  import '@learncard/init';
@@ -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":[],"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":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  export { A as AchievementCard } from './AchievementCard-0f183e9d.js';
2
- export { B as BoostGenericCard } from './BoostGenericCard-3b3ff784.js';
2
+ export { B as BoostGenericCard } from './BoostGenericCard-d4ea46de.js';
3
3
  export { B as BoostSmallCard } from './BoostSmallCard-3dedb5ae.js';
4
4
  export { B as Button } from './Button-70eedbf6.js';
5
- export { C as CertDisplayCardSkillsCount, a as CertificateBackFace, b as CertificateDisplayCard, c as CertificateFrontFace } from './CertificateDisplayCard-f26ef278.js';
6
- export { S as SelectedSkills, V as VERIFIER_STATES } from './VerifierStateBadgeAndText-750a6c24.js';
5
+ export { C as CertDisplayCardSkillsCount, a as CertificateBackFace, b as CertificateDisplayCard, c as CertificateFrontFace } from './CertificateDisplayCard-487a3b4e.js';
6
+ export { S as SelectedSkills, V as VERIFIER_STATES } from './VerifierStateBadgeAndText-97117c5d.js';
7
7
  export { C as CircleCheckButton } from './CircleCheckButton-23a9c7d4.js';
8
8
  export { a as CircleIcon, C as CountCircle } from './CircleIcon-abd5ff06.js';
9
9
  export { C as CourseCard } from './CourseCard-990fdc99.js';
@@ -17,8 +17,8 @@ export { L as LearnCardCreditCardFrontFace } from './LearnCardCreditCardFrontFac
17
17
  export { L as LearnPill } from './LearnPill-ce240a4a.js';
18
18
  export { E as ExternalVideoFallback, L as Lightbox } from './Lightbox-11f4888d.js';
19
19
  export { C as CircleLoadingState } from './CircleSpinner-03a329fc.js';
20
- export { M as MeritBadgeBackFace, a as MeritBadgeDisplayCard, b as MeritBadgeFrontFace } from './MeritBadgeDisplayCard-0d0b28c7.js';
21
- export { M as MeritBadgeSkillsCount } from './MeritBadgeSkillsCount-09e211fc.js';
20
+ export { M as MeritBadgeBackFace, a as MeritBadgeDisplayCard, b as MeritBadgeFrontFace } from './MeritBadgeDisplayCard-13622cd4.js';
21
+ export { M as MeritBadgeSkillsCount } from './MeritBadgeSkillsCount-11bd0ae3.js';
22
22
  export { M as MiniVCThumbnail } from './MiniVCThumbnail-cc05e1f8.js';
23
23
  export { N as Notification } from './Notification-279ba207.js';
24
24
  export { N as NotificationTypeStyles } from './types-c765e2a4.js';
@@ -29,20 +29,20 @@ export { U as UserNotificationTypeStyles } from './types-b32d28d5.js';
29
29
  export { Q as QRCodeCard } from './QRCodeCard-3abf9f33.js';
30
30
  export { C as CheckmarkSvg, R as RoundedPill } from './RoundedPill-50279e5d.js';
31
31
  export { R as RoundedSquare, a as TYPE_TO_IMG_SRC, T as TYPE_TO_MINI_ICON, b as TYPE_TO_WALLET_COLOR, W as WALLET_SUBTYPES } from './constants-010faf74.js';
32
- export { S as SchoolIDCard } from './SchoolIDCard-fbd1cf6c.js';
32
+ export { S as SchoolIDCard } from './SchoolIDCard-f82e40bc.js';
33
33
  export { S as SkillTabCard } from './SkillTabCard-f2edb3fc.js';
34
34
  export { S as SkillVerticalCard } from './SkillVerticalCard-045169f9.js';
35
35
  export { a as SkillsCard, S as SkillsMeterSegment } from './SkillsCard-5279aac9.js';
36
36
  export { S as SkillsStatsCard } from './SkillsStatsCard-e0cd6137.js';
37
37
  export { S as SmallAchievementCard } from './SmallAchievementCard-24dfa453.js';
38
38
  export { U as UserProfilePicture } from './UserProfilePicture-50c34186.js';
39
- export { V as VCCard } from './VCCard-7e5e00d7.js';
40
- export { V as VCDisplayBackFace } from './VCDisplayBackFace-ae74476d.js';
41
- export { V as VCDisplayCard } from './VCDisplayCard-ac1f367a.js';
42
- export { V as VCDisplayCard2, a as VCDisplayCardSkillsCount, b as VCIDDisplayCard, g as getVCDisplayCardVariant } from './VCDisplayCard2-7011596e.js';
39
+ export { V as VCCard } from './VCCard-7fa8f15b.js';
40
+ export { V as VCDisplayBackFace } from './VCDisplayBackFace-314c1107.js';
41
+ export { V as VCDisplayCard } from './VCDisplayCard-652910f5.js';
42
+ export { V as VCDisplayCard2, a as VCDisplayCardSkillsCount, b as VCIDDisplayCard, g as getVCDisplayCardVariant } from './VCDisplayCard2-a8b9a519.js';
43
43
  export { V as VCThumbnail } from './VCThumbnail-835921dd.js';
44
44
  export { V as VCVerificationCheck, a as VCVerificationCheckWithSpinner, b as VCVerificationCheckWithText } from './VCVerificationCheck-8b8b7a76.js';
45
- export { V as ValidationStateIndicator } from './VCVerificationPill-04ffdf56.js';
45
+ export { V as ValidationStateIndicator } from './VCVerificationPill-be1140c5.js';
46
46
  export { A as AwardDisplayIcon, B as BadgeDisplayIcon, C as CertificateDisplayIcon, a as CourseDisplayIcon, I as IDDisplayIcon } from './IDDisplayIcon-f6993140.js';
47
47
  export { A as AwardRibbon, I as IDIcon, Q as QRCodeIcon } from './QRCodeIcon-8eef4f7c.js';
48
48
  export { B as Briefcase, G as Graduation, U as User } from './User-f5ea0f01.js';
@@ -72,11 +72,11 @@ import './minigradcapcolored.svg';
72
72
  import './minipuzzlecolored.svg';
73
73
  import './index-28917993.js';
74
74
  import './PuzzlePiece-a3d9cc62.js';
75
- import './credential.helpers-4fbdd8e8.js';
75
+ import './credential.helpers-3dfe6b60.js';
76
76
  import './index-cb3a593b.js';
77
- import './types.esm-5f75bd4a.js';
77
+ import './types.esm-a67e86b1.js';
78
78
  import './BadgeThumbnailImg-7d436367.js';
79
- import './i18n-08b606cb.js';
79
+ import './i18n-35209bfa.js';
80
80
  import './CaretRightFilled.svg';
81
81
  import './addawardlight.svg';
82
82
  import './DotsThreeOutline.svg';
@@ -126,7 +126,6 @@ import './X.svg';
126
126
  import './ArrowArcLeft.svg';
127
127
  import './walletids.webp';
128
128
  import './membership-graphic.png';
129
- import './index-cbd2e9db.js';
130
129
  import './skillplaceholder.png';
131
130
  import './skillgraph.svg';
132
131
  import '@learncard/init';
@@ -1 +1 @@
1
- {"version":3,"file":"index14.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index14.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,10 @@
1
1
  import 'react';
2
- export { M as MeritBadgeBackFace, a as MeritBadgeDisplayCard, b as MeritBadgeFrontFace } from './MeritBadgeDisplayCard-0d0b28c7.js';
2
+ export { M as MeritBadgeBackFace, a as MeritBadgeDisplayCard, b as MeritBadgeFrontFace } from './MeritBadgeDisplayCard-13622cd4.js';
3
3
  import './index-cb3a593b.js';
4
- import './types.esm-5f75bd4a.js';
5
- export { M as MeritBadgeSkillsCount } from './MeritBadgeSkillsCount-09e211fc.js';
6
- import './i18n-08b606cb.js';
7
- import './VerifierStateBadgeAndText-750a6c24.js';
4
+ import './types.esm-a67e86b1.js';
5
+ export { M as MeritBadgeSkillsCount } from './MeritBadgeSkillsCount-11bd0ae3.js';
6
+ import './i18n-35209bfa.js';
7
+ import './VerifierStateBadgeAndText-97117c5d.js';
8
8
  import './athletics.png';
9
9
  import './business.png';
10
10
  import './creative.png';
@@ -15,7 +15,7 @@ import './social.png';
15
15
  import './stem.png';
16
16
  import './trade.png';
17
17
  import './PuzzlePiece-a3d9cc62.js';
18
- import './credential.helpers-4fbdd8e8.js';
18
+ import './credential.helpers-3dfe6b60.js';
19
19
  import './index-28917993.js';
20
20
  import './User-f5ea0f01.js';
21
21
  import './Trophy-fc7fdec4.js';
@@ -1,4 +1,3 @@
1
- export { S as SchoolIDCard } from './SchoolIDCard-fbd1cf6c.js';
1
+ export { S as SchoolIDCard } from './SchoolIDCard-f82e40bc.js';
2
2
  import 'react';
3
- import './index-cbd2e9db.js';
4
3
  //# sourceMappingURL=index31.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index31.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index31.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,29 +1,28 @@
1
- export { V as VCCard } from './VCCard-7e5e00d7.js';
1
+ export { V as VCCard } from './VCCard-7fa8f15b.js';
2
2
  import 'react';
3
3
  import '@learncard/init';
4
- import './VCDisplayCard-ac1f367a.js';
4
+ import './VCDisplayCard-652910f5.js';
5
5
  import './FlippyCard-458dc9b1.js';
6
6
  import './icon.green.fat-arrow.png';
7
7
  import './UserProfilePicture-50c34186.js';
8
8
  import './VCVerificationCheck-8b8b7a76.js';
9
9
  import './vc.check.svg';
10
10
  import './CircleSpinner-03a329fc.js';
11
- import './credential.helpers-4fbdd8e8.js';
11
+ import './credential.helpers-3dfe6b60.js';
12
12
  import './index-cb3a593b.js';
13
- import './types.esm-5f75bd4a.js';
13
+ import './types.esm-a67e86b1.js';
14
14
  import './index-28917993.js';
15
15
  import './PuzzlePiece-a3d9cc62.js';
16
16
  import './User-f5ea0f01.js';
17
17
  import './Trophy-fc7fdec4.js';
18
- import './VCDisplayBackFace-ae74476d.js';
19
- import './VCVerificationPill-04ffdf56.js';
18
+ import './VCDisplayBackFace-314c1107.js';
19
+ import './VCVerificationPill-be1140c5.js';
20
20
  import './RedXCircle.svg';
21
21
  import './GreenCheckCircle.svg';
22
22
  import './YellowWarningCircle.svg';
23
23
  import './ArrowArcRight.svg';
24
- import './VCDisplayCard2-7011596e.js';
25
- import './index-cbd2e9db.js';
26
- import './VerifierStateBadgeAndText-750a6c24.js';
24
+ import './VCDisplayCard2-a8b9a519.js';
25
+ import './VerifierStateBadgeAndText-97117c5d.js';
27
26
  import './athletics.png';
28
27
  import './business.png';
29
28
  import './creative.png';
@@ -33,12 +32,12 @@ import './medical.png';
33
32
  import './social.png';
34
33
  import './stem.png';
35
34
  import './trade.png';
35
+ import './i18n-35209bfa.js';
36
36
  import './Lightbox-11f4888d.js';
37
37
  import 'react-dom';
38
- import './i18n-08b606cb.js';
39
- import './CertificateDisplayCard-f26ef278.js';
38
+ import './CertificateDisplayCard-487a3b4e.js';
40
39
  import './DotsThreeOutline.svg';
41
40
  import './QRCodeIcon-8eef4f7c.js';
42
41
  import './id-sleeve.png';
43
- import './MeritBadgeDisplayCard-0d0b28c7.js';
42
+ import './MeritBadgeDisplayCard-13622cd4.js';
44
43
  //# sourceMappingURL=index39.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index39.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index39.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import 'react';
2
2
  import './index-cb3a593b.js';
3
- import './types.esm-5f75bd4a.js';
4
- export { B as BoostGenericCard } from './BoostGenericCard-3b3ff784.js';
3
+ import './types.esm-a67e86b1.js';
4
+ export { B as BoostGenericCard } from './BoostGenericCard-d4ea46de.js';
5
5
  import './index-28917993.js';
6
6
  import './index-7542e9ee.js';
7
7
  import './walletcurrency.webp';
@@ -22,12 +22,12 @@ import './minigradcapcolored.svg';
22
22
  import './minipuzzlecolored.svg';
23
23
  import './IDDisplayIcon-f6993140.js';
24
24
  import './PuzzlePiece-a3d9cc62.js';
25
- import './credential.helpers-4fbdd8e8.js';
25
+ import './credential.helpers-3dfe6b60.js';
26
26
  import './User-f5ea0f01.js';
27
27
  import './Trophy-fc7fdec4.js';
28
28
  import './ThreeDotVertical-ccbbc8ef.js';
29
29
  import './BadgeThumbnailImg-7d436367.js';
30
- import './i18n-08b606cb.js';
30
+ import './i18n-35209bfa.js';
31
31
  import './CircleCheckButton-23a9c7d4.js';
32
32
  import './RoundedPill-50279e5d.js';
33
33
  import './icons-fdd35170.js';
@@ -1,15 +1,15 @@
1
- export { V as VCDisplayBackFace } from './VCDisplayBackFace-ae74476d.js';
1
+ export { V as VCDisplayBackFace } from './VCDisplayBackFace-314c1107.js';
2
2
  import 'react';
3
3
  import './VCVerificationCheck-8b8b7a76.js';
4
4
  import './vc.check.svg';
5
5
  import './CircleSpinner-03a329fc.js';
6
- import './VCVerificationPill-04ffdf56.js';
7
- import './types.esm-5f75bd4a.js';
6
+ import './VCVerificationPill-be1140c5.js';
7
+ import './types.esm-a67e86b1.js';
8
8
  import './RedXCircle.svg';
9
9
  import './GreenCheckCircle.svg';
10
10
  import './YellowWarningCircle.svg';
11
11
  import './ArrowArcRight.svg';
12
- import './credential.helpers-4fbdd8e8.js';
12
+ import './credential.helpers-3dfe6b60.js';
13
13
  import './index-cb3a593b.js';
14
14
  import './index-28917993.js';
15
15
  import './PuzzlePiece-a3d9cc62.js';
@@ -1,4 +1,4 @@
1
- export { V as VCDisplayCard } from './VCDisplayCard-ac1f367a.js';
1
+ export { V as VCDisplayCard } from './VCDisplayCard-652910f5.js';
2
2
  import 'react';
3
3
  import './FlippyCard-458dc9b1.js';
4
4
  import './icon.green.fat-arrow.png';
@@ -6,15 +6,15 @@ import './UserProfilePicture-50c34186.js';
6
6
  import './VCVerificationCheck-8b8b7a76.js';
7
7
  import './vc.check.svg';
8
8
  import './CircleSpinner-03a329fc.js';
9
- import './credential.helpers-4fbdd8e8.js';
9
+ import './credential.helpers-3dfe6b60.js';
10
10
  import './index-cb3a593b.js';
11
- import './types.esm-5f75bd4a.js';
11
+ import './types.esm-a67e86b1.js';
12
12
  import './index-28917993.js';
13
13
  import './PuzzlePiece-a3d9cc62.js';
14
14
  import './User-f5ea0f01.js';
15
15
  import './Trophy-fc7fdec4.js';
16
- import './VCDisplayBackFace-ae74476d.js';
17
- import './VCVerificationPill-04ffdf56.js';
16
+ import './VCDisplayBackFace-314c1107.js';
17
+ import './VCVerificationPill-be1140c5.js';
18
18
  import './RedXCircle.svg';
19
19
  import './GreenCheckCircle.svg';
20
20
  import './YellowWarningCircle.svg';
@@ -1,5 +1,6 @@
1
1
  import 'react';
2
- export { S as SelectedSkills } from './VerifierStateBadgeAndText-750a6c24.js';
2
+ import './i18n-35209bfa.js';
3
+ export { S as SelectedSkills } from './VerifierStateBadgeAndText-97117c5d.js';
3
4
  import './athletics.png';
4
5
  import './business.png';
5
6
  import './creative.png';
@@ -10,24 +11,22 @@ import './social.png';
10
11
  import './stem.png';
11
12
  import './trade.png';
12
13
  import './index-cb3a593b.js';
13
- export { V as VCDisplayCard2, a as VCDisplayCardSkillsCount, b as VCIDDisplayCard, g as getVCDisplayCardVariant } from './VCDisplayCard2-7011596e.js';
14
- import './types.esm-5f75bd4a.js';
15
- import './i18n-08b606cb.js';
14
+ export { V as VCDisplayCard2, a as VCDisplayCardSkillsCount, b as VCIDDisplayCard, g as getVCDisplayCardVariant } from './VCDisplayCard2-a8b9a519.js';
15
+ import './types.esm-a67e86b1.js';
16
16
  import './id-sleeve.png';
17
17
  import './PuzzlePiece-a3d9cc62.js';
18
- import './index-cbd2e9db.js';
19
18
  import './VCVerificationCheck-8b8b7a76.js';
20
19
  import './vc.check.svg';
21
20
  import './CircleSpinner-03a329fc.js';
22
21
  import './UserProfilePicture-50c34186.js';
23
- import './credential.helpers-4fbdd8e8.js';
22
+ import './credential.helpers-3dfe6b60.js';
24
23
  import './index-28917993.js';
25
24
  import './User-f5ea0f01.js';
26
25
  import './Trophy-fc7fdec4.js';
27
26
  import './Lightbox-11f4888d.js';
28
27
  import 'react-dom';
29
- import './CertificateDisplayCard-f26ef278.js';
28
+ import './CertificateDisplayCard-487a3b4e.js';
30
29
  import './DotsThreeOutline.svg';
31
30
  import './QRCodeIcon-8eef4f7c.js';
32
- import './MeritBadgeDisplayCard-0d0b28c7.js';
31
+ import './MeritBadgeDisplayCard-13622cd4.js';
33
32
  //# sourceMappingURL=index42.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index42.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index42.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,5 +2,5 @@ import 'react';
2
2
  import './icon.green.fat-arrow.png';
3
3
  import './vc.check.svg';
4
4
  import './index-cb3a593b.js';
5
- import './types.esm-5f75bd4a.js';
5
+ import './types.esm-a67e86b1.js';
6
6
  //# sourceMappingURL=index43.js.map
@@ -1,6 +1,6 @@
1
- export { V as ValidationStateIndicator } from './VCVerificationPill-04ffdf56.js';
1
+ export { V as ValidationStateIndicator } from './VCVerificationPill-be1140c5.js';
2
2
  import 'react';
3
- import './types.esm-5f75bd4a.js';
3
+ import './types.esm-a67e86b1.js';
4
4
  import './RedXCircle.svg';
5
5
  import './GreenCheckCircle.svg';
6
6
  import './YellowWarningCircle.svg';
@@ -1,9 +1,10 @@
1
1
  import 'react';
2
- export { C as CertDisplayCardSkillsCount, a as CertificateBackFace, b as CertificateDisplayCard, c as CertificateFrontFace } from './CertificateDisplayCard-f26ef278.js';
2
+ import './i18n-35209bfa.js';
3
+ export { C as CertDisplayCardSkillsCount, a as CertificateBackFace, b as CertificateDisplayCard, c as CertificateFrontFace } from './CertificateDisplayCard-487a3b4e.js';
3
4
  import './index-cb3a593b.js';
4
- import './types.esm-5f75bd4a.js';
5
- export { V as VERIFIER_STATES } from './VerifierStateBadgeAndText-750a6c24.js';
6
- import './credential.helpers-4fbdd8e8.js';
5
+ import './types.esm-a67e86b1.js';
6
+ export { V as VERIFIER_STATES } from './VerifierStateBadgeAndText-97117c5d.js';
7
+ import './credential.helpers-3dfe6b60.js';
7
8
  import './index-28917993.js';
8
9
  import './PuzzlePiece-a3d9cc62.js';
9
10
  import './User-f5ea0f01.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index7.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index7.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -8032,6 +8032,31 @@ var LCNPublicProfileValidator = LCNProfileValidator.pick({
8032
8032
  isServiceProfile: true,
8033
8033
  display: true
8034
8034
  });
8035
+ var LCNConnectionPromptStatusValidator = _enum(["PENDING", "SKIPPED", "CONNECTED"]);
8036
+ var LCNConnectionPromptSurfaceValidator = _enum(["POST_CLAIM", "NOTIFICATION"]);
8037
+ var LCNConnectionPromptActionStatusValidator = _enum([
8038
+ "PENDING",
8039
+ "SKIPPED",
8040
+ "CONNECTED",
8041
+ "STALE"
8042
+ ]);
8043
+ object({
8044
+ promptId: string().uuid(),
8045
+ status: LCNConnectionPromptStatusValidator,
8046
+ surface: LCNConnectionPromptSurfaceValidator,
8047
+ triggerId: string(),
8048
+ triggeredAt: datetime(),
8049
+ updatedAt: datetime(),
8050
+ counterpart: LCNPublicProfileValidator
8051
+ });
8052
+ object({
8053
+ promptId: string().uuid(),
8054
+ status: LCNConnectionPromptActionStatusValidator
8055
+ });
8056
+ var LCNConnectionPromptMetadataValidator = object({
8057
+ promptId: string().uuid(),
8058
+ counterpartProfileId: string()
8059
+ });
8035
8060
  var LCNAuthedProfileValidator = LCNPublicProfileValidator.extend({
8036
8061
  bio: LCNProfileValidator.shape.bio,
8037
8062
  websiteLink: LCNProfileValidator.shape.websiteLink,
@@ -8597,12 +8622,15 @@ var LCNNotificationInboxValidator = object({
8597
8622
  }),
8598
8623
  timestamp: datetime().optional()
8599
8624
  });
8625
+ var LCNNotificationMetadataValidator = object({
8626
+ connectionPrompt: LCNConnectionPromptMetadataValidator.optional()
8627
+ }).catchall(unknown());
8600
8628
  var LCNNotificationDataValidator = object({
8601
8629
  vcUris: array(string()).optional(),
8602
8630
  vpUris: array(string()).optional(),
8603
8631
  transaction: ConsentFlowTransactionValidator.optional(),
8604
8632
  inbox: LCNNotificationInboxValidator.optional(),
8605
- metadata: record(string(), unknown()).optional()
8633
+ metadata: LCNNotificationMetadataValidator.optional()
8606
8634
  }).loose();
8607
8635
  object({
8608
8636
  type: LCNNotificationTypeEnumValidator,
@@ -9447,4 +9475,4 @@ object({
9447
9475
  }).passthrough();
9448
9476
 
9449
9477
  export { VerificationStatusEnum as V, literal as l, number as n, object as o, string as s, union as u };
9450
- //# sourceMappingURL=types.esm-5f75bd4a.js.map
9478
+ //# sourceMappingURL=types.esm-a67e86b1.js.map