From f3c2d1fabfe14314057963090d6b7cc20ed8f1e4 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 01:53:36 +0000 Subject: [PATCH 1/4] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- bun.lockb | Bin 298554 -> 328171 bytes package.json | 4 ++++ 2 files changed, 4 insertions(+) diff --git a/bun.lockb b/bun.lockb index a7d1590bce46d93990fb2ef3106957d1f7168fed..f3958deba53561abeaa7fa90c144cd193f687c11 100755 GIT binary patch delta 68498 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%0D_ZZ%@6rkBQYwJlvQ$!eO3k&zqq)%vwKNdSFbo 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 delta 51943 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 Date: Fri, 17 Apr 2026 01:54:20 +0000 Subject: [PATCH 2/4] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/components/documents/rich-text-editor.tsx | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 src/components/documents/rich-text-editor.tsx diff --git a/src/components/documents/rich-text-editor.tsx b/src/components/documents/rich-text-editor.tsx new file mode 100644 index 0000000..330cd27 --- /dev/null +++ b/src/components/documents/rich-text-editor.tsx @@ -0,0 +1,149 @@ +import { useEditor, EditorContent, Editor } from "@tiptap/react"; +import StarterKit from "@tiptap/starter-kit"; +import Underline from "@tiptap/extension-underline"; +import TextAlign from "@tiptap/extension-text-align"; +import { useEffect } from "react"; +import { Button } from "@/components/ui/button"; +import { Separator } from "@/components/ui/separator"; +import { + Bold, Italic, Underline as UnderlineIcon, List, ListOrdered, + AlignLeft, AlignCenter, AlignRight, AlignJustify, Quote, Undo, Redo, + Heading2, Superscript as SupIcon, +} from "lucide-react"; +import { cn } from "@/lib/utils"; + +interface RichTextEditorProps { + value: string; // HTML + onChange: (html: string) => void; + onInsertFootnote?: () => void; + className?: string; + minHeight?: number; +} + +function ToolbarButton({ + onClick, active, disabled, children, title, +}: { + onClick: () => void; active?: boolean; disabled?: boolean; children: React.ReactNode; title: string; +}) { + return ( + + ); +} + +export function RichTextEditor({ + value, onChange, onInsertFootnote, className, minHeight = 400, +}: RichTextEditorProps) { + const editor = useEditor({ + extensions: [ + StarterKit.configure({ heading: { levels: [2, 3] } }), + Underline, + TextAlign.configure({ types: ["heading", "paragraph"] }), + ], + content: value || "

", + onUpdate: ({ editor }) => onChange(editor.getHTML()), + editorProps: { + attributes: { + class: "prose prose-sm max-w-none focus:outline-none px-10 py-8 bg-white text-black", + style: 'font-family: "Bookman Old Style", "URW Bookman", Georgia, serif; font-size: 12pt; line-height: 1.5;', + }, + }, + }); + + // Keep editor in sync when value is reset externally + useEffect(() => { + if (editor && value !== editor.getHTML()) { + editor.commands.setContent(value || "

", { emitUpdate: false }); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [value === ""]); + + if (!editor) return null; + + return ( +
+ +
+
+ +
+
+
+ ); +} + +function Toolbar({ editor, onInsertFootnote }: { editor: Editor; onInsertFootnote?: () => void }) { + return ( +
+ editor.chain().focus().undo().run()} disabled={!editor.can().undo()}> + + + editor.chain().focus().redo().run()} disabled={!editor.can().redo()}> + + + + + editor.chain().focus().toggleBold().run()}> + + + editor.chain().focus().toggleItalic().run()}> + + + editor.chain().focus().toggleUnderline().run()}> + + + + + editor.chain().focus().toggleHeading({ level: 2 }).run()}> + + + editor.chain().focus().toggleBulletList().run()}> + + + editor.chain().focus().toggleOrderedList().run()}> + + + editor.chain().focus().toggleBlockquote().run()}> + + + + + editor.chain().focus().setTextAlign("left").run()}> + + + editor.chain().focus().setTextAlign("center").run()}> + + + editor.chain().focus().setTextAlign("right").run()}> + + + editor.chain().focus().setTextAlign("justify").run()}> + + + + {onInsertFootnote && ( + <> + + + + )} +
+ ); +} + +// Helper exposed for the parent to insert a numbered footnote marker +export function insertFootnoteMarker(editor: Editor | null, num: number) { + if (!editor) return; + editor.chain().focus().insertContent(`[${num}]`).run(); +} From e1b20e739577b7cbf1f1ba8ec535daba5f698018 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 01:55:15 +0000 Subject: [PATCH 3/4] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/lib/docx-pleading.ts | 177 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 173 insertions(+), 4 deletions(-) diff --git a/src/lib/docx-pleading.ts b/src/lib/docx-pleading.ts index b4fd212..71770a8 100644 --- a/src/lib/docx-pleading.ts +++ b/src/lib/docx-pleading.ts @@ -11,9 +11,16 @@ import { TextRun, WidthType, BorderStyle, + Footer, + LevelFormat, } from "docx"; import { saveAs } from "file-saver"; +export interface PleadingFootnote { + id: number; + text: string; +} + export interface PleadingInput { courtType: "CIRCUIT" | "COUNTY"; circuit: string; // e.g. "ELEVENTH" @@ -22,7 +29,9 @@ export interface PleadingInput { defendants: string; // multi-line caseNumber: string; title?: string; - body?: string; + bodyHtml?: string; // rich HTML body + body?: string; // legacy plain text fallback + footnotes?: PleadingFootnote[]; } const FONT = "Bookman Old Style"; @@ -44,8 +53,16 @@ const verticalLine = { right: { style: BorderStyle.SINGLE, size: 8, color: "000000" }, }; -function run(text: string, opts: { bold?: boolean } = {}) { - return new TextRun({ text, bold: opts.bold, font: FONT, size: SIZE }); +function run(text: string, opts: { bold?: boolean; italic?: boolean; underline?: boolean; superscript?: boolean; size?: number } = {}) { + return new TextRun({ + text, + bold: opts.bold, + italics: opts.italic, + underline: opts.underline ? {} : undefined, + superScript: opts.superscript, + font: FONT, + size: opts.size ?? SIZE, + }); } function p(text: string, opts: { bold?: boolean; align?: (typeof AlignmentType)[keyof typeof AlignmentType] } = {}) { @@ -59,6 +76,108 @@ function emptyP() { return new Paragraph({ children: [run("")] }); } +// ---------- HTML → docx Paragraphs ---------- + +type RunStyle = { bold?: boolean; italic?: boolean; underline?: boolean; superscript?: boolean }; + +function alignFromStyle(node: Element): (typeof AlignmentType)[keyof typeof AlignmentType] | undefined { + const ta = (node.getAttribute("style") || "").match(/text-align:\s*(left|center|right|justify)/i)?.[1]?.toLowerCase(); + switch (ta) { + case "center": return AlignmentType.CENTER; + case "right": return AlignmentType.RIGHT; + case "justify": return AlignmentType.JUSTIFIED; + case "left": return AlignmentType.LEFT; + default: return undefined; + } +} + +function collectRuns(node: Node, style: RunStyle, out: TextRun[]) { + if (node.nodeType === Node.TEXT_NODE) { + const text = node.textContent || ""; + if (text) out.push(run(text, style)); + return; + } + if (node.nodeType !== Node.ELEMENT_NODE) return; + const el = node as Element; + const tag = el.tagName.toLowerCase(); + const next: RunStyle = { ...style }; + if (tag === "strong" || tag === "b") next.bold = true; + if (tag === "em" || tag === "i") next.italic = true; + if (tag === "u") next.underline = true; + if (tag === "sup") next.superscript = true; + if (tag === "br") { + out.push(new TextRun({ text: "", break: 1, font: FONT, size: SIZE })); + return; + } + el.childNodes.forEach((child) => collectRuns(child, next, out)); +} + +function blockToParagraphs(el: Element, listCtx?: { ref: string; level: number }): Paragraph[] { + const tag = el.tagName.toLowerCase(); + const align = alignFromStyle(el); + + if (tag === "ul" || tag === "ol") { + const ref = tag === "ul" ? "pl-bullets" : "pl-numbers"; + const level = (listCtx?.level ?? -1) + 1; + const out: Paragraph[] = []; + el.querySelectorAll(":scope > li").forEach((li) => { + const runs: TextRun[] = []; + li.childNodes.forEach((child) => { + if (child.nodeType === Node.ELEMENT_NODE && /^(ul|ol)$/i.test((child as Element).tagName)) return; + collectRuns(child, {}, runs); + }); + out.push(new Paragraph({ + numbering: { reference: ref, level }, + children: runs.length ? runs : [run("")], + })); + li.querySelectorAll(":scope > ul, :scope > ol").forEach((nested) => { + out.push(...blockToParagraphs(nested as Element, { ref, level })); + }); + }); + return out; + } + + if (tag === "blockquote") { + const out: Paragraph[] = []; + el.childNodes.forEach((child) => { + if (child.nodeType === Node.ELEMENT_NODE) { + out.push(...blockToParagraphs(child as Element).map((par) => par)); + } else if (child.nodeType === Node.TEXT_NODE && (child.textContent || "").trim()) { + out.push(new Paragraph({ + alignment: align, + indent: { left: 720 }, + children: [run(child.textContent || "")], + })); + } + }); + if (out.length === 0) out.push(new Paragraph({ indent: { left: 720 }, children: [run("")] })); + return out; + } + + if (tag === "h1" || tag === "h2" || tag === "h3") { + const runs: TextRun[] = []; + el.childNodes.forEach((c) => collectRuns(c, { bold: true }, runs)); + return [new Paragraph({ alignment: align, children: runs.length ? runs : [run("")] })]; + } + + // Default: paragraph + const runs: TextRun[] = []; + el.childNodes.forEach((c) => collectRuns(c, {}, runs)); + return [new Paragraph({ alignment: align, children: runs.length ? runs : [run("")] })]; +} + +function htmlToParagraphs(html: string): Paragraph[] { + if (typeof window === "undefined" || !html) return []; + const doc = new DOMParser().parseFromString(`
${html}
`, "text/html"); + const root = doc.body.firstElementChild; + if (!root) return []; + const out: Paragraph[] = []; + Array.from(root.children).forEach((child) => { + out.push(...blockToParagraphs(child)); + }); + return out; +} + export function buildPleadingDoc(input: PleadingInput): Document { const headerLine1 = `IN THE ${input.courtType} COURT OF THE ${input.circuit} JUDICIAL CIRCUIT,`; const headerLine2 = `IN AND FOR ${input.county.toUpperCase()} COUNTY, FLORIDA`; @@ -114,14 +233,59 @@ export function buildPleadingDoc(input: PleadingInput): Document { bodyParagraphs.push(p(input.title.toUpperCase(), { bold: true, align: AlignmentType.CENTER })); bodyParagraphs.push(emptyP()); } - if (input.body) { + if (input.bodyHtml && input.bodyHtml.trim()) { + bodyParagraphs.push(...htmlToParagraphs(input.bodyHtml)); + } else if (input.body) { input.body.split("\n").forEach((line) => bodyParagraphs.push(p(line))); } + // Footnotes rendered as endnote-style block at bottom of document + const footnotes = (input.footnotes || []).filter((f) => f.text.trim().length > 0); + if (footnotes.length > 0) { + bodyParagraphs.push(emptyP()); + bodyParagraphs.push(new Paragraph({ + border: { top: { style: BorderStyle.SINGLE, size: 6, color: "000000", space: 4 } }, + children: [run("")], + })); + footnotes.forEach((f) => { + bodyParagraphs.push(new Paragraph({ + children: [ + run(`${f.id}`, { superscript: true, size: 20 }), + run(" "), + run(f.text, { size: 20 }), + ], + })); + }); + } + return new Document({ styles: { default: { document: { run: { font: FONT, size: SIZE } } }, }, + numbering: { + config: [ + { + reference: "pl-bullets", + levels: [0, 1, 2].map((lvl) => ({ + level: lvl, + format: LevelFormat.BULLET, + text: "\u2022", + alignment: AlignmentType.LEFT, + style: { paragraph: { indent: { left: 720 * (lvl + 1), hanging: 360 } } }, + })), + }, + { + reference: "pl-numbers", + levels: [0, 1, 2].map((lvl) => ({ + level: lvl, + format: LevelFormat.DECIMAL, + text: `%${lvl + 1}.`, + alignment: AlignmentType.LEFT, + style: { paragraph: { indent: { left: 720 * (lvl + 1), hanging: 360 } } }, + })), + }, + ], + }, sections: [ { properties: { @@ -130,6 +294,11 @@ export function buildPleadingDoc(input: PleadingInput): Document { margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 }, }, }, + footers: { + default: new Footer({ + children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [run("")] })], + }), + }, children: [ p(headerLine1, { bold: true, align: AlignmentType.CENTER }), p(headerLine2, { bold: true, align: AlignmentType.CENTER }), From 485ddcdc61775f9f606664c8b2d4268577a986b4 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 01:56:05 +0000 Subject: [PATCH 4/4] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/documents.pleading.new.tsx | 117 ++++++++++++++++++++------ 1 file changed, 91 insertions(+), 26 deletions(-) diff --git a/src/routes/documents.pleading.new.tsx b/src/routes/documents.pleading.new.tsx index 1156e11..8daf654 100644 --- a/src/routes/documents.pleading.new.tsx +++ b/src/routes/documents.pleading.new.tsx @@ -12,11 +12,12 @@ import { } from "@/components/ui/select"; import { FL_CIRCUITS } from "@/lib/florida"; import { Packer } from "docx"; -import { buildPleadingDoc, downloadPleading } from "@/lib/docx-pleading"; +import { buildPleadingDoc, downloadPleading, type PleadingFootnote } from "@/lib/docx-pleading"; +import { RichTextEditor } from "@/components/documents/rich-text-editor"; import { supabase } from "@/integrations/supabase/client"; import { useAuth } from "@/lib/auth"; import { toast } from "sonner"; -import { Download, Save, Loader2 } from "lucide-react"; +import { Download, Save, Loader2, Plus, Trash2 } from "lucide-react"; export const Route = createFileRoute("/documents/pleading/new")({ component: PleadingNewPage, @@ -32,7 +33,8 @@ function PleadingNewPage() { const [defendants, setDefendants] = useState(""); const [caseNumber, setCaseNumber] = useState(""); const [title, setTitle] = useState(""); - const [body, setBody] = useState(""); + const [bodyHtml, setBodyHtml] = useState("

"); + const [footnotes, setFootnotes] = useState([]); const [docName, setDocName] = useState("Pleading"); const [saving, setSaving] = useState(false); @@ -41,7 +43,6 @@ function PleadingNewPage() { return c?.counties ?? []; }, [circuit]); - // Reset county when circuit changes if current county isn't valid const handleCircuitChange = (v: string) => { setCircuit(v); const c = FL_CIRCUITS.find((x) => x.value === v); @@ -51,7 +52,7 @@ function PleadingNewPage() { const input = { courtType, circuit, county, plaintiffs, defendants, caseNumber, - title, body, + title, bodyHtml, footnotes, }; const headerLine1 = `IN THE ${courtType} COURT OF THE ${circuit} JUDICIAL CIRCUIT,`; @@ -75,7 +76,7 @@ function PleadingNewPage() { const { error: insErr } = await supabase.from("generated_documents").insert({ name: docName || "Pleading", kind: "pleading", - payload: input, + payload: input as any, storage_path: path, created_by: user?.id, }); @@ -89,6 +90,17 @@ function PleadingNewPage() { } }; + const addFootnote = () => { + const nextId = (footnotes[footnotes.length - 1]?.id ?? 0) + 1; + setFootnotes([...footnotes, { id: nextId, text: "" }]); + }; + const updateFootnote = (id: number, text: string) => + setFootnotes(footnotes.map((f) => (f.id === id ? { ...f, text } : f))); + const removeFootnote = (id: number) => { + const remaining = footnotes.filter((f) => f.id !== id).map((f, i) => ({ ...f, id: i + 1 })); + setFootnotes(remaining); + }; + return ( @@ -106,8 +118,8 @@ function PleadingNewPage() { } /> + {/* Top row: settings + caption preview */}
- {/* Form */}
@@ -161,29 +173,25 @@ function PleadingNewPage() {
-
- - setCaseNumber(e.target.value)} placeholder="e.g. 2025-CA-001234" /> -
- -
- - setTitle(e.target.value)} placeholder="e.g. COMPLAINT FOR DAMAGES" /> -
- -
- -