/** * Squelette commun aux 2 templates Rubis : header rubis-deep avec brand * + container cream + footer "Émis via Rubis sur l'ongle" (cliquable * vers la landing publique). * * Approche : on stylé en inline via les `style` props que React Email * convertit en HTML inline (compatible tous mail clients y compris * Outlook). Pas de classes Tailwind ici — risquées en mail. */ import * as React from 'react' import { Html, Head, Preview, Body, Container, Section, Row, Column, Text, Link, } from '@react-email/components' import { BRAND, sp } from './_brand.js' type LayoutProps = { /** Aperçu dans la liste mail (Gmail preview text). */ preview: string /** Nom commercial affiché dans le header (vendeur ou "Rubis"). */ brandName: string /** Sous-titre header (ex: numéro de facture, date). Optionnel. */ brandSubtitle?: string | null /** URL de la landing publique — lien dans le footer ("Rubis sur l'ongle"). */ landingUrl?: string children: React.ReactNode } export function EmailLayout({ preview, brandName, brandSubtitle, landingUrl, children, }: LayoutProps) { return (
{/* * Force le mode clair sur les clients qui auto-invertissent en dark mode * (iOS Mail, Gmail mobile, Outlook.com web). Sans ces tags, les fonds * crème/blanc deviennent noirs et le header rubis-deep devient rose pâle. */}