@unlev/exeq 0.1.7 → 0.1.9
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.
- package/README.md +2 -1
- package/dist/index.css +79 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +66 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +66 -26
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -71,7 +71,8 @@ function Signer() {
|
|
|
71
71
|
| `initialValues` | `Record<string, string>` | No | Pre-fill fields by label (case-insensitive) or ID |
|
|
72
72
|
| `callbackUrl` | `string` | No | URL to POST the signed PDF to |
|
|
73
73
|
| `onComplete` | `(blob: Blob) => void` | No | Callback with the signed PDF Blob |
|
|
74
|
-
| `submitLabel` | `string` | No | Label for the submit button (default: `"Complete"`) |
|
|
74
|
+
| `submitLabel` | `string` | No | Label for the final submit button (default: `"Complete"`) |
|
|
75
|
+
| `signerOrder` | `string[]` | No | Signing order for multi-party docs. Signers complete sequentially. Defaults to non-Sender roles first, then Sender. |
|
|
75
76
|
|
|
76
77
|
### Utilities
|
|
77
78
|
|
package/dist/index.css
CHANGED
|
@@ -844,6 +844,7 @@
|
|
|
844
844
|
color: #aaa;
|
|
845
845
|
border-top: 1px solid #eee;
|
|
846
846
|
background: #fff;
|
|
847
|
+
margin-top: auto;
|
|
847
848
|
}
|
|
848
849
|
.powered-by a {
|
|
849
850
|
color: #888;
|
|
@@ -852,4 +853,82 @@
|
|
|
852
853
|
.powered-by a:hover {
|
|
853
854
|
text-decoration: underline;
|
|
854
855
|
}
|
|
856
|
+
.signer-progress-bar {
|
|
857
|
+
display: flex;
|
|
858
|
+
align-items: center;
|
|
859
|
+
justify-content: center;
|
|
860
|
+
gap: 0.25rem;
|
|
861
|
+
padding: 0.75rem 1rem;
|
|
862
|
+
border-bottom: 1px solid #e5e5e5;
|
|
863
|
+
background: #fafafa;
|
|
864
|
+
}
|
|
865
|
+
.signer-progress-step {
|
|
866
|
+
display: flex;
|
|
867
|
+
align-items: center;
|
|
868
|
+
gap: 0.35rem;
|
|
869
|
+
font-size: 0.8rem;
|
|
870
|
+
color: #bbb;
|
|
871
|
+
}
|
|
872
|
+
.signer-progress-step:not(:last-child)::after {
|
|
873
|
+
content: "\2192";
|
|
874
|
+
margin-left: 0.25rem;
|
|
875
|
+
color: #ddd;
|
|
876
|
+
}
|
|
877
|
+
.signer-progress-step.active {
|
|
878
|
+
color: #111;
|
|
879
|
+
font-weight: 600;
|
|
880
|
+
}
|
|
881
|
+
.signer-progress-step.completed {
|
|
882
|
+
color: #22c55e;
|
|
883
|
+
}
|
|
884
|
+
.signer-progress-dot {
|
|
885
|
+
width: 22px;
|
|
886
|
+
height: 22px;
|
|
887
|
+
border-radius: 50%;
|
|
888
|
+
display: flex;
|
|
889
|
+
align-items: center;
|
|
890
|
+
justify-content: center;
|
|
891
|
+
font-size: 0.7rem;
|
|
892
|
+
font-weight: 600;
|
|
893
|
+
border: 2px solid #ddd;
|
|
894
|
+
color: #bbb;
|
|
895
|
+
flex-shrink: 0;
|
|
896
|
+
}
|
|
897
|
+
.signer-progress-step.active .signer-progress-dot {
|
|
898
|
+
border-color: #111;
|
|
899
|
+
background: #111;
|
|
900
|
+
color: #fff;
|
|
901
|
+
}
|
|
902
|
+
.signer-progress-step.completed .signer-progress-dot {
|
|
903
|
+
border-color: #22c55e;
|
|
904
|
+
background: #22c55e;
|
|
905
|
+
color: #fff;
|
|
906
|
+
}
|
|
907
|
+
.signer-progress-label {
|
|
908
|
+
white-space: nowrap;
|
|
909
|
+
}
|
|
910
|
+
.signer-role-indicator {
|
|
911
|
+
padding: 0.75rem;
|
|
912
|
+
border-bottom: 1px solid #e5e5e5;
|
|
913
|
+
font-size: 0.95rem;
|
|
914
|
+
color: #333;
|
|
915
|
+
display: flex;
|
|
916
|
+
flex-direction: column;
|
|
917
|
+
gap: 0.15rem;
|
|
918
|
+
}
|
|
919
|
+
.signer-role-indicator-label {
|
|
920
|
+
font-size: 0.7rem;
|
|
921
|
+
text-transform: uppercase;
|
|
922
|
+
letter-spacing: 0.05em;
|
|
923
|
+
color: #999;
|
|
924
|
+
font-weight: 500;
|
|
925
|
+
}
|
|
926
|
+
.field-overlay.inactive-signer {
|
|
927
|
+
opacity: 0.5;
|
|
928
|
+
}
|
|
929
|
+
.field-overlay.inactive-signer .field-overlay-placeholder,
|
|
930
|
+
.field-overlay.inactive-signer .field-overlay-value,
|
|
931
|
+
.field-overlay.inactive-signer .field-checkbox-display {
|
|
932
|
+
color: #bbb;
|
|
933
|
+
}
|
|
855
934
|
/*# sourceMappingURL=index.css.map */
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/styles/pdf-builder.css"],"sourcesContent":["/* ── Layout ────────────────────────────────── */\n\n.designer-layout,\n.signer-layout {\n display: flex;\n flex-direction: column;\n height: 100vh;\n font-family: system-ui, -apple-system, sans-serif;\n color: #222;\n background: #fafafa;\n}\n\n/* ── Designer Header ─────────────────────── */\n\n.designer-header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 0 1rem;\n height: 48px;\n border-bottom: 1px solid #e5e5e5;\n background: #fff;\n gap: 0.5rem;\n flex-shrink: 0;\n}\n\n.designer-header-right {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.header-btn {\n padding: 0.4rem 1rem;\n border: 1px solid transparent;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n font-weight: 500;\n white-space: nowrap;\n line-height: 1.4;\n box-sizing: border-box;\n}\n\n.header-btn-primary {\n background: #111;\n color: #fff;\n border-color: #111;\n}\n.header-btn-primary:hover { background: #333; border-color: #333; }\n\n.header-btn-outline {\n background: #fff;\n color: #555;\n border-color: #ccc;\n}\n.header-btn-outline:hover { background: #f5f5f5; border-color: #999; }\n\n/* ── Designer Body (3-column) ────────────── */\n\n.designer-body {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n/* ── Left Palette ────────────────────────── */\n\n.designer-palette {\n width: 140px;\n flex-shrink: 0;\n border-right: 1px solid #e5e5e5;\n background: #fff;\n padding: 0.75rem 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n overflow-y: auto;\n}\n\n.palette-heading {\n font-size: 0.7rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: #999;\n padding: 0 0.75rem 0.5rem;\n}\n\n.palette-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n cursor: grab;\n font-size: 0.85rem;\n color: #555;\n border-left: 3px solid transparent;\n transition: all 0.1s;\n user-select: none;\n}\n\n.palette-item:hover {\n background: #f5f5f5;\n color: #222;\n}\n\n.palette-item.active {\n background: #f0f0f0;\n color: #111;\n border-left-color: #111;\n font-weight: 500;\n}\n\n.palette-item:active {\n cursor: grabbing;\n}\n\n.palette-item-icon {\n width: 22px;\n text-align: center;\n font-size: 0.9rem;\n flex-shrink: 0;\n}\n\n.palette-item-label {\n flex: 1;\n}\n\n.palette-divider {\n height: 1px;\n background: #e5e5e5;\n margin: 0.5rem 0.75rem;\n}\n\n.palette-role-section {\n padding: 0 0.75rem;\n display: flex;\n flex-direction: column;\n gap: 0.35rem;\n}\n\n.palette-role-select {\n width: 100%;\n padding: 0.3rem 0.4rem;\n border: 1.5px solid #ddd;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n background: #fff;\n cursor: pointer;\n}\n\n.palette-role-add-link {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 0.75rem;\n color: #888;\n padding: 0;\n text-align: left;\n}\n.palette-role-add-link:hover { color: #555; }\n\n.palette-role-add-inline {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n}\n\n.palette-role-add-inline input {\n width: 100%;\n padding: 0.25rem 0.4rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 0.75rem;\n}\n\n.palette-role-add-inline button {\n padding: 0.2rem 0.4rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: #fff;\n cursor: pointer;\n font-size: 0.75rem;\n}\n\n/* ── Signer toolbar (kept for backward compat) ── */\n\n.designer-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.5rem 1rem;\n border-bottom: 1px solid #e5e5e5;\n background: #fff;\n gap: 1rem;\n flex-wrap: wrap;\n}\n\n.toolbar-left,\n.toolbar-right {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.signer-content {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n.designer-pdf-area,\n.signer-pdf-area {\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n background: #eee;\n}\n\n.designer-panel,\n.signer-panel {\n width: 320px;\n overflow-y: auto;\n border-left: 1px solid #e5e5e5;\n background: #fff;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n}\n\n/* ── Panel Resize Handle ─────────────────── */\n\n.panel-resize-handle {\n width: 5px;\n cursor: col-resize;\n background: transparent;\n flex-shrink: 0;\n position: relative;\n z-index: 20;\n margin-right: -5px;\n transition: background 0.15s;\n}\n\n.panel-resize-handle:hover,\n.panel-resize-handle:active {\n background: #d0d0d0;\n}\n\n/* ── Ink Color Picker ────────────────────── */\n\n.ink-color-picker {\n display: flex;\n gap: 0.4rem;\n align-items: center;\n}\n\n.ink-color-swatch {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 2px solid transparent;\n cursor: pointer;\n padding: 0;\n transition: border-color 0.1s;\n}\n\n.ink-color-swatch.active {\n border-color: #111;\n box-shadow: 0 0 0 2px #fff, 0 0 0 3px #111;\n}\n\n.ink-color-swatch:hover:not(.active) {\n border-color: #999;\n}\n\n/* ── Panel Role Selector ─────────────────── */\n\n.panel-role-section {\n padding: 0.75rem 1rem;\n border-bottom: 1px solid #eee;\n}\n\n.panel-role-label {\n display: block;\n font-size: 0.7rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: #999;\n margin-bottom: 0.35rem;\n}\n\n.panel-role-row {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n flex-wrap: wrap;\n}\n\n.panel-role-select {\n padding: 0.3rem 0.5rem;\n border: 1.5px solid #ddd;\n border-radius: 4px;\n font-size: 0.85rem;\n font-weight: 500;\n background: #fff;\n cursor: pointer;\n min-width: 100px;\n}\n\n.panel-role-add-link {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 0.8rem;\n color: #888;\n padding: 0;\n white-space: nowrap;\n}\n.panel-role-add-link:hover { color: #555; }\n\n.panel-role-add-inline {\n display: flex;\n gap: 0.25rem;\n align-items: center;\n flex: 1;\n}\n\n.panel-role-add-inline input {\n padding: 0.25rem 0.4rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 0.8rem;\n width: 90px;\n}\n\n.panel-role-add-inline button {\n padding: 0.25rem 0.5rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: #fff;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n/* ── Panel Tabs ──────────────────────────── */\n\n.panel-tabs {\n display: flex;\n border-bottom: 1px solid #e5e5e5;\n flex-shrink: 0;\n}\n\n.panel-tab {\n flex: 1;\n padding: 0.55rem 0;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 0.8rem;\n color: #888;\n font-weight: 500;\n text-align: center;\n transition: all 0.1s;\n}\n\n.panel-tab.active {\n color: #111;\n border-bottom-color: #111;\n}\n\n.panel-tab:hover:not(.active) {\n color: #555;\n}\n\n.panel-tab-content {\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n/* ── PDF Viewer ───────────────────────────── */\n\n.pdf-viewer {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n align-items: center;\n}\n\n.pdf-page {\n position: relative;\n width: 100%;\n max-width: 800px;\n background: #fff;\n box-shadow: 0 1px 4px rgba(0,0,0,0.1);\n cursor: crosshair;\n}\n\n.pdf-page-image {\n width: 100%;\n height: 100%;\n display: block;\n pointer-events: none;\n}\n\n/* ── Field Overlays ───────────────────────── */\n\n.field-overlay {\n position: absolute;\n border: 1.5px solid;\n border-radius: 2px;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n transition: box-shadow 0.1s;\n}\n\n.field-overlay.selected {\n box-shadow: 0 0 0 2px rgba(0,0,0,0.2);\n z-index: 10;\n}\n\n.field-overlay.editable {\n cursor: text;\n}\n\n.field-overlay-label {\n position: absolute;\n top: -18px;\n left: -1px;\n font-size: 10px;\n color: #fff;\n padding: 1px 6px;\n border-radius: 2px 2px 0 0;\n white-space: nowrap;\n pointer-events: none;\n}\n\n.field-overlay-placeholder {\n color: #999;\n font-size: 11px;\n padding: 2px 4px;\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.field-overlay-placeholder.readonly {\n color: #666;\n}\n\n.field-overlay-value {\n font-size: 11px;\n padding: 2px 4px;\n width: 100%;\n}\n\n.field-inline-input {\n width: 100%;\n height: 100%;\n border: none;\n background: transparent;\n padding: 2px 4px;\n outline: none;\n font-family: inherit;\n}\n\n.field-signature-preview {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.field-signature-filled {\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n\n.field-checkbox-display {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n font-weight: bold;\n}\n\n.field-checkbox-display.editable {\n cursor: pointer;\n}\n\n.field-resize-handle {\n position: absolute;\n bottom: 0;\n right: 0;\n width: 10px;\n height: 10px;\n background: #fff;\n border: 1px solid #999;\n cursor: nwse-resize;\n}\n\n/* ── Buttons ──────────────────────────────── */\n\n.upload-btn {\n display: inline-block;\n padding: 0.4rem 1rem;\n background: #111;\n color: #fff;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n font-weight: 500;\n}\n\n.upload-btn:hover { background: #333; }\n\n.upload-btn-small { font-size: 0.8rem; padding: 0.3rem 0.75rem; background: #555; }\n.upload-btn-large { font-size: 1rem; padding: 0.6rem 1.5rem; }\n\n.export-btn {\n padding: 0.4rem 1rem;\n background: #111;\n color: #fff;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n font-weight: 500;\n}\n\n.export-btn:hover { background: #333; }\n\n.field-type-selector {\n display: flex;\n gap: 2px;\n}\n\n.field-type-btn {\n padding: 0.3rem 0.6rem;\n background: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n color: #555;\n}\n\n.field-type-btn.active {\n background: #111;\n color: #fff;\n border-color: #111;\n}\n\n.field-type-btn:hover:not(.active) {\n background: #f5f5f5;\n}\n\n/* ── Signer Roles (legacy chip style) ─────── */\n\n.signer-role-selector {\n padding: 0.5rem 1rem;\n border-bottom: 1px solid #e5e5e5;\n background: #fff;\n}\n\n.signer-role-label {\n font-size: 0.75rem;\n color: #888;\n margin-bottom: 0.35rem;\n}\n\n.signer-role-list {\n display: flex;\n gap: 0.35rem;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.signer-role-chip {\n padding: 0.2rem 0.6rem;\n border: 1.5px solid;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n font-weight: 500;\n background: transparent;\n transition: all 0.1s;\n}\n\n.signer-role-remove {\n margin-left: 0.3rem;\n cursor: pointer;\n font-size: 1rem;\n}\n\n.signer-role-add-btn {\n padding: 0.2rem 0.5rem;\n border: 1px dashed #ccc;\n border-radius: 4px;\n background: none;\n cursor: pointer;\n font-size: 0.8rem;\n color: #888;\n}\n\n.signer-role-add-input {\n display: flex;\n gap: 0.25rem;\n align-items: center;\n}\n\n.signer-role-add-input input {\n padding: 0.2rem 0.4rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 0.8rem;\n width: 120px;\n}\n\n.signer-role-add-input button {\n padding: 0.2rem 0.5rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: #fff;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n/* ── Property Panel ───────────────────────── */\n\n.field-property-panel {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.panel-header h3 {\n margin: 0;\n font-size: 1rem;\n}\n\n.panel-delete-btn {\n padding: 0.2rem 0.5rem;\n background: none;\n border: 1px solid #e44;\n color: #e44;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n.panel-delete-btn:hover {\n background: #e44;\n color: #fff;\n}\n\n.panel-field label {\n display: block;\n font-size: 0.75rem;\n color: #888;\n margin-bottom: 0.2rem;\n}\n\n.panel-field input[type=\"text\"],\n.panel-field input[type=\"number\"],\n.panel-field input[type=\"email\"],\n.panel-field input[type=\"tel\"],\n.panel-field input[type=\"date\"],\n.panel-field select {\n width: 100%;\n padding: 0.35rem 0.5rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.85rem;\n background: #fff;\n}\n\n.panel-field-group {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 0.5rem;\n}\n\n.panel-checkbox-label {\n display: flex;\n align-items: center;\n gap: 0.4rem;\n font-size: 0.85rem;\n cursor: pointer;\n}\n\n.panel-empty {\n color: #888;\n font-size: 0.85rem;\n padding: 2rem 0.5rem;\n text-align: center;\n}\n\n/* ── Pre-fill ─────────────────────────────── */\n\n.prefill-section {\n border-top: 1px solid #eee;\n padding-top: 0.75rem;\n}\n\n.prefill-section h4 {\n margin: 0 0 0.5rem;\n font-size: 0.85rem;\n color: #555;\n}\n\n.prefill-input {\n width: 100%;\n padding: 0.35rem 0.5rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.85rem;\n}\n\n/* ── Field List ───────────────────────────── */\n\n.field-list {\n display: flex;\n flex-direction: column;\n}\n\n.field-list h4 {\n margin: 0 0 0.5rem;\n font-size: 0.85rem;\n color: #555;\n}\n\n.field-list-item {\n display: flex;\n align-items: center;\n gap: 0.4rem;\n padding: 0.35rem 0.5rem;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n.field-list-item:hover { background: #f5f5f5; }\n.field-list-item.active { background: #eee; }\n\n.field-list-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.field-list-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.field-list-page {\n color: #aaa;\n font-size: 0.75rem;\n}\n\n.field-list-required {\n color: #e44;\n font-weight: bold;\n}\n\n/* ── Signer Panel ─────────────────────────── */\n\n.signer-field-input h3 {\n margin: 0 0 0.5rem;\n font-size: 1rem;\n}\n\n.required-badge {\n display: inline-block;\n font-size: 0.7rem;\n background: #fee;\n color: #c33;\n padding: 1px 6px;\n border-radius: 3px;\n margin-bottom: 0.5rem;\n}\n\n.signer-text-input {\n width: 100%;\n padding: 0.4rem 0.5rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.9rem;\n}\n\n.signer-checkbox-label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.9rem;\n cursor: pointer;\n}\n\n.signer-date-display {\n font-size: 0.9rem;\n color: #555;\n padding: 0.4rem 0;\n}\n\n.signer-field-readonly {\n color: #888;\n font-size: 0.85rem;\n}\n\n.signer-field-readonly h3 {\n margin: 0 0 0.25rem;\n font-size: 1rem;\n color: #555;\n}\n\n/* ── Signature Canvas ─────────────────────── */\n\n.signature-canvas-wrapper {\n display: flex;\n flex-direction: column;\n gap: 0.35rem;\n}\n\n.signature-canvas {\n border: 1px solid #ddd;\n border-radius: 4px;\n background: #fff;\n cursor: crosshair;\n width: 100%;\n height: auto;\n display: block;\n box-sizing: border-box;\n}\n\n.signature-canvas-actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.signature-clear-btn {\n padding: 0.2rem 0.5rem;\n background: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n color: #888;\n}\n\n.signature-hint {\n font-size: 0.75rem;\n color: #aaa;\n}\n\n/* ── Field Navigator ──────────────────────── */\n\n.field-navigator {\n margin-top: auto;\n border-top: 1px solid #eee;\n padding-top: 0.75rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.field-navigator-progress {\n font-size: 0.8rem;\n color: #888;\n text-align: center;\n}\n\n.field-navigator-controls {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n}\n\n.nav-btn {\n padding: 0.35rem 1rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n background: #fff;\n cursor: pointer;\n font-size: 0.85rem;\n}\n\n.nav-btn:hover:not(:disabled) { background: #f5f5f5; }\n.nav-btn:disabled { opacity: 0.4; cursor: default; }\n\n.field-navigator-position {\n font-size: 0.85rem;\n color: #888;\n min-width: 50px;\n text-align: center;\n}\n\n.submit-btn {\n padding: 0.5rem;\n background: #111;\n color: #fff;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9rem;\n font-weight: 500;\n}\n\n.submit-btn:hover:not(:disabled) { background: #333; }\n.submit-btn:disabled { opacity: 0.4; cursor: default; }\n\n/* ── States ───────────────────────────────── */\n\n.loading-indicator {\n text-align: center;\n padding: 2rem;\n color: #888;\n font-size: 0.9rem;\n}\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n gap: 0.75rem;\n color: #888;\n}\n\n.empty-state h2 {\n margin: 0;\n font-size: 1.25rem;\n color: #555;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 0.9rem;\n}\n\n/* ── Powered By ───────────────────────────── */\n\n.powered-by {\n text-align: center;\n padding: 0.4rem;\n font-size: 0.7rem;\n color: #aaa;\n border-top: 1px solid #eee;\n background: #fff;\n}\n\n.powered-by a {\n color: #888;\n text-decoration: none;\n}\n\n.powered-by a:hover {\n text-decoration: underline;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/styles/pdf-builder.css"],"sourcesContent":["/* ── Layout ────────────────────────────────── */\n\n.designer-layout,\n.signer-layout {\n display: flex;\n flex-direction: column;\n height: 100vh;\n font-family: system-ui, -apple-system, sans-serif;\n color: #222;\n background: #fafafa;\n}\n\n/* ── Designer Header ─────────────────────── */\n\n.designer-header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 0 1rem;\n height: 48px;\n border-bottom: 1px solid #e5e5e5;\n background: #fff;\n gap: 0.5rem;\n flex-shrink: 0;\n}\n\n.designer-header-right {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.header-btn {\n padding: 0.4rem 1rem;\n border: 1px solid transparent;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n font-weight: 500;\n white-space: nowrap;\n line-height: 1.4;\n box-sizing: border-box;\n}\n\n.header-btn-primary {\n background: #111;\n color: #fff;\n border-color: #111;\n}\n.header-btn-primary:hover { background: #333; border-color: #333; }\n\n.header-btn-outline {\n background: #fff;\n color: #555;\n border-color: #ccc;\n}\n.header-btn-outline:hover { background: #f5f5f5; border-color: #999; }\n\n/* ── Designer Body (3-column) ────────────── */\n\n.designer-body {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n/* ── Left Palette ────────────────────────── */\n\n.designer-palette {\n width: 140px;\n flex-shrink: 0;\n border-right: 1px solid #e5e5e5;\n background: #fff;\n padding: 0.75rem 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n overflow-y: auto;\n}\n\n.palette-heading {\n font-size: 0.7rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: #999;\n padding: 0 0.75rem 0.5rem;\n}\n\n.palette-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n cursor: grab;\n font-size: 0.85rem;\n color: #555;\n border-left: 3px solid transparent;\n transition: all 0.1s;\n user-select: none;\n}\n\n.palette-item:hover {\n background: #f5f5f5;\n color: #222;\n}\n\n.palette-item.active {\n background: #f0f0f0;\n color: #111;\n border-left-color: #111;\n font-weight: 500;\n}\n\n.palette-item:active {\n cursor: grabbing;\n}\n\n.palette-item-icon {\n width: 22px;\n text-align: center;\n font-size: 0.9rem;\n flex-shrink: 0;\n}\n\n.palette-item-label {\n flex: 1;\n}\n\n.palette-divider {\n height: 1px;\n background: #e5e5e5;\n margin: 0.5rem 0.75rem;\n}\n\n.palette-role-section {\n padding: 0 0.75rem;\n display: flex;\n flex-direction: column;\n gap: 0.35rem;\n}\n\n.palette-role-select {\n width: 100%;\n padding: 0.3rem 0.4rem;\n border: 1.5px solid #ddd;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n background: #fff;\n cursor: pointer;\n}\n\n.palette-role-add-link {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 0.75rem;\n color: #888;\n padding: 0;\n text-align: left;\n}\n.palette-role-add-link:hover { color: #555; }\n\n.palette-role-add-inline {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n}\n\n.palette-role-add-inline input {\n width: 100%;\n padding: 0.25rem 0.4rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 0.75rem;\n}\n\n.palette-role-add-inline button {\n padding: 0.2rem 0.4rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: #fff;\n cursor: pointer;\n font-size: 0.75rem;\n}\n\n/* ── Signer toolbar (kept for backward compat) ── */\n\n.designer-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.5rem 1rem;\n border-bottom: 1px solid #e5e5e5;\n background: #fff;\n gap: 1rem;\n flex-wrap: wrap;\n}\n\n.toolbar-left,\n.toolbar-right {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.signer-content {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n.designer-pdf-area,\n.signer-pdf-area {\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n background: #eee;\n}\n\n.designer-panel,\n.signer-panel {\n width: 320px;\n overflow-y: auto;\n border-left: 1px solid #e5e5e5;\n background: #fff;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n}\n\n/* ── Panel Resize Handle ─────────────────── */\n\n.panel-resize-handle {\n width: 5px;\n cursor: col-resize;\n background: transparent;\n flex-shrink: 0;\n position: relative;\n z-index: 20;\n margin-right: -5px;\n transition: background 0.15s;\n}\n\n.panel-resize-handle:hover,\n.panel-resize-handle:active {\n background: #d0d0d0;\n}\n\n/* ── Ink Color Picker ────────────────────── */\n\n.ink-color-picker {\n display: flex;\n gap: 0.4rem;\n align-items: center;\n}\n\n.ink-color-swatch {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 2px solid transparent;\n cursor: pointer;\n padding: 0;\n transition: border-color 0.1s;\n}\n\n.ink-color-swatch.active {\n border-color: #111;\n box-shadow: 0 0 0 2px #fff, 0 0 0 3px #111;\n}\n\n.ink-color-swatch:hover:not(.active) {\n border-color: #999;\n}\n\n/* ── Panel Role Selector ─────────────────── */\n\n.panel-role-section {\n padding: 0.75rem 1rem;\n border-bottom: 1px solid #eee;\n}\n\n.panel-role-label {\n display: block;\n font-size: 0.7rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: #999;\n margin-bottom: 0.35rem;\n}\n\n.panel-role-row {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n flex-wrap: wrap;\n}\n\n.panel-role-select {\n padding: 0.3rem 0.5rem;\n border: 1.5px solid #ddd;\n border-radius: 4px;\n font-size: 0.85rem;\n font-weight: 500;\n background: #fff;\n cursor: pointer;\n min-width: 100px;\n}\n\n.panel-role-add-link {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 0.8rem;\n color: #888;\n padding: 0;\n white-space: nowrap;\n}\n.panel-role-add-link:hover { color: #555; }\n\n.panel-role-add-inline {\n display: flex;\n gap: 0.25rem;\n align-items: center;\n flex: 1;\n}\n\n.panel-role-add-inline input {\n padding: 0.25rem 0.4rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 0.8rem;\n width: 90px;\n}\n\n.panel-role-add-inline button {\n padding: 0.25rem 0.5rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: #fff;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n/* ── Panel Tabs ──────────────────────────── */\n\n.panel-tabs {\n display: flex;\n border-bottom: 1px solid #e5e5e5;\n flex-shrink: 0;\n}\n\n.panel-tab {\n flex: 1;\n padding: 0.55rem 0;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: 0.8rem;\n color: #888;\n font-weight: 500;\n text-align: center;\n transition: all 0.1s;\n}\n\n.panel-tab.active {\n color: #111;\n border-bottom-color: #111;\n}\n\n.panel-tab:hover:not(.active) {\n color: #555;\n}\n\n.panel-tab-content {\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n/* ── PDF Viewer ───────────────────────────── */\n\n.pdf-viewer {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n align-items: center;\n}\n\n.pdf-page {\n position: relative;\n width: 100%;\n max-width: 800px;\n background: #fff;\n box-shadow: 0 1px 4px rgba(0,0,0,0.1);\n cursor: crosshair;\n}\n\n.pdf-page-image {\n width: 100%;\n height: 100%;\n display: block;\n pointer-events: none;\n}\n\n/* ── Field Overlays ───────────────────────── */\n\n.field-overlay {\n position: absolute;\n border: 1.5px solid;\n border-radius: 2px;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n transition: box-shadow 0.1s;\n}\n\n.field-overlay.selected {\n box-shadow: 0 0 0 2px rgba(0,0,0,0.2);\n z-index: 10;\n}\n\n.field-overlay.editable {\n cursor: text;\n}\n\n.field-overlay-label {\n position: absolute;\n top: -18px;\n left: -1px;\n font-size: 10px;\n color: #fff;\n padding: 1px 6px;\n border-radius: 2px 2px 0 0;\n white-space: nowrap;\n pointer-events: none;\n}\n\n.field-overlay-placeholder {\n color: #999;\n font-size: 11px;\n padding: 2px 4px;\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.field-overlay-placeholder.readonly {\n color: #666;\n}\n\n.field-overlay-value {\n font-size: 11px;\n padding: 2px 4px;\n width: 100%;\n}\n\n.field-inline-input {\n width: 100%;\n height: 100%;\n border: none;\n background: transparent;\n padding: 2px 4px;\n outline: none;\n font-family: inherit;\n}\n\n.field-signature-preview {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.field-signature-filled {\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n\n.field-checkbox-display {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n font-weight: bold;\n}\n\n.field-checkbox-display.editable {\n cursor: pointer;\n}\n\n.field-resize-handle {\n position: absolute;\n bottom: 0;\n right: 0;\n width: 10px;\n height: 10px;\n background: #fff;\n border: 1px solid #999;\n cursor: nwse-resize;\n}\n\n/* ── Buttons ──────────────────────────────── */\n\n.upload-btn {\n display: inline-block;\n padding: 0.4rem 1rem;\n background: #111;\n color: #fff;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n font-weight: 500;\n}\n\n.upload-btn:hover { background: #333; }\n\n.upload-btn-small { font-size: 0.8rem; padding: 0.3rem 0.75rem; background: #555; }\n.upload-btn-large { font-size: 1rem; padding: 0.6rem 1.5rem; }\n\n.export-btn {\n padding: 0.4rem 1rem;\n background: #111;\n color: #fff;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n font-weight: 500;\n}\n\n.export-btn:hover { background: #333; }\n\n.field-type-selector {\n display: flex;\n gap: 2px;\n}\n\n.field-type-btn {\n padding: 0.3rem 0.6rem;\n background: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n color: #555;\n}\n\n.field-type-btn.active {\n background: #111;\n color: #fff;\n border-color: #111;\n}\n\n.field-type-btn:hover:not(.active) {\n background: #f5f5f5;\n}\n\n/* ── Signer Roles (legacy chip style) ─────── */\n\n.signer-role-selector {\n padding: 0.5rem 1rem;\n border-bottom: 1px solid #e5e5e5;\n background: #fff;\n}\n\n.signer-role-label {\n font-size: 0.75rem;\n color: #888;\n margin-bottom: 0.35rem;\n}\n\n.signer-role-list {\n display: flex;\n gap: 0.35rem;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.signer-role-chip {\n padding: 0.2rem 0.6rem;\n border: 1.5px solid;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n font-weight: 500;\n background: transparent;\n transition: all 0.1s;\n}\n\n.signer-role-remove {\n margin-left: 0.3rem;\n cursor: pointer;\n font-size: 1rem;\n}\n\n.signer-role-add-btn {\n padding: 0.2rem 0.5rem;\n border: 1px dashed #ccc;\n border-radius: 4px;\n background: none;\n cursor: pointer;\n font-size: 0.8rem;\n color: #888;\n}\n\n.signer-role-add-input {\n display: flex;\n gap: 0.25rem;\n align-items: center;\n}\n\n.signer-role-add-input input {\n padding: 0.2rem 0.4rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 0.8rem;\n width: 120px;\n}\n\n.signer-role-add-input button {\n padding: 0.2rem 0.5rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: #fff;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n/* ── Property Panel ───────────────────────── */\n\n.field-property-panel {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.panel-header h3 {\n margin: 0;\n font-size: 1rem;\n}\n\n.panel-delete-btn {\n padding: 0.2rem 0.5rem;\n background: none;\n border: 1px solid #e44;\n color: #e44;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n.panel-delete-btn:hover {\n background: #e44;\n color: #fff;\n}\n\n.panel-field label {\n display: block;\n font-size: 0.75rem;\n color: #888;\n margin-bottom: 0.2rem;\n}\n\n.panel-field input[type=\"text\"],\n.panel-field input[type=\"number\"],\n.panel-field input[type=\"email\"],\n.panel-field input[type=\"tel\"],\n.panel-field input[type=\"date\"],\n.panel-field select {\n width: 100%;\n padding: 0.35rem 0.5rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.85rem;\n background: #fff;\n}\n\n.panel-field-group {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 0.5rem;\n}\n\n.panel-checkbox-label {\n display: flex;\n align-items: center;\n gap: 0.4rem;\n font-size: 0.85rem;\n cursor: pointer;\n}\n\n.panel-empty {\n color: #888;\n font-size: 0.85rem;\n padding: 2rem 0.5rem;\n text-align: center;\n}\n\n/* ── Pre-fill ─────────────────────────────── */\n\n.prefill-section {\n border-top: 1px solid #eee;\n padding-top: 0.75rem;\n}\n\n.prefill-section h4 {\n margin: 0 0 0.5rem;\n font-size: 0.85rem;\n color: #555;\n}\n\n.prefill-input {\n width: 100%;\n padding: 0.35rem 0.5rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.85rem;\n}\n\n/* ── Field List ───────────────────────────── */\n\n.field-list {\n display: flex;\n flex-direction: column;\n}\n\n.field-list h4 {\n margin: 0 0 0.5rem;\n font-size: 0.85rem;\n color: #555;\n}\n\n.field-list-item {\n display: flex;\n align-items: center;\n gap: 0.4rem;\n padding: 0.35rem 0.5rem;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n}\n\n.field-list-item:hover { background: #f5f5f5; }\n.field-list-item.active { background: #eee; }\n\n.field-list-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.field-list-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.field-list-page {\n color: #aaa;\n font-size: 0.75rem;\n}\n\n.field-list-required {\n color: #e44;\n font-weight: bold;\n}\n\n/* ── Signer Panel ─────────────────────────── */\n\n.signer-field-input h3 {\n margin: 0 0 0.5rem;\n font-size: 1rem;\n}\n\n.required-badge {\n display: inline-block;\n font-size: 0.7rem;\n background: #fee;\n color: #c33;\n padding: 1px 6px;\n border-radius: 3px;\n margin-bottom: 0.5rem;\n}\n\n.signer-text-input {\n width: 100%;\n padding: 0.4rem 0.5rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.9rem;\n}\n\n.signer-checkbox-label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.9rem;\n cursor: pointer;\n}\n\n.signer-date-display {\n font-size: 0.9rem;\n color: #555;\n padding: 0.4rem 0;\n}\n\n.signer-field-readonly {\n color: #888;\n font-size: 0.85rem;\n}\n\n.signer-field-readonly h3 {\n margin: 0 0 0.25rem;\n font-size: 1rem;\n color: #555;\n}\n\n/* ── Signature Canvas ─────────────────────── */\n\n.signature-canvas-wrapper {\n display: flex;\n flex-direction: column;\n gap: 0.35rem;\n}\n\n.signature-canvas {\n border: 1px solid #ddd;\n border-radius: 4px;\n background: #fff;\n cursor: crosshair;\n width: 100%;\n height: auto;\n display: block;\n box-sizing: border-box;\n}\n\n.signature-canvas-actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.signature-clear-btn {\n padding: 0.2rem 0.5rem;\n background: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.8rem;\n color: #888;\n}\n\n.signature-hint {\n font-size: 0.75rem;\n color: #aaa;\n}\n\n/* ── Field Navigator ──────────────────────── */\n\n.field-navigator {\n margin-top: auto;\n border-top: 1px solid #eee;\n padding-top: 0.75rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.field-navigator-progress {\n font-size: 0.8rem;\n color: #888;\n text-align: center;\n}\n\n.field-navigator-controls {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n}\n\n.nav-btn {\n padding: 0.35rem 1rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n background: #fff;\n cursor: pointer;\n font-size: 0.85rem;\n}\n\n.nav-btn:hover:not(:disabled) { background: #f5f5f5; }\n.nav-btn:disabled { opacity: 0.4; cursor: default; }\n\n.field-navigator-position {\n font-size: 0.85rem;\n color: #888;\n min-width: 50px;\n text-align: center;\n}\n\n.submit-btn {\n padding: 0.5rem;\n background: #111;\n color: #fff;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9rem;\n font-weight: 500;\n}\n\n.submit-btn:hover:not(:disabled) { background: #333; }\n.submit-btn:disabled { opacity: 0.4; cursor: default; }\n\n/* ── States ───────────────────────────────── */\n\n.loading-indicator {\n text-align: center;\n padding: 2rem;\n color: #888;\n font-size: 0.9rem;\n}\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n gap: 0.75rem;\n color: #888;\n}\n\n.empty-state h2 {\n margin: 0;\n font-size: 1.25rem;\n color: #555;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 0.9rem;\n}\n\n/* ── Powered By ───────────────────────────── */\n\n.powered-by {\n text-align: center;\n padding: 0.4rem;\n font-size: 0.7rem;\n color: #aaa;\n border-top: 1px solid #eee;\n background: #fff;\n margin-top: auto;\n}\n\n.powered-by a {\n color: #888;\n text-decoration: none;\n}\n\n.powered-by a:hover {\n text-decoration: underline;\n}\n\n/* ── Multi-signer Progress ───────────────── */\n\n.signer-progress-bar {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n padding: 0.75rem 1rem;\n border-bottom: 1px solid #e5e5e5;\n background: #fafafa;\n}\n\n.signer-progress-step {\n display: flex;\n align-items: center;\n gap: 0.35rem;\n font-size: 0.8rem;\n color: #bbb;\n}\n\n.signer-progress-step:not(:last-child)::after {\n content: '\\2192';\n margin-left: 0.25rem;\n color: #ddd;\n}\n\n.signer-progress-step.active {\n color: #111;\n font-weight: 600;\n}\n\n.signer-progress-step.completed {\n color: #22c55e;\n}\n\n.signer-progress-dot {\n width: 22px;\n height: 22px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.7rem;\n font-weight: 600;\n border: 2px solid #ddd;\n color: #bbb;\n flex-shrink: 0;\n}\n\n.signer-progress-step.active .signer-progress-dot {\n border-color: #111;\n background: #111;\n color: #fff;\n}\n\n.signer-progress-step.completed .signer-progress-dot {\n border-color: #22c55e;\n background: #22c55e;\n color: #fff;\n}\n\n.signer-progress-label {\n white-space: nowrap;\n}\n\n.signer-role-indicator {\n padding: 0.75rem;\n border-bottom: 1px solid #e5e5e5;\n font-size: 0.95rem;\n color: #333;\n display: flex;\n flex-direction: column;\n gap: 0.15rem;\n}\n\n.signer-role-indicator-label {\n font-size: 0.7rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: #999;\n font-weight: 500;\n}\n\n/* ── Inactive signer fields ──────────────── */\n\n.field-overlay.inactive-signer {\n opacity: 0.5;\n}\n\n.field-overlay.inactive-signer .field-overlay-placeholder,\n.field-overlay.inactive-signer .field-overlay-value,\n.field-overlay.inactive-signer .field-checkbox-display {\n color: #bbb;\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -59,10 +59,12 @@ interface SignerViewProps {
|
|
|
59
59
|
onComplete?: (pdfBlob: Blob) => void;
|
|
60
60
|
/** Pre-fill field values by label or ID. Keys are matched against field labels (case-insensitive) first, then field IDs. */
|
|
61
61
|
initialValues?: Record<string, string>;
|
|
62
|
-
/** Label for the submit button (default: "Complete") */
|
|
62
|
+
/** Label for the final submit button (default: "Complete") */
|
|
63
63
|
submitLabel?: string;
|
|
64
|
+
/** Signing order for multi-party documents. Signers complete sequentially; only the current signer's fields are active. If omitted, non-Sender roles go first, then Sender last. */
|
|
65
|
+
signerOrder?: string[];
|
|
64
66
|
}
|
|
65
|
-
declare function SignerView({ apiKey, initialPdfUrl, initialTemplate, initialSigner, callbackUrl: initialCallbackUrl, onComplete, initialValues, submitLabel, }?: SignerViewProps): react_jsx_runtime.JSX.Element;
|
|
67
|
+
declare function SignerView({ apiKey, initialPdfUrl, initialTemplate, initialSigner, callbackUrl: initialCallbackUrl, onComplete, initialValues, submitLabel, signerOrder: signerOrderProp, }?: SignerViewProps): react_jsx_runtime.JSX.Element;
|
|
66
68
|
|
|
67
69
|
interface RenderedPage {
|
|
68
70
|
pageNumber: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -59,10 +59,12 @@ interface SignerViewProps {
|
|
|
59
59
|
onComplete?: (pdfBlob: Blob) => void;
|
|
60
60
|
/** Pre-fill field values by label or ID. Keys are matched against field labels (case-insensitive) first, then field IDs. */
|
|
61
61
|
initialValues?: Record<string, string>;
|
|
62
|
-
/** Label for the submit button (default: "Complete") */
|
|
62
|
+
/** Label for the final submit button (default: "Complete") */
|
|
63
63
|
submitLabel?: string;
|
|
64
|
+
/** Signing order for multi-party documents. Signers complete sequentially; only the current signer's fields are active. If omitted, non-Sender roles go first, then Sender last. */
|
|
65
|
+
signerOrder?: string[];
|
|
64
66
|
}
|
|
65
|
-
declare function SignerView({ apiKey, initialPdfUrl, initialTemplate, initialSigner, callbackUrl: initialCallbackUrl, onComplete, initialValues, submitLabel, }?: SignerViewProps): react_jsx_runtime.JSX.Element;
|
|
67
|
+
declare function SignerView({ apiKey, initialPdfUrl, initialTemplate, initialSigner, callbackUrl: initialCallbackUrl, onComplete, initialValues, submitLabel, signerOrder: signerOrderProp, }?: SignerViewProps): react_jsx_runtime.JSX.Element;
|
|
66
68
|
|
|
67
69
|
interface RenderedPage {
|
|
68
70
|
pageNumber: number;
|
package/dist/index.js
CHANGED
|
@@ -287,9 +287,10 @@ function FieldOverlayItem({
|
|
|
287
287
|
const overlayRef = (0, import_react.useRef)(null);
|
|
288
288
|
const dragStartRef = (0, import_react.useRef)(null);
|
|
289
289
|
const resizeStartRef = (0, import_react.useRef)(null);
|
|
290
|
-
const color = getSignerColor(field.assignee);
|
|
291
290
|
const isRedact = field.type === "blackout" || field.type === "whiteout";
|
|
292
291
|
const isEditable = mode === "designer" || mode === "signer" && field.assignee === currentSigner;
|
|
292
|
+
const isInactiveSigner = mode === "signer" && !isRedact && field.assignee !== currentSigner;
|
|
293
|
+
const color = isInactiveSigner ? "#cccccc" : getSignerColor(field.assignee);
|
|
293
294
|
const isPreFilled = !isEditable && !!field.value;
|
|
294
295
|
const handleMouseDown = (0, import_react.useCallback)((e) => {
|
|
295
296
|
if (mode !== "designer" || !onMove) return;
|
|
@@ -354,7 +355,7 @@ function FieldOverlayItem({
|
|
|
354
355
|
"div",
|
|
355
356
|
{
|
|
356
357
|
ref: overlayRef,
|
|
357
|
-
className: `field-overlay ${isSelected ? "selected" : ""} ${isEditable ? "editable" : "readonly"} ${isPreFilled ? "prefilled" : ""} ${isRedact ? "redact" : ""}`,
|
|
358
|
+
className: `field-overlay ${isSelected ? "selected" : ""} ${isEditable ? "editable" : "readonly"} ${isPreFilled ? "prefilled" : ""} ${isRedact ? "redact" : ""} ${isInactiveSigner ? "inactive-signer" : ""}`,
|
|
358
359
|
style: {
|
|
359
360
|
left: `${field.x}%`,
|
|
360
361
|
top: `${field.y}%`,
|
|
@@ -362,9 +363,9 @@ function FieldOverlayItem({
|
|
|
362
363
|
height: `${field.height}%`,
|
|
363
364
|
borderColor: isRedact ? field.type === "blackout" ? "#666" : "#bbb" : color,
|
|
364
365
|
borderStyle: isRedact ? "dashed" : "solid",
|
|
365
|
-
backgroundColor: isRedact ? field.type === "blackout" ? "#000000" : "#ffffff" : isSelected ? `${color}22` : `${color}11`,
|
|
366
|
-
cursor: mode === "designer" ? "move" : "default",
|
|
367
|
-
pointerEvents: mode === "signer" && isRedact ? "none" : void 0
|
|
366
|
+
backgroundColor: isRedact ? field.type === "blackout" ? "#000000" : "#ffffff" : isInactiveSigner ? "#f5f5f5" : isSelected ? `${color}22` : `${color}11`,
|
|
367
|
+
cursor: mode === "designer" ? "move" : isInactiveSigner ? "default" : "default",
|
|
368
|
+
pointerEvents: mode === "signer" && (isRedact || isInactiveSigner) ? "none" : void 0
|
|
368
369
|
},
|
|
369
370
|
onClick: (e) => {
|
|
370
371
|
e.stopPropagation();
|
|
@@ -1051,6 +1052,10 @@ function DesignerView({
|
|
|
1051
1052
|
pages.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
|
|
1052
1053
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "panel-resize-handle", onMouseDown: handleResizeStart }),
|
|
1053
1054
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "designer-panel", style: { width: panelWidth }, children: [
|
|
1055
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "signer-role-indicator", children: [
|
|
1056
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "signer-role-indicator-label", children: "Editing as" }),
|
|
1057
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: activeRole })
|
|
1058
|
+
] }),
|
|
1054
1059
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "panel-tabs", children: [
|
|
1055
1060
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
1056
1061
|
"button",
|
|
@@ -1339,7 +1344,8 @@ function SignerView({
|
|
|
1339
1344
|
callbackUrl: initialCallbackUrl,
|
|
1340
1345
|
onComplete,
|
|
1341
1346
|
initialValues,
|
|
1342
|
-
submitLabel
|
|
1347
|
+
submitLabel,
|
|
1348
|
+
signerOrder: signerOrderProp
|
|
1343
1349
|
} = {}) {
|
|
1344
1350
|
if (!isValidApiKey(apiKey)) {
|
|
1345
1351
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "signer-layout", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "empty-state", children: [
|
|
@@ -1354,22 +1360,28 @@ function SignerView({
|
|
|
1354
1360
|
const [pages, setPages] = (0, import_react4.useState)([]);
|
|
1355
1361
|
const [fields, setFields] = (0, import_react4.useState)([]);
|
|
1356
1362
|
const [selectedFieldId, setSelectedFieldId] = (0, import_react4.useState)(null);
|
|
1357
|
-
const [
|
|
1363
|
+
const [signerRoles, setSignerRoles] = (0, import_react4.useState)([]);
|
|
1364
|
+
const [currentSignerIndex, setCurrentSignerIndex] = (0, import_react4.useState)(() => {
|
|
1365
|
+
if (initialSigner && signerOrderProp) {
|
|
1366
|
+
const idx = signerOrderProp.indexOf(initialSigner);
|
|
1367
|
+
return idx >= 0 ? idx : 0;
|
|
1368
|
+
}
|
|
1369
|
+
return 0;
|
|
1370
|
+
});
|
|
1358
1371
|
const initializedRef = (0, import_react4.useRef)(false);
|
|
1359
1372
|
const [loading, setLoading] = (0, import_react4.useState)(false);
|
|
1360
1373
|
const [submitting, setSubmitting] = (0, import_react4.useState)(false);
|
|
1361
1374
|
const [pdfSource, setPdfSource] = (0, import_react4.useState)(null);
|
|
1362
1375
|
const [callbackUrl, setCallbackUrl] = (0, import_react4.useState)(initialCallbackUrl || "");
|
|
1363
1376
|
const containerRef = (0, import_react4.useRef)(null);
|
|
1364
|
-
(0,
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
}
|
|
1369
|
-
}, [initialSigner]);
|
|
1377
|
+
const signerOrder = signerOrderProp || (signerRoles.length > 0 ? [...signerRoles.filter((r) => r !== "Sender"), ...signerRoles.filter((r) => r === "Sender")] : [initialSigner || "Signer 1"]);
|
|
1378
|
+
const signer = signerOrder[currentSignerIndex] || signerOrder[0] || "Signer 1";
|
|
1379
|
+
const isLastSigner = currentSignerIndex >= signerOrder.length - 1;
|
|
1380
|
+
const isMultiSigner = signerOrder.length > 1;
|
|
1370
1381
|
(0, import_react4.useEffect)(() => {
|
|
1371
1382
|
if (initialTemplate) {
|
|
1372
1383
|
let templateFields = initialTemplate.fields;
|
|
1384
|
+
if (initialTemplate.signerRoles) setSignerRoles(initialTemplate.signerRoles);
|
|
1373
1385
|
if (initialValues) {
|
|
1374
1386
|
templateFields = templateFields.map((f) => {
|
|
1375
1387
|
const byLabel = Object.entries(initialValues).find(
|
|
@@ -1395,13 +1407,12 @@ function SignerView({
|
|
|
1395
1407
|
const params = new URLSearchParams(window.location.search);
|
|
1396
1408
|
const pdfUrl = params.get("pdf");
|
|
1397
1409
|
const fieldsUrl = params.get("fields");
|
|
1398
|
-
const signerParam = params.get("signer");
|
|
1399
1410
|
const cbUrl = params.get("callbackUrl");
|
|
1400
|
-
if (signerParam) setSigner(signerParam);
|
|
1401
1411
|
if (cbUrl) setCallbackUrl(cbUrl);
|
|
1402
1412
|
if (pdfUrl) loadPdf(pdfUrl);
|
|
1403
1413
|
if (fieldsUrl) {
|
|
1404
1414
|
fetch(fieldsUrl).then((r) => r.json()).then((template) => {
|
|
1415
|
+
if (template.signerRoles) setSignerRoles(template.signerRoles);
|
|
1405
1416
|
if (initializedRef.current) {
|
|
1406
1417
|
setFields((prev) => {
|
|
1407
1418
|
const valueMap = new Map(prev.filter((f) => f.value).map((f) => [f.id, f.value]));
|
|
@@ -1427,7 +1438,10 @@ function SignerView({
|
|
|
1427
1438
|
}
|
|
1428
1439
|
}
|
|
1429
1440
|
if (e.data.pdfUrl) loadPdf(e.data.pdfUrl);
|
|
1430
|
-
if (e.data.signer)
|
|
1441
|
+
if (e.data.signer) {
|
|
1442
|
+
const idx = signerOrder.indexOf(e.data.signer);
|
|
1443
|
+
if (idx >= 0) setCurrentSignerIndex(idx);
|
|
1444
|
+
}
|
|
1431
1445
|
if (e.data.callbackUrl) setCallbackUrl(e.data.callbackUrl);
|
|
1432
1446
|
}
|
|
1433
1447
|
};
|
|
@@ -1472,8 +1486,18 @@ function SignerView({
|
|
|
1472
1486
|
if (f.type === "checkbox") return true;
|
|
1473
1487
|
return !!f.value;
|
|
1474
1488
|
});
|
|
1475
|
-
const
|
|
1476
|
-
if (!
|
|
1489
|
+
const handleAdvanceOrSubmit = (0, import_react4.useCallback)(async () => {
|
|
1490
|
+
if (!allRequiredFilled) return;
|
|
1491
|
+
if (!isLastSigner) {
|
|
1492
|
+
setCurrentSignerIndex((prev) => prev + 1);
|
|
1493
|
+
setSelectedFieldId(null);
|
|
1494
|
+
const pdfArea = containerRef.current?.querySelector(".signer-pdf-area");
|
|
1495
|
+
if (pdfArea) {
|
|
1496
|
+
pdfArea.scrollTo({ top: 0, behavior: "smooth" });
|
|
1497
|
+
}
|
|
1498
|
+
return;
|
|
1499
|
+
}
|
|
1500
|
+
if (!pdfSource) return;
|
|
1477
1501
|
setSubmitting(true);
|
|
1478
1502
|
try {
|
|
1479
1503
|
const pdfBytes = await generateFilledPdf(pdfSource, fields);
|
|
@@ -1493,7 +1517,7 @@ function SignerView({
|
|
|
1493
1517
|
} finally {
|
|
1494
1518
|
setSubmitting(false);
|
|
1495
1519
|
}
|
|
1496
|
-
}, [pdfSource, fields, callbackUrl, allRequiredFilled, onComplete]);
|
|
1520
|
+
}, [pdfSource, fields, callbackUrl, allRequiredFilled, onComplete, isLastSigner]);
|
|
1497
1521
|
const renderFieldContent = (0, import_react4.useCallback)((field) => {
|
|
1498
1522
|
if (field.type === "blackout" || field.type === "whiteout") {
|
|
1499
1523
|
return null;
|
|
@@ -1556,8 +1580,20 @@ function SignerView({
|
|
|
1556
1580
|
}));
|
|
1557
1581
|
}
|
|
1558
1582
|
}, [fields.filter((f) => f.type === "signature" && f.value).length]);
|
|
1583
|
+
const stepLabel = isLastSigner ? submitLabel || "Complete" : `Next: ${signerOrder[currentSignerIndex + 1]}`;
|
|
1559
1584
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "signer-layout", ref: containerRef, children: [
|
|
1560
1585
|
loading && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "loading-indicator", children: "Loading document..." }),
|
|
1586
|
+
isMultiSigner && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "signer-progress-bar", children: signerOrder.map((role, i) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
1587
|
+
"div",
|
|
1588
|
+
{
|
|
1589
|
+
className: `signer-progress-step ${i < currentSignerIndex ? "completed" : ""} ${i === currentSignerIndex ? "active" : ""} ${i > currentSignerIndex ? "upcoming" : ""}`,
|
|
1590
|
+
children: [
|
|
1591
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "signer-progress-dot", children: i < currentSignerIndex ? "\u2713" : i + 1 }),
|
|
1592
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "signer-progress-label", children: role })
|
|
1593
|
+
]
|
|
1594
|
+
},
|
|
1595
|
+
role
|
|
1596
|
+
)) }),
|
|
1561
1597
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "signer-content", children: [
|
|
1562
1598
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "signer-pdf-area", children: pages.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1563
1599
|
PdfViewer,
|
|
@@ -1572,6 +1608,10 @@ function SignerView({
|
|
|
1572
1608
|
}
|
|
1573
1609
|
) }),
|
|
1574
1610
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "signer-panel", children: [
|
|
1611
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "signer-role-indicator", children: [
|
|
1612
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "signer-role-indicator-label", children: "Signing as" }),
|
|
1613
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("strong", { children: signer })
|
|
1614
|
+
] }),
|
|
1575
1615
|
selectedField && isFieldEditable && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "signer-field-input", children: [
|
|
1576
1616
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h3", { children: selectedField.label }),
|
|
1577
1617
|
selectedField.required && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "required-badge", children: "Required" }),
|
|
@@ -1619,16 +1659,16 @@ function SignerView({
|
|
|
1619
1659
|
currentFieldId: selectedFieldId,
|
|
1620
1660
|
onNavigate: handleNavigate,
|
|
1621
1661
|
allRequiredFilled,
|
|
1622
|
-
onSubmit:
|
|
1623
|
-
submitLabel
|
|
1662
|
+
onSubmit: handleAdvanceOrSubmit,
|
|
1663
|
+
submitLabel: stepLabel
|
|
1624
1664
|
}
|
|
1625
1665
|
),
|
|
1626
|
-
submitting && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "loading-indicator", children: "Generating PDF..." })
|
|
1666
|
+
submitting && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "loading-indicator", children: "Generating PDF..." }),
|
|
1667
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "powered-by", children: [
|
|
1668
|
+
"Powered by ",
|
|
1669
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("a", { href: "https://exeq.org", target: "_blank", rel: "noopener noreferrer", children: "Exeq.org" })
|
|
1670
|
+
] })
|
|
1627
1671
|
] })
|
|
1628
|
-
] }),
|
|
1629
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "powered-by", children: [
|
|
1630
|
-
"Powered by ",
|
|
1631
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("a", { href: "https://exeq.org", target: "_blank", rel: "noopener noreferrer", children: "Exeq.org" })
|
|
1632
1672
|
] })
|
|
1633
1673
|
] });
|
|
1634
1674
|
}
|