fix(10-03): transparent field boxes and fixed-size checkbox in FieldPlacer

- preparePdf: remove opaque fill from all field type rectangles (signature,
  initials, checkbox, date, text) — underlying PDF content now shows through
- preparePdf: checkbox draws X lines only (no border rectangle); date draws
  no placeholder at all; text draws nothing (position marker only)
- sign route: remove white overwrite rectangle on date stamp — date text
  draws directly on existing PDF content
- FieldPlacer: suppress resize corner handles for checkbox fields; hide
  "Checkbox" label (too small at 24x24pt); checkbox is fixed-size only

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Chandler Copeland
2026-03-21 13:41:04 -06:00
parent 4d699fd474
commit e179b9284f
3 changed files with 10 additions and 36 deletions

View File

@@ -191,12 +191,7 @@ export async function POST(
for (const field of dateFields) {
const page = pages[field.page - 1];
if (!page) continue;
// Overwrite the amber placeholder rectangle with white background + date text
page.drawRectangle({
x: field.x, y: field.y, width: field.width, height: field.height,
borderColor: rgb(0.39, 0.45, 0.55), borderWidth: 0.5,
color: rgb(1.0, 1.0, 1.0),
});
// Draw signing date directly — no background rectangle so underlying PDF content shows through
page.drawText(signingDateStr, {
x: field.x + 4,
y: field.y + field.height / 2 - 4, // vertically center

View File

@@ -639,7 +639,9 @@ export function FieldPlacer({ docId, pageInfo, currentPage, children, readOnly =
handleMoveStart(e, field.id);
}}
>
<span style={{ pointerEvents: 'none' }}>{fieldLabel}</span>
{fieldType !== 'checkbox' && (
<span style={{ pointerEvents: 'none' }}>{fieldLabel}</span>
)}
{!readOnly && (
<button
data-no-move
@@ -673,7 +675,7 @@ export function FieldPlacer({ docId, pageInfo, currentPage, children, readOnly =
×
</button>
)}
{!readOnly && (
{!readOnly && fieldType !== 'checkbox' && (
<>
{resizeHandle('nw')}
{resizeHandle('ne')}