@learncard/email-templates 1.2.1 → 1.2.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 (42) hide show
  1. package/dist/i18n.d.ts +15 -0
  2. package/dist/i18n.d.ts.map +1 -1
  3. package/dist/i18n.js +31 -0
  4. package/dist/i18n.js.map +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/previews/account-secured-scenarios.d.ts +6 -0
  9. package/dist/previews/account-secured-scenarios.d.ts.map +1 -0
  10. package/dist/previews/account-secured-scenarios.js +7 -0
  11. package/dist/previews/account-secured-scenarios.js.map +1 -0
  12. package/dist/previews/escrow-pin-sign-in-scenarios.d.ts +6 -0
  13. package/dist/previews/escrow-pin-sign-in-scenarios.d.ts.map +1 -0
  14. package/dist/previews/escrow-pin-sign-in-scenarios.js +7 -0
  15. package/dist/previews/escrow-pin-sign-in-scenarios.js.map +1 -0
  16. package/dist/render.d.ts +11 -0
  17. package/dist/render.d.ts.map +1 -1
  18. package/dist/render.js +27 -1
  19. package/dist/render.js.map +1 -1
  20. package/dist/templates/account-secured.d.ts +27 -0
  21. package/dist/templates/account-secured.d.ts.map +1 -0
  22. package/dist/templates/account-secured.js +118 -0
  23. package/dist/templates/account-secured.js.map +1 -0
  24. package/dist/templates/escrow-pin-sign-in.d.ts +24 -0
  25. package/dist/templates/escrow-pin-sign-in.d.ts.map +1 -0
  26. package/dist/templates/escrow-pin-sign-in.js +96 -0
  27. package/dist/templates/escrow-pin-sign-in.js.map +1 -0
  28. package/dist/templates/index.d.ts +21 -38
  29. package/dist/templates/index.d.ts.map +1 -1
  30. package/dist/templates/index.js +20 -14
  31. package/dist/templates/index.js.map +1 -1
  32. package/package.json +2 -2
  33. package/src/__tests__/i18n.test.ts +32 -1
  34. package/src/__tests__/render.test.ts +115 -0
  35. package/src/i18n.ts +33 -0
  36. package/src/index.ts +2 -0
  37. package/src/previews/account-secured-scenarios.tsx +41 -0
  38. package/src/previews/escrow-pin-sign-in-scenarios.tsx +52 -0
  39. package/src/render.ts +51 -0
  40. package/src/templates/account-secured.tsx +236 -0
  41. package/src/templates/escrow-pin-sign-in.tsx +197 -0
  42. package/src/templates/index.ts +95 -35
package/dist/i18n.d.ts CHANGED
@@ -49,4 +49,19 @@ export interface SharedChromeStrings {
49
49
  export declare const SHARED: Record<NotificationLocale, SharedChromeStrings>;
50
50
  /** Replace `{var}` placeholders in `template` with values from `params`. */
51
51
  export declare const interpolate: (template: string, params: Record<string, string | undefined>) => string;
52
+ /**
53
+ * `{ locale }` when set, `{}` otherwise — spread into props whose `locale` is optional
54
+ * so an absent locale is omitted rather than passed as `undefined`
55
+ * (safe under `exactOptionalPropertyTypes`).
56
+ */
57
+ export declare const localeProp: (locale: string | null | undefined) => {
58
+ locale?: string;
59
+ };
60
+ /**
61
+ * lca-api passes ISO timestamps for security notices; show them as a readable date in
62
+ * the recipient's language. The recipient's time zone is unknown, so the time is shown
63
+ * in UTC and labelled as such. Anything that is not an ISO timestamp (previews,
64
+ * pre-formatted text) is shown as is.
65
+ */
66
+ export declare const formatNoticeTimestamp: (value: string, locale: NotificationLocale) => string;
52
67
  //# sourceMappingURL=i18n.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,mDAAmD;AACnD,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAM3D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,kBAI7D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,MAAsC,CAAC;AAKzF;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,KAAK,GAAG,KACQ,CAAC;AAMlE,MAAM,WAAW,mBAAmB;IAChC,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAgClE,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAAG,MAIrF,CAAC"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,mDAAmD;AACnD,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAM3D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,kBAI7D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,MAAsC,CAAC;AAKzF;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,KAAK,GAAG,KACQ,CAAC;AAMlE,MAAM,WAAW,mBAAmB;IAChC,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAgClE,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAAG,MAIrF,CAAC;AAEP;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CACnB,CAAC;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,EAAE,QAAQ,kBAAkB,KAAG,MAiBjF,CAAC"}
package/dist/i18n.js CHANGED
@@ -74,4 +74,35 @@ export const interpolate = (template, params) => template.replace(/\{(\w+)\}/g,
74
74
  const value = params[key];
75
75
  return value === undefined ? match : value;
76
76
  });
77
+ /**
78
+ * `{ locale }` when set, `{}` otherwise — spread into props whose `locale` is optional
79
+ * so an absent locale is omitted rather than passed as `undefined`
80
+ * (safe under `exactOptionalPropertyTypes`).
81
+ */
82
+ export const localeProp = (locale) => locale === undefined || locale === null ? {} : { locale };
83
+ /**
84
+ * lca-api passes ISO timestamps for security notices; show them as a readable date in
85
+ * the recipient's language. The recipient's time zone is unknown, so the time is shown
86
+ * in UTC and labelled as such. Anything that is not an ISO timestamp (previews,
87
+ * pre-formatted text) is shown as is.
88
+ */
89
+ export const formatNoticeTimestamp = (value, locale) => {
90
+ if (!/^\d{4}-\d{2}-\d{2}T/.test(value))
91
+ return value;
92
+ const date = new Date(value);
93
+ if (Number.isNaN(date.getTime()))
94
+ return value;
95
+ try {
96
+ return new Intl.DateTimeFormat(locale, {
97
+ dateStyle: 'long',
98
+ timeStyle: 'short',
99
+ timeZone: 'UTC',
100
+ })
101
+ .format(date)
102
+ .concat(' UTC');
103
+ }
104
+ catch {
105
+ return value;
106
+ }
107
+ };
77
108
  //# sourceMappingURL=i18n.js.map
package/dist/i18n.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,MAAM,cAAc,GAAuB,IAAI,CAAC;AAEhD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAsB,EAAsB,EAAE;IAC/E,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAuB,CAAC;IACtE,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;AAC/D,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAU,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAEzF,yCAAyC;AACzC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAsB,EAAiB,EAAE,CAC7D,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAiBlE,MAAM,CAAC,MAAM,MAAM,GAAoD;IACnE,EAAE,EAAE;QACA,gBAAgB,EACZ,iJAAiJ;QACrJ,cAAc,EAAE,iBAAiB;QACjC,gBAAgB,EACZ,wFAAwF;QAC5F,aAAa,EAAE,sBAAsB;KACxC;IACD,EAAE,EAAE;QACA,gBAAgB,EACZ,mIAAmI;QACvI,cAAc,EAAE,uBAAuB;QACvC,gBAAgB,EACZ,sFAAsF;QAC1F,aAAa,EAAE,0BAA0B;KAC5C;IACD,EAAE,EAAE;QACA,gBAAgB,EACZ,wMAAwM;QAC5M,cAAc,EAAE,sBAAsB;QACtC,gBAAgB,EACZ,4FAA4F;QAChG,aAAa,EAAE,sBAAsB;KACxC;IACD,EAAE,EAAE;QACA,gBAAgB,EACZ,uHAAuH;QAC3H,cAAc,EAAE,gBAAgB;QAChC,gBAAgB,EAAE,kEAAkE;QACpF,aAAa,EAAE,kBAAkB;KACpC;CACJ,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,MAA0C,EAAU,EAAE,CAChG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/C,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,MAAM,cAAc,GAAuB,IAAI,CAAC;AAEhD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAsB,EAAsB,EAAE;IAC/E,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAuB,CAAC;IACtE,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;AAC/D,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAU,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAEzF,yCAAyC;AACzC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAsB,EAAiB,EAAE,CAC7D,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAiBlE,MAAM,CAAC,MAAM,MAAM,GAAoD;IACnE,EAAE,EAAE;QACA,gBAAgB,EACZ,iJAAiJ;QACrJ,cAAc,EAAE,iBAAiB;QACjC,gBAAgB,EACZ,wFAAwF;QAC5F,aAAa,EAAE,sBAAsB;KACxC;IACD,EAAE,EAAE;QACA,gBAAgB,EACZ,mIAAmI;QACvI,cAAc,EAAE,uBAAuB;QACvC,gBAAgB,EACZ,sFAAsF;QAC1F,aAAa,EAAE,0BAA0B;KAC5C;IACD,EAAE,EAAE;QACA,gBAAgB,EACZ,wMAAwM;QAC5M,cAAc,EAAE,sBAAsB;QACtC,gBAAgB,EACZ,4FAA4F;QAChG,aAAa,EAAE,sBAAsB;KACxC;IACD,EAAE,EAAE;QACA,gBAAgB,EACZ,uHAAuH;QAC3H,cAAc,EAAE,gBAAgB;QAChC,gBAAgB,EAAE,kEAAkE;QACpF,aAAa,EAAE,kBAAkB;KACpC;CACJ,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,MAA0C,EAAU,EAAE,CAChG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEP;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAiC,EAAuB,EAAE,CACjF,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAE,MAA0B,EAAU,EAAE;IACvF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAErD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,IAAI,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YACnC,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,KAAK;SAClB,CAAC;aACG,MAAM,CAAC,IAAI,CAAC;aACZ,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -18,7 +18,7 @@ export { resolveCatalogLocale } from './i18n';
18
18
  export type { NotificationLocale } from './i18n';
19
19
  export { renderEmail } from './render';
20
20
  export type { RenderedEmail, TemplateId, TemplateDataMap } from './render';
21
- export type { VerificationCodeData, EmailVerificationData, InboxClaimData, GuardianApprovalData, AccountApprovedData, RecoveryKeyData, EndorsementRequestData, CredentialAwaitingGuardianData, GuardianApprovedClaimData, GuardianCredentialApprovalData, GuardianEmailOtpData, GuardianRejectedCredentialData, CredentialUpdatedData, AccountSignInChangedData, EscrowHoldStartedData, EscrowHoldReminderData, EscrowHoldReleasedData, EscrowHoldCancelledData, EscrowPinLockedData, } from './render';
21
+ export type { VerificationCodeData, EmailVerificationData, InboxClaimData, GuardianApprovalData, AccountApprovedData, RecoveryKeyData, EndorsementRequestData, CredentialAwaitingGuardianData, GuardianApprovedClaimData, GuardianCredentialApprovalData, GuardianEmailOtpData, GuardianRejectedCredentialData, CredentialUpdatedData, AccountSignInChangedData, EscrowHoldStartedData, EscrowHoldReminderData, EscrowHoldReleasedData, EscrowHoldCancelledData, EscrowPinLockedData, EscrowPinSignInData, AccountSecuredData, } from './render';
22
22
  export type { EscrowHoldCancelledReason } from './templates/escrow-hold-cancelled';
23
23
  export { renderSms } from './sms';
24
24
  export type { SmsTemplateId, SmsTemplateDataMap, SmsInboxClaimData, SmsVerificationData, } from './sms';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3E,YAAY,EACR,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,8BAA8B,EAC9B,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,EACpB,8BAA8B,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAGnF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,YAAY,EACR,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACtB,MAAM,OAAO,CAAC;AAGf,OAAO,EACH,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3E,YAAY,EACR,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,8BAA8B,EAC9B,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,EACpB,8BAA8B,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAGnF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,YAAY,EACR,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACtB,MAAM,OAAO,CAAC;AAGf,OAAO,EACH,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG/D,iBAAiB;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAG9C,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAyBvC,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQlC,gCAAgC;AAChC,OAAO,EACH,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,yEAAyE;AACzE,uEAAuE;AACvE,8EAA8E;AAC9E,+DAA+D;AAC/D,yDAAyD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG/D,iBAAiB;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAG9C,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA2BvC,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQlC,gCAAgC;AAChC,OAAO,EACH,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,yEAAyE;AACzE,uEAAuE;AACvE,8EAA8E;AAC9E,+DAA+D;AAC/D,yDAAyD"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * account-secured — all preview scenarios stacked.
3
+ */
4
+ import * as React from 'react';
5
+ export default function AccountSecuredScenarios(): React.JSX.Element;
6
+ //# sourceMappingURL=account-secured-scenarios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-secured-scenarios.d.ts","sourceRoot":"","sources":["../../src/previews/account-secured-scenarios.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,CAAC,OAAO,UAAU,uBAAuB,sBA+B9C"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AccountSecured } from '../templates/account-secured';
3
+ import { LEARNCARD_BRANDING, VETPASS_BRANDING, ScenarioDivider } from './_fixtures';
4
+ export default function AccountSecuredScenarios() {
5
+ return (_jsxs(_Fragment, { children: [_jsx(ScenarioDivider, { label: "Default (LearnCard)" }), _jsx(AccountSecured, { branding: LEARNCARD_BRANDING, securedAt: "October 2, 2026, 3:00 PM" }), _jsx(ScenarioDivider, { label: "Spanish" }), _jsx(AccountSecured, { branding: LEARNCARD_BRANDING, securedAt: "2 de octubre de 2026, 3:00 p.m.", locale: "es" }), _jsx(ScenarioDivider, { label: "French" }), _jsx(AccountSecured, { branding: LEARNCARD_BRANDING, securedAt: "2 octobre 2026, 15h00", locale: "fr" }), _jsx(ScenarioDivider, { label: "Arabic (RTL)" }), _jsx(AccountSecured, { branding: LEARNCARD_BRANDING, securedAt: "2 \u0623\u0643\u062A\u0648\u0628\u0631 2026\u060C 3:00 \u0645", locale: "ar" }), _jsx(ScenarioDivider, { label: "VetPass tenant branding" }), _jsx(AccountSecured, { branding: VETPASS_BRANDING, securedAt: "October 2, 2026, 3:00 PM" })] }));
6
+ }
7
+ //# sourceMappingURL=account-secured-scenarios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-secured-scenarios.js","sourceRoot":"","sources":["../../src/previews/account-secured-scenarios.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,MAAM,CAAC,OAAO,UAAU,uBAAuB;IAC3C,OAAO,CACH,8BACI,KAAC,eAAe,IAAC,KAAK,EAAC,qBAAqB,GAAG,EAC/C,KAAC,cAAc,IAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAC,0BAA0B,GAAG,EAErF,KAAC,eAAe,IAAC,KAAK,EAAC,SAAS,GAAG,EACnC,KAAC,cAAc,IACX,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAC,iCAAiC,EAC3C,MAAM,EAAC,IAAI,GACb,EAEF,KAAC,eAAe,IAAC,KAAK,EAAC,QAAQ,GAAG,EAClC,KAAC,cAAc,IACX,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAC,uBAAuB,EACjC,MAAM,EAAC,IAAI,GACb,EAEF,KAAC,eAAe,IAAC,KAAK,EAAC,cAAc,GAAG,EACxC,KAAC,cAAc,IACX,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAC,+DAAuB,EACjC,MAAM,EAAC,IAAI,GACb,EAEF,KAAC,eAAe,IAAC,KAAK,EAAC,yBAAyB,GAAG,EACnD,KAAC,cAAc,IAAC,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAC,0BAA0B,GAAG,IACpF,CACN,CAAC;AACN,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * escrow-pin-sign-in — all preview scenarios stacked.
3
+ */
4
+ import * as React from 'react';
5
+ export default function EscrowPinSignInScenarios(): React.JSX.Element;
6
+ //# sourceMappingURL=escrow-pin-sign-in-scenarios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-pin-sign-in-scenarios.d.ts","sourceRoot":"","sources":["../../src/previews/escrow-pin-sign-in-scenarios.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,CAAC,OAAO,UAAU,wBAAwB,sBA0C/C"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { EscrowPinSignIn } from '../templates/escrow-pin-sign-in';
3
+ import { LEARNCARD_BRANDING, VETPASS_BRANDING, ScenarioDivider } from './_fixtures';
4
+ export default function EscrowPinSignInScenarios() {
5
+ return (_jsxs(_Fragment, { children: [_jsx(ScenarioDivider, { label: "Default (LearnCard)" }), _jsx(EscrowPinSignIn, { branding: LEARNCARD_BRANDING, signedInAt: "October 2, 2026, 3:00 PM", secureUrl: "https://learncard.app/account/secure" }), _jsx(ScenarioDivider, { label: "Spanish" }), _jsx(EscrowPinSignIn, { branding: LEARNCARD_BRANDING, signedInAt: "2 de octubre de 2026, 3:00 p.m.", secureUrl: "https://learncard.app/account/secure", locale: "es" }), _jsx(ScenarioDivider, { label: "French" }), _jsx(EscrowPinSignIn, { branding: LEARNCARD_BRANDING, signedInAt: "2 octobre 2026, 15h00", secureUrl: "https://learncard.app/account/secure", locale: "fr" }), _jsx(ScenarioDivider, { label: "Arabic (RTL)" }), _jsx(EscrowPinSignIn, { branding: LEARNCARD_BRANDING, signedInAt: "2 \u0623\u0643\u062A\u0648\u0628\u0631 2026\u060C 3:00 \u0645", secureUrl: "https://learncard.app/account/secure", locale: "ar" }), _jsx(ScenarioDivider, { label: "VetPass tenant branding" }), _jsx(EscrowPinSignIn, { branding: VETPASS_BRANDING, signedInAt: "October 2, 2026, 3:00 PM", secureUrl: "https://vetpass.app/account/secure" })] }));
6
+ }
7
+ //# sourceMappingURL=escrow-pin-sign-in-scenarios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-pin-sign-in-scenarios.js","sourceRoot":"","sources":["../../src/previews/escrow-pin-sign-in-scenarios.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,MAAM,CAAC,OAAO,UAAU,wBAAwB;IAC5C,OAAO,CACH,8BACI,KAAC,eAAe,IAAC,KAAK,EAAC,qBAAqB,GAAG,EAC/C,KAAC,eAAe,IACZ,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAC,0BAA0B,EACrC,SAAS,EAAC,sCAAsC,GAClD,EAEF,KAAC,eAAe,IAAC,KAAK,EAAC,SAAS,GAAG,EACnC,KAAC,eAAe,IACZ,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAC,iCAAiC,EAC5C,SAAS,EAAC,sCAAsC,EAChD,MAAM,EAAC,IAAI,GACb,EAEF,KAAC,eAAe,IAAC,KAAK,EAAC,QAAQ,GAAG,EAClC,KAAC,eAAe,IACZ,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAC,uBAAuB,EAClC,SAAS,EAAC,sCAAsC,EAChD,MAAM,EAAC,IAAI,GACb,EAEF,KAAC,eAAe,IAAC,KAAK,EAAC,cAAc,GAAG,EACxC,KAAC,eAAe,IACZ,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAC,+DAAuB,EAClC,SAAS,EAAC,sCAAsC,EAChD,MAAM,EAAC,IAAI,GACb,EAEF,KAAC,eAAe,IAAC,KAAK,EAAC,yBAAyB,GAAG,EACnD,KAAC,eAAe,IACZ,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAC,0BAA0B,EACrC,SAAS,EAAC,oCAAoC,GAChD,IACH,CACN,CAAC;AACN,CAAC"}
package/dist/render.d.ts CHANGED
@@ -76,6 +76,10 @@ export interface TemplateDataMap {
76
76
  'escrow-hold-cancelled': EscrowHoldCancelledData;
77
77
  /** lca-api: recovery PIN locked after too many failed attempts */
78
78
  'escrow-pin-locked': EscrowPinLockedData;
79
+ /** lca-api: a new device signed in with the recovery PIN — links to "Secure my account" */
80
+ 'escrow-pin-sign-in': EscrowPinSignInData;
81
+ /** lca-api: "Secure my account" signed out every other device and login */
82
+ 'account-secured': AccountSecuredData;
79
83
  }
80
84
  export type TemplateId = keyof TemplateDataMap;
81
85
  export interface VerificationCodeData {
@@ -223,6 +227,13 @@ export interface EscrowPinLockedData {
223
227
  releaseAfter?: string;
224
228
  cancelUrl?: string;
225
229
  }
230
+ export interface EscrowPinSignInData {
231
+ signedInAt: string;
232
+ secureUrl: string;
233
+ }
234
+ export interface AccountSecuredData {
235
+ securedAt: string;
236
+ }
226
237
  /**
227
238
  * Render a fully branded email for the given template.
228
239
  *
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
package/dist/render.js CHANGED
@@ -10,7 +10,8 @@
10
10
  import { render } from '@react-email/render';
11
11
  import * as React from 'react';
12
12
  import { resolveBranding } from './branding';
13
- import { VerificationCode, getVerificationCodeSubject, InboxClaim, getInboxClaimSubject, GuardianApproval, getGuardianApprovalSubject, AccountApproved, getAccountApprovedSubject, RecoveryKey, getRecoveryKeySubject, EndorsementRequest, getEndorsementRequestSubject, CredentialAwaitingGuardian, getCredentialAwaitingGuardianSubject, GuardianApprovedClaim, getGuardianApprovedClaimSubject, GuardianCredentialApproval, getGuardianCredentialApprovalSubject, GuardianEmailOtp, getGuardianEmailOtpSubject, GuardianRejectedCredential, getGuardianRejectedCredentialSubject, EmailVerification, getEmailVerificationSubject, CredentialUpdated, getCredentialUpdatedSubject, AccountSignInChanged, getAccountSignInChangedSubject, EscrowHoldStarted, getEscrowHoldStartedSubject, EscrowHoldReminder, getEscrowHoldReminderSubject, EscrowHoldReleased, getEscrowHoldReleasedSubject, EscrowHoldCancelled, getEscrowHoldCancelledSubject, EscrowPinLocked, getEscrowPinLockedSubject, } from './templates';
13
+ import { VerificationCode, getVerificationCodeSubject, InboxClaim, getInboxClaimSubject, GuardianApproval, getGuardianApprovalSubject, AccountApproved, getAccountApprovedSubject, RecoveryKey, getRecoveryKeySubject, EndorsementRequest, getEndorsementRequestSubject, CredentialAwaitingGuardian, getCredentialAwaitingGuardianSubject, GuardianApprovedClaim, getGuardianApprovedClaimSubject, GuardianCredentialApproval, getGuardianCredentialApprovalSubject, GuardianEmailOtp, getGuardianEmailOtpSubject, GuardianRejectedCredential, getGuardianRejectedCredentialSubject, EmailVerification, getEmailVerificationSubject, CredentialUpdated, getCredentialUpdatedSubject, AccountSignInChanged, getAccountSignInChangedSubject, EscrowHoldStarted, getEscrowHoldStartedSubject, EscrowHoldReminder, getEscrowHoldReminderSubject, EscrowHoldReleased, getEscrowHoldReleasedSubject, EscrowHoldCancelled, getEscrowHoldCancelledSubject, EscrowPinLocked, getEscrowPinLockedSubject, EscrowPinSignIn, getEscrowPinSignInSubject, AccountSecured, getAccountSecuredSubject, } from './templates';
14
+ import { localeProp } from './i18n';
14
15
  // ---------------------------------------------------------------------------
15
16
  // renderEmail()
16
17
  // ---------------------------------------------------------------------------
@@ -202,6 +203,31 @@ function buildElement(templateId, branding, data, locale) {
202
203
  subject: getEscrowPinLockedSubject(branding, locale),
203
204
  };
204
205
  }
206
+ case 'escrow-pin-sign-in': {
207
+ const d = data;
208
+ const props = {
209
+ branding,
210
+ signedInAt: d.signedInAt,
211
+ secureUrl: d.secureUrl,
212
+ ...localeProp(locale),
213
+ };
214
+ return {
215
+ element: React.createElement(EscrowPinSignIn, props),
216
+ subject: getEscrowPinSignInSubject(branding, locale),
217
+ };
218
+ }
219
+ case 'account-secured': {
220
+ const d = data;
221
+ const props = {
222
+ branding,
223
+ securedAt: d.securedAt,
224
+ ...localeProp(locale),
225
+ };
226
+ return {
227
+ element: React.createElement(AccountSecured, props),
228
+ subject: getAccountSecuredSubject(branding, locale),
229
+ };
230
+ }
205
231
  default: {
206
232
  const _exhaustive = templateId;
207
233
  throw new Error(`Unknown template: ${_exhaustive}`);
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * AccountSecured — tells the account owner that "Secure my account" ran: every other
3
+ * device and login was signed out and the recovery methods have to be set up again.
4
+ *
5
+ * The recipient may be an owner who did NOT do this (someone with their login and
6
+ * PIN ran it first) and whose own login was unlinked. So the copy never relies on the
7
+ * in-app "Secure my account" link. It also does not offer the app's lost-login path
8
+ * as the way back: the revoke itself returned every recovery method to pending and
9
+ * removed automatic recovery, so that path usually has nothing left to use. It sends
10
+ * the owner to the tenant's support address, or, when the tenant has none, to the
11
+ * organization that gave them access (no address is made up).
12
+ *
13
+ * Used by: lca-api `POST /keys/revoke-other-devices` (templateId: 'account-secured')
14
+ */
15
+ import * as React from 'react';
16
+ import type { TenantBranding } from '../branding';
17
+ export interface AccountSecuredProps {
18
+ branding: TenantBranding;
19
+ /** ISO timestamp of the revoke (formatted per locale), or display text. */
20
+ securedAt: string;
21
+ /** Recipient locale (BCP-47). Defaults to English. */
22
+ locale?: string | undefined;
23
+ }
24
+ export declare const AccountSecured: React.FC<AccountSecuredProps>;
25
+ export declare const getAccountSecuredSubject: (_branding: TenantBranding, locale?: string) => string;
26
+ export default function Preview(): React.JSX.Element;
27
+ //# sourceMappingURL=account-secured.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-secured.d.ts","sourceRoot":"","sources":["../../src/templates/account-secured.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAclD,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,cAAc,CAAC;IACzB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAgHD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAwCxD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,WAAW,cAAc,EAAE,SAAS,MAAM,KAAG,MACrC,CAAC;AAwClD,MAAM,CAAC,OAAO,UAAU,OAAO,sBAE9B"}
@@ -0,0 +1,118 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * AccountSecured — tells the account owner that "Secure my account" ran: every other
4
+ * device and login was signed out and the recovery methods have to be set up again.
5
+ *
6
+ * The recipient may be an owner who did NOT do this (someone with their login and
7
+ * PIN ran it first) and whose own login was unlinked. So the copy never relies on the
8
+ * in-app "Secure my account" link. It also does not offer the app's lost-login path
9
+ * as the way back: the revoke itself returned every recovery method to pending and
10
+ * removed automatic recovery, so that path usually has nothing left to use. It sends
11
+ * the owner to the tenant's support address, or, when the tenant has none, to the
12
+ * organization that gave them access (no address is made up).
13
+ *
14
+ * Used by: lca-api `POST /keys/revoke-other-devices` (templateId: 'account-secured')
15
+ */
16
+ import { Text, Section } from '@react-email/components';
17
+ import { DEFAULT_BRANDING } from '../branding';
18
+ import { Layout } from '../components/Layout';
19
+ import { EmailButton } from '../components/EmailButton';
20
+ import { LinkFallback } from '../components/LinkFallback';
21
+ import { resolveCatalogLocale, interpolate, SHARED, formatNoticeTimestamp, localeProp, } from '../i18n';
22
+ const EN = {
23
+ preview: 'Other devices were signed out of your account',
24
+ heading: 'Your Account Was Secured',
25
+ body: (securedAt, brandName) => (_jsxs(_Fragment, { children: ["On ", _jsx("strong", { children: securedAt }), ", someone signed in to your ", brandName, " account signed out every other device and login. The account\u2019s recovery methods now need to be set up again."] })),
26
+ ifYou: 'If this was you, there is nothing else to do here. Finish setting up your recovery methods in the app.',
27
+ notYouWarning: 'If this wasn’t you, someone else may have access to your account, and your own sign-in may have been removed.',
28
+ resetWarning: 'Securing the account also reset its recovery methods, so your recovery phrase, backup, passkey or recovery PIN may no longer get you back in.',
29
+ support: 'Contact {supportEmail} right away for help getting back into your account.',
30
+ supportFallback: 'Contact the organization that gave you access to {brandName} right away for help getting back into your account.',
31
+ button: 'Open {brandName}',
32
+ sincerely: 'Sincerely,',
33
+ subject: 'Other devices were signed out of your account',
34
+ };
35
+ const ES = {
36
+ preview: 'Se cerró la sesión de otros dispositivos en tu cuenta',
37
+ heading: 'Tu Cuenta Fue Protegida',
38
+ body: (securedAt, brandName) => (_jsxs(_Fragment, { children: ["El ", _jsx("strong", { children: securedAt }), ", alguien con sesi\u00F3n iniciada en tu cuenta de ", brandName, ' ', "cerr\u00F3 la sesi\u00F3n de todos los dem\u00E1s dispositivos e inicios de sesi\u00F3n. Ahora hay que volver a configurar los m\u00E9todos de recuperaci\u00F3n de la cuenta."] })),
39
+ ifYou: 'Si fuiste tú, no tienes que hacer nada más aquí. Termina de configurar tus métodos de recuperación en la aplicación.',
40
+ notYouWarning: 'Si no fuiste tú, es posible que otra persona tenga acceso a tu cuenta y que se haya eliminado tu propio inicio de sesión.',
41
+ resetWarning: 'Al proteger la cuenta también se restablecieron sus métodos de recuperación, así que es posible que tu frase de recuperación, copia de seguridad, llave de acceso o PIN de recuperación ya no te permitan volver a entrar.',
42
+ support: 'Escribe cuanto antes a {supportEmail} para que te ayuden a recuperar el acceso a tu cuenta.',
43
+ supportFallback: 'Comunícate cuanto antes con la organización que te dio acceso a {brandName} para que te ayuden a recuperar el acceso a tu cuenta.',
44
+ button: 'Abrir {brandName}',
45
+ sincerely: 'Atentamente,',
46
+ subject: 'Se cerró la sesión de otros dispositivos en tu cuenta',
47
+ };
48
+ const FR = {
49
+ preview: 'Les autres appareils ont été déconnectés de votre compte',
50
+ heading: 'Votre Compte a Été Sécurisé',
51
+ body: (securedAt, brandName) => (_jsxs(_Fragment, { children: ["Le ", _jsx("strong", { children: securedAt }), ", une personne connect\u00E9e \u00E0 votre compte ", brandName, " a d\u00E9connect\u00E9 tous les autres appareils et connexions. Les m\u00E9thodes de r\u00E9cup\u00E9ration du compte doivent maintenant \u00EAtre configur\u00E9es \u00E0 nouveau."] })),
52
+ ifYou: 'Si c’était vous, vous n’avez rien d’autre à faire ici. Terminez la configuration de vos méthodes de récupération dans l’application.',
53
+ notYouWarning: 'Si ce n’était pas vous, quelqu’un d’autre a peut-être accès à votre compte, et votre propre connexion a peut-être été supprimée.',
54
+ resetWarning: 'La sécurisation du compte a aussi réinitialisé ses méthodes de récupération : votre phrase de récupération, votre sauvegarde, votre clé d’accès ou votre code PIN de récupération ne vous permettront peut-être plus de vous reconnecter.',
55
+ support: 'Écrivez sans attendre à {supportEmail} pour obtenir de l’aide afin de récupérer l’accès à votre compte.',
56
+ supportFallback: 'Contactez sans attendre l’organisation qui vous a donné accès à {brandName} pour obtenir de l’aide afin de récupérer l’accès à votre compte.',
57
+ button: 'Ouvrir {brandName}',
58
+ sincerely: 'Cordialement,',
59
+ subject: 'Les autres appareils ont été déconnectés de votre compte',
60
+ };
61
+ const AR = {
62
+ preview: 'تم تسجيل خروج الأجهزة الأخرى من حسابك',
63
+ heading: 'تم تأمين حسابك',
64
+ body: (securedAt, brandName) => (_jsxs(_Fragment, { children: ["\u0641\u064A ", _jsx("strong", { children: securedAt }), "\u060C \u0642\u0627\u0645 \u0634\u062E\u0635 \u0645\u0633\u062C\u0651\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0625\u0644\u0649 \u062D\u0633\u0627\u0628\u0643 \u0641\u064A ", brandName, " \u0628\u062A\u0633\u062C\u064A\u0644 \u062E\u0631\u0648\u062C \u062C\u0645\u064A\u0639 \u0627\u0644\u0623\u062C\u0647\u0632\u0629 \u0648\u0639\u0645\u0644\u064A\u0627\u062A \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0627\u0644\u0623\u062E\u0631\u0649. \u064A\u062C\u0628 \u0627\u0644\u0622\u0646 \u0625\u0639\u062F\u0627\u062F \u0637\u0631\u0642 \u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0627\u0644\u062D\u0633\u0627\u0628 \u0645\u0646 \u062C\u062F\u064A\u062F."] })),
65
+ ifYou: 'إذا كنت أنت، فلا داعي لفعل أي شيء آخر هنا. أكمل إعداد طرق الاستعادة في التطبيق.',
66
+ notYouWarning: 'إذا لم تكن أنت، فقد يكون لدى شخص آخر حق الوصول إلى حسابك، وربما تمت إزالة تسجيل الدخول الخاص بك.',
67
+ resetWarning: 'أدى تأمين الحساب أيضًا إلى إعادة تعيين طرق استعادته، لذلك قد لا تتمكن بعد الآن من العودة إلى حسابك باستخدام عبارة الاستعادة أو النسخة الاحتياطية أو مفتاح المرور أو رمز PIN للاستعادة.',
68
+ support: 'راسل {supportEmail} فورًا للحصول على مساعدة في استعادة الوصول إلى حسابك.',
69
+ supportFallback: 'تواصل فورًا مع الجهة التي منحتك الوصول إلى {brandName} للحصول على مساعدة في استعادة الوصول إلى حسابك.',
70
+ button: 'فتح {brandName}',
71
+ sincerely: 'مع التحيات،',
72
+ subject: 'تم تسجيل خروج الأجهزة الأخرى من حسابك',
73
+ };
74
+ const STRINGS = { en: EN, es: ES, fr: FR, ar: AR };
75
+ export const AccountSecured = ({ branding, securedAt, locale }) => {
76
+ const catalogLocale = resolveCatalogLocale(locale);
77
+ const s = STRINGS[catalogLocale];
78
+ const { brandName, supportEmail, appUrl } = branding;
79
+ return (_jsxs(Layout, { branding: branding, preview: s.preview, ...localeProp(locale), children: [_jsx(Text, { style: heading, children: s.heading }), _jsx(Text, { style: paragraph, children: s.body(formatNoticeTimestamp(securedAt, catalogLocale), brandName) }), _jsx(Text, { style: paragraph, children: s.ifYou }), _jsx(Text, { style: warning, children: s.notYouWarning }), _jsx(Text, { style: paragraph, children: s.resetWarning }), _jsx(Text, { style: paragraph, children: supportEmail
80
+ ? interpolate(s.support, { supportEmail })
81
+ : interpolate(s.supportFallback, { brandName }) }), _jsx(Section, { style: buttonWrapper, children: _jsx(EmailButton, { href: appUrl, branding: branding, children: interpolate(s.button, { brandName }) }) }), _jsxs(Text, { style: signOff, children: [s.sincerely, _jsx("br", {}), interpolate(SHARED[catalogLocale].teamSignature, { brandName })] }), _jsx(LinkFallback, { href: appUrl, ...localeProp(locale) })] }));
82
+ };
83
+ export const getAccountSecuredSubject = (_branding, locale) => STRINGS[resolveCatalogLocale(locale)].subject;
84
+ // ---------------------------------------------------------------------------
85
+ // Styles
86
+ // ---------------------------------------------------------------------------
87
+ const heading = {
88
+ fontSize: 24,
89
+ fontWeight: 600,
90
+ color: '#111827',
91
+ margin: '0 0 24px',
92
+ };
93
+ const paragraph = {
94
+ fontSize: 16,
95
+ color: '#374151',
96
+ lineHeight: '24px',
97
+ margin: '0 0 24px',
98
+ };
99
+ const warning = {
100
+ ...paragraph,
101
+ fontWeight: 600,
102
+ };
103
+ const buttonWrapper = {
104
+ margin: '0 0 24px',
105
+ };
106
+ const signOff = {
107
+ fontSize: 14,
108
+ color: '#374151',
109
+ lineHeight: '20px',
110
+ margin: '24px 0 0',
111
+ };
112
+ // ---------------------------------------------------------------------------
113
+ // Preview
114
+ // ---------------------------------------------------------------------------
115
+ export default function Preview() {
116
+ return _jsx(AccountSecured, { branding: DEFAULT_BRANDING, securedAt: "October 2, 2026, 3:00 PM" });
117
+ }
118
+ //# sourceMappingURL=account-secured.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-secured.js","sourceRoot":"","sources":["../../src/templates/account-secured.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * EscrowPinSignIn — tells the account owner that a new device just signed in
3
+ * with their recovery PIN, and links to the in-app "Secure my account" action
4
+ * (which stops other devices and logins from signing in again and turns off the old
5
+ * recovery methods).
6
+ *
7
+ * Used by: lca-api `/keys/escrow/complete` for PIN releases
8
+ * (templateId: 'escrow-pin-sign-in')
9
+ */
10
+ import * as React from 'react';
11
+ import type { TenantBranding } from '../branding';
12
+ export interface EscrowPinSignInProps {
13
+ branding: TenantBranding;
14
+ /** ISO timestamp of the PIN sign-in (formatted per locale), or display text. */
15
+ signedInAt: string;
16
+ /** In-app link to the "Secure my account" action. */
17
+ secureUrl: string;
18
+ /** Recipient locale (BCP-47). Defaults to English. */
19
+ locale?: string;
20
+ }
21
+ export declare const EscrowPinSignIn: React.FC<EscrowPinSignInProps>;
22
+ export declare const getEscrowPinSignInSubject: (_branding: TenantBranding, locale?: string) => string;
23
+ export default function Preview(): React.JSX.Element;
24
+ //# sourceMappingURL=escrow-pin-sign-in.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-pin-sign-in.d.ts","sourceRoot":"","sources":["../../src/templates/escrow-pin-sign-in.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAclD,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AA0ED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAoC1D,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,WAAW,cAAc,EAAE,SAAS,MAAM,KAAG,MACtC,CAAC;AAwClD,MAAM,CAAC,OAAO,UAAU,OAAO,sBAQ9B"}
@@ -0,0 +1,96 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * EscrowPinSignIn — tells the account owner that a new device just signed in
4
+ * with their recovery PIN, and links to the in-app "Secure my account" action
5
+ * (which stops other devices and logins from signing in again and turns off the old
6
+ * recovery methods).
7
+ *
8
+ * Used by: lca-api `/keys/escrow/complete` for PIN releases
9
+ * (templateId: 'escrow-pin-sign-in')
10
+ */
11
+ import { Text, Section } from '@react-email/components';
12
+ import { DEFAULT_BRANDING } from '../branding';
13
+ import { Layout } from '../components/Layout';
14
+ import { EmailButton } from '../components/EmailButton';
15
+ import { LinkFallback } from '../components/LinkFallback';
16
+ import { resolveCatalogLocale, interpolate, SHARED, formatNoticeTimestamp, localeProp, } from '../i18n';
17
+ const EN = {
18
+ preview: 'New device signed in with your PIN',
19
+ heading: 'New Device Signed In With Your PIN',
20
+ body: signedInAt => (_jsxs(_Fragment, { children: ["A new device signed in to your account with your recovery PIN on", ' ', _jsx("strong", { children: signedInAt }), "."] })),
21
+ warning: 'Not you? Secure your account.',
22
+ button: 'Secure my account',
23
+ sincerely: 'Sincerely,',
24
+ subject: 'New device signed in with your PIN',
25
+ };
26
+ const ES = {
27
+ preview: 'Un dispositivo nuevo inició sesión con tu PIN',
28
+ heading: 'Un Dispositivo Nuevo Inició Sesión con tu PIN',
29
+ body: signedInAt => (_jsxs(_Fragment, { children: ["Un dispositivo nuevo inici\u00F3 sesi\u00F3n en tu cuenta con tu PIN de recuperaci\u00F3n el", ' ', _jsx("strong", { children: signedInAt }), "."] })),
30
+ warning: '¿No fuiste tú? Protege tu cuenta.',
31
+ button: 'Proteger mi cuenta',
32
+ sincerely: 'Atentamente,',
33
+ subject: 'Un dispositivo nuevo inició sesión con tu PIN',
34
+ };
35
+ const FR = {
36
+ preview: 'Un nouvel appareil s’est connecté avec votre code PIN',
37
+ heading: 'Un Nouvel Appareil S’est Connecté avec Votre Code PIN',
38
+ body: signedInAt => (_jsxs(_Fragment, { children: ["Un nouvel appareil s\u2019est connect\u00E9 \u00E0 votre compte avec votre code PIN de r\u00E9cup\u00E9ration le", ' ', _jsx("strong", { children: signedInAt }), "."] })),
39
+ warning: 'Ce n’était pas vous ? Sécurisez votre compte.',
40
+ button: 'Sécuriser mon compte',
41
+ sincerely: 'Cordialement,',
42
+ subject: 'Un nouvel appareil s’est connecté avec votre code PIN',
43
+ };
44
+ const AR = {
45
+ preview: 'تم تسجيل الدخول من جهاز جديد باستخدام رمز PIN الخاص بك',
46
+ heading: 'تم تسجيل الدخول من جهاز جديد باستخدام رمز PIN الخاص بك',
47
+ body: signedInAt => (_jsxs(_Fragment, { children: ["\u0633\u062C\u0651\u0644 \u062C\u0647\u0627\u0632 \u062C\u062F\u064A\u062F \u0627\u0644\u062F\u062E\u0648\u0644 \u0625\u0644\u0649 \u062D\u0633\u0627\u0628\u0643 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0631\u0645\u0632 PIN \u0627\u0644\u062E\u0627\u0635 \u0628\u0627\u0644\u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0641\u064A", ' ', _jsx("strong", { children: signedInAt }), "."] })),
48
+ warning: 'لم يكن أنت؟ أمّن حسابك.',
49
+ button: 'تأمين حسابي',
50
+ sincerely: 'مع التحيات،',
51
+ subject: 'تم تسجيل الدخول من جهاز جديد باستخدام رمز PIN الخاص بك',
52
+ };
53
+ const STRINGS = { en: EN, es: ES, fr: FR, ar: AR };
54
+ export const EscrowPinSignIn = ({ branding, signedInAt, secureUrl, locale, }) => {
55
+ const catalogLocale = resolveCatalogLocale(locale);
56
+ const s = STRINGS[catalogLocale];
57
+ return (_jsxs(Layout, { branding: branding, preview: s.preview, ...localeProp(locale), children: [_jsx(Text, { style: heading, children: s.heading }), _jsx(Text, { style: paragraph, children: s.body(formatNoticeTimestamp(signedInAt, catalogLocale)) }), _jsx(Text, { style: warning, children: s.warning }), _jsx(Section, { style: buttonWrapper, children: _jsx(EmailButton, { href: secureUrl, branding: branding, children: s.button }) }), _jsxs(Text, { style: signOff, children: [s.sincerely, _jsx("br", {}), interpolate(SHARED[catalogLocale].teamSignature, {
58
+ brandName: branding.brandName,
59
+ })] }), _jsx(LinkFallback, { href: secureUrl, ...localeProp(locale) })] }));
60
+ };
61
+ export const getEscrowPinSignInSubject = (_branding, locale) => STRINGS[resolveCatalogLocale(locale)].subject;
62
+ // ---------------------------------------------------------------------------
63
+ // Styles
64
+ // ---------------------------------------------------------------------------
65
+ const heading = {
66
+ fontSize: 24,
67
+ fontWeight: 600,
68
+ color: '#111827',
69
+ margin: '0 0 24px',
70
+ };
71
+ const paragraph = {
72
+ fontSize: 16,
73
+ color: '#374151',
74
+ lineHeight: '24px',
75
+ margin: '0 0 24px',
76
+ };
77
+ const warning = {
78
+ ...paragraph,
79
+ fontWeight: 600,
80
+ };
81
+ const buttonWrapper = {
82
+ margin: '0 0 24px',
83
+ };
84
+ const signOff = {
85
+ fontSize: 14,
86
+ color: '#374151',
87
+ lineHeight: '20px',
88
+ margin: '24px 0 0',
89
+ };
90
+ // ---------------------------------------------------------------------------
91
+ // Preview
92
+ // ---------------------------------------------------------------------------
93
+ export default function Preview() {
94
+ return (_jsx(EscrowPinSignIn, { branding: DEFAULT_BRANDING, signedInAt: "October 2, 2026, 3:00 PM", secureUrl: "https://learncard.app/account/secure" }));
95
+ }
96
+ //# sourceMappingURL=escrow-pin-sign-in.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-pin-sign-in.js","sourceRoot":"","sources":["../../src/templates/escrow-pin-sign-in.tsx"],"names":[],"mappings":"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"}