@learncard/email-templates 1.0.1

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 (127) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +189 -0
  3. package/dist/branding.d.ts +36 -0
  4. package/dist/branding.d.ts.map +1 -0
  5. package/dist/branding.js +28 -0
  6. package/dist/branding.js.map +1 -0
  7. package/dist/components/CodeBlock.d.ts +16 -0
  8. package/dist/components/CodeBlock.d.ts.map +1 -0
  9. package/dist/components/CodeBlock.js +42 -0
  10. package/dist/components/CodeBlock.js.map +1 -0
  11. package/dist/components/EmailButton.d.ts +15 -0
  12. package/dist/components/EmailButton.d.ts.map +1 -0
  13. package/dist/components/EmailButton.js +20 -0
  14. package/dist/components/EmailButton.js.map +1 -0
  15. package/dist/components/IssuerLogo.d.ts +14 -0
  16. package/dist/components/IssuerLogo.d.ts.map +1 -0
  17. package/dist/components/IssuerLogo.js +23 -0
  18. package/dist/components/IssuerLogo.js.map +1 -0
  19. package/dist/components/Layout.d.ts +19 -0
  20. package/dist/components/Layout.d.ts.map +1 -0
  21. package/dist/components/Layout.js +95 -0
  22. package/dist/components/Layout.js.map +1 -0
  23. package/dist/components/LinkFallback.d.ts +12 -0
  24. package/dist/components/LinkFallback.d.ts.map +1 -0
  25. package/dist/components/LinkFallback.js +29 -0
  26. package/dist/components/LinkFallback.js.map +1 -0
  27. package/dist/index.d.ts +24 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +28 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/previews/_fixtures.d.ts +12 -0
  32. package/dist/previews/_fixtures.d.ts.map +1 -0
  33. package/dist/previews/_fixtures.js +34 -0
  34. package/dist/previews/_fixtures.js.map +1 -0
  35. package/dist/previews/account-approved-scenarios.d.ts +5 -0
  36. package/dist/previews/account-approved-scenarios.d.ts.map +1 -0
  37. package/dist/previews/account-approved-scenarios.js +7 -0
  38. package/dist/previews/account-approved-scenarios.js.map +1 -0
  39. package/dist/previews/endorsement-request-scenarios.d.ts +5 -0
  40. package/dist/previews/endorsement-request-scenarios.d.ts.map +1 -0
  41. package/dist/previews/endorsement-request-scenarios.js +7 -0
  42. package/dist/previews/endorsement-request-scenarios.js.map +1 -0
  43. package/dist/previews/guardian-approval-scenarios.d.ts +5 -0
  44. package/dist/previews/guardian-approval-scenarios.d.ts.map +1 -0
  45. package/dist/previews/guardian-approval-scenarios.js +7 -0
  46. package/dist/previews/guardian-approval-scenarios.js.map +1 -0
  47. package/dist/previews/guardian-credential-scenarios.d.ts +5 -0
  48. package/dist/previews/guardian-credential-scenarios.d.ts.map +1 -0
  49. package/dist/previews/guardian-credential-scenarios.js +11 -0
  50. package/dist/previews/guardian-credential-scenarios.js.map +1 -0
  51. package/dist/previews/inbox-claim-scenarios.d.ts +8 -0
  52. package/dist/previews/inbox-claim-scenarios.d.ts.map +1 -0
  53. package/dist/previews/inbox-claim-scenarios.js +7 -0
  54. package/dist/previews/inbox-claim-scenarios.js.map +1 -0
  55. package/dist/previews/recovery-key-scenarios.d.ts +5 -0
  56. package/dist/previews/recovery-key-scenarios.d.ts.map +1 -0
  57. package/dist/previews/recovery-key-scenarios.js +7 -0
  58. package/dist/previews/recovery-key-scenarios.js.map +1 -0
  59. package/dist/previews/verification-code-scenarios.d.ts +5 -0
  60. package/dist/previews/verification-code-scenarios.d.ts.map +1 -0
  61. package/dist/previews/verification-code-scenarios.js +7 -0
  62. package/dist/previews/verification-code-scenarios.js.map +1 -0
  63. package/dist/render.d.ts +185 -0
  64. package/dist/render.d.ts.map +1 -0
  65. package/dist/render.js +153 -0
  66. package/dist/render.js.map +1 -0
  67. package/dist/sms.d.ts +34 -0
  68. package/dist/sms.d.ts.map +1 -0
  69. package/dist/sms.js +34 -0
  70. package/dist/sms.js.map +1 -0
  71. package/dist/templates/account-approved.d.ts +17 -0
  72. package/dist/templates/account-approved.d.ts.map +1 -0
  73. package/dist/templates/account-approved.js +46 -0
  74. package/dist/templates/account-approved.js.map +1 -0
  75. package/dist/templates/credential-awaiting-guardian.d.ts +25 -0
  76. package/dist/templates/credential-awaiting-guardian.d.ts.map +1 -0
  77. package/dist/templates/credential-awaiting-guardian.js +65 -0
  78. package/dist/templates/credential-awaiting-guardian.js.map +1 -0
  79. package/dist/templates/email-verification.d.ts +21 -0
  80. package/dist/templates/email-verification.d.ts.map +1 -0
  81. package/dist/templates/email-verification.js +51 -0
  82. package/dist/templates/email-verification.js.map +1 -0
  83. package/dist/templates/endorsement-request.d.ts +28 -0
  84. package/dist/templates/endorsement-request.d.ts.map +1 -0
  85. package/dist/templates/endorsement-request.js +67 -0
  86. package/dist/templates/endorsement-request.js.map +1 -0
  87. package/dist/templates/guardian-approval.d.ts +23 -0
  88. package/dist/templates/guardian-approval.d.ts.map +1 -0
  89. package/dist/templates/guardian-approval.js +50 -0
  90. package/dist/templates/guardian-approval.js.map +1 -0
  91. package/dist/templates/guardian-approved-claim.d.ts +22 -0
  92. package/dist/templates/guardian-approved-claim.d.ts.map +1 -0
  93. package/dist/templates/guardian-approved-claim.js +49 -0
  94. package/dist/templates/guardian-approved-claim.js.map +1 -0
  95. package/dist/templates/guardian-credential-approval.d.ts +27 -0
  96. package/dist/templates/guardian-credential-approval.d.ts.map +1 -0
  97. package/dist/templates/guardian-credential-approval.js +51 -0
  98. package/dist/templates/guardian-credential-approval.js.map +1 -0
  99. package/dist/templates/guardian-email-otp.d.ts +16 -0
  100. package/dist/templates/guardian-email-otp.d.ts.map +1 -0
  101. package/dist/templates/guardian-email-otp.js +49 -0
  102. package/dist/templates/guardian-email-otp.js.map +1 -0
  103. package/dist/templates/guardian-rejected-credential.d.ts +24 -0
  104. package/dist/templates/guardian-rejected-credential.d.ts.map +1 -0
  105. package/dist/templates/guardian-rejected-credential.js +44 -0
  106. package/dist/templates/guardian-rejected-credential.js.map +1 -0
  107. package/dist/templates/inbox-claim.d.ts +28 -0
  108. package/dist/templates/inbox-claim.d.ts.map +1 -0
  109. package/dist/templates/inbox-claim.js +58 -0
  110. package/dist/templates/inbox-claim.js.map +1 -0
  111. package/dist/templates/index.d.ts +25 -0
  112. package/dist/templates/index.d.ts.map +1 -0
  113. package/dist/templates/index.js +13 -0
  114. package/dist/templates/index.js.map +1 -0
  115. package/dist/templates/recovery-key.d.ts +15 -0
  116. package/dist/templates/recovery-key.d.ts.map +1 -0
  117. package/dist/templates/recovery-key.js +46 -0
  118. package/dist/templates/recovery-key.js.map +1 -0
  119. package/dist/templates/verification-code.d.ts +24 -0
  120. package/dist/templates/verification-code.d.ts.map +1 -0
  121. package/dist/templates/verification-code.js +87 -0
  122. package/dist/templates/verification-code.js.map +1 -0
  123. package/dist/tenant-registry.d.ts +48 -0
  124. package/dist/tenant-registry.d.ts.map +1 -0
  125. package/dist/tenant-registry.js +146 -0
  126. package/dist/tenant-registry.js.map +1 -0
  127. package/package.json +40 -0
@@ -0,0 +1,23 @@
1
+ /**
2
+ * GuardianApproval — email sent to a guardian to approve a minor's account.
3
+ *
4
+ * Used by: brain-service inbox.ts (templateId: 'guardian-approval')
5
+ */
6
+ import * as React from 'react';
7
+ import type { TenantBranding } from '../branding';
8
+ export interface GuardianApprovalProps {
9
+ branding: TenantBranding;
10
+ approvalUrl: string;
11
+ approvalToken: string;
12
+ requester?: {
13
+ displayName?: string;
14
+ profileId?: string;
15
+ };
16
+ guardian?: {
17
+ email?: string;
18
+ };
19
+ }
20
+ export declare const GuardianApproval: React.FC<GuardianApprovalProps>;
21
+ export declare const getGuardianApprovalSubject: (branding: TenantBranding, props: GuardianApprovalProps) => string;
22
+ export default function Preview(): import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=guardian-approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardian-approval.d.ts","sourceRoot":"","sources":["../../src/templates/guardian-approval.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAuC5D,CAAC;AAEF,eAAO,MAAM,0BAA0B,aACzB,cAAc,SACjB,qBAAqB,KAC7B,MAIF,CAAC;AAmCF,MAAM,CAAC,OAAO,UAAU,OAAO,4CAU9B"}
@@ -0,0 +1,50 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * GuardianApproval — email sent to a guardian to approve a minor's account.
4
+ *
5
+ * Used by: brain-service inbox.ts (templateId: 'guardian-approval')
6
+ */
7
+ import { Text, Section } from '@react-email/components';
8
+ import { DEFAULT_BRANDING } from '../branding';
9
+ import { Layout } from '../components/Layout';
10
+ import { EmailButton } from '../components/EmailButton';
11
+ import { LinkFallback } from '../components/LinkFallback';
12
+ export const GuardianApproval = ({ branding, approvalUrl, requester, }) => {
13
+ const requesterName = requester?.displayName ?? 'Someone';
14
+ return (_jsxs(Layout, { branding: branding, preview: `${requesterName} needs your approval to join ${branding.brandName}`, children: [_jsx(Text, { style: heading, children: "Account Approval Request" }), _jsx(Text, { style: paragraph, children: "Hello," }), _jsxs(Text, { style: paragraph, children: [_jsx("strong", { children: requesterName }), " has requested approval to use their ", branding.brandName, " account."] }), _jsxs(Text, { style: paragraph, children: [branding.brandName, " is a private, digital passport for learning and work. It lets users securely collect and share their verified skills and achievements online."] }), _jsx(Text, { style: paragraph, children: "Please click the button below to approve this account request." }), _jsx(Section, { style: buttonWrapper, children: _jsx(EmailButton, { href: approvalUrl, branding: branding, children: "Approve Request \u2192" }) }), _jsxs(Text, { style: signOff, children: ["Thank you,", _jsx("br", {}), "The ", branding.brandName, " Team"] }), _jsx(LinkFallback, { href: approvalUrl })] }));
15
+ };
16
+ export const getGuardianApprovalSubject = (branding, props) => {
17
+ const name = props.requester?.displayName ?? 'Someone';
18
+ return `${name} needs your approval to join ${branding.brandName}`;
19
+ };
20
+ // ---------------------------------------------------------------------------
21
+ // Styles
22
+ // ---------------------------------------------------------------------------
23
+ const heading = {
24
+ fontSize: 24,
25
+ fontWeight: 600,
26
+ color: '#111827',
27
+ margin: '0 0 24px',
28
+ };
29
+ const paragraph = {
30
+ fontSize: 16,
31
+ color: '#374151',
32
+ lineHeight: '24px',
33
+ margin: '0 0 24px',
34
+ };
35
+ const buttonWrapper = {
36
+ margin: '0 0 24px',
37
+ };
38
+ const signOff = {
39
+ fontSize: 14,
40
+ color: '#374151',
41
+ lineHeight: '20px',
42
+ margin: '24px 0 0',
43
+ };
44
+ // ---------------------------------------------------------------------------
45
+ // Preview
46
+ // ---------------------------------------------------------------------------
47
+ export default function Preview() {
48
+ return (_jsx(GuardianApproval, { branding: DEFAULT_BRANDING, approvalUrl: "https://learncard.app/approve?token=abc123", approvalToken: "abc123", requester: { displayName: 'Alex Smith' }, guardian: { email: 'parent@example.com' } }));
49
+ }
50
+ //# sourceMappingURL=guardian-approval.js.map
@@ -0,0 +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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * GuardianApprovedClaim — email sent to a student when their guardian has
3
+ * approved a credential.
4
+ *
5
+ * Used by: brain-service (templateAlias: 'guardian-approved-claim')
6
+ */
7
+ import * as React from 'react';
8
+ import type { TenantBranding } from '../branding';
9
+ export interface GuardianApprovedClaimProps {
10
+ branding: TenantBranding;
11
+ issuer?: {
12
+ name?: string;
13
+ logoUrl?: string;
14
+ };
15
+ credential?: {
16
+ name?: string;
17
+ };
18
+ }
19
+ export declare const GuardianApprovedClaim: React.FC<GuardianApprovedClaimProps>;
20
+ export declare const getGuardianApprovedClaimSubject: (_branding: TenantBranding) => string;
21
+ export default function Preview(): import("react/jsx-runtime").JSX.Element;
22
+ //# sourceMappingURL=guardian-approved-claim.d.ts.map
@@ -0,0 +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,4CAQ9B"}
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * GuardianApprovedClaim — email sent to a student when their guardian has
4
+ * approved a credential.
5
+ *
6
+ * Used by: brain-service (templateAlias: 'guardian-approved-claim')
7
+ */
8
+ import { Text, Section } from '@react-email/components';
9
+ import { DEFAULT_BRANDING } from '../branding';
10
+ import { Layout } from '../components/Layout';
11
+ import { EmailButton } from '../components/EmailButton';
12
+ import { IssuerLogo } from '../components/IssuerLogo';
13
+ export const GuardianApprovedClaim = ({ branding, issuer, credential, }) => {
14
+ const issuerName = issuer?.name ?? 'An issuer';
15
+ 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"] })] }));
17
+ };
18
+ export const getGuardianApprovedClaimSubject = (_branding) => 'Your Credential Has Been Approved!';
19
+ // ---------------------------------------------------------------------------
20
+ // Styles
21
+ // ---------------------------------------------------------------------------
22
+ const heading = {
23
+ fontSize: 24,
24
+ fontWeight: 600,
25
+ color: '#111827',
26
+ margin: '0 0 24px',
27
+ };
28
+ const paragraph = {
29
+ fontSize: 16,
30
+ color: '#374151',
31
+ lineHeight: '24px',
32
+ margin: '0 0 24px',
33
+ };
34
+ const buttonWrapper = {
35
+ margin: '0 0 24px',
36
+ };
37
+ const signOff = {
38
+ fontSize: 14,
39
+ color: '#374151',
40
+ lineHeight: '20px',
41
+ margin: '24px 0 0',
42
+ };
43
+ // ---------------------------------------------------------------------------
44
+ // Preview
45
+ // ---------------------------------------------------------------------------
46
+ export default function Preview() {
47
+ return (_jsx(GuardianApprovedClaim, { branding: DEFAULT_BRANDING, issuer: { name: 'Springfield School District' }, credential: { name: 'Perfect Attendance Award' } }));
48
+ }
49
+ //# sourceMappingURL=guardian-approved-claim.js.map
@@ -0,0 +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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * GuardianCredentialApproval — email sent to a guardian asking them to
3
+ * approve or decline a specific credential issued to their ward.
4
+ *
5
+ * Used by: brain-service (templateAlias: 'guardian-credential-approval')
6
+ */
7
+ import * as React from 'react';
8
+ import type { TenantBranding } from '../branding';
9
+ export interface GuardianCredentialApprovalProps {
10
+ branding: TenantBranding;
11
+ approvalUrl: string;
12
+ approvalToken?: string;
13
+ issuer?: {
14
+ name?: string;
15
+ logoUrl?: string;
16
+ };
17
+ credential?: {
18
+ name?: string;
19
+ };
20
+ recipient?: {
21
+ email?: string;
22
+ };
23
+ }
24
+ export declare const GuardianCredentialApproval: React.FC<GuardianCredentialApprovalProps>;
25
+ export declare const getGuardianCredentialApprovalSubject: (_branding: TenantBranding) => string;
26
+ export default function Preview(): import("react/jsx-runtime").JSX.Element;
27
+ //# sourceMappingURL=guardian-credential-approval.d.ts.map
@@ -0,0 +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,4CAW9B"}
@@ -0,0 +1,51 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * GuardianCredentialApproval — email sent to a guardian asking them to
4
+ * approve or decline a specific credential issued to their ward.
5
+ *
6
+ * Used by: brain-service (templateAlias: 'guardian-credential-approval')
7
+ */
8
+ import { Text, Section } from '@react-email/components';
9
+ import { DEFAULT_BRANDING } from '../branding';
10
+ import { Layout } from '../components/Layout';
11
+ import { EmailButton } from '../components/EmailButton';
12
+ import { IssuerLogo } from '../components/IssuerLogo';
13
+ import { LinkFallback } from '../components/LinkFallback';
14
+ export const GuardianCredentialApproval = ({ branding, approvalUrl, issuer, credential, recipient, }) => {
15
+ const issuerName = issuer?.name ?? 'An issuer';
16
+ const credentialName = credential?.name ?? 'a credential';
17
+ 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 })] }));
19
+ };
20
+ export const getGuardianCredentialApprovalSubject = (_branding) => 'A credential needs your approval';
21
+ // ---------------------------------------------------------------------------
22
+ // Styles
23
+ // ---------------------------------------------------------------------------
24
+ const heading = {
25
+ fontSize: 24,
26
+ fontWeight: 600,
27
+ color: '#111827',
28
+ margin: '0 0 24px',
29
+ };
30
+ const paragraph = {
31
+ fontSize: 16,
32
+ color: '#374151',
33
+ lineHeight: '24px',
34
+ margin: '0 0 24px',
35
+ };
36
+ const buttonWrapper = {
37
+ margin: '0 0 24px',
38
+ };
39
+ const signOff = {
40
+ fontSize: 14,
41
+ color: '#374151',
42
+ lineHeight: '20px',
43
+ margin: '24px 0 0',
44
+ };
45
+ // ---------------------------------------------------------------------------
46
+ // Preview
47
+ // ---------------------------------------------------------------------------
48
+ export default function Preview() {
49
+ return (_jsx(GuardianCredentialApproval, { branding: DEFAULT_BRANDING, approvalUrl: "https://learncard.app/guardian/approve?token=abc123", approvalToken: "abc123", issuer: { name: 'Springfield School District' }, credential: { name: 'Perfect Attendance Award' }, recipient: { email: 'student@example.com' } }));
50
+ }
51
+ //# sourceMappingURL=guardian-credential-approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardian-credential-approval.js","sourceRoot":"","sources":["../../src/templates/guardian-credential-approval.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * GuardianEmailOtp — verification code email sent to a guardian when they
3
+ * open an approval link and need to confirm their identity via OTP.
4
+ *
5
+ * Used by: brain-service (templateAlias: 'guardian-email-otp')
6
+ */
7
+ import * as React from 'react';
8
+ import type { TenantBranding } from '../branding';
9
+ export interface GuardianEmailOtpProps {
10
+ branding: TenantBranding;
11
+ verificationCode: string;
12
+ }
13
+ export declare const GuardianEmailOtp: React.FC<GuardianEmailOtpProps>;
14
+ export declare const getGuardianEmailOtpSubject: (_branding: TenantBranding) => string;
15
+ export default function Preview(): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=guardian-email-otp.d.ts.map
@@ -0,0 +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,4CAO9B"}
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * GuardianEmailOtp — verification code email sent to a guardian when they
4
+ * open an approval link and need to confirm their identity via OTP.
5
+ *
6
+ * Used by: brain-service (templateAlias: 'guardian-email-otp')
7
+ */
8
+ import { Text } from '@react-email/components';
9
+ import { DEFAULT_BRANDING } from '../branding';
10
+ import { Layout } from '../components/Layout';
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"] })] }));
14
+ };
15
+ export const getGuardianEmailOtpSubject = (_branding) => 'Your Verification Code';
16
+ // ---------------------------------------------------------------------------
17
+ // Styles
18
+ // ---------------------------------------------------------------------------
19
+ const heading = {
20
+ fontSize: 24,
21
+ fontWeight: 600,
22
+ color: '#111827',
23
+ margin: '0 0 24px',
24
+ };
25
+ const paragraph = {
26
+ fontSize: 16,
27
+ color: '#374151',
28
+ lineHeight: '24px',
29
+ margin: '0 0 24px',
30
+ };
31
+ const muted = {
32
+ fontSize: 14,
33
+ color: '#6b7280',
34
+ lineHeight: '20px',
35
+ margin: '0 0 24px',
36
+ };
37
+ const signOff = {
38
+ fontSize: 14,
39
+ color: '#374151',
40
+ lineHeight: '20px',
41
+ margin: '24px 0 0',
42
+ };
43
+ // ---------------------------------------------------------------------------
44
+ // Preview
45
+ // ---------------------------------------------------------------------------
46
+ export default function Preview() {
47
+ return (_jsx(GuardianEmailOtp, { branding: DEFAULT_BRANDING, verificationCode: "847293" }));
48
+ }
49
+ //# sourceMappingURL=guardian-email-otp.js.map
@@ -0,0 +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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * GuardianRejectedCredential — email sent to a student when their guardian
3
+ * has declined to approve a credential.
4
+ *
5
+ * Used by: brain-service (templateAlias: 'guardian-rejected-credential')
6
+ */
7
+ import * as React from 'react';
8
+ import type { TenantBranding } from '../branding';
9
+ export interface GuardianRejectedCredentialProps {
10
+ branding: TenantBranding;
11
+ issuer?: {
12
+ name?: string;
13
+ };
14
+ credential?: {
15
+ name?: string;
16
+ };
17
+ recipient?: {
18
+ email?: string;
19
+ };
20
+ }
21
+ export declare const GuardianRejectedCredential: React.FC<GuardianRejectedCredentialProps>;
22
+ export declare const getGuardianRejectedCredentialSubject: (_branding: TenantBranding) => string;
23
+ export default function Preview(): import("react/jsx-runtime").JSX.Element;
24
+ //# sourceMappingURL=guardian-rejected-credential.d.ts.map
@@ -0,0 +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,4CAS9B"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * GuardianRejectedCredential — email sent to a student when their guardian
4
+ * has declined to approve a credential.
5
+ *
6
+ * Used by: brain-service (templateAlias: 'guardian-rejected-credential')
7
+ */
8
+ import { Text } from '@react-email/components';
9
+ import { DEFAULT_BRANDING } from '../branding';
10
+ import { Layout } from '../components/Layout';
11
+ export const GuardianRejectedCredential = ({ branding, issuer, credential, }) => {
12
+ const issuerName = issuer?.name ?? 'An issuer';
13
+ 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"] })] }));
15
+ };
16
+ export const getGuardianRejectedCredentialSubject = (_branding) => 'Credential Not Approved';
17
+ // ---------------------------------------------------------------------------
18
+ // Styles
19
+ // ---------------------------------------------------------------------------
20
+ const heading = {
21
+ fontSize: 24,
22
+ fontWeight: 600,
23
+ color: '#111827',
24
+ margin: '0 0 24px',
25
+ };
26
+ const paragraph = {
27
+ fontSize: 16,
28
+ color: '#374151',
29
+ lineHeight: '24px',
30
+ margin: '0 0 24px',
31
+ };
32
+ const signOff = {
33
+ fontSize: 14,
34
+ color: '#374151',
35
+ lineHeight: '20px',
36
+ margin: '24px 0 0',
37
+ };
38
+ // ---------------------------------------------------------------------------
39
+ // Preview
40
+ // ---------------------------------------------------------------------------
41
+ export default function Preview() {
42
+ return (_jsx(GuardianRejectedCredential, { branding: DEFAULT_BRANDING, issuer: { name: 'Springfield School District' }, credential: { name: 'Perfect Attendance Award' }, recipient: { email: 'student@example.com' } }));
43
+ }
44
+ //# sourceMappingURL=guardian-rejected-credential.js.map
@@ -0,0 +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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * InboxClaim — email notifying a recipient they have a credential to claim.
3
+ *
4
+ * Used by: brain-service inbox.helpers.ts (templateId: 'universal-inbox-claim')
5
+ */
6
+ import * as React from 'react';
7
+ import type { TenantBranding } from '../branding';
8
+ export interface InboxClaimProps {
9
+ branding: TenantBranding;
10
+ claimUrl: string;
11
+ recipient?: {
12
+ name?: string;
13
+ email?: string;
14
+ phone?: string;
15
+ };
16
+ issuer?: {
17
+ name?: string;
18
+ logoUrl?: string;
19
+ };
20
+ credential?: {
21
+ name?: string;
22
+ type?: string;
23
+ };
24
+ }
25
+ export declare const InboxClaim: React.FC<InboxClaimProps>;
26
+ export declare const getInboxClaimSubject: (_branding: TenantBranding, props: InboxClaimProps) => string;
27
+ export default function Preview(): import("react/jsx-runtime").JSX.Element;
28
+ //# sourceMappingURL=inbox-claim.d.ts.map
@@ -0,0 +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,4CAU9B"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * InboxClaim — email notifying a recipient they have a credential to claim.
4
+ *
5
+ * Used by: brain-service inbox.helpers.ts (templateId: 'universal-inbox-claim')
6
+ */
7
+ import { Text, Section } from '@react-email/components';
8
+ import { DEFAULT_BRANDING } from '../branding';
9
+ import { Layout } from '../components/Layout';
10
+ import { EmailButton } from '../components/EmailButton';
11
+ import { IssuerLogo } from '../components/IssuerLogo';
12
+ import { LinkFallback } from '../components/LinkFallback';
13
+ export const InboxClaim = ({ branding, claimUrl, recipient, issuer, credential, }) => {
14
+ const credentialName = credential?.name;
15
+ const credentialType = credential?.type ?? 'record';
16
+ const greeting = recipient?.name ? `Hello ${recipient.name},` : 'Hello,';
17
+ const issuerName = issuer?.name;
18
+ const issuerLogo = issuer?.logoUrl;
19
+ const showHeaderLogo = !issuerLogo;
20
+ return (_jsxs(Layout, { branding: branding, preview: `Your digital ${credentialType}${issuerName ? ` from ${issuerName}` : ''} is ready`, showHeaderLogo: showHeaderLogo, children: [_jsx(IssuerLogo, { logoUrl: issuerLogo, alt: issuerName ? `${issuerName} logo` : undefined }), _jsxs(Text, { style: heading, children: ["Your digital ", credentialType, " is ready"] }), _jsx(Text, { style: paragraph, children: greeting }), _jsxs(Text, { style: paragraph, children: [issuerName
21
+ ? _jsxs(_Fragment, { children: [_jsx("strong", { children: issuerName }), " has sent you"] })
22
+ : _jsx(_Fragment, { children: "You've received" }), ' ', "a secure, digital version of your", ' ', _jsx("strong", { children: credentialName ? `\u201C${credentialName}\u201D` : 'achievement' }), "."] }), _jsxs(Text, { style: paragraph, children: [branding.brandName, " is your private, digital passport for learning and work. It lets you securely collect and share your verified skills and achievements online. By claiming this item, you are saving a verifiable, official ", credentialType, " to your personal passport\u2014one that only you control."] }), _jsx(Section, { style: buttonWrapper, children: _jsx(EmailButton, { href: claimUrl, branding: branding, children: "Claim Your Record \u2192" }) }), _jsxs(Text, { style: signOff, children: ["Sincerely,", _jsx("br", {}), "The ", branding.brandName, " Team"] }), _jsx(LinkFallback, { href: claimUrl })] }));
23
+ };
24
+ export const getInboxClaimSubject = (_branding, props) => {
25
+ const issuerPart = props.issuer?.name ? `from ${props.issuer.name} ` : '';
26
+ return `Your digital record ${issuerPart}is ready`;
27
+ };
28
+ // ---------------------------------------------------------------------------
29
+ // Styles
30
+ // ---------------------------------------------------------------------------
31
+ const heading = {
32
+ fontSize: 24,
33
+ fontWeight: 600,
34
+ color: '#111827',
35
+ margin: '0 0 24px',
36
+ };
37
+ const paragraph = {
38
+ fontSize: 16,
39
+ color: '#374151',
40
+ lineHeight: '24px',
41
+ margin: '0 0 24px',
42
+ };
43
+ const buttonWrapper = {
44
+ margin: '0 0 24px',
45
+ };
46
+ const signOff = {
47
+ fontSize: 14,
48
+ color: '#374151',
49
+ lineHeight: '20px',
50
+ margin: '24px 0 0',
51
+ };
52
+ // ---------------------------------------------------------------------------
53
+ // Preview
54
+ // ---------------------------------------------------------------------------
55
+ export default function Preview() {
56
+ return (_jsx(InboxClaim, { branding: DEFAULT_BRANDING, claimUrl: "https://learncard.app/claim/abc123", recipient: { name: 'Jane Doe' }, issuer: { name: 'Acme University', logoUrl: 'https://cdn.filestackcontent.com/J6suaVcQ467W9o1k48Kj' }, credential: { name: 'Bachelor of Science', type: 'Achievement' } }));
57
+ }
58
+ //# sourceMappingURL=inbox-claim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox-claim.js","sourceRoot":"","sources":["../../src/templates/inbox-claim.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export { VerificationCode, getVerificationCodeSubject } from './verification-code';
2
+ export type { VerificationCodeProps, VerificationCodeVariant } from './verification-code';
3
+ export { InboxClaim, getInboxClaimSubject } from './inbox-claim';
4
+ export type { InboxClaimProps } from './inbox-claim';
5
+ export { GuardianApproval, getGuardianApprovalSubject } from './guardian-approval';
6
+ export type { GuardianApprovalProps } from './guardian-approval';
7
+ export { AccountApproved, getAccountApprovedSubject } from './account-approved';
8
+ export type { AccountApprovedProps } from './account-approved';
9
+ export { RecoveryKey, getRecoveryKeySubject } from './recovery-key';
10
+ export type { RecoveryKeyProps } from './recovery-key';
11
+ export { EndorsementRequest, getEndorsementRequestSubject } from './endorsement-request';
12
+ export type { EndorsementRequestProps } from './endorsement-request';
13
+ export { CredentialAwaitingGuardian, getCredentialAwaitingGuardianSubject } from './credential-awaiting-guardian';
14
+ export type { CredentialAwaitingGuardianProps } from './credential-awaiting-guardian';
15
+ export { GuardianApprovedClaim, getGuardianApprovedClaimSubject } from './guardian-approved-claim';
16
+ export type { GuardianApprovedClaimProps } from './guardian-approved-claim';
17
+ export { GuardianCredentialApproval, getGuardianCredentialApprovalSubject } from './guardian-credential-approval';
18
+ export type { GuardianCredentialApprovalProps } from './guardian-credential-approval';
19
+ export { GuardianEmailOtp, getGuardianEmailOtpSubject } from './guardian-email-otp';
20
+ export type { GuardianEmailOtpProps } from './guardian-email-otp';
21
+ export { GuardianRejectedCredential, getGuardianRejectedCredentialSubject } from './guardian-rejected-credential';
22
+ export type { GuardianRejectedCredentialProps } from './guardian-rejected-credential';
23
+ export { EmailVerification, getEmailVerificationSubject } from './email-verification';
24
+ export type { EmailVerificationProps } from './email-verification';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE1F,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACzF,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AAClH,YAAY,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEtF,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AACnG,YAAY,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAE5E,OAAO,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AAClH,YAAY,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACpF,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AAClH,YAAY,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEtF,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export { VerificationCode, getVerificationCodeSubject } from './verification-code';
2
+ export { InboxClaim, getInboxClaimSubject } from './inbox-claim';
3
+ export { GuardianApproval, getGuardianApprovalSubject } from './guardian-approval';
4
+ export { AccountApproved, getAccountApprovedSubject } from './account-approved';
5
+ export { RecoveryKey, getRecoveryKeySubject } from './recovery-key';
6
+ export { EndorsementRequest, getEndorsementRequestSubject } from './endorsement-request';
7
+ export { CredentialAwaitingGuardian, getCredentialAwaitingGuardianSubject } from './credential-awaiting-guardian';
8
+ export { GuardianApprovedClaim, getGuardianApprovedClaimSubject } from './guardian-approved-claim';
9
+ export { GuardianCredentialApproval, getGuardianCredentialApprovalSubject } from './guardian-credential-approval';
10
+ export { GuardianEmailOtp, getGuardianEmailOtpSubject } from './guardian-email-otp';
11
+ export { GuardianRejectedCredential, getGuardianRejectedCredentialSubject } from './guardian-rejected-credential';
12
+ export { EmailVerification, getEmailVerificationSubject } from './email-verification';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGnF,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGnF,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAGzF,OAAO,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AAGlH,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAGnG,OAAO,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AAGlH,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AAGlH,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * RecoveryKey — email containing a user's account recovery key.
3
+ *
4
+ * Used by: lca-api keys.ts (templateAlias: RECOVERY_KEY_TEMPLATE_ALIAS)
5
+ */
6
+ import * as React from 'react';
7
+ import type { TenantBranding } from '../branding';
8
+ export interface RecoveryKeyProps {
9
+ branding: TenantBranding;
10
+ recoveryKey: string;
11
+ }
12
+ export declare const RecoveryKey: React.FC<RecoveryKeyProps>;
13
+ export declare const getRecoveryKeySubject: (branding: TenantBranding) => string;
14
+ export default function Preview(): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=recovery-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-key.d.ts","sourceRoot":"","sources":["../../src/templates/recovery-key.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAkClD,CAAC;AAEF,eAAO,MAAM,qBAAqB,aAAc,cAAc,KAAG,MACpB,CAAC;AAsC9C,MAAM,CAAC,OAAO,UAAU,OAAO,4CAO9B"}