@signiphi/pdf-signer 0.1.1

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 (192) hide show
  1. package/INSTALLING_LOCALLY.md +184 -0
  2. package/LICENSE +2 -0
  3. package/README.md +1093 -0
  4. package/assets/viewer.html +314 -0
  5. package/dist/__tests__/helpers/fixtures.d.ts +43 -0
  6. package/dist/__tests__/helpers/fixtures.d.ts.map +1 -0
  7. package/dist/__tests__/helpers/mocks.d.ts +333 -0
  8. package/dist/__tests__/helpers/mocks.d.ts.map +1 -0
  9. package/dist/__tests__/setup.d.ts +6 -0
  10. package/dist/__tests__/setup.d.ts.map +1 -0
  11. package/dist/components/AttachmentUpload.d.ts +17 -0
  12. package/dist/components/AttachmentUpload.d.ts.map +1 -0
  13. package/dist/components/EditableFieldsPanel.d.ts +30 -0
  14. package/dist/components/EditableFieldsPanel.d.ts.map +1 -0
  15. package/dist/components/ErrorBoundary.d.ts +67 -0
  16. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  17. package/dist/components/FormFieldsView.d.ts +42 -0
  18. package/dist/components/FormFieldsView.d.ts.map +1 -0
  19. package/dist/components/PdfViewerStyled.d.ts +16 -0
  20. package/dist/components/PdfViewerStyled.d.ts.map +1 -0
  21. package/dist/components/PoweredBySigniphi.d.ts +11 -0
  22. package/dist/components/PoweredBySigniphi.d.ts.map +1 -0
  23. package/dist/components/SignatureCanvas.d.ts +12 -0
  24. package/dist/components/SignatureCanvas.d.ts.map +1 -0
  25. package/dist/components/SignatureInitialsBox.d.ts +23 -0
  26. package/dist/components/SignatureInitialsBox.d.ts.map +1 -0
  27. package/dist/components/SignatureModal.d.ts +22 -0
  28. package/dist/components/SignatureModal.d.ts.map +1 -0
  29. package/dist/components/SigningInstructions.d.ts +12 -0
  30. package/dist/components/SigningInstructions.d.ts.map +1 -0
  31. package/dist/components/SubmissionForm.d.ts +52 -0
  32. package/dist/components/SubmissionForm.d.ts.map +1 -0
  33. package/dist/components/ViewToggleToolbar.d.ts +30 -0
  34. package/dist/components/ViewToggleToolbar.d.ts.map +1 -0
  35. package/dist/components/form-fields/CheckboxRenderer.d.ts +10 -0
  36. package/dist/components/form-fields/CheckboxRenderer.d.ts.map +1 -0
  37. package/dist/components/form-fields/DateFieldRenderer.d.ts +14 -0
  38. package/dist/components/form-fields/DateFieldRenderer.d.ts.map +1 -0
  39. package/dist/components/form-fields/DropdownRenderer.d.ts +14 -0
  40. package/dist/components/form-fields/DropdownRenderer.d.ts.map +1 -0
  41. package/dist/components/form-fields/FormFieldRenderer.d.ts +20 -0
  42. package/dist/components/form-fields/FormFieldRenderer.d.ts.map +1 -0
  43. package/dist/components/form-fields/InitialsFieldRenderer.d.ts +14 -0
  44. package/dist/components/form-fields/InitialsFieldRenderer.d.ts.map +1 -0
  45. package/dist/components/form-fields/RadioGroupRenderer.d.ts +10 -0
  46. package/dist/components/form-fields/RadioGroupRenderer.d.ts.map +1 -0
  47. package/dist/components/form-fields/SignatureFieldRenderer.d.ts +16 -0
  48. package/dist/components/form-fields/SignatureFieldRenderer.d.ts.map +1 -0
  49. package/dist/components/form-fields/TextFieldRenderer.d.ts +14 -0
  50. package/dist/components/form-fields/TextFieldRenderer.d.ts.map +1 -0
  51. package/dist/components/form-fields/TextLabelRenderer.d.ts +14 -0
  52. package/dist/components/form-fields/TextLabelRenderer.d.ts.map +1 -0
  53. package/dist/components/form-fields/index.d.ts +14 -0
  54. package/dist/components/form-fields/index.d.ts.map +1 -0
  55. package/dist/components/index.d.ts +14 -0
  56. package/dist/components/index.d.ts.map +1 -0
  57. package/dist/components/index.js +6297 -0
  58. package/dist/components/index.js.map +1 -0
  59. package/dist/components/index.mjs +6248 -0
  60. package/dist/components/index.mjs.map +1 -0
  61. package/dist/core/PdfViewerCore.d.ts +19 -0
  62. package/dist/core/PdfViewerCore.d.ts.map +1 -0
  63. package/dist/core/SignatureCaptureCore.d.ts +37 -0
  64. package/dist/core/SignatureCaptureCore.d.ts.map +1 -0
  65. package/dist/core/index.d.ts +3 -0
  66. package/dist/core/index.d.ts.map +1 -0
  67. package/dist/core/index.js +907 -0
  68. package/dist/core/index.js.map +1 -0
  69. package/dist/core/index.mjs +884 -0
  70. package/dist/core/index.mjs.map +1 -0
  71. package/dist/hooks/index.d.ts +8 -0
  72. package/dist/hooks/index.d.ts.map +1 -0
  73. package/dist/hooks/index.js +2167 -0
  74. package/dist/hooks/index.js.map +1 -0
  75. package/dist/hooks/index.mjs +2139 -0
  76. package/dist/hooks/index.mjs.map +1 -0
  77. package/dist/hooks/useAttachments.d.ts +25 -0
  78. package/dist/hooks/useAttachments.d.ts.map +1 -0
  79. package/dist/hooks/useFieldFiltering.d.ts +29 -0
  80. package/dist/hooks/useFieldFiltering.d.ts.map +1 -0
  81. package/dist/hooks/useFormFields.d.ts +23 -0
  82. package/dist/hooks/useFormFields.d.ts.map +1 -0
  83. package/dist/hooks/useMultiSignerContext.d.ts +25 -0
  84. package/dist/hooks/useMultiSignerContext.d.ts.map +1 -0
  85. package/dist/hooks/usePdfViewer.d.ts +52 -0
  86. package/dist/hooks/usePdfViewer.d.ts.map +1 -0
  87. package/dist/hooks/useSignatureCapture.d.ts +17 -0
  88. package/dist/hooks/useSignatureCapture.d.ts.map +1 -0
  89. package/dist/hooks/useSignatures.d.ts +25 -0
  90. package/dist/hooks/useSignatures.d.ts.map +1 -0
  91. package/dist/index.css +4929 -0
  92. package/dist/index.css.map +1 -0
  93. package/dist/index.d.ts +17 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +7220 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/index.mjs +7093 -0
  98. package/dist/index.mjs.map +1 -0
  99. package/dist/integrations/index.d.ts +6 -0
  100. package/dist/integrations/index.d.ts.map +1 -0
  101. package/dist/integrations/index.js +242 -0
  102. package/dist/integrations/index.js.map +1 -0
  103. package/dist/integrations/index.mjs +218 -0
  104. package/dist/integrations/index.mjs.map +1 -0
  105. package/dist/integrations/next-config.d.ts +46 -0
  106. package/dist/integrations/next-config.d.ts.map +1 -0
  107. package/dist/integrations/vite-plugin.d.ts +48 -0
  108. package/dist/integrations/vite-plugin.d.ts.map +1 -0
  109. package/dist/lib/index.d.ts +3 -0
  110. package/dist/lib/index.d.ts.map +1 -0
  111. package/dist/lib/ui/alert.d.ts +9 -0
  112. package/dist/lib/ui/alert.d.ts.map +1 -0
  113. package/dist/lib/ui/button.d.ts +12 -0
  114. package/dist/lib/ui/button.d.ts.map +1 -0
  115. package/dist/lib/ui/calendar.d.ts +10 -0
  116. package/dist/lib/ui/calendar.d.ts.map +1 -0
  117. package/dist/lib/ui/card.d.ts +9 -0
  118. package/dist/lib/ui/card.d.ts.map +1 -0
  119. package/dist/lib/ui/checkbox.d.ts +5 -0
  120. package/dist/lib/ui/checkbox.d.ts.map +1 -0
  121. package/dist/lib/ui/dialog.d.ts +20 -0
  122. package/dist/lib/ui/dialog.d.ts.map +1 -0
  123. package/dist/lib/ui/index.d.ts +12 -0
  124. package/dist/lib/ui/index.d.ts.map +1 -0
  125. package/dist/lib/ui/input.d.ts +6 -0
  126. package/dist/lib/ui/input.d.ts.map +1 -0
  127. package/dist/lib/ui/label.d.ts +6 -0
  128. package/dist/lib/ui/label.d.ts.map +1 -0
  129. package/dist/lib/ui/popover.d.ts +7 -0
  130. package/dist/lib/ui/popover.d.ts.map +1 -0
  131. package/dist/lib/ui/radio-group.d.ts +6 -0
  132. package/dist/lib/ui/radio-group.d.ts.map +1 -0
  133. package/dist/lib/ui/select.d.ts +14 -0
  134. package/dist/lib/ui/select.d.ts.map +1 -0
  135. package/dist/lib/utils.d.ts +7 -0
  136. package/dist/lib/utils.d.ts.map +1 -0
  137. package/dist/styles/index.css +5004 -0
  138. package/dist/types/index.d.ts +265 -0
  139. package/dist/types/index.d.ts.map +1 -0
  140. package/dist/types/index.js +26 -0
  141. package/dist/types/index.js.map +1 -0
  142. package/dist/types/index.mjs +23 -0
  143. package/dist/types/index.mjs.map +1 -0
  144. package/dist/utils/attachment-validators.d.ts +118 -0
  145. package/dist/utils/attachment-validators.d.ts.map +1 -0
  146. package/dist/utils/audit-trail.d.ts +27 -0
  147. package/dist/utils/audit-trail.d.ts.map +1 -0
  148. package/dist/utils/date-validation.d.ts +30 -0
  149. package/dist/utils/date-validation.d.ts.map +1 -0
  150. package/dist/utils/errors.d.ts +106 -0
  151. package/dist/utils/errors.d.ts.map +1 -0
  152. package/dist/utils/field-extraction.d.ts +27 -0
  153. package/dist/utils/field-extraction.d.ts.map +1 -0
  154. package/dist/utils/field-visibility.d.ts +104 -0
  155. package/dist/utils/field-visibility.d.ts.map +1 -0
  156. package/dist/utils/index.d.ts +17 -0
  157. package/dist/utils/index.d.ts.map +1 -0
  158. package/dist/utils/index.js +2501 -0
  159. package/dist/utils/index.js.map +1 -0
  160. package/dist/utils/index.mjs +2404 -0
  161. package/dist/utils/index.mjs.map +1 -0
  162. package/dist/utils/logger.d.ts +16 -0
  163. package/dist/utils/logger.d.ts.map +1 -0
  164. package/dist/utils/pdf-field-type-helpers.d.ts +78 -0
  165. package/dist/utils/pdf-field-type-helpers.d.ts.map +1 -0
  166. package/dist/utils/pdf-helpers.d.ts +38 -0
  167. package/dist/utils/pdf-helpers.d.ts.map +1 -0
  168. package/dist/utils/pdf-lib-loader.d.ts +45 -0
  169. package/dist/utils/pdf-lib-loader.d.ts.map +1 -0
  170. package/dist/utils/pdf-manipulation.d.ts +93 -0
  171. package/dist/utils/pdf-manipulation.d.ts.map +1 -0
  172. package/dist/utils/pdf-validators.d.ts +149 -0
  173. package/dist/utils/pdf-validators.d.ts.map +1 -0
  174. package/dist/utils/pdf-viewer-filter.d.ts +35 -0
  175. package/dist/utils/pdf-viewer-filter.d.ts.map +1 -0
  176. package/dist/utils/pdf-widget-helpers.d.ts +98 -0
  177. package/dist/utils/pdf-widget-helpers.d.ts.map +1 -0
  178. package/dist/utils/pdfjs-config.d.ts +56 -0
  179. package/dist/utils/pdfjs-config.d.ts.map +1 -0
  180. package/dist/utils/pdfjs-version-check.d.ts +28 -0
  181. package/dist/utils/pdfjs-version-check.d.ts.map +1 -0
  182. package/dist/utils/performance-monitor.d.ts +172 -0
  183. package/dist/utils/performance-monitor.d.ts.map +1 -0
  184. package/dist/utils/tracking.d.ts +89 -0
  185. package/dist/utils/tracking.d.ts.map +1 -0
  186. package/package.json +180 -0
  187. package/scripts/analyze-bundle.js +271 -0
  188. package/scripts/copy-utils.js +227 -0
  189. package/scripts/copy-utils.test.js +164 -0
  190. package/scripts/postinstall.js +109 -0
  191. package/scripts/setup.js +108 -0
  192. package/src/styles/index.css +139 -0
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Hook for managing file attachments
3
+ * Handles file uploads, validation, and state management
4
+ */
5
+ import type { Attachment, AttachmentConstraints, AttachmentValidationResult } from '../types';
6
+ export interface UseAttachmentsOptions {
7
+ constraints?: Partial<AttachmentConstraints>;
8
+ onError?: (errors: string[]) => void;
9
+ }
10
+ export declare function useAttachments(options?: UseAttachmentsOptions): {
11
+ attachments: Attachment[];
12
+ isUploading: boolean;
13
+ validationErrors: string[];
14
+ constraints: AttachmentConstraints;
15
+ addFiles: (files: File[] | FileList) => Promise<{
16
+ added: number;
17
+ errors: string[];
18
+ }>;
19
+ removeAttachment: (attachmentId: string) => void;
20
+ clearAttachments: () => void;
21
+ getTotalSize: () => number;
22
+ formatSize: (bytes: number) => string;
23
+ validateAll: () => AttachmentValidationResult;
24
+ };
25
+ //# sourceMappingURL=useAttachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAttachments.d.ts","sourceRoot":"","sources":["../../src/hooks/useAttachments.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AA0BlB,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACtC;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B;;;;;sBAchD,IAAI,EAAE,GAAG,QAAQ;;;;qCAwEmB,MAAM;;;wBAuBnB,MAAM,KAAG,MAAM;uBAOlB,0BAA0B;EAsC/D"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Hook for filtering form fields by signer with multi-signer support
3
+ * Implements Dockmaster's exact field visibility logic
4
+ */
5
+ import type { EsignFormField, MultiSignerContext } from '../types';
6
+ /**
7
+ * Hook for filtering form fields based on multi-signer context
8
+ *
9
+ * @param allFields - All form fields extracted from the PDF
10
+ * @param multiSignerContext - Multi-signer context (from useMultiSignerContext)
11
+ * @returns Filtered fields and utility functions
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * const context = useMultiSignerContext(currentSigner, isMultipleSignature, totalSigners);
16
+ * const { filteredFields } = useFieldFiltering(allFields, context);
17
+ * ```
18
+ */
19
+ export declare function useFieldFiltering(allFields: EsignFormField[], multiSignerContext: MultiSignerContext): {
20
+ filteredFields: import("..").FormField[];
21
+ requiredFields: import("..").FormField[];
22
+ optionalFields: import("..").FormField[];
23
+ isFieldVisible: (field: EsignFormField) => boolean;
24
+ totalFields: number;
25
+ filteredCount: number;
26
+ requiredCount: number;
27
+ optionalCount: number;
28
+ };
29
+ //# sourceMappingURL=useFieldFiltering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFieldFiltering.d.ts","sourceRoot":"","sources":["../../src/hooks/useFieldFiltering.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnE;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,cAAc,EAAE,EAC3B,kBAAkB,EAAE,kBAAkB;;;;4BA4CP,cAAc,KAAG,OAAO;;;;;EAmBxD"}
@@ -0,0 +1,23 @@
1
+ import type { FormField, ValidationError } from '../types';
2
+ /**
3
+ * Hook to manage form field state and validation
4
+ */
5
+ export declare function useFormFields(fields?: FormField[]): {
6
+ fieldValues: Record<string, string>;
7
+ errors: ValidationError[];
8
+ hasErrors: boolean;
9
+ touched: Record<string, boolean>;
10
+ updateField: (fieldId: string, value: string) => void;
11
+ updateMultipleFields: (values: Record<string, string>) => void;
12
+ validateField: (fieldId: string) => boolean;
13
+ validateFields: (signatures?: Record<string, string>) => boolean;
14
+ resetFields: () => void;
15
+ resetValidation: () => void;
16
+ getFieldValue: (fieldId: string) => string;
17
+ getFieldError: (fieldId: string) => string | undefined;
18
+ isFieldTouched: (fieldId: string) => boolean;
19
+ setFieldValue: (fieldId: string, value: string) => void;
20
+ setMultipleFieldValues: (values: Record<string, string>) => void;
21
+ clearFields: () => void;
22
+ };
23
+ //# sourceMappingURL=useFormFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormFields.d.ts","sourceRoot":"","sources":["../../src/hooks/useFormFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAiB,MAAM,UAAU,CAAC;AAG1E;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,SAAS,EAAO;;;;;2BAKV,MAAM,SAAS,MAAM;mCAcb,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;6BAoB5D,MAAM;kCAyCF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;6BA+D1B,MAAM;6BAON,MAAM;8BAQN,MAAM;6BAzJwB,MAAM,SAAS,MAAM;qCAcb,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;EA0KzE"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Hook for managing multi-signer context and determining signer roles
3
+ */
4
+ import type { Signer, MultiSignerContext } from '../types';
5
+ /**
6
+ * Calculate multi-signer context from simplified props
7
+ *
8
+ * @param currentSigner - The signer who is currently viewing/signing (if multi-signer)
9
+ * @param isMultipleSignature - Whether this is a multi-signer document
10
+ * @param totalSigners - Total number of signers (for determining if current is final)
11
+ * @returns MultiSignerContext with calculated roles and flags
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * const context = useMultiSignerContext(
16
+ * { id: '1', email: 'user@example.com', name: 'John', signOrder: 1, status: 'pending' },
17
+ * true,
18
+ * 3
19
+ * );
20
+ * // context.isPrimarySigner === true (signOrder === 1)
21
+ * // context.isFinalSigner === false (signOrder !== totalSigners)
22
+ * ```
23
+ */
24
+ export declare function useMultiSignerContext(currentSigner?: Signer, isMultipleSignature?: boolean, totalSigners?: number): MultiSignerContext;
25
+ //# sourceMappingURL=useMultiSignerContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMultiSignerContext.d.ts","sourceRoot":"","sources":["../../src/hooks/useMultiSignerContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,CAAC,EAAE,MAAM,EACtB,mBAAmB,CAAC,EAAE,OAAO,EAC7B,YAAY,CAAC,EAAE,MAAM,GACpB,kBAAkB,CA+BpB"}
@@ -0,0 +1,52 @@
1
+ import type { PdfViewerRef, EsignFormField, MultiSignerContext } from '../types';
2
+ /**
3
+ * Hook to manage PDF viewer state and operations with multi-signer support
4
+ *
5
+ * @param multiSignerContext - Multi-signer context (from useMultiSignerContext)
6
+ */
7
+ export declare function usePdfViewer(multiSignerContext?: MultiSignerContext): {
8
+ viewerRef: import("react").RefObject<PdfViewerRef>;
9
+ isLoading: boolean;
10
+ error: string | null;
11
+ isLoaded: boolean;
12
+ pdfUrl: string | null;
13
+ pdfBytes: Uint8Array<ArrayBufferLike> | null;
14
+ extractedFields: import("..").FormField[];
15
+ loadPdf: (url: string) => Promise<void>;
16
+ handleLoad: () => void;
17
+ handleError: (errorMessage: string) => void;
18
+ getFormFieldValues: () => Promise<Record<string, string>>;
19
+ setFormFieldValues: (values: Record<string, string>) => Promise<void>;
20
+ getAllFieldNames: () => Promise<string[]>;
21
+ saveDocument: () => Promise<Uint8Array<ArrayBufferLike> | null>;
22
+ extractFormFields: (currentSignerEmail?: string) => Promise<import("..").FormField[]>;
23
+ fillPdf: (fieldValues: Record<string, string>, signatures: Record<string, string>, currentSignerEmail?: string, metadata?: {
24
+ submissionId?: string;
25
+ documentId?: string;
26
+ author?: string;
27
+ signerEmail?: string;
28
+ signerInitials?: string;
29
+ createdAt?: Date;
30
+ }, auditTrail?: {
31
+ userAgent?: string;
32
+ screenResolution?: string;
33
+ timezone?: string;
34
+ language?: string;
35
+ platform?: string;
36
+ ipAddress?: string;
37
+ geolocation?: {
38
+ latitude: number;
39
+ longitude: number;
40
+ accuracy?: number;
41
+ };
42
+ }) => Promise<Uint8Array>;
43
+ validatePdf: (fieldValues: Record<string, string>, signatures: Record<string, string>, visibleFields?: EsignFormField[]) => Promise<{
44
+ isValid: boolean;
45
+ errors: string[];
46
+ }>;
47
+ getRequiredFieldsMap: () => Promise<Record<string, boolean>>;
48
+ getCurrentPdfBytes: () => Uint8Array<ArrayBufferLike> | null;
49
+ reloadPdfWithBytes: (newPdfBytes: Uint8Array) => Promise<void>;
50
+ reset: () => void;
51
+ };
52
+ //# sourceMappingURL=usePdfViewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePdfViewer.d.ts","sourceRoot":"","sources":["../../src/hooks/usePdfViewer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAkBjF;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,kBAAkB,CAAC,EAAE,kBAAkB;;;;;;;;mBAeC,MAAM;;gCAyCC,MAAM;;iCAaC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;6CA0B9C,MAAM;2BA6EnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,uBACb,MAAM,aAChB;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,eAC9H;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KACpN,OAAO,CAAC,UAAU,CAAC;+BA4CP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,kBAClB,cAAc,EAAE,KAC/B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;gCA+BD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;sCAoC7D,UAAU;;EA6DjC"}
@@ -0,0 +1,17 @@
1
+ import type { SignatureCanvasRef } from '../types';
2
+ /**
3
+ * Hook to manage signature capture state and operations
4
+ */
5
+ export declare function useSignatureCapture(): {
6
+ canvasRef: import("react").RefObject<SignatureCanvasRef>;
7
+ signatureDataUrl: string | null;
8
+ uploadedImage: string | null;
9
+ uploadError: string | null;
10
+ clear: () => void;
11
+ saveSignature: () => string | null;
12
+ isEmpty: () => boolean;
13
+ handleFileUpload: (file: File) => void;
14
+ clearUpload: () => void;
15
+ reset: () => void;
16
+ };
17
+ //# sourceMappingURL=useSignatureCapture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSignatureCapture.d.ts","sourceRoot":"","sources":["../../src/hooks/useSignatureCapture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;GAEG;AACH,wBAAgB,mBAAmB;;;;;;;;6BAwBW,IAAI;;;EAsDjD"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Hook to manage signature and initials state
3
+ */
4
+ import type { FormField } from '../types';
5
+ export interface SignatureData {
6
+ [fieldId: string]: string;
7
+ }
8
+ /**
9
+ * Hook for managing signatures and initials
10
+ */
11
+ export declare function useSignatures(): {
12
+ signatures: SignatureData;
13
+ setSignature: (fieldId: string, dataUrl: string) => void;
14
+ clearSignature: (fieldId: string) => void;
15
+ clearAllSignatures: () => void;
16
+ hasSignature: (fieldId: string) => boolean;
17
+ getSignature: (fieldId: string) => string | null;
18
+ validateSignatures: (fields: FormField[], currentSignatures?: SignatureData) => {
19
+ isValid: boolean;
20
+ errors: string[];
21
+ };
22
+ signatureCount: number;
23
+ hasAnySignatures: boolean;
24
+ };
25
+ //# sourceMappingURL=useSignatures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSignatures.d.ts","sourceRoot":"","sources":["../../src/hooks/useSignatures.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,UAAU,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,aAAa;;4BAMgB,MAAM,WAAW,MAAM;8BAUrB,MAAM;;4BAmBvC,MAAM;4BAUN,MAAM;iCAUP,SAAS,EAAE,sBAAsB,aAAa;;;;;;EAyC1D"}