manifest
Version:
Self-hosted Manifest LLM router with embedded server, SQLite database, and dashboard
108 lines • 4.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResetPasswordEmail = ResetPasswordEmail;
const jsx_runtime_1 = require("react/jsx-runtime");
const components_1 = require("@react-email/components");
function ResetPasswordEmail(props) {
const { userName, resetUrl, logoUrl = 'https://app.manifest.build/manifest-logo.png' } = props;
return ((0, jsx_runtime_1.jsxs)(components_1.Html, { children: [(0, jsx_runtime_1.jsx)(components_1.Head, {}), (0, jsx_runtime_1.jsx)(components_1.Preview, { children: "Reset your Manifest password" }), (0, jsx_runtime_1.jsx)(components_1.Body, { style: body, children: (0, jsx_runtime_1.jsxs)(components_1.Container, { style: container, children: [(0, jsx_runtime_1.jsx)(components_1.Section, { style: logoSection, children: (0, jsx_runtime_1.jsx)(components_1.Img, { src: logoUrl, alt: "Manifest", width: "140", height: "32", style: logoImg }) }), (0, jsx_runtime_1.jsxs)(components_1.Section, { style: card, children: [(0, jsx_runtime_1.jsx)(components_1.Text, { style: heading, children: "Reset your password" }), (0, jsx_runtime_1.jsxs)(components_1.Text, { style: paragraph, children: ["Hi ", userName, ", we received a request to reset your password. Click the button below to choose a new one."] }), (0, jsx_runtime_1.jsx)(components_1.Section, { style: buttonContainer, children: (0, jsx_runtime_1.jsx)(components_1.Button, { style: button, href: resetUrl, children: "Reset password" }) }), (0, jsx_runtime_1.jsx)(components_1.Text, { style: hint, children: "This link expires in 1 hour. If you didn't request a password reset, you can safely ignore this email." })] }), (0, jsx_runtime_1.jsxs)(components_1.Section, { style: fallbackSection, children: [(0, jsx_runtime_1.jsx)(components_1.Text, { style: fallbackText, children: "If the button above doesn't work, copy and paste this link into your browser:" }), (0, jsx_runtime_1.jsx)(components_1.Text, { style: fallbackUrl, children: resetUrl })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { style: divider }), (0, jsx_runtime_1.jsx)(components_1.Section, { style: footer, children: (0, jsx_runtime_1.jsxs)(components_1.Text, { style: footerMuted, children: ["\u00A9 2026 MNFST Inc. All rights reserved.", ' ', (0, jsx_runtime_1.jsx)(components_1.Link, { href: "https://manifest.build", style: footerLink, children: "manifest.build" })] }) })] }) })] }));
}
const brandBg = '#f8f6f1';
const brandCardBg = '#ffffff';
const brandPrimary = '#0f172a';
const brandPrimaryFg = '#f9f8f5';
const brandFg = '#020817';
const brandMuted = '#64748b';
const brandBorder = '#e5dfd6';
const brandFont = 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif';
const body = {
backgroundColor: brandBg,
fontFamily: brandFont,
margin: 0,
padding: 0,
};
const container = {
maxWidth: '520px',
margin: '0 auto',
padding: '40px 20px',
};
const logoSection = {
textAlign: 'center',
paddingBottom: '32px',
};
const logoImg = {
margin: '0 auto',
};
const card = {
backgroundColor: brandCardBg,
borderRadius: '12px',
padding: '40px 36px',
border: `1px solid ${brandBorder}`,
};
const heading = {
fontSize: '22px',
fontWeight: 700,
letterSpacing: '-0.02em',
color: brandFg,
margin: '0 0 12px',
lineHeight: '1.3',
};
const paragraph = {
fontSize: '15px',
lineHeight: '1.6',
color: '#374151',
margin: '0 0 28px',
};
const buttonContainer = {
textAlign: 'center',
margin: '0 0 28px',
};
const button = {
backgroundColor: brandPrimary,
color: brandPrimaryFg,
fontSize: '14px',
fontWeight: 600,
padding: '14px 28px',
borderRadius: '8px',
textDecoration: 'none',
display: 'inline-block',
lineHeight: '1',
};
const hint = {
fontSize: '13px',
lineHeight: '1.5',
color: brandMuted,
margin: 0,
};
const fallbackSection = {
padding: '24px 0 0',
};
const fallbackText = {
fontSize: '12px',
color: brandMuted,
margin: '0 0 6px',
};
const fallbackUrl = {
fontSize: '12px',
color: brandMuted,
margin: 0,
wordBreak: 'break-all',
};
const divider = {
borderColor: brandBorder,
borderTop: 'none',
margin: '32px 0 24px',
};
const footer = {
textAlign: 'center',
};
const footerMuted = {
fontSize: '12px',
color: '#94a3b8',
margin: 0,
};
const footerLink = {
color: '#94a3b8',
textDecoration: 'underline',
};
//# sourceMappingURL=reset-password.js.map