From c5bd7c2eb0bc6af0ad0cf82a247e6189c9970bc5 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 18:20:27 +0000 Subject: [PATCH 1/7] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/lib/form-templates.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/lib/form-templates.ts b/src/lib/form-templates.ts index c062681..c33493b 100644 --- a/src/lib/form-templates.ts +++ b/src/lib/form-templates.ts @@ -44,6 +44,28 @@ export interface FormTemplateConfig { showCertifiedMail?: boolean; /** Header label for the certified-mail line. */ certifiedMailLabel?: string; + /** Letterhead (header) shown at the top of letters. Lines support `\n` and `{{firm.*}}` tokens. */ + letterhead?: string; + /** Letterhead alignment. */ + letterheadAlign?: "left" | "center" | "right"; + /** Letterhead font size in points. */ + letterheadFontSizePt?: number; + /** Show the firm logo above/with the letterhead. */ + showLogo?: boolean; + /** Logo placement relative to the letterhead text block. */ + logoPosition?: "above-center" | "above-left" | "left" | "right" | "none"; + /** Logo width in points. Height auto-scales to keep aspect ratio. */ + logoWidthPt?: number; + /** Show a horizontal rule below the letterhead. */ + letterheadRule?: boolean; + /** Footer text shown at the bottom of every page. Supports `\n` and `{{firm.*}}` tokens. */ + footer?: string; + /** Footer alignment. */ + footerAlign?: "left" | "center" | "right"; + /** Footer font size in points. */ + footerFontSizePt?: number; + /** Show a horizontal rule above the footer. */ + footerRule?: boolean; } export const FORM_LABELS: Record = { From 98ec01661c9e74fbc0035d9b339a9489faa35a1d Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 18:20:41 +0000 Subject: [PATCH 2/7] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/lib/form-templates.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/lib/form-templates.ts b/src/lib/form-templates.ts index c33493b..9a14337 100644 --- a/src/lib/form-templates.ts +++ b/src/lib/form-templates.ts @@ -184,6 +184,18 @@ export const DEFAULT_TEMPLATES: Record = { titleFontSizePt: 11, marginPt: 60, lineHeightPt: 14, + letterhead: + "{{firm.name}}\n{{firm.address}}\n{{firm.phone}} · {{firm.email}}", + letterheadAlign: "center", + letterheadFontSizePt: 10, + showLogo: true, + logoPosition: "above-center", + logoWidthPt: 50, + letterheadRule: true, + footer: "{{firm.name}} · {{firm.address}} · {{firm.phone}}", + footerAlign: "center", + footerFontSizePt: 9, + footerRule: true, }, }; From 1851ad9d0493654cfba4e5bc250477836ba4e33d Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 18:20:50 +0000 Subject: [PATCH 3/7] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/settings.form-templates.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/routes/settings.form-templates.tsx b/src/routes/settings.form-templates.tsx index d426a7e..ad28b88 100644 --- a/src/routes/settings.form-templates.tsx +++ b/src/routes/settings.form-templates.tsx @@ -102,8 +102,10 @@ function TemplateEditor({ formKey, userId }: { formKey: FormKey; userId: string setConfig({ ...DEFAULT_TEMPLATES[formKey] }); }; - const showItemLabels = true; - const showDefaultLineItems = true; + const isLetter = formKey === "letter"; + const showItemLabels = !isLetter; + const showDefaultLineItems = !isLetter; + const showLetterheadEditor = isLetter; return ( From 8a223e80ea7e75b1501d6f55fea9b1cd859fbf99 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 18:21:10 +0000 Subject: [PATCH 4/7] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/settings.form-templates.tsx | 113 +++++++++++++------------ 1 file changed, 60 insertions(+), 53 deletions(-) diff --git a/src/routes/settings.form-templates.tsx b/src/routes/settings.form-templates.tsx index ad28b88..1cb4552 100644 --- a/src/routes/settings.form-templates.tsx +++ b/src/routes/settings.form-templates.tsx @@ -110,63 +110,70 @@ function TemplateEditor({ formKey, userId }: { formKey: FormKey; userId: string return ( -
-
- - update("title", e.target.value)} - placeholder="e.g. NOTICE OF LATE ASSESSMENT" - /> -
-
- - update("certifiedMailLabel", e.target.value)} - placeholder="U.S. Certified Mail #" - /> -
-
+ {!isLetter && ( + <> +
+
+ + update("title", e.target.value)} + placeholder="e.g. NOTICE OF LATE ASSESSMENT" + /> +
+
+ + update("certifiedMailLabel", e.target.value)} + placeholder="U.S. Certified Mail #" + /> +
+
-
- -