@signiphi/pdf-signer 0.2.0-beta.27 → 0.2.0-beta.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +33 -3
  2. package/assets/viewer-annotations.html +136 -29
  3. package/dist/components/AnnotationToolProperties.d.ts.map +1 -1
  4. package/dist/components/FormFieldsView.d.ts +6 -0
  5. package/dist/components/FormFieldsView.d.ts.map +1 -1
  6. package/dist/components/SubmissionForm.d.ts +13 -1
  7. package/dist/components/SubmissionForm.d.ts.map +1 -1
  8. package/dist/components/form-fields/CheckboxRenderer.d.ts +2 -1
  9. package/dist/components/form-fields/CheckboxRenderer.d.ts.map +1 -1
  10. package/dist/components/form-fields/DateFieldRenderer.d.ts +2 -1
  11. package/dist/components/form-fields/DateFieldRenderer.d.ts.map +1 -1
  12. package/dist/components/form-fields/DropdownRenderer.d.ts +2 -1
  13. package/dist/components/form-fields/DropdownRenderer.d.ts.map +1 -1
  14. package/dist/components/form-fields/FormFieldRenderer.d.ts +1 -1
  15. package/dist/components/form-fields/FormFieldRenderer.d.ts.map +1 -1
  16. package/dist/components/form-fields/InitialsFieldRenderer.d.ts +2 -1
  17. package/dist/components/form-fields/InitialsFieldRenderer.d.ts.map +1 -1
  18. package/dist/components/form-fields/RadioGroupRenderer.d.ts +2 -1
  19. package/dist/components/form-fields/RadioGroupRenderer.d.ts.map +1 -1
  20. package/dist/components/form-fields/SignatureFieldRenderer.d.ts +2 -1
  21. package/dist/components/form-fields/SignatureFieldRenderer.d.ts.map +1 -1
  22. package/dist/components/form-fields/TextFieldRenderer.d.ts +2 -1
  23. package/dist/components/form-fields/TextFieldRenderer.d.ts.map +1 -1
  24. package/dist/components/index.js +1526 -280
  25. package/dist/components/index.js.map +1 -1
  26. package/dist/components/index.mjs +1526 -280
  27. package/dist/components/index.mjs.map +1 -1
  28. package/dist/core/PdfViewerCore.d.ts.map +1 -1
  29. package/dist/core/index.js +244 -3
  30. package/dist/core/index.js.map +1 -1
  31. package/dist/core/index.mjs +244 -3
  32. package/dist/core/index.mjs.map +1 -1
  33. package/dist/hooks/index.js +666 -189
  34. package/dist/hooks/index.js.map +1 -1
  35. package/dist/hooks/index.mjs +666 -189
  36. package/dist/hooks/index.mjs.map +1 -1
  37. package/dist/hooks/useAnnotationChat.d.ts +9 -0
  38. package/dist/hooks/useAnnotationChat.d.ts.map +1 -1
  39. package/dist/hooks/usePdfViewer.d.ts +1 -1
  40. package/dist/hooks/usePdfViewer.d.ts.map +1 -1
  41. package/dist/index.css +61 -26
  42. package/dist/index.css.map +1 -1
  43. package/dist/index.js +1523 -288
  44. package/dist/index.js.map +1 -1
  45. package/dist/index.mjs +1516 -289
  46. package/dist/index.mjs.map +1 -1
  47. package/dist/styles/index.css +46 -22
  48. package/dist/utils/annotation-appearance.d.ts +85 -0
  49. package/dist/utils/annotation-appearance.d.ts.map +1 -0
  50. package/dist/utils/annotation-pdf-save.d.ts +78 -1
  51. package/dist/utils/annotation-pdf-save.d.ts.map +1 -1
  52. package/dist/utils/field-visibility.d.ts.map +1 -1
  53. package/dist/utils/form-flatten-helpers.d.ts +70 -0
  54. package/dist/utils/form-flatten-helpers.d.ts.map +1 -0
  55. package/dist/utils/index.d.ts +2 -0
  56. package/dist/utils/index.d.ts.map +1 -1
  57. package/dist/utils/index.js +843 -102
  58. package/dist/utils/index.js.map +1 -1
  59. package/dist/utils/index.mjs +836 -103
  60. package/dist/utils/index.mjs.map +1 -1
  61. package/dist/utils/pdf-manipulation.d.ts.map +1 -1
  62. package/dist/utils/pdf-metadata.d.ts +33 -1
  63. package/dist/utils/pdf-metadata.d.ts.map +1 -1
  64. package/dist/utils/pdf-viewer-filter.d.ts.map +1 -1
  65. package/dist/utils/progressive-signing-step.d.ts +84 -0
  66. package/dist/utils/progressive-signing-step.d.ts.map +1 -0
  67. package/dist/utils/review-pdf-derivation.d.ts +54 -0
  68. package/dist/utils/review-pdf-derivation.d.ts.map +1 -0
  69. package/dist/utils/round-radio-appearance.d.ts +54 -0
  70. package/dist/utils/round-radio-appearance.d.ts.map +1 -0
  71. package/dist/utils/text-label-render.d.ts +36 -0
  72. package/dist/utils/text-label-render.d.ts.map +1 -0
  73. package/package.json +1 -1
  74. package/scripts/setup.js +1 -1
  75. package/src/styles/index.css +30 -2
package/README.md CHANGED
@@ -1177,9 +1177,39 @@ the signed PDF carries the review marks burned into page content.
1177
1177
  - `pdfUrlForSigning` — the original/prepared PDF the final fill runs against.
1178
1178
 
1179
1179
  When `enableAnnotationChat` or `reviewMode` is true, **always pass both**.
1180
- The form logs an error (and throws in development) when `pdfUrlForSigning`
1181
- is missing, so the misuse surfaces immediately rather than producing a
1182
- corrupted signed PDF later.
1180
+
1181
+ **Strict contract (signing after review):** when the document actually
1182
+ carries review annotations, signing it requires a clean `pdfUrlForSigning`
1183
+ that is **distinct** from `pdfUrl`. If `pdfUrlForSigning` is
1184
+ missing/empty/whitespace-only, or points at the same file as `pdfUrl` —
1185
+ including trivial variations like a cache-buster query (`file.pdf?v=2`), a
1186
+ trailing slash, or host casing — `handleSubmit` **throws a
1187
+ `ReviewAnnotationSigningError` at submit time** — before any fill runs — so
1188
+ the signed copy can never silently embed the review marks. Correctly
1189
+ configured signing (a distinct, un-baked `pdfUrlForSigning`) bakes the
1190
+ signer's form-field signatures only; review annotations are never written
1191
+ into the signed deliverable. (Separately, a softer render-time warning still
1192
+ logs — and throws in development — whenever annotation features are enabled
1193
+ without `pdfUrlForSigning`, to catch the misconfiguration early.)
1194
+
1195
+ URL comparison is best-effort: it cannot detect two *different* URLs (e.g. a
1196
+ CDN alias on another host) that serve the same baked file. The durable
1197
+ guarantee is content-based — before filling, the actual signing bytes are
1198
+ scanned for baked review markup and signing is refused if any is found
1199
+ (`assertSigningBytesFreeOfReviewMarkup`), independent of how the URLs were
1200
+ wired.
1201
+
1202
+ The guard is also exported standalone for custom submit flows:
1203
+
1204
+ ```ts
1205
+ import { assertSigningSourceIsClean } from '@signiphi/pdf-signer/utils';
1206
+
1207
+ assertSigningSourceIsClean({
1208
+ hasReviewAnnotations, // true if the doc went through review
1209
+ pdfUrl,
1210
+ pdfUrlForSigning,
1211
+ }); // throws ReviewAnnotationSigningError on misconfiguration
1212
+ ```
1183
1213
 
1184
1214
  ### Round-trip example
1185
1215
 
@@ -87,6 +87,25 @@
87
87
  display: none !important;
88
88
  }
89
89
 
90
+ /* Placed text (FreeText) and image (Stamp) editors must remain interactive
91
+ even when the annotation editor layer is in NONE mode (`.disabled`).
92
+ pdf_viewer.css drops pointer-events on the disabled layer, which would
93
+ otherwise lock the just-placed annotation: after a text/image is dropped
94
+ the host switches PDF.js to NONE ("select mode" — clicks select existing
95
+ editors instead of creating new ones), and a disabled layer strips the
96
+ resize handles + drag of pointer events. Force pointer-events back on for
97
+ stamps and freetext editors (and their resize handle children) so the
98
+ placed annotation stays movable/resizable throughout the whole session,
99
+ regardless of the active editor mode. Highlights/ink are intentionally
100
+ excluded — those flows place several in a row and don't need post-place
101
+ drag/resize. Review mode re-locks the resizers below. */
102
+ .annotationEditorLayer.disabled .stampEditor,
103
+ .annotationEditorLayer.disabled .stampEditor *,
104
+ .annotationEditorLayer.disabled .freeTextEditor,
105
+ .annotationEditorLayer.disabled .freeTextEditor * {
106
+ pointer-events: auto !important;
107
+ }
108
+
90
109
  /* Review mode (sender viewing receiver's annotations):
91
110
  - Block pointer events on the annotation editor layer itself so clicks
92
111
  on empty areas DO NOT create new editors regardless of PDF.js mode.
@@ -220,6 +239,11 @@
220
239
  viewer: document.getElementById('viewer'),
221
240
  eventBus,
222
241
  linkService: pdfLinkService,
242
+ // Where PDF.js resolves annotation icon SVGs (e.g. the Text/sticky-note
243
+ // `annotation-note.svg`). The icons live in `web/images/`; without this
244
+ // the path defaults to "" and every Text annotation — baked review
245
+ // replies and notes — renders as a broken "unavailable image".
246
+ imageResourcesPath: 'images/',
223
247
  textLayerMode: 2, // Enable text layer (required for highlight annotations)
224
248
  annotationMode: 2, // Enable form annotations
225
249
  annotationEditorMode: AnnotationEditorType.NONE, // Editors available but not active
@@ -266,15 +290,82 @@
266
290
  __signiphiObservers.length = 0;
267
291
  });
268
292
 
293
+ // Auto-switch to "select mode" after a text/image annotation is placed.
294
+ // After the user drops a FreeText or Stamp editor we drop PDF.js back to
295
+ // NONE so the NEXT click selects/moves/resizes the just-placed editor
296
+ // instead of creating another one. The placed editor stays interactive
297
+ // even in NONE thanks to the `.annotationEditorLayer.disabled .freeTextEditor
298
+ // / .stampEditor { pointer-events: auto }` rules above. We also notify the
299
+ // parent so React's `activeToolType` deselects and its toolbar button
300
+ // reflects the change (mirrors the mousedown-on-existing-editor path).
301
+ function switchToSelectMode() {
302
+ try {
303
+ pdfViewer.annotationEditorMode = { mode: AnnotationEditorType.NONE };
304
+ } catch (_) {}
305
+ try {
306
+ window.parent.postMessage({
307
+ type: 'signiphi:annotation:toolDeselected',
308
+ payload: {}
309
+ }, parentOrigin);
310
+ } catch (_) {}
311
+ }
312
+
313
+ // Track FreeText editing state so we can detect the commit (edit → done).
314
+ // PDF.js fires `annotationeditorstateschanged` with isEditing:true while
315
+ // the user is typing in a freetext box, then isEditing:false once it
316
+ // commits (blur / Escape / click outside). On that falling edge — while
317
+ // the FreeText tool is still the active mode and the committed box
318
+ // contains text — we switch to select mode so the box stays draggable
319
+ // and the next click won't spawn a new text box.
320
+ var wasFreeTextEditing = false;
321
+
322
+ // The freetext editor the falling edge refers to: the selected one if any
323
+ // (the box being edited stays selected through the commit), else the most
324
+ // recently added. Returns true only when it holds non-empty text.
325
+ function activeFreeTextHasContent() {
326
+ var target = document.querySelector('.annotationEditorLayer .freeTextEditor.selectedEditor');
327
+ if (!target) {
328
+ var all = document.querySelectorAll('.annotationEditorLayer .freeTextEditor');
329
+ if (!all.length) return false;
330
+ target = all[all.length - 1];
331
+ }
332
+ var internal = target.querySelector('.internal');
333
+ var text = (internal ? internal.textContent : target.textContent) || '';
334
+ return text.trim().length > 0;
335
+ }
336
+
269
337
  // Forward annotation editor state changes to parent frame
270
338
  eventBus.on('annotationeditorstateschanged', function (data) {
339
+ // PDF.js v5 nests the state flags under `details`
340
+ // (dispatch("annotationeditorstateschanged", { source, details })).
341
+ // Older builds emitted them at the top level — read both.
342
+ var states = data?.details || data || {};
343
+ try {
344
+ var mode = window.PDFViewerApplication?.annotationEditor?.getMode?.();
345
+ var isEditing = states.isEditing ?? false;
346
+ if (mode === AnnotationEditorType.FREETEXT) {
347
+ if (isEditing) {
348
+ wasFreeTextEditing = true;
349
+ } else if (wasFreeTextEditing) {
350
+ // Commit edge — but PDF.js emits a spurious not-editing event
351
+ // immediately after creation while the box is still empty, and
352
+ // switching modes then destroys the empty box. Only commit (and
353
+ // disarm) when the box actually contains text; on the spurious
354
+ // empty-box edge stay armed so the real commit still fires.
355
+ if (activeFreeTextHasContent()) {
356
+ wasFreeTextEditing = false;
357
+ switchToSelectMode();
358
+ }
359
+ }
360
+ }
361
+ } catch (_) {}
271
362
  try {
272
363
  window.parent.postMessage({
273
364
  type: 'signiphi:annotation:statechanged',
274
365
  payload: {
275
- isEditing: data?.isEditing ?? false,
276
- isEmpty: data?.isEmpty ?? true,
277
- hasEmptyEditor: data?.hasEmptyEditor ?? false,
366
+ isEditing: states.isEditing ?? false,
367
+ isEmpty: states.isEmpty ?? true,
368
+ hasEmptyEditor: states.hasEmptyEditor ?? false,
278
369
  }
279
370
  }, parentOrigin);
280
371
  } catch (e) {
@@ -545,37 +636,46 @@
545
636
  // intercept the mousedown event, hiding the editor from e.target.
546
637
  var editorEl = findEditorAncestor(e.target)
547
638
  || findEditorAtPoint(e.clientX, e.clientY);
548
- if (!editorEl) return;
549
639
  var app = window.PDFViewerApplication;
550
640
  var mode = app?.annotationEditor?.getMode?.();
551
- var uiManager = pdfViewer._layerProperties?.annotationEditorUIManager;
552
- var editor = uiManager?.getEditor?.(editorEl.id);
553
641
 
554
- if (mode !== undefined && mode !== 0 /* NONE */) {
555
- // Switch off the tool synchronously so PDF.js doesn't start a
556
- // new editor on the upcoming click.
557
- try {
558
- pdfViewer.annotationEditorMode = { mode: 0 };
559
- } catch {}
560
- // Notify parent so React state (activeToolType) deselects too.
561
- window.parent.postMessage({
562
- type: 'signiphi:annotation:toolDeselected',
563
- payload: {}
564
- }, parentOrigin);
565
- }
642
+ if (editorEl) {
643
+ // Clicked on an existing annotation editor deselect tool, select editor
644
+ var uiManager = pdfViewer._layerProperties?.annotationEditorUIManager;
645
+ var editor = uiManager?.getEditor?.(editorEl.id);
566
646
 
567
- // Always promote the clicked editor to selected. This handles both
568
- // the tool-active case AND the NONE case where PDF.js sometimes
569
- // fails to transfer selection between editors of different kinds.
570
- if (uiManager && editor) {
571
- try {
572
- if (typeof uiManager.setSelected === 'function') {
573
- uiManager.setSelected(editor);
574
- } else if (typeof editor.select === 'function') {
575
- editor.select();
576
- }
577
- } catch {}
647
+ if (mode !== undefined && mode !== 0 /* NONE */) {
648
+ // Switch off the tool synchronously so PDF.js doesn't start a
649
+ // new editor on the upcoming click.
650
+ try {
651
+ pdfViewer.annotationEditorMode = { mode: 0 };
652
+ } catch {}
653
+ // Notify parent so React state (activeToolType) deselects too.
654
+ window.parent.postMessage({
655
+ type: 'signiphi:annotation:toolDeselected',
656
+ payload: {}
657
+ }, parentOrigin);
658
+ }
659
+
660
+ // Always promote the clicked editor to selected. This handles both
661
+ // the tool-active case AND the NONE case where PDF.js sometimes
662
+ // fails to transfer selection between editors of different kinds.
663
+ if (uiManager && editor) {
664
+ try {
665
+ if (typeof uiManager.setSelected === 'function') {
666
+ uiManager.setSelected(editor);
667
+ } else if (typeof editor.select === 'function') {
668
+ editor.select();
669
+ }
670
+ } catch {}
671
+ }
578
672
  }
673
+ // Note: do NOT deselect the tool on empty-space clicks.
674
+ // When a tool is active and the user clicks on empty space,
675
+ // PDF.js should handle creating the new editor (drawing stroke,
676
+ // text box, etc.). Deselection only happens when clicking an
677
+ // existing editor (handled above) or when the user explicitly
678
+ // toggles the tool off from the toolbar.
579
679
  } catch (err) {
580
680
  console.warn('mousedown handler error:', err);
581
681
  }
@@ -1125,6 +1225,13 @@
1125
1225
  var uiManager = pdfViewer._layerProperties?.annotationEditorUIManager;
1126
1226
  if (uiManager && uiManager.currentLayer) {
1127
1227
  uiManager.currentLayer.addNewEditor({ bitmapUrl: dataUrl });
1228
+ // Image placement is atomic — the stamp is dropped fully formed.
1229
+ // Drop back to select mode so the next click selects/moves/resizes
1230
+ // the placed image instead of opening another stamp. The editor
1231
+ // stays interactive in NONE via the stampEditor pointer-events
1232
+ // rule. Defer one tick so PDF.js finishes mounting the editor
1233
+ // (and registers it as selected) before we change the mode.
1234
+ setTimeout(function() { switchToSelectMode(); }, 0);
1128
1235
  } else {
1129
1236
  console.warn('addImageEditor: UIManager or currentLayer not available');
1130
1237
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationToolProperties.d.ts","sourceRoot":"","sources":["../../src/components/AnnotationToolProperties.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AA0BlG,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,SAAS,CAAC;IACtB,kBAAkB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,SAAS,GACV,EAAE,6BAA6B,kDA6G/B"}
1
+ {"version":3,"file":"AnnotationToolProperties.d.ts","sourceRoot":"","sources":["../../src/components/AnnotationToolProperties.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAkClG,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,SAAS,CAAC;IACtB,kBAAkB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,SAAS,GACV,EAAE,6BAA6B,kDA6G/B"}
@@ -24,6 +24,12 @@ export interface FormFieldsViewProps {
24
24
  isFieldFullyAcknowledged?: (fieldId: string) => boolean;
25
25
  /** Callback when acknowledgement is required for a field */
26
26
  onAcknowledgementRequired?: (field: EsignFormField) => void;
27
+ /**
28
+ * Render all fields in read-only / disabled state.
29
+ * Used when the form is opened in review mode — values still display,
30
+ * but inputs cannot be edited.
31
+ */
32
+ readOnly?: boolean;
27
33
  }
28
34
  export interface FormFieldsViewRef {
29
35
  /** Navigate to next field */
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldsView.d.ts","sourceRoot":"","sources":["../../src/components/FormFieldsView.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,UAAU,CAAC;AAO9D,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,wCAAwC;IACxC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,+CAA+C;IAC/C,gBAAgB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,qCAAqC;IACrC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,qCAAqC;IACrC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACvD,+DAA+D;IAC/D,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACxD,4DAA4D;IAC5D,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iCAAiC;IACjC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,sCAAsC;IACtC,oBAAoB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC1C,iCAAiC;IACjC,cAAc,EAAE,MAAM,MAAM,CAAC;CAC9B;AAwFD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,mHAiNzB,CAAC"}
1
+ {"version":3,"file":"FormFieldsView.d.ts","sourceRoot":"","sources":["../../src/components/FormFieldsView.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,UAAU,CAAC;AAO9D,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,wCAAwC;IACxC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,+CAA+C;IAC/C,gBAAgB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,qCAAqC;IACrC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,qCAAqC;IACrC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACvD,+DAA+D;IAC/D,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACxD,4DAA4D;IAC5D,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iCAAiC;IACjC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,sCAAsC;IACtC,oBAAoB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC1C,iCAAiC;IACjC,cAAc,EAAE,MAAM,MAAM,CAAC;CAC9B;AAwFD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,mHAmNzB,CAAC"}
@@ -78,6 +78,18 @@ export interface SubmissionFormProps {
78
78
  * Called without requiring all form fields to be filled.
79
79
  */
80
80
  onRequestReview?: (data: ReviewSubmissionData) => Promise<void>;
81
+ /**
82
+ * Callback fired after a post-bake annotation change (delete/edit of an
83
+ * annotation that was already part of a stored Review PDF). Receives the
84
+ * updated Annotation Tree together with the Review PDF re-derived from the
85
+ * clean source (`pdfUrlForSigning`) + that tree (ADR 0001). Consumers
86
+ * should persist both so the stored Review PDF always matches the Tree —
87
+ * deleted marks must not resurrect on reload.
88
+ */
89
+ onReviewAnnotationsChanged?: (data: {
90
+ annotations: AnnotationThread[];
91
+ pdfBytes: Uint8Array;
92
+ }) => void | Promise<void>;
81
93
  /**
82
94
  * Signing role for the current viewer. Drives which tabs and controls
83
95
  * are visible. This is route-driven (not identity-driven) — set it per
@@ -108,5 +120,5 @@ export interface SubmissionFormProps {
108
120
  documentId?: string;
109
121
  }
110
122
  export declare function SubmissionForm({ pdfUrl, pdfUrlForSigning, currentSigner, isMultipleSignature, totalSigners, currentSignerEmail, // Backward compatibility
111
- documentTitle, signingInstructions, showPoweredBy, customMessage, onSubmit, onCancel, readOnly, className, showPdfViewer, customFormFields, showEditableFields, showFullFieldsSidebar, signatureBoxPlacement, enableAttachments, maxAttachments, enableAnnotationChat, annotationChatConfig, onAnnotationsSave, enableJsonExport, onRequestReview, requestReviewButtonLabel, role, reviewMode: reviewModeProp, apiKey, trackingEndpoint, documentId, }: SubmissionFormProps): import("react/jsx-runtime").JSX.Element;
123
+ documentTitle, signingInstructions, showPoweredBy, customMessage, onSubmit, onCancel, readOnly, className, showPdfViewer, customFormFields, showEditableFields, showFullFieldsSidebar, signatureBoxPlacement, enableAttachments, maxAttachments, enableAnnotationChat, annotationChatConfig, onAnnotationsSave, enableJsonExport, onRequestReview, onReviewAnnotationsChanged, requestReviewButtonLabel, role, reviewMode: reviewModeProp, apiKey, trackingEndpoint, documentId, }: SubmissionFormProps): import("react/jsx-runtime").JSX.Element;
112
124
  //# sourceMappingURL=SubmissionForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubmissionForm.d.ts","sourceRoot":"","sources":["../../src/components/SubmissionForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubmissionForm.d.ts","sourceRoot":"","sources":["../../src/components/SubmissionForm.tsx"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface CheckboxRendererProps {
5
5
  onChange: (value: string) => void;
6
6
  error?: string;
7
7
  className?: string;
8
+ readOnly?: boolean;
8
9
  }
9
- export declare function CheckboxRenderer({ field, value, onChange, error, className, }: CheckboxRendererProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function CheckboxRenderer({ field, value, onChange, error, className, readOnly, }: CheckboxRendererProps): import("react/jsx-runtime").JSX.Element;
10
11
  //# sourceMappingURL=CheckboxRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/CheckboxRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAc,GACf,EAAE,qBAAqB,2CAiCvB"}
1
+ {"version":3,"file":"CheckboxRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/CheckboxRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAc,EACd,QAAgB,GACjB,EAAE,qBAAqB,2CA2CvB"}
@@ -9,6 +9,7 @@ export interface DateFieldRendererProps {
9
9
  onChange: (value: string) => void;
10
10
  error?: string;
11
11
  className?: string;
12
+ readOnly?: boolean;
12
13
  }
13
- export declare function DateFieldRenderer({ field, value, onChange, error, className, }: DateFieldRendererProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function DateFieldRenderer({ field, value, onChange, error, className, readOnly, }: DateFieldRendererProps): import("react/jsx-runtime").JSX.Element;
14
15
  //# sourceMappingURL=DateFieldRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateFieldRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/DateFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAO7C,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAc,GACf,EAAE,sBAAsB,2CA+KxB"}
1
+ {"version":3,"file":"DateFieldRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/DateFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAO7C,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAc,EACd,QAAgB,GACjB,EAAE,sBAAsB,2CAkLxB"}
@@ -9,6 +9,7 @@ export interface DropdownRendererProps {
9
9
  onChange: (value: string) => void;
10
10
  error?: string;
11
11
  className?: string;
12
+ readOnly?: boolean;
12
13
  }
13
- export declare function DropdownRenderer({ field, value, onChange, error, className, }: DropdownRendererProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function DropdownRenderer({ field, value, onChange, error, className, readOnly, }: DropdownRendererProps): import("react/jsx-runtime").JSX.Element;
14
15
  //# sourceMappingURL=DropdownRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/DropdownRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAU7C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAc,GACf,EAAE,qBAAqB,2CAgGvB"}
1
+ {"version":3,"file":"DropdownRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/DropdownRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAU7C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAc,EACd,QAAgB,GACjB,EAAE,qBAAqB,2CAmGvB"}
@@ -18,5 +18,5 @@ export interface FormFieldRendererProps {
18
18
  /**
19
19
  * Main field renderer that delegates to specific field type components
20
20
  */
21
- export declare function FormFieldRenderer({ field, value, onChange, onSignatureClick, hasSignature, error, className, isFieldFullyAcknowledged, onAcknowledgementRequired, }: FormFieldRendererProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function FormFieldRenderer({ field, value, onChange, onSignatureClick, hasSignature, readOnly, error, className, isFieldFullyAcknowledged, onAcknowledgementRequired, }: FormFieldRendererProps): import("react/jsx-runtime").JSX.Element;
22
22
  //# sourceMappingURL=FormFieldRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/FormFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AAa5D,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACxD,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,YAAoB,EACpB,KAAK,EACL,SAAS,EACT,wBAAwB,EACxB,yBAAyB,GAC1B,EAAE,sBAAsB,2CAmGxB"}
1
+ {"version":3,"file":"FormFieldRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/FormFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AAa5D,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACxD,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,YAAoB,EACpB,QAAgB,EAChB,KAAK,EACL,SAAS,EACT,wBAAwB,EACxB,yBAAyB,GAC1B,EAAE,sBAAsB,2CAoGxB"}
@@ -11,6 +11,7 @@ export interface InitialsFieldRendererProps {
11
11
  hasSignature?: boolean;
12
12
  error?: string;
13
13
  className?: string;
14
+ readOnly?: boolean;
14
15
  }
15
- export declare function InitialsFieldRenderer({ field, value, onChange, onSignatureClick, error, className, }: InitialsFieldRendererProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function InitialsFieldRenderer({ field, value, onChange, onSignatureClick, error, className, readOnly, }: InitialsFieldRendererProps): import("react/jsx-runtime").JSX.Element;
16
17
  //# sourceMappingURL=InitialsFieldRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InitialsFieldRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/InitialsFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,SAAc,GACf,EAAE,0BAA0B,2CAgD5B"}
1
+ {"version":3,"file":"InitialsFieldRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/InitialsFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,SAAc,EACd,QAAgB,GACjB,EAAE,0BAA0B,2CAkD5B"}
@@ -5,6 +5,7 @@ export interface RadioGroupRendererProps {
5
5
  onChange: (value: string) => void;
6
6
  error?: string;
7
7
  className?: string;
8
+ readOnly?: boolean;
8
9
  }
9
- export declare function RadioGroupRenderer({ field, value, onChange, error, className, }: RadioGroupRendererProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function RadioGroupRenderer({ field, value, onChange, error, className, readOnly, }: RadioGroupRendererProps): import("react/jsx-runtime").JSX.Element;
10
11
  //# sourceMappingURL=RadioGroupRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroupRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/RadioGroupRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAc,GACf,EAAE,uBAAuB,2CAuDzB"}
1
+ {"version":3,"file":"RadioGroupRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/RadioGroupRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAc,EACd,QAAgB,GACjB,EAAE,uBAAuB,2CAkEzB"}
@@ -11,6 +11,7 @@ export interface SignatureFieldRendererProps {
11
11
  hasSignature: boolean;
12
12
  error?: string;
13
13
  className?: string;
14
+ readOnly?: boolean;
14
15
  }
15
- export declare function SignatureFieldRenderer({ field, onSignatureClick, hasSignature, error, className, }: SignatureFieldRendererProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function SignatureFieldRenderer({ field, onSignatureClick, hasSignature, error, className, readOnly, }: SignatureFieldRendererProps): import("react/jsx-runtime").JSX.Element;
16
17
  //# sourceMappingURL=SignatureFieldRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignatureFieldRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/SignatureFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7C,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,KAAK,EACL,SAAc,GACf,EAAE,2BAA2B,2CAkD7B"}
1
+ {"version":3,"file":"SignatureFieldRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/SignatureFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7C,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,KAAK,EACL,SAAc,EACd,QAAgB,GACjB,EAAE,2BAA2B,2CAqD7B"}
@@ -9,6 +9,7 @@ export interface TextFieldRendererProps {
9
9
  onChange: (value: string) => void;
10
10
  error?: string;
11
11
  className?: string;
12
+ readOnly?: boolean;
12
13
  }
13
- export declare function TextFieldRenderer({ field, value, onChange, error, className, }: TextFieldRendererProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function TextFieldRenderer({ field, value, onChange, error, className, readOnly, }: TextFieldRendererProps): import("react/jsx-runtime").JSX.Element;
14
15
  //# sourceMappingURL=TextFieldRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextFieldRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/TextFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAc,GACf,EAAE,sBAAsB,2CA+DxB"}
1
+ {"version":3,"file":"TextFieldRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-fields/TextFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAc,EACd,QAAgB,GACjB,EAAE,sBAAsB,2CAiExB"}