- New @sexy.pivoine.art/email package with @maizzle/framework@6.0.0-15 - Uses @maizzle/tailwindcss (TW v4 preset) with @theme brand tokens derived from the frontend's app.css oklch primary color - LightningCSS automatically lowers oklch/lab to hex for email clients - Real HTML template files (templates/layouts/main.html, verification.html, password-reset.html) — not JS template strings - PostCSS `from` override so @import "@maizzle/tailwindcss" resolves from the email package's own node_modules - Backend lib/email.ts now calls renderVerification/renderPasswordReset instead of inline HTML strings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
26 lines
744 B
TypeScript
26 lines
744 B
TypeScript
import { renderTemplate } from "./render.js";
|
|
|
|
const BASE_URL = process.env.PUBLIC_URL ?? "https://sexy.pivoine.art";
|
|
|
|
export async function renderVerification(data: {
|
|
token: string;
|
|
}): Promise<{ subject: string; html: string }> {
|
|
return {
|
|
subject: "Verify your email address — sexy.pivoine.art",
|
|
html: await renderTemplate("verification", {
|
|
url: `${BASE_URL}/signup/verify?token=${data.token}`,
|
|
}),
|
|
};
|
|
}
|
|
|
|
export async function renderPasswordReset(data: {
|
|
token: string;
|
|
}): Promise<{ subject: string; html: string }> {
|
|
return {
|
|
subject: "Reset your password — sexy.pivoine.art",
|
|
html: await renderTemplate("password-reset", {
|
|
url: `${BASE_URL}/password/reset?token=${data.token}`,
|
|
}),
|
|
};
|
|
}
|