@learncard/email-templates 1.0.4 → 1.0.6

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 (94) hide show
  1. package/dist/branding.d.ts.map +1 -1
  2. package/dist/components/Layout.d.ts +2 -0
  3. package/dist/components/Layout.d.ts.map +1 -1
  4. package/dist/components/Layout.js +6 -1
  5. package/dist/components/Layout.js.map +1 -1
  6. package/dist/components/LinkFallback.d.ts +2 -0
  7. package/dist/components/LinkFallback.d.ts.map +1 -1
  8. package/dist/components/LinkFallback.js +5 -1
  9. package/dist/components/LinkFallback.js.map +1 -1
  10. package/dist/i18n.d.ts +52 -0
  11. package/dist/i18n.d.ts.map +1 -0
  12. package/dist/i18n.js +77 -0
  13. package/dist/i18n.js.map +1 -0
  14. package/dist/index.d.ts +4 -2
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +3 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/render.d.ts +3 -1
  19. package/dist/render.d.ts.map +1 -1
  20. package/dist/render.js +33 -30
  21. package/dist/render.js.map +1 -1
  22. package/dist/sms.d.ts +6 -3
  23. package/dist/sms.d.ts.map +1 -1
  24. package/dist/sms.js +43 -7
  25. package/dist/sms.js.map +1 -1
  26. package/dist/templates/account-approved.d.ts +3 -1
  27. package/dist/templates/account-approved.d.ts.map +1 -1
  28. package/dist/templates/account-approved.js +55 -5
  29. package/dist/templates/account-approved.js.map +1 -1
  30. package/dist/templates/credential-awaiting-guardian.d.ts +3 -1
  31. package/dist/templates/credential-awaiting-guardian.d.ts.map +1 -1
  32. package/dist/templates/credential-awaiting-guardian.js +54 -4
  33. package/dist/templates/credential-awaiting-guardian.js.map +1 -1
  34. package/dist/templates/email-verification.d.ts +3 -1
  35. package/dist/templates/email-verification.d.ts.map +1 -1
  36. package/dist/templates/email-verification.js +57 -4
  37. package/dist/templates/email-verification.js.map +1 -1
  38. package/dist/templates/endorsement-request.d.ts +3 -1
  39. package/dist/templates/endorsement-request.d.ts.map +1 -1
  40. package/dist/templates/endorsement-request.js +53 -5
  41. package/dist/templates/endorsement-request.js.map +1 -1
  42. package/dist/templates/guardian-approval.d.ts +3 -1
  43. package/dist/templates/guardian-approval.d.ts.map +1 -1
  44. package/dist/templates/guardian-approval.js +55 -5
  45. package/dist/templates/guardian-approval.js.map +1 -1
  46. package/dist/templates/guardian-approved-claim.d.ts +3 -1
  47. package/dist/templates/guardian-approved-claim.d.ts.map +1 -1
  48. package/dist/templates/guardian-approved-claim.js +50 -4
  49. package/dist/templates/guardian-approved-claim.js.map +1 -1
  50. package/dist/templates/guardian-credential-approval.d.ts +3 -1
  51. package/dist/templates/guardian-credential-approval.d.ts.map +1 -1
  52. package/dist/templates/guardian-credential-approval.js +50 -4
  53. package/dist/templates/guardian-credential-approval.js.map +1 -1
  54. package/dist/templates/guardian-email-otp.d.ts +3 -1
  55. package/dist/templates/guardian-email-otp.d.ts.map +1 -1
  56. package/dist/templates/guardian-email-otp.js +55 -5
  57. package/dist/templates/guardian-email-otp.js.map +1 -1
  58. package/dist/templates/guardian-rejected-credential.d.ts +3 -1
  59. package/dist/templates/guardian-rejected-credential.d.ts.map +1 -1
  60. package/dist/templates/guardian-rejected-credential.js +45 -3
  61. package/dist/templates/guardian-rejected-credential.js.map +1 -1
  62. package/dist/templates/inbox-claim.d.ts +3 -1
  63. package/dist/templates/inbox-claim.d.ts.map +1 -1
  64. package/dist/templates/inbox-claim.js +63 -11
  65. package/dist/templates/inbox-claim.js.map +1 -1
  66. package/dist/templates/recovery-key.d.ts +3 -1
  67. package/dist/templates/recovery-key.d.ts.map +1 -1
  68. package/dist/templates/recovery-key.js +59 -3
  69. package/dist/templates/recovery-key.js.map +1 -1
  70. package/dist/templates/verification-code.d.ts +3 -1
  71. package/dist/templates/verification-code.d.ts.map +1 -1
  72. package/dist/templates/verification-code.js +153 -17
  73. package/dist/templates/verification-code.js.map +1 -1
  74. package/dist/tenant-registry.d.ts.map +1 -1
  75. package/package.json +4 -3
  76. package/src/__tests__/i18n.test.ts +329 -0
  77. package/src/components/Layout.tsx +69 -60
  78. package/src/components/LinkFallback.tsx +19 -11
  79. package/src/i18n.ts +110 -0
  80. package/src/index.ts +15 -2
  81. package/src/render.ts +47 -28
  82. package/src/sms.ts +61 -6
  83. package/src/templates/account-approved.tsx +82 -29
  84. package/src/templates/credential-awaiting-guardian.tsx +113 -19
  85. package/src/templates/email-verification.tsx +87 -16
  86. package/src/templates/endorsement-request.tsx +142 -17
  87. package/src/templates/guardian-approval.tsx +106 -16
  88. package/src/templates/guardian-approved-claim.tsx +137 -17
  89. package/src/templates/guardian-credential-approval.tsx +112 -17
  90. package/src/templates/guardian-email-otp.tsx +103 -25
  91. package/src/templates/guardian-rejected-credential.tsx +137 -15
  92. package/src/templates/inbox-claim.tsx +180 -29
  93. package/src/templates/recovery-key.tsx +126 -30
  94. package/src/templates/verification-code.tsx +204 -38
@@ -1 +1 @@
1
- {"version":3,"file":"guardian-approval.js","sourceRoot":"","sources":["../../src/templates/guardian-approval.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAe1D,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAC9D,QAAQ,EACR,WAAW,EACX,SAAS,GACZ,EAAE,EAAE;IACD,MAAM,aAAa,GAAG,SAAS,EAAE,WAAW,IAAI,SAAS,CAAC;IAE1D,OAAO,CACH,MAAC,MAAM,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,aAAa,gCAAgC,QAAQ,CAAC,SAAS,EAAE,aACrG,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,yCAAiC,EAErD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,uBAAe,EAErC,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,aAClB,2BAAS,aAAa,GAAU,2CAAsC,QAAQ,CAAC,SAAS,iBACrF,EAEP,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,aACjB,QAAQ,CAAC,SAAS,sJAEhB,EAEP,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,+EAEf,EAEP,KAAC,OAAO,IAAC,KAAK,EAAE,aAAa,YACzB,KAAC,WAAW,IAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,uCAEpC,GACR,EAEV,MAAC,IAAI,IAAC,KAAK,EAAE,OAAO,2BACN,cAAM,UAAK,QAAQ,CAAC,SAAS,aACpC,EAEP,KAAC,YAAY,IAAC,IAAI,EAAE,WAAW,GAAI,IAC9B,CACZ,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACtC,QAAwB,EACxB,KAA4B,EACtB,EAAE;IACR,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,WAAW,IAAI,SAAS,CAAC;IAEvD,OAAO,GAAG,IAAI,gCAAgC,QAAQ,CAAC,SAAS,EAAE,CAAC;AACvE,CAAC,CAAC;AAEF,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,OAAO,GAAwB;IACjC,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,SAAS,GAAwB;IACnC,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,aAAa,GAAwB;IACvC,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,OAAO,GAAwB;IACjC,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,CAAC,OAAO,UAAU,OAAO;IAC3B,OAAO,CACH,KAAC,gBAAgB,IACb,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAC,4CAA4C,EACxD,aAAa,EAAC,QAAQ,EACtB,SAAS,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,EACxC,QAAQ,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAC3C,CACL,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"guardian-approval.js","sourceRoot":"","sources":["../../src/templates/guardian-approval.tsx"],"names":[],"mappings":"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"}
@@ -15,8 +15,10 @@ export interface GuardianApprovedClaimProps {
15
15
  credential?: {
16
16
  name?: string;
17
17
  };
18
+ /** Recipient locale (BCP-47). Defaults to English. */
19
+ locale?: string;
18
20
  }
19
21
  export declare const GuardianApprovedClaim: React.FC<GuardianApprovedClaimProps>;
20
- export declare const getGuardianApprovedClaimSubject: (_branding: TenantBranding) => string;
22
+ export declare const getGuardianApprovedClaimSubject: (_branding: TenantBranding, locale?: string) => string;
21
23
  export default function Preview(): React.JSX.Element;
22
24
  //# sourceMappingURL=guardian-approved-claim.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guardian-approved-claim.d.ts","sourceRoot":"","sources":["../../src/templates/guardian-approved-claim.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,MAAM,WAAW,0BAA0B;IACvC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAuCtE,CAAC;AAEF,eAAO,MAAM,+BAA+B,cAC7B,cAAc,KAC1B,MAA8C,CAAC;AAmClD,MAAM,CAAC,OAAO,UAAU,OAAO,sBAQ9B"}
1
+ {"version":3,"file":"guardian-approved-claim.d.ts","sourceRoot":"","sources":["../../src/templates/guardian-approved-claim.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD,MAAM,WAAW,0BAA0B;IACvC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAoHD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAwCtE,CAAC;AAEF,eAAO,MAAM,+BAA+B,GACxC,WAAW,cAAc,EACzB,SAAS,MAAM,KAChB,MAAuD,CAAC;AAmC3D,MAAM,CAAC,OAAO,UAAU,OAAO,sBAQ9B"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  /**
3
3
  * GuardianApprovedClaim — email sent to a student when their guardian has
4
4
  * approved a credential.
@@ -10,12 +10,58 @@ import { DEFAULT_BRANDING } from '../branding';
10
10
  import { Layout } from '../components/Layout';
11
11
  import { EmailButton } from '../components/EmailButton';
12
12
  import { IssuerLogo } from '../components/IssuerLogo';
13
- export const GuardianApprovedClaim = ({ branding, issuer, credential, }) => {
13
+ import { resolveCatalogLocale, interpolate, SHARED } from '../i18n';
14
+ const STRINGS = {
15
+ en: {
16
+ preview: 'Your credential has been approved by your guardian!',
17
+ heading: 'Your credential has been approved!',
18
+ greatNews: 'Great news!',
19
+ body: (issuerName, credentialName, brandName) => (_jsxs(_Fragment, { children: ["Your guardian has approved the credential", ' ', credentialName ? (_jsxs(_Fragment, { children: [_jsxs("strong", { children: ["\u201C", credentialName, "\u201D"] }), ' '] })) : (''), "issued by ", _jsx("strong", { children: issuerName }), ". It is now available in your ", brandName, ' ', "account."] })),
20
+ openApp: 'Open the app to see it \u2014 your credential should appear automatically. If you don\u2019t see it right away, try refreshing.',
21
+ button: b => `Open ${b} \u2192`,
22
+ sincerely: 'Sincerely,',
23
+ subject: 'Your Credential Has Been Approved!',
24
+ },
25
+ es: {
26
+ preview: '¡Tu credencial ha sido aprobada por tu tutor!',
27
+ heading: '¡Tu credencial ha sido aprobada!',
28
+ greatNews: '¡Buenas noticias!',
29
+ body: (issuerName, credentialName, brandName) => (_jsxs(_Fragment, { children: ["Tu tutor ha aprobado la credencial", ' ', credentialName ? (_jsxs(_Fragment, { children: [_jsxs("strong", { children: ["\u201C", credentialName, "\u201D"] }), ' '] })) : (''), "emitida por ", _jsx("strong", { children: issuerName }), ". Ya est\u00E1 disponible en tu cuenta de", ' ', brandName, "."] })),
30
+ openApp: 'Abre la app para verla \u2014 tu credencial debería aparecer automáticamente. Si no la ves de inmediato, intenta actualizar.',
31
+ button: b => `Abrir ${b} \u2192`,
32
+ sincerely: 'Atentamente,',
33
+ subject: '¡Tu credencial ha sido aprobada!',
34
+ },
35
+ fr: {
36
+ preview: 'Votre titre a été approuvé par votre tuteur !',
37
+ heading: 'Votre titre a été approuvé !',
38
+ greatNews: 'Excellente nouvelle !',
39
+ body: (issuerName, credentialName, brandName) => (_jsxs(_Fragment, { children: ["Votre tuteur a approuv\u00E9 le titre", ' ', credentialName ? (_jsxs(_Fragment, { children: [_jsxs("strong", { children: ["\u00AB\u00A0", credentialName, "\u00A0\u00BB"] }), ' '] })) : (''), "\u00E9mis par ", _jsx("strong", { children: issuerName }), ". Il est d\u00E9sormais disponible dans votre compte ", brandName, "."] })),
40
+ openApp: 'Ouvrez l\u2019application pour le voir \u2014 votre titre devrait apparaître automatiquement. Si vous ne le voyez pas tout de suite, essayez d\u2019actualiser.',
41
+ button: b => `Ouvrir ${b} \u2192`,
42
+ sincerely: 'Cordialement,',
43
+ subject: 'Votre titre a été approuvé !',
44
+ },
45
+ ar: {
46
+ preview: 'تمت الموافقة على شهادتك من قبل ولي أمرك!',
47
+ heading: 'تمت الموافقة على شهادتك!',
48
+ greatNews: 'أخبار رائعة!',
49
+ body: (issuerName, credentialName, brandName) => (_jsxs(_Fragment, { children: ["\u0648\u0627\u0641\u0642 \u0648\u0644\u064A \u0623\u0645\u0631\u0643 \u0639\u0644\u0649 \u0627\u0644\u0634\u0647\u0627\u062F\u0629", ' ', credentialName ? (_jsxs(_Fragment, { children: [_jsxs("strong", { children: ["\u00AB", credentialName, "\u00BB"] }), ' '] })) : (''), "\u0627\u0644\u0635\u0627\u062F\u0631\u0629 \u0645\u0646 ", _jsx("strong", { children: issuerName }), ". \u0648\u0647\u064A \u0645\u062A\u0627\u062D\u0629 \u0627\u0644\u0622\u0646 \u0641\u064A \u062D\u0633\u0627\u0628\u0643 \u0639\u0644\u0649 ", brandName, "."] })),
50
+ openApp: 'افتح التطبيق لرؤيتها \u2014 ينبغي أن تظهر شهادتك تلقائيًا. إذا لم تظهرها على الفور، حاول التحديث.',
51
+ button: b => `فتح ${b} ←`,
52
+ sincerely: 'مع التحيات،',
53
+ subject: 'تمت الموافقة على شهادتك!',
54
+ },
55
+ };
56
+ export const GuardianApprovedClaim = ({ branding, issuer, credential, locale, }) => {
57
+ const s = STRINGS[resolveCatalogLocale(locale)];
14
58
  const issuerName = issuer?.name ?? 'An issuer';
15
59
  const credentialName = credential?.name;
16
- return (_jsxs(Layout, { branding: branding, preview: "Your credential has been approved by your guardian!", showHeaderLogo: false, children: [_jsx(IssuerLogo, { logoUrl: issuer?.logoUrl, alt: issuerName ? `${issuerName} logo` : undefined }), _jsx(Text, { style: heading, children: "Your credential has been approved!" }), _jsx(Text, { style: paragraph, children: "Great news!" }), _jsxs(Text, { style: paragraph, children: ["Your guardian has approved the credential", ' ', credentialName ? _jsxs(_Fragment, { children: [_jsxs("strong", { children: ["\u201C", credentialName, "\u201D"] }), " "] }) : '', "issued by ", _jsx("strong", { children: issuerName }), ". It is now available in your ", branding.brandName, " account."] }), _jsx(Text, { style: paragraph, children: "Open the app to see it \u2014 your credential should appear automatically. If you don't see it right away, try refreshing." }), _jsx(Section, { style: buttonWrapper, children: _jsxs(EmailButton, { href: branding.appUrl, branding: branding, children: ["Open ", branding.brandName, " \u2192"] }) }), _jsxs(Text, { style: signOff, children: ["Sincerely,", _jsx("br", {}), "The ", branding.brandName, " Team"] })] }));
60
+ return (_jsxs(Layout, { branding: branding, locale: locale, preview: s.preview, showHeaderLogo: false, children: [_jsx(IssuerLogo, { logoUrl: issuer?.logoUrl, alt: issuerName ? `${issuerName} logo` : undefined }), _jsx(Text, { style: heading, children: s.heading }), _jsx(Text, { style: paragraph, children: s.greatNews }), _jsx(Text, { style: paragraph, children: s.body(issuerName, credentialName, branding.brandName) }), _jsx(Text, { style: paragraph, children: s.openApp }), _jsx(Section, { style: buttonWrapper, children: _jsx(EmailButton, { href: branding.appUrl, branding: branding, children: s.button(branding.brandName) }) }), _jsxs(Text, { style: signOff, children: [s.sincerely, _jsx("br", {}), interpolate(SHARED[resolveCatalogLocale(locale)].teamSignature, {
61
+ brandName: branding.brandName,
62
+ })] })] }));
17
63
  };
18
- export const getGuardianApprovedClaimSubject = (_branding) => 'Your Credential Has Been Approved!';
64
+ export const getGuardianApprovedClaimSubject = (_branding, locale) => STRINGS[resolveCatalogLocale(locale)].subject;
19
65
  // ---------------------------------------------------------------------------
20
66
  // Styles
21
67
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"guardian-approved-claim.js","sourceRoot":"","sources":["../../src/templates/guardian-approved-claim.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAatD,MAAM,CAAC,MAAM,qBAAqB,GAAyC,CAAC,EACxE,QAAQ,EACR,MAAM,EACN,UAAU,GACb,EAAE,EAAE;IACD,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI,IAAI,WAAW,CAAC;IAC/C,MAAM,cAAc,GAAG,UAAU,EAAE,IAAI,CAAC;IAExC,OAAO,CACH,MAAC,MAAM,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAC,qDAAqD,EAAC,cAAc,EAAE,KAAK,aAC3G,KAAC,UAAU,IAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,OAAO,CAAC,CAAC,CAAC,SAAS,GAAI,EAE5F,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,mDAA2C,EAE/D,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,4BAAoB,EAE1C,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,0DACwB,GAAG,EAC5C,cAAc,CAAC,CAAC,CAAC,8BAAE,uCAAgB,cAAc,cAAiB,SAAI,CAAC,CAAC,CAAC,EAAE,gBAClE,2BAAS,UAAU,GAAU,oCACjC,QAAQ,CAAC,SAAS,iBACrB,EAEP,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,2IAGf,EAEP,KAAC,OAAO,IAAC,KAAK,EAAE,aAAa,YACzB,MAAC,WAAW,IAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,sBAC5C,QAAQ,CAAC,SAAS,eACd,GACR,EAEV,MAAC,IAAI,IAAC,KAAK,EAAE,OAAO,2BACN,cAAM,UAAK,QAAQ,CAAC,SAAS,aACpC,IACF,CACZ,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC3C,SAAyB,EACnB,EAAE,CAAC,oCAAoC,CAAC;AAElD,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,OAAO,GAAwB;IACjC,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,SAAS,GAAwB;IACnC,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,aAAa,GAAwB;IACvC,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,OAAO,GAAwB;IACjC,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,CAAC,OAAO,UAAU,OAAO;IAC3B,OAAO,CACH,KAAC,qBAAqB,IAClB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAClD,CACL,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"guardian-approved-claim.js","sourceRoot":"","sources":["../../src/templates/guardian-approved-claim.tsx"],"names":[],"mappings":"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"}
@@ -20,8 +20,10 @@ export interface GuardianCredentialApprovalProps {
20
20
  recipient?: {
21
21
  email?: string;
22
22
  };
23
+ /** Recipient locale (BCP-47). Defaults to English. */
24
+ locale?: string;
23
25
  }
24
26
  export declare const GuardianCredentialApproval: React.FC<GuardianCredentialApprovalProps>;
25
- export declare const getGuardianCredentialApprovalSubject: (_branding: TenantBranding) => string;
27
+ export declare const getGuardianCredentialApprovalSubject: (_branding: TenantBranding, locale?: string) => string;
26
28
  export default function Preview(): React.JSX.Element;
27
29
  //# sourceMappingURL=guardian-credential-approval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guardian-credential-approval.d.ts","sourceRoot":"","sources":["../../src/templates/guardian-credential-approval.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,MAAM,WAAW,+BAA+B;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CA2ChF,CAAC;AAEF,eAAO,MAAM,oCAAoC,cAClC,cAAc,KAC1B,MAA4C,CAAC;AAmChD,MAAM,CAAC,OAAO,UAAU,OAAO,sBAW9B"}
1
+ {"version":3,"file":"guardian-credential-approval.d.ts","sourceRoot":"","sources":["../../src/templates/guardian-credential-approval.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AASlD,MAAM,WAAW,+BAA+B;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAqFD,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAkDhF,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAC7C,WAAW,cAAc,EACzB,SAAS,MAAM,KAChB,MAAuD,CAAC;AAmC3D,MAAM,CAAC,OAAO,UAAU,OAAO,sBAW9B"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  /**
3
3
  * GuardianCredentialApproval — email sent to a guardian asking them to
4
4
  * approve or decline a specific credential issued to their ward.
@@ -11,13 +11,59 @@ import { Layout } from '../components/Layout';
11
11
  import { EmailButton } from '../components/EmailButton';
12
12
  import { IssuerLogo } from '../components/IssuerLogo';
13
13
  import { LinkFallback } from '../components/LinkFallback';
14
- export const GuardianCredentialApproval = ({ branding, approvalUrl, issuer, credential, recipient, }) => {
14
+ import { resolveCatalogLocale, interpolate, SHARED } from '../i18n';
15
+ const STRINGS = {
16
+ en: {
17
+ preview: r => `A credential needs your approval for ${r}`,
18
+ heading: 'A credential needs your approval',
19
+ greeting: 'Hello,',
20
+ body: (issuerName, credentialName, recipientEmail) => (_jsxs(_Fragment, { children: [_jsx("strong", { children: issuerName }), " has issued the credential", ' ', _jsxs("strong", { children: ["\u201C", credentialName, "\u201D"] }), " to ", _jsx("strong", { children: recipientEmail }), "."] })),
21
+ review: 'As their guardian, your approval is required before they can claim it. Please review the credential and approve or decline below.',
22
+ button: 'Review &amp; Approve \u2192',
23
+ thankYou: 'Thank you,',
24
+ subject: 'A credential needs your approval',
25
+ },
26
+ es: {
27
+ preview: r => `Una credencial necesita tu aprobación para ${r}`,
28
+ heading: 'Una credencial necesita tu aprobación',
29
+ greeting: 'Hola,',
30
+ body: (issuerName, credentialName, recipientEmail) => (_jsxs(_Fragment, { children: [_jsx("strong", { children: issuerName }), " ha emitido la credencial", ' ', _jsxs("strong", { children: ["\u201C", credentialName, "\u201D"] }), " para", ' ', _jsx("strong", { children: recipientEmail }), "."] })),
31
+ review: 'Como su tutor, se requiere tu aprobación antes de que pueda reclamarla. Revisa la credencial y apruébala o recházala a continuación.',
32
+ button: 'Revisar y aprobar \u2192',
33
+ thankYou: 'Gracias,',
34
+ subject: 'Una credencial necesita tu aprobación',
35
+ },
36
+ fr: {
37
+ preview: r => `Un titre nécessite votre approbation pour ${r}`,
38
+ heading: 'Un titre nécessite votre approbation',
39
+ greeting: 'Bonjour,',
40
+ body: (issuerName, credentialName, recipientEmail) => (_jsxs(_Fragment, { children: [_jsx("strong", { children: issuerName }), " a \u00E9mis le titre", ' ', _jsxs("strong", { children: ["\u00AB\u00A0", credentialName, "\u00A0\u00BB"] }), " pour", ' ', _jsx("strong", { children: recipientEmail }), "."] })),
41
+ review: 'En tant que son tuteur, votre approbation est requise avant qu\u2019il puisse le réclamer. Veuillez vérifier le titre et l\u2019approuver ou le refuser ci-dessous.',
42
+ button: 'Vérifier &amp; approuver \u2192',
43
+ thankYou: 'Merci,',
44
+ subject: 'Un titre nécessite votre approbation',
45
+ },
46
+ ar: {
47
+ preview: r => `شهادة بحاجة إلى موافقتك من أجل ${r}`,
48
+ heading: 'شهادة بحاجة إلى موافقتك',
49
+ greeting: 'مرحبًا،',
50
+ body: (issuerName, credentialName, recipientEmail) => (_jsxs(_Fragment, { children: ["\u0623\u0635\u062F\u0631 ", _jsx("strong", { children: issuerName }), " \u0627\u0644\u0634\u0647\u0627\u062F\u0629", ' ', _jsxs("strong", { children: ["\u00AB", credentialName, "\u00BB"] }), " \u0644\u0640 ", _jsx("strong", { children: recipientEmail }), "."] })),
51
+ review: 'بصفتك ولي أمره، موافقتك مطلوبة قبل أن يتمكن من المطالبة بها. يرجى مراجعة الشهادة والموافقة عليها أو رفضها أدناه.',
52
+ button: 'مراجعة وموافقة ←',
53
+ thankYou: 'شكرًا،',
54
+ subject: 'شهادة بحاجة إلى موافقتك',
55
+ },
56
+ };
57
+ export const GuardianCredentialApproval = ({ branding, approvalUrl, issuer, credential, recipient, locale, }) => {
58
+ const s = STRINGS[resolveCatalogLocale(locale)];
15
59
  const issuerName = issuer?.name ?? 'An issuer';
16
60
  const credentialName = credential?.name ?? 'a credential';
17
61
  const recipientEmail = recipient?.email ?? 'a student';
18
- return (_jsxs(Layout, { branding: branding, preview: `A credential needs your approval for ${recipientEmail}`, showHeaderLogo: false, children: [_jsx(IssuerLogo, { logoUrl: issuer?.logoUrl, alt: issuerName ? `${issuerName} logo` : undefined }), _jsx(Text, { style: heading, children: "A credential needs your approval" }), _jsx(Text, { style: paragraph, children: "Hello," }), _jsxs(Text, { style: paragraph, children: [_jsx("strong", { children: issuerName }), " has issued the credential", ' ', _jsxs("strong", { children: ["\u201C", credentialName, "\u201D"] }), " to", ' ', _jsx("strong", { children: recipientEmail }), "."] }), _jsx(Text, { style: paragraph, children: "As their guardian, your approval is required before they can claim it. Please review the credential and approve or decline below." }), _jsx(Section, { style: buttonWrapper, children: _jsx(EmailButton, { href: approvalUrl, branding: branding, children: "Review & Approve \u2192" }) }), _jsxs(Text, { style: signOff, children: ["Thank you,", _jsx("br", {}), "The ", branding.brandName, " Team"] }), _jsx(LinkFallback, { href: approvalUrl })] }));
62
+ return (_jsxs(Layout, { branding: branding, locale: locale, preview: s.preview(recipientEmail), showHeaderLogo: false, children: [_jsx(IssuerLogo, { logoUrl: issuer?.logoUrl, alt: issuerName ? `${issuerName} logo` : undefined }), _jsx(Text, { style: heading, children: s.heading }), _jsx(Text, { style: paragraph, children: s.greeting }), _jsx(Text, { style: paragraph, children: s.body(issuerName, credentialName, recipientEmail) }), _jsx(Text, { style: paragraph, children: s.review }), _jsx(Section, { style: buttonWrapper, children: _jsx(EmailButton, { href: approvalUrl, branding: branding, children: s.button }) }), _jsxs(Text, { style: signOff, children: [s.thankYou, _jsx("br", {}), interpolate(SHARED[resolveCatalogLocale(locale)].teamSignature, {
63
+ brandName: branding.brandName,
64
+ })] }), _jsx(LinkFallback, { href: approvalUrl, locale: locale })] }));
19
65
  };
20
- export const getGuardianCredentialApprovalSubject = (_branding) => 'A credential needs your approval';
66
+ export const getGuardianCredentialApprovalSubject = (_branding, locale) => STRINGS[resolveCatalogLocale(locale)].subject;
21
67
  // ---------------------------------------------------------------------------
22
68
  // Styles
23
69
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"guardian-credential-approval.js","sourceRoot":"","sources":["../../src/templates/guardian-credential-approval.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAkB1D,MAAM,CAAC,MAAM,0BAA0B,GAA8C,CAAC,EAClF,QAAQ,EACR,WAAW,EACX,MAAM,EACN,UAAU,EACV,SAAS,GACZ,EAAE,EAAE;IACD,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI,IAAI,WAAW,CAAC;IAC/C,MAAM,cAAc,GAAG,UAAU,EAAE,IAAI,IAAI,cAAc,CAAC;IAC1D,MAAM,cAAc,GAAG,SAAS,EAAE,KAAK,IAAI,WAAW,CAAC;IAEvD,OAAO,CACH,MAAC,MAAM,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,wCAAwC,cAAc,EAAE,EAAE,cAAc,EAAE,KAAK,aAChH,KAAC,UAAU,IAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,OAAO,CAAC,CAAC,CAAC,SAAS,GAAI,EAE5F,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,iDAAyC,EAE7D,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,uBAAe,EAErC,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,aAClB,2BAAS,UAAU,GAAU,gCAA2B,GAAG,EAC3D,uCAAgB,cAAc,cAAiB,SAAI,GAAG,EACtD,2BAAS,cAAc,GAAU,SAC9B,EAEP,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,kJAGf,EAEP,KAAC,OAAO,IAAC,KAAK,EAAE,aAAa,YACzB,KAAC,WAAW,IAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,wCAEpC,GACR,EAEV,MAAC,IAAI,IAAC,KAAK,EAAE,OAAO,2BACN,cAAM,UAAK,QAAQ,CAAC,SAAS,aACpC,EAEP,KAAC,YAAY,IAAC,IAAI,EAAE,WAAW,GAAI,IAC9B,CACZ,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAChD,SAAyB,EACnB,EAAE,CAAC,kCAAkC,CAAC;AAEhD,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,OAAO,GAAwB;IACjC,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,SAAS,GAAwB;IACnC,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,aAAa,GAAwB;IACvC,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,OAAO,GAAwB;IACjC,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,CAAC,OAAO,UAAU,OAAO;IAC3B,OAAO,CACH,KAAC,0BAA0B,IACvB,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAC,qDAAqD,EACjE,aAAa,EAAC,QAAQ,EACtB,MAAM,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAChD,SAAS,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAC7C,CACL,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"guardian-credential-approval.js","sourceRoot":"","sources":["../../src/templates/guardian-credential-approval.tsx"],"names":[],"mappings":"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"}
@@ -9,8 +9,10 @@ import type { TenantBranding } from '../branding';
9
9
  export interface GuardianEmailOtpProps {
10
10
  branding: TenantBranding;
11
11
  verificationCode: string;
12
+ /** Recipient locale (BCP-47). Defaults to English. */
13
+ locale?: string;
12
14
  }
13
15
  export declare const GuardianEmailOtp: React.FC<GuardianEmailOtpProps>;
14
- export declare const getGuardianEmailOtpSubject: (_branding: TenantBranding) => string;
16
+ export declare const getGuardianEmailOtpSubject: (_branding: TenantBranding, locale?: string) => string;
15
17
  export default function Preview(): React.JSX.Element;
16
18
  //# sourceMappingURL=guardian-email-otp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guardian-email-otp.d.ts","sourceRoot":"","sources":["../../src/templates/guardian-email-otp.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA+B5D,CAAC;AAEF,eAAO,MAAM,0BAA0B,cACxB,cAAc,KAC1B,MAAkC,CAAC;AAsCtC,MAAM,CAAC,OAAO,UAAU,OAAO,sBAO9B"}
1
+ {"version":3,"file":"guardian-email-otp.d.ts","sourceRoot":"","sources":["../../src/templates/guardian-email-otp.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAmFD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA8B5D,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,WAAW,cAAc,EAAE,SAAS,MAAM,KAAG,MACvC,CAAC;AAsClD,MAAM,CAAC,OAAO,UAAU,OAAO,sBAE9B"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /**
3
3
  * GuardianEmailOtp — verification code email sent to a guardian when they
4
4
  * open an approval link and need to confirm their identity via OTP.
@@ -9,10 +9,60 @@ import { Text } from '@react-email/components';
9
9
  import { DEFAULT_BRANDING } from '../branding';
10
10
  import { Layout } from '../components/Layout';
11
11
  import { CodeBlock } from '../components/CodeBlock';
12
- export const GuardianEmailOtp = ({ branding, verificationCode, }) => {
13
- return (_jsxs(Layout, { branding: branding, preview: `Your verification code: ${verificationCode}`, children: [_jsx(Text, { style: heading, children: "Your verification code" }), _jsx(Text, { style: paragraph, children: "Hi there," }), _jsx(Text, { style: paragraph, children: "Here is your verification code to confirm your identity as guardian and complete your review:" }), _jsx(CodeBlock, { code: verificationCode, label: "Verification code" }), _jsxs(Text, { style: muted, children: ["This code expires in ", _jsx("strong", { style: { color: '#374151' }, children: "1 hour" }), ". Do not share it with anyone."] }), _jsx(Text, { style: muted, children: "If you did not request this code, you can safely ignore this email." }), _jsxs(Text, { style: signOff, children: ["Sincerely,", _jsx("br", {}), "The ", branding.brandName, " Team"] })] }));
12
+ import { resolveCatalogLocale, interpolate, SHARED } from '../i18n';
13
+ const STRINGS = {
14
+ en: {
15
+ preview: c => `Your verification code: ${c}`,
16
+ heading: 'Your verification code',
17
+ greeting: 'Hi there,',
18
+ body: 'Here is your verification code to confirm your identity as guardian and complete your review:',
19
+ codeLabel: 'Verification code',
20
+ expiry: () => (_jsxs(_Fragment, { children: ["This code expires in ", _jsx("strong", { style: { color: '#374151' }, children: "1 hour" }), ". Do not share it with anyone."] })),
21
+ notRequested: 'If you did not request this code, you can safely ignore this email.',
22
+ sincerely: 'Sincerely,',
23
+ subject: 'Your Verification Code',
24
+ },
25
+ es: {
26
+ preview: c => `Tu código de verificación: ${c}`,
27
+ heading: 'Tu código de verificación',
28
+ greeting: 'Hola,',
29
+ body: 'Aquí tienes tu código de verificación para confirmar tu identidad como tutor y completar tu revisión:',
30
+ codeLabel: 'Código de verificación',
31
+ expiry: () => (_jsxs(_Fragment, { children: ["Este c\u00F3digo caduca en ", _jsx("strong", { style: { color: '#374151' }, children: "1 hora" }), ". No lo compartas con nadie."] })),
32
+ notRequested: 'Si no solicitaste este código, puedes ignorar este correo con seguridad.',
33
+ sincerely: 'Atentamente,',
34
+ subject: 'Tu código de verificación',
35
+ },
36
+ fr: {
37
+ preview: c => `Votre code de vérification : ${c}`,
38
+ heading: 'Votre code de vérification',
39
+ greeting: 'Bonjour,',
40
+ body: 'Voici votre code de vérification pour confirmer votre identité en tant que tuteur et terminer votre révision :',
41
+ codeLabel: 'Code de vérification',
42
+ expiry: () => (_jsxs(_Fragment, { children: ["Ce code expire dans ", _jsx("strong", { style: { color: '#374151' }, children: "1 heure" }), ". Ne le partagez avec personne."] })),
43
+ notRequested: 'Si vous n\u2019êtes pas à l\u2019origine de cette demande, vous pouvez ignorer cet e-mail en toute sécurité.',
44
+ sincerely: 'Cordialement,',
45
+ subject: 'Votre code de vérification',
46
+ },
47
+ ar: {
48
+ preview: c => `رمز التحقق الخاص بك: ${c}`,
49
+ heading: 'رمز التحقق الخاص بك',
50
+ greeting: 'مرحبًا،',
51
+ body: 'إليك رمز التحقق لتأكيد هويتك كولي أمر وإكمال مراجعتك:',
52
+ codeLabel: 'رمز التحقق',
53
+ expiry: () => (_jsxs(_Fragment, { children: ["\u062A\u0646\u062A\u0647\u064A \u0635\u0644\u0627\u062D\u064A\u0629 \u0647\u0630\u0627 \u0627\u0644\u0631\u0645\u0632 \u062E\u0644\u0627\u0644 ", _jsx("strong", { style: { color: '#374151' }, children: "\u0633\u0627\u0639\u0629 \u0648\u0627\u062D\u062F\u0629" }), ". \u0644\u0627 \u062A\u0634\u0627\u0631\u0643\u0647 \u0645\u0639 \u0623\u064A \u0634\u062E\u0635."] })),
54
+ notRequested: 'إذا لم تطلب هذا الرمز، يمكنك تجاهل هذه الرسالة بأمان.',
55
+ sincerely: 'مع التحيات،',
56
+ subject: 'رمز التحقق الخاص بك',
57
+ },
14
58
  };
15
- export const getGuardianEmailOtpSubject = (_branding) => 'Your Verification Code';
59
+ export const GuardianEmailOtp = ({ branding, verificationCode, locale, }) => {
60
+ const s = STRINGS[resolveCatalogLocale(locale)];
61
+ return (_jsxs(Layout, { branding: branding, locale: locale, preview: s.preview(verificationCode), children: [_jsx(Text, { style: heading, children: s.heading }), _jsx(Text, { style: paragraph, children: s.greeting }), _jsx(Text, { style: paragraph, children: s.body }), _jsx(CodeBlock, { code: verificationCode, label: s.codeLabel }), _jsx(Text, { style: muted, children: s.expiry() }), _jsx(Text, { style: muted, children: s.notRequested }), _jsxs(Text, { style: signOff, children: [s.sincerely, _jsx("br", {}), interpolate(SHARED[resolveCatalogLocale(locale)].teamSignature, {
62
+ brandName: branding.brandName,
63
+ })] })] }));
64
+ };
65
+ export const getGuardianEmailOtpSubject = (_branding, locale) => STRINGS[resolveCatalogLocale(locale)].subject;
16
66
  // ---------------------------------------------------------------------------
17
67
  // Styles
18
68
  // ---------------------------------------------------------------------------
@@ -44,6 +94,6 @@ const signOff = {
44
94
  // Preview
45
95
  // ---------------------------------------------------------------------------
46
96
  export default function Preview() {
47
- return (_jsx(GuardianEmailOtp, { branding: DEFAULT_BRANDING, verificationCode: "847293" }));
97
+ return _jsx(GuardianEmailOtp, { branding: DEFAULT_BRANDING, verificationCode: "847293" });
48
98
  }
49
99
  //# sourceMappingURL=guardian-email-otp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"guardian-email-otp.js","sourceRoot":"","sources":["../../src/templates/guardian-email-otp.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAI/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOpD,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAC9D,QAAQ,EACR,gBAAgB,GACnB,EAAE,EAAE;IACD,OAAO,CACH,MAAC,MAAM,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,gBAAgB,EAAE,aAC9E,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,uCAA+B,EAEnD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,0BAAkB,EAExC,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,8GAGf,EAEP,KAAC,SAAS,IAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAC,mBAAmB,GAAG,EAE/D,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,sCACO,iBAAQ,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,uBAAiB,sCAEtE,EAEP,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,oFAEX,EAEP,MAAC,IAAI,IAAC,KAAK,EAAE,OAAO,2BACN,cAAM,UAAK,QAAQ,CAAC,SAAS,aACpC,IACF,CACZ,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACtC,SAAyB,EACnB,EAAE,CAAC,wBAAwB,CAAC;AAEtC,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,OAAO,GAAwB;IACjC,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,SAAS,GAAwB;IACnC,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,KAAK,GAAwB;IAC/B,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,OAAO,GAAwB;IACjC,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,CAAC,OAAO,UAAU,OAAO;IAC3B,OAAO,CACH,KAAC,gBAAgB,IACb,QAAQ,EAAE,gBAAgB,EAC1B,gBAAgB,EAAC,QAAQ,GAC3B,CACL,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"guardian-email-otp.js","sourceRoot":"","sources":["../../src/templates/guardian-email-otp.tsx"],"names":[],"mappings":"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"}
@@ -17,8 +17,10 @@ export interface GuardianRejectedCredentialProps {
17
17
  recipient?: {
18
18
  email?: string;
19
19
  };
20
+ /** Recipient locale (BCP-47). Defaults to English. */
21
+ locale?: string;
20
22
  }
21
23
  export declare const GuardianRejectedCredential: React.FC<GuardianRejectedCredentialProps>;
22
- export declare const getGuardianRejectedCredentialSubject: (_branding: TenantBranding) => string;
24
+ export declare const getGuardianRejectedCredentialSubject: (_branding: TenantBranding, locale?: string) => string;
23
25
  export default function Preview(): React.JSX.Element;
24
26
  //# sourceMappingURL=guardian-rejected-credential.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guardian-rejected-credential.d.ts","sourceRoot":"","sources":["../../src/templates/guardian-rejected-credential.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,MAAM,WAAW,+BAA+B;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CA+BhF,CAAC;AAEF,eAAO,MAAM,oCAAoC,cAClC,cAAc,KAC1B,MAAmC,CAAC;AA+BvC,MAAM,CAAC,OAAO,UAAU,OAAO,sBAS9B"}
1
+ {"version":3,"file":"guardian-rejected-credential.d.ts","sourceRoot":"","sources":["../../src/templates/guardian-rejected-credential.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,MAAM,WAAW,+BAA+B;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAyHD,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CA6BhF,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAC7C,WAAW,cAAc,EACzB,SAAS,MAAM,KAChB,MAAuD,CAAC;AA+B3D,MAAM,CAAC,OAAO,UAAU,OAAO,sBAS9B"}
@@ -8,12 +8,54 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
8
8
  import { Text } from '@react-email/components';
9
9
  import { DEFAULT_BRANDING } from '../branding';
10
10
  import { Layout } from '../components/Layout';
11
- export const GuardianRejectedCredential = ({ branding, issuer, credential, }) => {
11
+ import { resolveCatalogLocale, interpolate, SHARED } from '../i18n';
12
+ const STRINGS = {
13
+ en: {
14
+ preview: 'Your guardian has declined a credential',
15
+ heading: 'Credential not approved',
16
+ greeting: 'Hi there,',
17
+ body: (issuerName, credentialName) => (_jsxs(_Fragment, { children: ["Your guardian has reviewed and ", _jsx("strong", { children: "declined" }), " the credential", ' ', credentialName ? (_jsxs(_Fragment, { children: [_jsxs("strong", { children: ["\u201C", credentialName, "\u201D"] }), ' '] })) : (''), "issued by ", _jsx("strong", { children: issuerName }), "."] })),
18
+ body2: issuerName => (_jsxs(_Fragment, { children: ["The credential will not be added to your account. If you think this was a mistake, please reach out to your guardian or contact ", _jsx("strong", { children: issuerName }), " directly."] })),
19
+ sincerely: 'Sincerely,',
20
+ subject: 'Credential Not Approved',
21
+ },
22
+ es: {
23
+ preview: 'Tu tutor ha rechazado una credencial',
24
+ heading: 'Credencial no aprobada',
25
+ greeting: 'Hola,',
26
+ body: (issuerName, credentialName) => (_jsxs(_Fragment, { children: ["Tu tutor ha revisado y ", _jsx("strong", { children: "rechazado" }), " la credencial", ' ', credentialName ? (_jsxs(_Fragment, { children: [_jsxs("strong", { children: ["\u201C", credentialName, "\u201D"] }), ' '] })) : (''), "emitida por ", _jsx("strong", { children: issuerName }), "."] })),
27
+ body2: issuerName => (_jsxs(_Fragment, { children: ["La credencial no se a\u00F1adir\u00E1 a tu cuenta. Si crees que esto ha sido un error, comun\u00EDcate con tu tutor o contacta directamente con ", _jsx("strong", { children: issuerName }), "."] })),
28
+ sincerely: 'Atentamente,',
29
+ subject: 'Credencial no aprobada',
30
+ },
31
+ fr: {
32
+ preview: 'Votre tuteur a refusé un titre',
33
+ heading: 'Titre non approuvé',
34
+ greeting: 'Bonjour,',
35
+ body: (issuerName, credentialName) => (_jsxs(_Fragment, { children: ["Votre tuteur a examin\u00E9 et ", _jsx("strong", { children: "refus\u00E9" }), " le titre", ' ', credentialName ? (_jsxs(_Fragment, { children: [_jsxs("strong", { children: ["\u00AB\u00A0", credentialName, "\u00A0\u00BB"] }), ' '] })) : (''), "\u00E9mis par ", _jsx("strong", { children: issuerName }), "."] })),
36
+ body2: issuerName => (_jsxs(_Fragment, { children: ["Le titre ne sera pas ajout\u00E9 \u00E0 votre compte. Si vous pensez qu\\u2019il s\\u2019agit d\\u2019une erreur, veuillez contacter votre tuteur ou ", _jsx("strong", { children: issuerName }), ' ', "directement."] })),
37
+ sincerely: 'Cordialement,',
38
+ subject: 'Titre non approuvé',
39
+ },
40
+ ar: {
41
+ preview: 'رفض ولي أمرك شهادة',
42
+ heading: 'لم تتم الموافقة على الشهادة',
43
+ greeting: 'مرحبًا،',
44
+ body: (issuerName, credentialName) => (_jsxs(_Fragment, { children: ["\u0631\u0627\u062C\u0639 \u0648\u0644\u064A \u0623\u0645\u0631\u0643 \u0648", _jsx("strong", { children: "\u0631\u0641\u0636" }), " \u0627\u0644\u0634\u0647\u0627\u062F\u0629", ' ', credentialName ? (_jsxs(_Fragment, { children: [_jsxs("strong", { children: ["\u00AB", credentialName, "\u00BB"] }), ' '] })) : (''), "\u0627\u0644\u0635\u0627\u062F\u0631\u0629 \u0645\u0646 ", _jsx("strong", { children: issuerName }), "."] })),
45
+ body2: issuerName => (_jsxs(_Fragment, { children: ["\u0644\u0646 \u062A\u064F\u0636\u0627\u0641 \u0627\u0644\u0634\u0647\u0627\u062F\u0629 \u0625\u0644\u0649 \u062D\u0633\u0627\u0628\u0643. \u0625\u0630\u0627 \u0643\u0646\u062A \u062A\u0639\u062A\u0642\u062F \u0623\u0646 \u0647\u0630\u0627 \u062E\u0637\u0623\u060C \u064A\u0631\u062C\u0649 \u0627\u0644\u062A\u0648\u0627\u0635\u0644 \u0645\u0639 \u0648\u0644\u064A \u0623\u0645\u0631\u0643 \u0623\u0648 \u0627\u0644\u0627\u062A\u0635\u0627\u0644 \u0628\u0640 ", _jsx("strong", { children: issuerName }), " \u0645\u0628\u0627\u0634\u0631\u0629."] })),
46
+ sincerely: 'مع التحيات،',
47
+ subject: 'لم تتم الموافقة على الشهادة',
48
+ },
49
+ };
50
+ export const GuardianRejectedCredential = ({ branding, issuer, credential, locale, }) => {
51
+ const s = STRINGS[resolveCatalogLocale(locale)];
12
52
  const issuerName = issuer?.name ?? 'An issuer';
13
53
  const credentialName = credential?.name;
14
- return (_jsxs(Layout, { branding: branding, preview: "Your guardian has declined a credential", children: [_jsx(Text, { style: heading, children: "Credential not approved" }), _jsx(Text, { style: paragraph, children: "Hi there," }), _jsxs(Text, { style: paragraph, children: ["Your guardian has reviewed and ", _jsx("strong", { children: "declined" }), " the credential", ' ', credentialName ? _jsxs(_Fragment, { children: [_jsxs("strong", { children: ["\u201C", credentialName, "\u201D"] }), " "] }) : '', "issued by ", _jsx("strong", { children: issuerName }), "."] }), _jsxs(Text, { style: paragraph, children: ["The credential will not be added to your account. If you think this was a mistake, please reach out to your guardian or contact", ' ', _jsx("strong", { children: issuerName }), " directly."] }), _jsxs(Text, { style: signOff, children: ["Sincerely,", _jsx("br", {}), "The ", branding.brandName, " Team"] })] }));
54
+ return (_jsxs(Layout, { branding: branding, locale: locale, preview: s.preview, children: [_jsx(Text, { style: heading, children: s.heading }), _jsx(Text, { style: paragraph, children: s.greeting }), _jsx(Text, { style: paragraph, children: s.body(issuerName, credentialName) }), _jsx(Text, { style: paragraph, children: s.body2(issuerName) }), _jsxs(Text, { style: signOff, children: [s.sincerely, _jsx("br", {}), interpolate(SHARED[resolveCatalogLocale(locale)].teamSignature, {
55
+ brandName: branding.brandName,
56
+ })] })] }));
15
57
  };
16
- export const getGuardianRejectedCredentialSubject = (_branding) => 'Credential Not Approved';
58
+ export const getGuardianRejectedCredentialSubject = (_branding, locale) => STRINGS[resolveCatalogLocale(locale)].subject;
17
59
  // ---------------------------------------------------------------------------
18
60
  // Styles
19
61
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"guardian-rejected-credential.js","sourceRoot":"","sources":["../../src/templates/guardian-rejected-credential.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAI/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAe9C,MAAM,CAAC,MAAM,0BAA0B,GAA8C,CAAC,EAClF,QAAQ,EACR,MAAM,EACN,UAAU,GACb,EAAE,EAAE;IACD,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI,IAAI,WAAW,CAAC;IAC/C,MAAM,cAAc,GAAG,UAAU,EAAE,IAAI,CAAC;IAExC,OAAO,CACH,MAAC,MAAM,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAC,yCAAyC,aACzE,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,wCAAgC,EAEpD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,0BAAkB,EAExC,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,gDACa,wCAAyB,qBAAgB,GAAG,EAC1E,cAAc,CAAC,CAAC,CAAC,8BAAE,uCAAgB,cAAc,cAAiB,SAAI,CAAC,CAAC,CAAC,EAAE,gBAClE,2BAAS,UAAU,GAAU,SACpC,EAEP,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,gJAEsC,GAAG,EAC3D,2BAAS,UAAU,GAAU,kBAC1B,EAEP,MAAC,IAAI,IAAC,KAAK,EAAE,OAAO,2BACN,cAAM,UAAK,QAAQ,CAAC,SAAS,aACpC,IACF,CACZ,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAChD,SAAyB,EACnB,EAAE,CAAC,yBAAyB,CAAC;AAEvC,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,OAAO,GAAwB;IACjC,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,SAAS,GAAwB;IACnC,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,OAAO,GAAwB;IACjC,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,CAAC,OAAO,UAAU,OAAO;IAC3B,OAAO,CACH,KAAC,0BAA0B,IACvB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAChD,SAAS,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAC7C,CACL,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"guardian-rejected-credential.js","sourceRoot":"","sources":["../../src/templates/guardian-rejected-credential.tsx"],"names":[],"mappings":"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"}
@@ -21,8 +21,10 @@ export interface InboxClaimProps {
21
21
  name?: string;
22
22
  type?: string;
23
23
  };
24
+ /** Recipient locale (BCP-47). Defaults to English. */
25
+ locale?: string;
24
26
  }
25
27
  export declare const InboxClaim: React.FC<InboxClaimProps>;
26
- export declare const getInboxClaimSubject: (_branding: TenantBranding, props: InboxClaimProps) => string;
28
+ export declare const getInboxClaimSubject: (_branding: TenantBranding, props: InboxClaimProps, locale?: string) => string;
27
29
  export default function Preview(): React.JSX.Element;
28
30
  //# sourceMappingURL=inbox-claim.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-claim.d.ts","sourceRoot":"","sources":["../../src/templates/inbox-claim.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoDhD,CAAC;AAEF,eAAO,MAAM,oBAAoB,cAClB,cAAc,SAClB,eAAe,KACvB,MAIF,CAAC;AAmCF,MAAM,CAAC,OAAO,UAAU,OAAO,sBAU9B"}
1
+ {"version":3,"file":"inbox-claim.d.ts","sourceRoot":"","sources":["../../src/templates/inbox-claim.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AASlD,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAoJD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqDhD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,WAAW,cAAc,EACzB,OAAO,eAAe,EACtB,SAAS,MAAM,KAChB,MAA2E,CAAC;AAmC/E,MAAM,CAAC,OAAO,UAAU,OAAO,sBAa9B"}