@learncard/react 2.9.26 → 2.9.28

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 (106) hide show
  1. package/dist/cjs/{BoostGenericCard-82a9b3df.js → BoostGenericCard-310cd633.js} +2 -2
  2. package/dist/cjs/{BoostGenericCard-82a9b3df.js.map → BoostGenericCard-310cd633.js.map} +1 -1
  3. package/dist/cjs/{BoostSmallCard-2141fdd9.js → BoostSmallCard-4e200046.js} +2 -2
  4. package/dist/cjs/{BoostSmallCard-2141fdd9.js.map → BoostSmallCard-4e200046.js.map} +1 -1
  5. package/dist/cjs/{CertificateDisplayCard-0ac85a2b.js → CertificateDisplayCard-6658f859.js} +48 -19
  6. package/dist/cjs/CertificateDisplayCard-6658f859.js.map +1 -0
  7. package/dist/cjs/{MeritBadgeDisplayCard-e6d6ff8f.js → MeritBadgeDisplayCard-5e198547.js} +40 -74
  8. package/dist/cjs/MeritBadgeDisplayCard-5e198547.js.map +1 -0
  9. package/dist/cjs/{MeritBadgeSkillsCount-8c82275d.js → MeritBadgeSkillsCount-8307d493.js} +2 -2
  10. package/dist/cjs/{MeritBadgeSkillsCount-8c82275d.js.map → MeritBadgeSkillsCount-8307d493.js.map} +1 -1
  11. package/dist/cjs/{NotificationBoostCard-c4679a33.js → NotificationBoostCard-80dbf681.js} +2 -2
  12. package/dist/cjs/{NotificationBoostCard-c4679a33.js.map → NotificationBoostCard-80dbf681.js.map} +1 -1
  13. package/dist/cjs/UserProfilePicture-22944d8f.js +98 -0
  14. package/dist/cjs/UserProfilePicture-22944d8f.js.map +1 -0
  15. package/dist/cjs/{VCCard-2b76ce0d.js → VCCard-1dae1967.js} +3 -3
  16. package/dist/cjs/{VCCard-2b76ce0d.js.map → VCCard-1dae1967.js.map} +1 -1
  17. package/dist/cjs/{VCDisplayBackFace-d6ef7575.js → VCDisplayBackFace-f220ad7d.js} +3 -3
  18. package/dist/cjs/{VCDisplayBackFace-d6ef7575.js.map → VCDisplayBackFace-f220ad7d.js.map} +1 -1
  19. package/dist/cjs/{VCDisplayCard-c1ef1b32.js → VCDisplayCard-b3f9ae8d.js} +4 -4
  20. package/dist/cjs/{VCDisplayCard-c1ef1b32.js.map → VCDisplayCard-b3f9ae8d.js.map} +1 -1
  21. package/dist/cjs/{VCDisplayCard2-fb48d830.js → VCDisplayCard2-1bb03756.js} +32 -17
  22. package/dist/cjs/VCDisplayCard2-1bb03756.js.map +1 -0
  23. package/dist/cjs/{VCVerificationPill-db886a9a.js → VCVerificationPill-ae3e2fbb.js} +2 -2
  24. package/dist/cjs/{VCVerificationPill-db886a9a.js.map → VCVerificationPill-ae3e2fbb.js.map} +1 -1
  25. package/dist/cjs/{VerifierStateBadgeAndText-4c22c62f.js → VerifierStateBadgeAndText-7c29504e.js} +206 -27
  26. package/dist/cjs/VerifierStateBadgeAndText-7c29504e.js.map +1 -0
  27. package/dist/cjs/{credential.helpers-af8eb27a.js → credential.helpers-4e3cf40c.js} +2 -2
  28. package/dist/cjs/{credential.helpers-af8eb27a.js.map → credential.helpers-4e3cf40c.js.map} +1 -1
  29. package/dist/cjs/index.js +15 -15
  30. package/dist/cjs/index13.js +15 -15
  31. package/dist/cjs/index21.js +6 -6
  32. package/dist/cjs/index24.js +2 -2
  33. package/dist/cjs/index3.js +3 -3
  34. package/dist/cjs/index37.js +1 -1
  35. package/dist/cjs/index38.js +11 -11
  36. package/dist/cjs/index39.js +4 -4
  37. package/dist/cjs/index4.js +2 -2
  38. package/dist/cjs/index40.js +6 -6
  39. package/dist/cjs/index41.js +7 -7
  40. package/dist/cjs/index42.js +1 -1
  41. package/dist/cjs/index45.js +2 -2
  42. package/dist/cjs/index6.js +5 -5
  43. package/dist/cjs/{types.esm-8f32aacf.js → types.esm-674d5934.js} +75 -7
  44. package/dist/cjs/types.esm-674d5934.js.map +1 -0
  45. package/dist/esm/{BoostGenericCard-381b2a44.js → BoostGenericCard-956474fc.js} +2 -2
  46. package/dist/esm/{BoostGenericCard-381b2a44.js.map → BoostGenericCard-956474fc.js.map} +1 -1
  47. package/dist/esm/{BoostSmallCard-f2192dc1.js → BoostSmallCard-6d63f0b3.js} +2 -2
  48. package/dist/esm/{BoostSmallCard-f2192dc1.js.map → BoostSmallCard-6d63f0b3.js.map} +1 -1
  49. package/dist/esm/{CertificateDisplayCard-1b4b275b.js → CertificateDisplayCard-0642d8af.js} +48 -19
  50. package/dist/esm/CertificateDisplayCard-0642d8af.js.map +1 -0
  51. package/dist/esm/{MeritBadgeDisplayCard-580ee309.js → MeritBadgeDisplayCard-f6b064a6.js} +40 -74
  52. package/dist/esm/MeritBadgeDisplayCard-f6b064a6.js.map +1 -0
  53. package/dist/esm/{MeritBadgeSkillsCount-146a6631.js → MeritBadgeSkillsCount-e906d83f.js} +2 -2
  54. package/dist/esm/{MeritBadgeSkillsCount-146a6631.js.map → MeritBadgeSkillsCount-e906d83f.js.map} +1 -1
  55. package/dist/esm/{NotificationBoostCard-fa82a58d.js → NotificationBoostCard-fdfa0cf4.js} +2 -2
  56. package/dist/esm/{NotificationBoostCard-fa82a58d.js.map → NotificationBoostCard-fdfa0cf4.js.map} +1 -1
  57. package/dist/esm/UserProfilePicture-7e131f5d.js +92 -0
  58. package/dist/esm/UserProfilePicture-7e131f5d.js.map +1 -0
  59. package/dist/esm/{VCCard-16b74b58.js → VCCard-7b394980.js} +3 -3
  60. package/dist/esm/{VCCard-16b74b58.js.map → VCCard-7b394980.js.map} +1 -1
  61. package/dist/esm/{VCDisplayBackFace-ad4f5160.js → VCDisplayBackFace-ce80f06d.js} +3 -3
  62. package/dist/esm/{VCDisplayBackFace-ad4f5160.js.map → VCDisplayBackFace-ce80f06d.js.map} +1 -1
  63. package/dist/esm/{VCDisplayCard-3cc14e0b.js → VCDisplayCard-a40c4c7a.js} +4 -4
  64. package/dist/esm/{VCDisplayCard-3cc14e0b.js.map → VCDisplayCard-a40c4c7a.js.map} +1 -1
  65. package/dist/esm/{VCDisplayCard2-6165a0fb.js → VCDisplayCard2-3937fbc9.js} +32 -17
  66. package/dist/esm/VCDisplayCard2-3937fbc9.js.map +1 -0
  67. package/dist/esm/{VCVerificationPill-43612ba2.js → VCVerificationPill-8f82b17c.js} +2 -2
  68. package/dist/esm/{VCVerificationPill-43612ba2.js.map → VCVerificationPill-8f82b17c.js.map} +1 -1
  69. package/dist/esm/{VerifierStateBadgeAndText-c2de56ec.js → VerifierStateBadgeAndText-5152c28e.js} +206 -26
  70. package/dist/esm/VerifierStateBadgeAndText-5152c28e.js.map +1 -0
  71. package/dist/esm/{credential.helpers-6d446cd3.js → credential.helpers-bd29e893.js} +3 -3
  72. package/dist/esm/{credential.helpers-6d446cd3.js.map → credential.helpers-bd29e893.js.map} +1 -1
  73. package/dist/esm/index.js +15 -15
  74. package/dist/esm/index13.js +15 -15
  75. package/dist/esm/index21.js +6 -6
  76. package/dist/esm/index24.js +2 -2
  77. package/dist/esm/index3.js +3 -3
  78. package/dist/esm/index37.js +1 -1
  79. package/dist/esm/index38.js +11 -11
  80. package/dist/esm/index39.js +4 -4
  81. package/dist/esm/index4.js +2 -2
  82. package/dist/esm/index40.js +6 -6
  83. package/dist/esm/index41.js +7 -7
  84. package/dist/esm/index42.js +1 -1
  85. package/dist/esm/index45.js +2 -2
  86. package/dist/esm/index6.js +5 -5
  87. package/dist/esm/{types.esm-b900cd51.js → types.esm-e2b75956.js} +75 -7
  88. package/dist/esm/types.esm-e2b75956.js.map +1 -0
  89. package/dist/index.d.ts +6 -3
  90. package/dist/main.css +1 -1
  91. package/dist/main.js +1 -1
  92. package/package.json +4 -3
  93. package/dist/cjs/CertificateDisplayCard-0ac85a2b.js.map +0 -1
  94. package/dist/cjs/MeritBadgeDisplayCard-e6d6ff8f.js.map +0 -1
  95. package/dist/cjs/UserProfilePicture-d69fe4f0.js +0 -36
  96. package/dist/cjs/UserProfilePicture-d69fe4f0.js.map +0 -1
  97. package/dist/cjs/VCDisplayCard2-fb48d830.js.map +0 -1
  98. package/dist/cjs/VerifierStateBadgeAndText-4c22c62f.js.map +0 -1
  99. package/dist/cjs/types.esm-8f32aacf.js.map +0 -1
  100. package/dist/esm/CertificateDisplayCard-1b4b275b.js.map +0 -1
  101. package/dist/esm/MeritBadgeDisplayCard-580ee309.js.map +0 -1
  102. package/dist/esm/UserProfilePicture-7b950437.js +0 -30
  103. package/dist/esm/UserProfilePicture-7b950437.js.map +0 -1
  104. package/dist/esm/VCDisplayCard2-6165a0fb.js.map +0 -1
  105. package/dist/esm/VerifierStateBadgeAndText-c2de56ec.js.map +0 -1
  106. package/dist/esm/types.esm-b900cd51.js.map +0 -1
@@ -9,7 +9,7 @@ import Social from './social.png';
9
9
  import Stem from './stem.png';
10
10
  import Trade from './trade.png';
11
11
  import { P as PuzzlePiece } from './PuzzlePiece-a3d9cc62.js';
12
- import { o as object, l as literal, n as number, s as string, u as union } from './types.esm-b900cd51.js';
12
+ import { o as object, l as literal, n as number, s as string, u as union } from './types.esm-e2b75956.js';
13
13
 
14
14
  const AcuteCheckmark = ({ className = "" }) => {
15
15
  return /* @__PURE__ */ React.createElement(
@@ -201,20 +201,6 @@ const LeftArrow = ({ className = "", size = "20" }) => {
201
201
  );
202
202
  };
203
203
 
204
- const Line = ({ className = "", width = "109" }) => {
205
- return /* @__PURE__ */ React.createElement(
206
- "svg",
207
- {
208
- width,
209
- height: "6",
210
- viewBox: "0 0 109 6",
211
- fill: "none",
212
- xmlns: "http://www.w3.org/2000/svg"
213
- },
214
- /* @__PURE__ */ React.createElement("rect", { y: "0.575806", width: "109", height: "5", rx: "2.5", fill: "#E2E3E9" })
215
- );
216
- };
217
-
218
204
  const LinkIcon = ({ className = "" }) => {
219
205
  return /* @__PURE__ */ React.createElement(
220
206
  "svg",
@@ -433,9 +419,6 @@ const VideoIcon = ({ className = "", size = "25" }) => {
433
419
  );
434
420
  };
435
421
 
436
- const truncateWithEllipsis = (str, maxLength) => {
437
- return str.length > maxLength ? `${str.substring(0, maxLength)}...` : str;
438
- };
439
422
  const capitalize = (string) => {
440
423
  return string ? string[0].toUpperCase() + string.slice(1) : "";
441
424
  };
@@ -3465,6 +3448,7 @@ var require_types_cjs_development = __commonJS({
3465
3448
  CredentialActivityStatsValidator: /* @__PURE__ */ __name(() => CredentialActivityStatsValidator, "CredentialActivityStatsValidator"),
3466
3449
  CredentialActivityValidator: /* @__PURE__ */ __name(() => CredentialActivityValidator, "CredentialActivityValidator"),
3467
3450
  CredentialActivityWithDetailsValidator: /* @__PURE__ */ __name(() => CredentialActivityWithDetailsValidator, "CredentialActivityWithDetailsValidator"),
3451
+ CredentialFormatValidator: /* @__PURE__ */ __name(() => CredentialFormatValidator, "CredentialFormatValidator"),
3468
3452
  CredentialInfoValidator: /* @__PURE__ */ __name(() => CredentialInfoValidator, "CredentialInfoValidator"),
3469
3453
  CredentialNameRefValidator: /* @__PURE__ */ __name(() => CredentialNameRefValidator, "CredentialNameRefValidator"),
3470
3454
  CredentialRecordValidator: /* @__PURE__ */ __name(() => CredentialRecordValidator, "CredentialRecordValidator"),
@@ -3493,6 +3477,8 @@ var require_types_cjs_development = __commonJS({
3493
3477
  GetSkillPathResultValidator: /* @__PURE__ */ __name(() => GetSkillPathResultValidator, "GetSkillPathResultValidator"),
3494
3478
  GetTemplateRecipientsEventValidator: /* @__PURE__ */ __name(() => GetTemplateRecipientsEventValidator, "GetTemplateRecipientsEventValidator"),
3495
3479
  GuardianStatusValidator: /* @__PURE__ */ __name(() => GuardianStatusValidator, "GuardianStatusValidator"),
3480
+ HolderExportConsentRecordValidator: /* @__PURE__ */ __name(() => HolderExportConsentRecordValidator, "HolderExportConsentRecordValidator"),
3481
+ HolderExportMetadataValidator: /* @__PURE__ */ __name(() => HolderExportMetadataValidator, "HolderExportMetadataValidator"),
3496
3482
  IdentifierEntryValidator: /* @__PURE__ */ __name(() => IdentifierEntryValidator, "IdentifierEntryValidator"),
3497
3483
  IdentifierTypeValidator: /* @__PURE__ */ __name(() => IdentifierTypeValidator, "IdentifierTypeValidator"),
3498
3484
  IdentityObjectValidator: /* @__PURE__ */ __name(() => IdentityObjectValidator, "IdentityObjectValidator"),
@@ -3572,6 +3558,7 @@ var require_types_cjs_development = __commonJS({
3572
3558
  RefreshServiceValidator: /* @__PURE__ */ __name(() => RefreshServiceValidator, "RefreshServiceValidator"),
3573
3559
  RegExpValidator: /* @__PURE__ */ __name(() => RegExpValidator, "RegExpValidator"),
3574
3560
  RelatedValidator: /* @__PURE__ */ __name(() => RelatedValidator, "RelatedValidator"),
3561
+ RenderMethodValidator: /* @__PURE__ */ __name(() => RenderMethodValidator, "RenderMethodValidator"),
3575
3562
  ReplaceSkillFrameworkSkillsInputValidator: /* @__PURE__ */ __name(() => ReplaceSkillFrameworkSkillsInputValidator, "ReplaceSkillFrameworkSkillsInputValidator"),
3576
3563
  ReplaceSkillFrameworkSkillsResultValidator: /* @__PURE__ */ __name(() => ReplaceSkillFrameworkSkillsResultValidator, "ReplaceSkillFrameworkSkillsResultValidator"),
3577
3564
  RequestLearnerContextEventValidator: /* @__PURE__ */ __name(() => RequestLearnerContextEventValidator, "RequestLearnerContextEventValidator"),
@@ -3614,6 +3601,7 @@ var require_types_cjs_development = __commonJS({
3614
3601
  SummaryCredentialKeywordValidator: /* @__PURE__ */ __name(() => SummaryCredentialKeywordValidator, "SummaryCredentialKeywordValidator"),
3615
3602
  SyncFrameworkInputValidator: /* @__PURE__ */ __name(() => SyncFrameworkInputValidator, "SyncFrameworkInputValidator"),
3616
3603
  TagValidator: /* @__PURE__ */ __name(() => TagValidator, "TagValidator"),
3604
+ TemplateRenderMethodValidator: /* @__PURE__ */ __name(() => TemplateRenderMethodValidator, "TemplateRenderMethodValidator"),
3617
3605
  TermsOfUseValidator: /* @__PURE__ */ __name(() => TermsOfUseValidator, "TermsOfUseValidator"),
3618
3606
  UnsignedAchievementCredentialValidator: /* @__PURE__ */ __name(() => UnsignedAchievementCredentialValidator, "UnsignedAchievementCredentialValidator"),
3619
3607
  UnsignedClrCredentialValidator: /* @__PURE__ */ __name(() => UnsignedClrCredentialValidator, "UnsignedClrCredentialValidator"),
@@ -17151,6 +17139,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17151
17139
  genre: external_exports.string().optional(),
17152
17140
  audience: external_exports.string().optional()
17153
17141
  }).catchall(external_exports.any());
17142
+ var TemplateRenderMethodValidator = external_exports.object({
17143
+ type: external_exports.literal("TemplateRenderMethod"),
17144
+ renderSuite: external_exports.string(),
17145
+ template: external_exports.string(),
17146
+ renderProperty: external_exports.array(external_exports.string()).optional(),
17147
+ outputPreference: external_exports.object({
17148
+ mediaType: external_exports.string()
17149
+ }).optional()
17150
+ });
17151
+ var RenderMethodValidator = external_exports.union([
17152
+ TemplateRenderMethodValidator,
17153
+ external_exports.record(external_exports.string(), external_exports.any())
17154
+ ]);
17154
17155
  var UnsignedVCValidator = external_exports.object({
17155
17156
  "@context": ContextValidator,
17156
17157
  id: external_exports.string().optional(),
@@ -17174,7 +17175,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17174
17175
  validUntil: external_exports.string().optional(),
17175
17176
  status: CredentialStatusValidator.or(CredentialStatusValidator.array()).optional(),
17176
17177
  termsOfUse: TermsOfUseValidator.or(TermsOfUseValidator.array()).optional(),
17177
- evidence: external_exports.union([VC2EvidenceValidator, external_exports.array(VC2EvidenceValidator)]).optional()
17178
+ evidence: external_exports.union([VC2EvidenceValidator, external_exports.array(VC2EvidenceValidator)]).optional(),
17179
+ renderMethod: external_exports.union([RenderMethodValidator, external_exports.array(RenderMethodValidator)]).optional()
17178
17180
  }).catchall(external_exports.any());
17179
17181
  var ProofValidator = external_exports.object({
17180
17182
  type: external_exports.string(),
@@ -17482,17 +17484,52 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17482
17484
  var ClrCredentialValidator = UnsignedClrCredentialValidator.extend({
17483
17485
  proof: ProofValidator.or(ProofValidator.array())
17484
17486
  });
17487
+ var CredentialFormatValidator = external_exports.enum([
17488
+ "w3c-vc-2.0",
17489
+ "w3c-vc-1.1",
17490
+ "jwt-vc-json",
17491
+ "dc+sd-jwt",
17492
+ "vc+sd-jwt",
17493
+ "mso_mdoc"
17494
+ ]);
17485
17495
  var StatusCheckEntryValidator = external_exports.object({
17496
+ /**
17497
+ * The `credentialStatus.type` as it appeared on the credential.
17498
+ * One of `BitstringStatusListEntry`, `StatusList2021Entry`,
17499
+ * `RevocationList2020Status`, or any future custom status type.
17500
+ */
17486
17501
  entryType: external_exports.string(),
17502
+ /**
17503
+ * The claimed purpose of the entry. Standard values are
17504
+ * `"revocation"` and `"suspension"`; the spec allows arbitrary
17505
+ * strings.
17506
+ */
17487
17507
  statusPurpose: external_exports.string(),
17508
+ /**
17509
+ * Whether the bit at the credential's index in the status list
17510
+ * bitstring was set.
17511
+ */
17488
17512
  isSet: external_exports.boolean(),
17513
+ /** URL of the status list credential, when known. */
17489
17514
  statusListCredential: external_exports.string().optional(),
17515
+ /** Original (string) index within the status list. */
17490
17516
  statusListIndex: external_exports.string().optional()
17491
17517
  });
17492
17518
  var VerificationCheckValidator = external_exports.object({
17493
17519
  checks: external_exports.string().array(),
17494
17520
  warnings: external_exports.string().array(),
17495
17521
  errors: external_exports.string().array(),
17522
+ /**
17523
+ * Per-entry results for the `credentialStatus` check, populated
17524
+ * by `@learncard/didkit-plugin` when the verified credential
17525
+ * carries one or more `credentialStatus` entries. Empty / absent
17526
+ * for credentials without a status entry.
17527
+ *
17528
+ * Marked `.optional()` because the underlying `ssi-ldp`
17529
+ * serializer omits the field when empty (`skip_serializing_if`),
17530
+ * so older WASM builds that pre-date the structured-status
17531
+ * change still validate against this schema.
17532
+ */
17496
17533
  status: StatusCheckEntryValidator.array().optional()
17497
17534
  });
17498
17535
  var VerificationStatusValidator = external_exports.enum(["Success", "Failed", "Error"]);
@@ -17510,7 +17547,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17510
17547
  issuee: ProfileValidator.optional(),
17511
17548
  credentialSubject: CredentialSubjectValidator.optional()
17512
17549
  });
17513
- var CredentialRecordValidator = external_exports.object({ id: external_exports.string(), uri: external_exports.string() }).catchall(external_exports.any());
17550
+ var CredentialRecordValidator = external_exports.object({
17551
+ id: external_exports.string(),
17552
+ uri: external_exports.string(),
17553
+ format: CredentialFormatValidator.optional(),
17554
+ semanticType: external_exports.string().optional(),
17555
+ rawWireForm: external_exports.string().optional()
17556
+ }).catchall(external_exports.any());
17514
17557
  var PaginationOptionsValidator = external_exports.object({
17515
17558
  limit: external_exports.number(),
17516
17559
  cursor: external_exports.string().optional(),
@@ -18079,6 +18122,22 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18079
18122
  date: external_exports.string(),
18080
18123
  uris: external_exports.string().array().optional()
18081
18124
  });
18125
+ var HolderExportConsentRecordValidator = external_exports.object({
18126
+ termsUri: external_exports.string(),
18127
+ status: ConsentFlowTermsStatusValidator,
18128
+ contract: ConsentFlowContractDetailsValidator,
18129
+ terms: ConsentFlowTermsValidator,
18130
+ transactions: ConsentFlowTransactionValidator.array()
18131
+ });
18132
+ var HolderExportMetadataValidator = external_exports.object({
18133
+ consentRecords: HolderExportConsentRecordValidator.array(),
18134
+ truncated: external_exports.boolean().optional(),
18135
+ warnings: external_exports.string().array().optional(),
18136
+ limits: external_exports.object({
18137
+ maxConsentRecords: external_exports.number(),
18138
+ maxTransactionsPerConsentRecord: external_exports.number()
18139
+ }).optional()
18140
+ });
18082
18141
  var PaginatedConsentFlowTransactionsValidator = PaginationResponseValidator.extend({
18083
18142
  records: ConsentFlowTransactionValidator.array()
18084
18143
  });
@@ -18165,10 +18224,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18165
18224
  var LCNNotificationValidator = external_exports.object({
18166
18225
  type: LCNNotificationTypeEnumValidator,
18167
18226
  to: LCNProfileValidator.partial().and(external_exports.object({ did: external_exports.string() })),
18168
- from: external_exports.union([
18169
- external_exports.string(),
18170
- LCNProfileValidator.partial().and(external_exports.object({ did: external_exports.string() }))
18171
- ]),
18227
+ from: external_exports.union([external_exports.string(), LCNProfileValidator.partial().and(external_exports.object({ did: external_exports.string() }))]),
18172
18228
  message: LCNNotificationMessageValidator.optional(),
18173
18229
  data: LCNNotificationDataValidator.optional(),
18174
18230
  sent: external_exports.iso.datetime().optional(),
@@ -19621,6 +19677,130 @@ var isAppDidWeb = /* @__PURE__ */ __name((did) => {
19621
19677
  return LCN_APP_DID_WEB_REGEX.test(did);
19622
19678
  }, "isAppDidWeb");
19623
19679
 
19680
+ const isDid = (str) => /^did:/i.test(str);
19681
+ const LC_NETWORK_USER_RE = /^did:web:network\.learncard\.com:users:(.+)$/i;
19682
+ const isLearnCardNetworkDid = (did) => LC_NETWORK_USER_RE.test(did);
19683
+ const formatDidDisplayName = (did) => {
19684
+ if (!did) return "";
19685
+ const lcMatch = did.match(LC_NETWORK_USER_RE);
19686
+ if (lcMatch) return lcMatch[1];
19687
+ const parts = did.split(":");
19688
+ if (parts[0] !== "did" || parts.length < 3) return did;
19689
+ const method = parts[1];
19690
+ if (method === "web") {
19691
+ return parts.slice(2).join(".");
19692
+ }
19693
+ const material = parts.slice(2).join(":");
19694
+ if (material.length > 12) {
19695
+ return `${material.slice(0, 4)}\u2026${material.slice(-4)}`;
19696
+ }
19697
+ return material;
19698
+ };
19699
+ const getAvatarLetterFromDid = (did) => {
19700
+ var _a, _b, _c, _d, _e, _f;
19701
+ if (!did) return "";
19702
+ const lcMatch = did.match(LC_NETWORK_USER_RE);
19703
+ if (lcMatch) return (_a = lcMatch[1][0]) != null ? _a : "";
19704
+ const parts = did.split(":");
19705
+ if (parts[0] !== "did" || parts.length < 3) return (_b = did[0]) != null ? _b : "";
19706
+ const method = parts[1];
19707
+ if (method === "web") {
19708
+ return (_d = ((_c = parts[2]) != null ? _c : "")[0]) != null ? _d : "";
19709
+ }
19710
+ return (_f = ((_e = parts[2]) != null ? _e : "")[0]) != null ? _f : "";
19711
+ };
19712
+ const hashString = (str) => {
19713
+ let hash = 0;
19714
+ for (let i = 0; i < str.length; i++) {
19715
+ hash = str.charCodeAt(i) + ((hash << 5) - hash);
19716
+ }
19717
+ return hash;
19718
+ };
19719
+ const AVATAR_PALETTE = [
19720
+ "bg-indigo-600",
19721
+ "bg-emerald-700",
19722
+ "bg-cyan-800",
19723
+ "bg-spice-600",
19724
+ "bg-indigo-700",
19725
+ "bg-emerald-600"
19726
+ ];
19727
+ const DID_AVATAR_PALETTE = [
19728
+ { avatarColor: "bg-lime-400", avatarFingerprintColor: "text-black" },
19729
+ { avatarColor: "bg-green-500", avatarFingerprintColor: "text-white" },
19730
+ { avatarColor: "bg-indigo-600", avatarFingerprintColor: "text-cyan-200" },
19731
+ { avatarColor: "bg-pink-500", avatarFingerprintColor: "text-yellow-300" },
19732
+ { avatarColor: "bg-yellow-300", avatarFingerprintColor: "text-blue-600" },
19733
+ { avatarColor: "bg-fuchsia-300", avatarFingerprintColor: "text-black" },
19734
+ { avatarColor: "bg-emerald-800", avatarFingerprintColor: "text-white" },
19735
+ { avatarColor: "bg-cyan-300", avatarFingerprintColor: "text-red-600" },
19736
+ { avatarColor: "bg-grayscale-900", avatarFingerprintColor: "text-lime-400" },
19737
+ { avatarColor: "bg-rose-600", avatarFingerprintColor: "text-white" },
19738
+ { avatarColor: "bg-blue-800", avatarFingerprintColor: "text-cyan-400" },
19739
+ { avatarColor: "bg-orange-600", avatarFingerprintColor: "text-yellow-300" },
19740
+ { avatarColor: "bg-teal-300", avatarFingerprintColor: "text-violet-600" },
19741
+ { avatarColor: "bg-grayscale-200", avatarFingerprintColor: "text-sky-500" },
19742
+ { avatarColor: "bg-emerald-700", avatarFingerprintColor: "text-yellow-300" },
19743
+ { avatarColor: "bg-fuchsia-500", avatarFingerprintColor: "text-pink-200" }
19744
+ ];
19745
+ const getDidAvatarColorPair = (did) => {
19746
+ if (!did) {
19747
+ return {
19748
+ avatarColor: "bg-emerald-700",
19749
+ avatarFingerprintColor: "text-white"
19750
+ };
19751
+ }
19752
+ return DID_AVATAR_PALETTE[Math.abs(hashString(did)) % DID_AVATAR_PALETTE.length];
19753
+ };
19754
+ const getAvatarColorFromString = (str) => {
19755
+ if (!str) return "bg-emerald-700";
19756
+ return AVATAR_PALETTE[Math.abs(hashString(str)) % AVATAR_PALETTE.length];
19757
+ };
19758
+ const resolveProfileDisplay = (profile, fallbackLabel) => {
19759
+ var _a;
19760
+ let rawName = "";
19761
+ let rawId = "";
19762
+ if (typeof profile === "string") {
19763
+ rawName = profile;
19764
+ } else if (profile && typeof profile === "object") {
19765
+ rawName = profile.name || profile.displayName || "";
19766
+ rawId = profile.id || "";
19767
+ }
19768
+ if (rawName && !isDid(rawName)) {
19769
+ return {
19770
+ displayName: rawName,
19771
+ avatarLetter: (_a = rawName[0]) != null ? _a : "",
19772
+ avatarColor: getAvatarColorFromString(rawName),
19773
+ avatarFingerprintColor: "text-white",
19774
+ isMissing: false,
19775
+ isDidValue: false,
19776
+ isLCNetwork: false
19777
+ };
19778
+ }
19779
+ const didStr = isDid(rawName) ? rawName : rawId;
19780
+ if (didStr && isDid(didStr)) {
19781
+ const lcNetwork = isLearnCardNetworkDid(didStr);
19782
+ const avatarColors = getDidAvatarColorPair(didStr);
19783
+ return {
19784
+ displayName: formatDidDisplayName(didStr),
19785
+ avatarLetter: getAvatarLetterFromDid(didStr),
19786
+ avatarColor: avatarColors.avatarColor,
19787
+ avatarFingerprintColor: avatarColors.avatarFingerprintColor,
19788
+ isMissing: false,
19789
+ isDidValue: !lcNetwork,
19790
+ isLCNetwork: lcNetwork
19791
+ };
19792
+ }
19793
+ return {
19794
+ displayName: fallbackLabel,
19795
+ avatarLetter: "",
19796
+ avatarColor: "bg-grayscale-200",
19797
+ avatarFingerprintColor: "text-white",
19798
+ isMissing: true,
19799
+ isDidValue: false,
19800
+ isLCNetwork: false
19801
+ };
19802
+ };
19803
+
19624
19804
  const VERIFIER_STATES = {
19625
19805
  selfVerified: "Self Issued",
19626
19806
  trustedVerifier: "Trusted Issuer",
@@ -19637,5 +19817,5 @@ const VerifierStateBadgeAndText = ({
19637
19817
  return /* @__PURE__ */ React.createElement("div", { className: `flex justify-center ${className}` }, effectiveState === VERIFIER_STATES.selfVerified && /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-0.5 font-poppins font-[500] text-[12px] leading-tight text-green-dark" }, /* @__PURE__ */ React.createElement(PersonBadge, null), /* @__PURE__ */ React.createElement("span", { className: "whitespace-nowrap" }, "Self Issued")), effectiveState === VERIFIER_STATES.trustedVerifier && /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-0.5 font-poppins font-[500] text-[12px] leading-tight text-green-600" }, /* @__PURE__ */ React.createElement(VerifiedBadge, null), /* @__PURE__ */ React.createElement("span", { className: "whitespace-nowrap" }, unknownVerifierTitle != null ? unknownVerifierTitle : "Trusted Issuer")), effectiveState === VERIFIER_STATES.unknownVerifier && /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-0.5 font-poppins font-[500] text-[12px] leading-tight text-orange-500" }, /* @__PURE__ */ React.createElement(UnknownVerifierBadge, null), /* @__PURE__ */ React.createElement("span", { className: "whitespace-nowrap" }, unknownVerifierTitle != null ? unknownVerifierTitle : VERIFIER_STATES.unknownVerifier)), effectiveState === VERIFIER_STATES.appIssuer && /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-0.5 font-poppins font-[500] text-[12px] leading-tight text-cyan-600" }, /* @__PURE__ */ React.createElement(VerifiedBadge, null), /* @__PURE__ */ React.createElement("span", { className: "whitespace-nowrap" }, "App Issuer")), effectiveState === VERIFIER_STATES.untrustedVerifier && /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-0.5 font-poppins font-[500] text-[12px] leading-tight text-red-mastercard" }, /* @__PURE__ */ React.createElement(RedFlag, null), /* @__PURE__ */ React.createElement("span", { className: "whitespace-nowrap" }, "Untrusted Issuer")));
19638
19818
  };
19639
19819
 
19640
- export { AcuteCheckmark as A, Camera as C, ExclamationPoint as E, FatArrow as F, GenericDocumentIcon as G, InfoIcon as I, LinkIcon as L, PersonBadge as P, RoundedCorner as R, SelectedSkills as S, UnknownVerifierBadge as U, VERIFIER_STATES as V, VerifierStateBadgeAndText as a, VideoIcon as b, capitalize as c, LeftArrow as d, SkillsBox as e, IssuerSeal as f, getBaseUrl as g, Line as h, isAppDidWeb as i, VerifiedBadge as j, RedFlag as k, prettyBytes as p, truncateWithEllipsis as t };
19641
- //# sourceMappingURL=VerifierStateBadgeAndText-c2de56ec.js.map
19820
+ export { AcuteCheckmark as A, Camera as C, ExclamationPoint as E, FatArrow as F, GenericDocumentIcon as G, InfoIcon as I, LinkIcon as L, PersonBadge as P, RoundedCorner as R, SelectedSkills as S, UnknownVerifierBadge as U, VERIFIER_STATES as V, VerifierStateBadgeAndText as a, VideoIcon as b, capitalize as c, LeftArrow as d, SkillsBox as e, IssuerSeal as f, getBaseUrl as g, VerifiedBadge as h, isAppDidWeb as i, RedFlag as j, prettyBytes as p, resolveProfileDisplay as r };
19821
+ //# sourceMappingURL=VerifierStateBadgeAndText-5152c28e.js.map