@unlev/exeq 0.4.1 → 0.5.0
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/dist/index.css +38 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +86 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +86 -22
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -241,6 +241,31 @@
|
|
|
241
241
|
.ink-color-swatch:hover:not(.active) {
|
|
242
242
|
border-color: #999;
|
|
243
243
|
}
|
|
244
|
+
.text-format-buttons {
|
|
245
|
+
display: flex;
|
|
246
|
+
gap: 0.3rem;
|
|
247
|
+
}
|
|
248
|
+
.text-format-btn {
|
|
249
|
+
width: 30px;
|
|
250
|
+
height: 28px;
|
|
251
|
+
border: 1px solid #ccc;
|
|
252
|
+
border-radius: 4px;
|
|
253
|
+
background: #fff;
|
|
254
|
+
color: #333;
|
|
255
|
+
cursor: pointer;
|
|
256
|
+
font-size: 0.85rem;
|
|
257
|
+
line-height: 1;
|
|
258
|
+
padding: 0;
|
|
259
|
+
transition: background 0.1s, border-color 0.1s;
|
|
260
|
+
}
|
|
261
|
+
.text-format-btn:hover:not(.active) {
|
|
262
|
+
border-color: #999;
|
|
263
|
+
}
|
|
264
|
+
.text-format-btn.active {
|
|
265
|
+
background: #111;
|
|
266
|
+
border-color: #111;
|
|
267
|
+
color: #fff;
|
|
268
|
+
}
|
|
244
269
|
.panel-role-section {
|
|
245
270
|
padding: 0.75rem 1rem;
|
|
246
271
|
border-bottom: 1px solid #eee;
|
|
@@ -789,6 +814,19 @@
|
|
|
789
814
|
.designer-pdf-area.panning .pdf-page {
|
|
790
815
|
pointer-events: none;
|
|
791
816
|
}
|
|
817
|
+
.designer-panel-actions {
|
|
818
|
+
display: flex;
|
|
819
|
+
align-items: center;
|
|
820
|
+
justify-content: flex-end;
|
|
821
|
+
gap: 0.5rem;
|
|
822
|
+
padding: 0.5rem 0.75rem;
|
|
823
|
+
border-bottom: 1px solid #e5e5e5;
|
|
824
|
+
background: #fff;
|
|
825
|
+
flex-shrink: 0;
|
|
826
|
+
position: sticky;
|
|
827
|
+
top: 0;
|
|
828
|
+
z-index: 1;
|
|
829
|
+
}
|
|
792
830
|
.designer-panel-header {
|
|
793
831
|
display: flex;
|
|
794
832
|
align-items: center;
|
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: 100%;\n min-height: 0;\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: auto;\n padding: 1rem;\n background: #eee;\n}\n\n.designer-panel,\n.signer-panel {\n width: 320px;\n overflow: hidden;\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 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 overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\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 gap: 0.5rem;\n}\n\n.panel-header-label {\n flex: 1;\n min-width: 0;\n border: none;\n background: none;\n font-size: 1rem;\n font-weight: 600;\n padding: 0.2rem 0;\n outline: none;\n border-bottom: 1px solid transparent;\n}\n\n.panel-header-label:focus {\n border-bottom-color: #ccc;\n}\n\n.panel-header-actions {\n display: flex;\n gap: 0.3rem;\n flex-shrink: 0;\n}\n\n.panel-icon-btn {\n padding: 0.3rem;\n background: none;\n border: 1px solid #ddd;\n border-radius: 4px;\n cursor: pointer;\n color: #999;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.panel-icon-btn:hover { color: #555; border-color: #bbb; }\n.panel-icon-btn.active { color: #f59e0b; border-color: #f59e0b; }\n.panel-icon-btn-danger:hover { color: #e44; border-color: #e44; }\n\n.field-list-lock {\n font-size: 0.6rem;\n margin-left: 0.2rem;\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-section {\n border-top: 1px solid #f0f0f0;\n padding-top: 0.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.6rem;\n}\n\n.panel-section:first-of-type {\n border-top: none;\n padding-top: 0;\n}\n\n.panel-assignee-select {\n width: 100%;\n padding: 0.4rem 0.5rem;\n border: 2px solid;\n border-radius: 4px;\n font-size: 0.85rem;\n font-weight: 600;\n background: #fff;\n cursor: pointer;\n}\n\n.panel-section-heading {\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.5rem;\n}\n\n.panel-section-toggle {\n background: none;\n border: none;\n padding: 0;\n font-size: 0.75rem;\n color: #888;\n cursor: pointer;\n margin-bottom: 0.4rem;\n display: block;\n}\n\n.panel-section-toggle:hover {\n color: #555;\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-field-row {\n display: flex;\n gap: 0.5rem;\n}\n\n.panel-field-half {\n flex: 1;\n}\n\n.panel-options-list {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.panel-option-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.25rem 0.4rem;\n background: #f5f5f5;\n border-radius: 3px;\n font-size: 0.8rem;\n}\n\n.panel-option-remove {\n background: none;\n border: none;\n cursor: pointer;\n color: #c44;\n font-size: 1rem;\n padding: 0 0.2rem;\n line-height: 1;\n}\n\n.panel-option-add {\n display: flex;\n gap: 0.25rem;\n}\n\n.panel-option-add input {\n flex: 1;\n padding: 0.25rem 0.4rem;\n border: 1px solid #ddd;\n border-radius: 3px;\n font-size: 0.8rem;\n}\n\n.panel-option-add button {\n padding: 0.25rem 0.5rem;\n border: 1px solid #ddd;\n border-radius: 3px;\n background: #fff;\n cursor: pointer;\n font-size: 0.85rem;\n}\n\n.panel-hint {\n font-size: 0.7rem;\n color: #aaa;\n margin-top: 0.2rem;\n}\n\n.marquee-rect {\n position: absolute;\n border: 1.5px dashed #6366f1;\n background: rgba(99, 102, 241, 0.08);\n z-index: 25;\n pointer-events: none;\n}\n\n.snap-guide {\n position: absolute;\n z-index: 20;\n pointer-events: none;\n}\n\n.snap-guide-v {\n top: 0;\n bottom: 0;\n width: 1px;\n background: #f06;\n}\n\n.snap-guide-h {\n left: 0;\n right: 0;\n height: 1px;\n background: #f06;\n}\n\n.designer-pdf-area.panning,\n.designer-pdf-area.panning * {\n cursor: grab !important;\n user-select: none;\n}\n\n.designer-pdf-area.panning:active,\n.designer-pdf-area.panning:active * {\n cursor: grabbing !important;\n}\n\n.designer-pdf-area.panning .field-overlay {\n pointer-events: none;\n}\n\n.designer-pdf-area.panning .pdf-page {\n pointer-events: none;\n}\n\n.designer-panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.6rem 0.75rem;\n border-bottom: 1px solid #e5e5e5;\n flex-shrink: 0;\n}\n\n.zoom-slider {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.zoom-slider button {\n width: 20px;\n height: 20px;\n padding: 0;\n border: 1px solid #ddd;\n border-radius: 3px;\n background: #fff;\n cursor: pointer;\n font-size: 0.75rem;\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.zoom-slider button:hover:not(:disabled) { background: #f0f0f0; }\n.zoom-slider button:disabled { opacity: 0.3; cursor: default; }\n\n.zoom-slider input[type=\"range\"] {\n width: 60px;\n height: 3px;\n accent-color: #666;\n cursor: pointer;\n}\n\n.zoom-dropdown-wrapper {\n position: relative;\n}\n\n.zoom-dropdown {\n appearance: none;\n border: none;\n background: none;\n font-size: 0.65rem;\n color: #666;\n cursor: pointer;\n padding: 0.1rem 0.1rem;\n min-width: 36px;\n text-align: right;\n}\n\n.zoom-dropdown:hover {\n color: #333;\n}\n\n.zoom-dropdown:focus {\n outline: none;\n}\n\n.align-buttons {\n display: flex;\n gap: 0.25rem;\n}\n\n.align-buttons button {\n flex: 1;\n padding: 0.3rem;\n border: 1px solid #ddd;\n border-radius: 3px;\n background: #fff;\n cursor: pointer;\n font-size: 0.85rem;\n line-height: 1;\n}\n\n.align-buttons button:hover {\n background: #f0f0f0;\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.field-list-item.active {\n flex-wrap: wrap;\n}\n\n.field-list-input {\n width: 100%;\n margin-top: 0.3rem;\n padding: 0.3rem 0.4rem;\n border: 1px solid #ddd;\n border-radius: 3px;\n font-size: 0.8rem;\n outline: none;\n}\n\n.field-list-input:focus {\n border-color: #6366f1;\n}\n\n.field-list-checkbox {\n margin-top: 0.2rem;\n width: 100%;\n display: flex;\n align-items: center;\n gap: 0.3rem;\n font-size: 0.8rem;\n cursor: pointer;\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-font-size {\n display: flex;\n align-items: center;\n gap: 0.35rem;\n margin-top: 0.4rem;\n font-size: 0.8rem;\n color: #666;\n}\n\n.signer-font-size label {\n white-space: nowrap;\n}\n\n.signer-font-size input {\n width: 50px;\n padding: 0.2rem 0.3rem;\n border: 1px solid #ddd;\n border-radius: 3px;\n font-size: 0.8rem;\n text-align: center;\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 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-progress.clickable {\n cursor: pointer;\n}\n\n.field-navigator-progress.clickable:hover {\n color: #555;\n}\n\n.field-navigator-toggle {\n margin-left: 0.3rem;\n font-size: 0.6rem;\n}\n\n.incomplete-fields-list {\n display: flex;\n flex-direction: column;\n max-height: 150px;\n overflow-y: auto;\n border: 1px solid #eee;\n border-radius: 4px;\n background: #fafafa;\n}\n\n.incomplete-field-item {\n padding: 0.4rem 0.6rem;\n border: none;\n background: none;\n text-align: left;\n font-size: 0.8rem;\n color: #c44;\n cursor: pointer;\n}\n\n.incomplete-field-item:hover {\n background: #fff0f0;\n}\n\n.incomplete-field-item:not(:last-child) {\n border-bottom: 1px solid #f0f0f0;\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.nav-btn-complete {\n background: #111;\n color: #fff;\n border-color: #111;\n font-weight: 500;\n}\n\n.nav-btn-complete:hover:not(:disabled) { background: #333; }\n\n.field-navigator-position {\n font-size: 0.85rem;\n color: #888;\n min-width: 50px;\n text-align: center;\n}\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\n/* ── Signer Panel Structure ──────────────── */\n\n.signer-panel-header {\n border-bottom: 1px solid #e5e5e5;\n padding: 0.75rem;\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-shrink: 0;\n}\n\n.signer-panel-body {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n.signer-panel-footer {\n margin-top: auto;\n flex-shrink: 0;\n}\n\n.signer-role-indicator {\n display: flex;\n flex-direction: column;\n gap: 0.1rem;\n font-size: 0.95rem;\n color: #333;\n}\n\n.signer-role-indicator-label {\n font-size: 0.65rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: #999;\n font-weight: 500;\n}\n\n.signer-step-badge {\n font-size: 0.7rem;\n color: #888;\n background: #f0f0f0;\n padding: 0.2rem 0.5rem;\n border-radius: 10px;\n white-space: nowrap;\n}\n\n/* ── Locked fields ───────────────────────── */\n\n.field-overlay.locked {\n border-style: dashed !important;\n opacity: 0.6;\n}\n\n.field-overlay.locked::after {\n content: '';\n position: absolute;\n inset: 0;\n background: repeating-linear-gradient(\n -45deg,\n transparent,\n transparent 4px,\n rgba(0,0,0,0.06) 4px,\n rgba(0,0,0,0.06) 5px\n );\n pointer-events: none;\n border-radius: 2px;\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":[]}
|
|
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: 100%;\n min-height: 0;\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: auto;\n padding: 1rem;\n background: #eee;\n}\n\n.designer-panel,\n.signer-panel {\n width: 320px;\n overflow: hidden;\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/* ── Text formatting toggles (B / I / U / S) ── */\n\n.text-format-buttons {\n display: flex;\n gap: 0.3rem;\n}\n\n.text-format-btn {\n width: 30px;\n height: 28px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: #fff;\n color: #333;\n cursor: pointer;\n font-size: 0.85rem;\n line-height: 1;\n padding: 0;\n transition: background 0.1s, border-color 0.1s;\n}\n\n.text-format-btn:hover:not(.active) {\n border-color: #999;\n}\n\n.text-format-btn.active {\n background: #111;\n border-color: #111;\n color: #fff;\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 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 overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\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 gap: 0.5rem;\n}\n\n.panel-header-label {\n flex: 1;\n min-width: 0;\n border: none;\n background: none;\n font-size: 1rem;\n font-weight: 600;\n padding: 0.2rem 0;\n outline: none;\n border-bottom: 1px solid transparent;\n}\n\n.panel-header-label:focus {\n border-bottom-color: #ccc;\n}\n\n.panel-header-actions {\n display: flex;\n gap: 0.3rem;\n flex-shrink: 0;\n}\n\n.panel-icon-btn {\n padding: 0.3rem;\n background: none;\n border: 1px solid #ddd;\n border-radius: 4px;\n cursor: pointer;\n color: #999;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.panel-icon-btn:hover { color: #555; border-color: #bbb; }\n.panel-icon-btn.active { color: #f59e0b; border-color: #f59e0b; }\n.panel-icon-btn-danger:hover { color: #e44; border-color: #e44; }\n\n.field-list-lock {\n font-size: 0.6rem;\n margin-left: 0.2rem;\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-section {\n border-top: 1px solid #f0f0f0;\n padding-top: 0.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.6rem;\n}\n\n.panel-section:first-of-type {\n border-top: none;\n padding-top: 0;\n}\n\n.panel-assignee-select {\n width: 100%;\n padding: 0.4rem 0.5rem;\n border: 2px solid;\n border-radius: 4px;\n font-size: 0.85rem;\n font-weight: 600;\n background: #fff;\n cursor: pointer;\n}\n\n.panel-section-heading {\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.5rem;\n}\n\n.panel-section-toggle {\n background: none;\n border: none;\n padding: 0;\n font-size: 0.75rem;\n color: #888;\n cursor: pointer;\n margin-bottom: 0.4rem;\n display: block;\n}\n\n.panel-section-toggle:hover {\n color: #555;\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-field-row {\n display: flex;\n gap: 0.5rem;\n}\n\n.panel-field-half {\n flex: 1;\n}\n\n.panel-options-list {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.panel-option-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.25rem 0.4rem;\n background: #f5f5f5;\n border-radius: 3px;\n font-size: 0.8rem;\n}\n\n.panel-option-remove {\n background: none;\n border: none;\n cursor: pointer;\n color: #c44;\n font-size: 1rem;\n padding: 0 0.2rem;\n line-height: 1;\n}\n\n.panel-option-add {\n display: flex;\n gap: 0.25rem;\n}\n\n.panel-option-add input {\n flex: 1;\n padding: 0.25rem 0.4rem;\n border: 1px solid #ddd;\n border-radius: 3px;\n font-size: 0.8rem;\n}\n\n.panel-option-add button {\n padding: 0.25rem 0.5rem;\n border: 1px solid #ddd;\n border-radius: 3px;\n background: #fff;\n cursor: pointer;\n font-size: 0.85rem;\n}\n\n.panel-hint {\n font-size: 0.7rem;\n color: #aaa;\n margin-top: 0.2rem;\n}\n\n.marquee-rect {\n position: absolute;\n border: 1.5px dashed #6366f1;\n background: rgba(99, 102, 241, 0.08);\n z-index: 25;\n pointer-events: none;\n}\n\n.snap-guide {\n position: absolute;\n z-index: 20;\n pointer-events: none;\n}\n\n.snap-guide-v {\n top: 0;\n bottom: 0;\n width: 1px;\n background: #f06;\n}\n\n.snap-guide-h {\n left: 0;\n right: 0;\n height: 1px;\n background: #f06;\n}\n\n.designer-pdf-area.panning,\n.designer-pdf-area.panning * {\n cursor: grab !important;\n user-select: none;\n}\n\n.designer-pdf-area.panning:active,\n.designer-pdf-area.panning:active * {\n cursor: grabbing !important;\n}\n\n.designer-pdf-area.panning .field-overlay {\n pointer-events: none;\n}\n\n.designer-pdf-area.panning .pdf-page {\n pointer-events: none;\n}\n\n.designer-panel-actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n border-bottom: 1px solid #e5e5e5;\n background: #fff;\n flex-shrink: 0;\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.designer-panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.6rem 0.75rem;\n border-bottom: 1px solid #e5e5e5;\n flex-shrink: 0;\n}\n\n.zoom-slider {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.zoom-slider button {\n width: 20px;\n height: 20px;\n padding: 0;\n border: 1px solid #ddd;\n border-radius: 3px;\n background: #fff;\n cursor: pointer;\n font-size: 0.75rem;\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.zoom-slider button:hover:not(:disabled) { background: #f0f0f0; }\n.zoom-slider button:disabled { opacity: 0.3; cursor: default; }\n\n.zoom-slider input[type=\"range\"] {\n width: 60px;\n height: 3px;\n accent-color: #666;\n cursor: pointer;\n}\n\n.zoom-dropdown-wrapper {\n position: relative;\n}\n\n.zoom-dropdown {\n appearance: none;\n border: none;\n background: none;\n font-size: 0.65rem;\n color: #666;\n cursor: pointer;\n padding: 0.1rem 0.1rem;\n min-width: 36px;\n text-align: right;\n}\n\n.zoom-dropdown:hover {\n color: #333;\n}\n\n.zoom-dropdown:focus {\n outline: none;\n}\n\n.align-buttons {\n display: flex;\n gap: 0.25rem;\n}\n\n.align-buttons button {\n flex: 1;\n padding: 0.3rem;\n border: 1px solid #ddd;\n border-radius: 3px;\n background: #fff;\n cursor: pointer;\n font-size: 0.85rem;\n line-height: 1;\n}\n\n.align-buttons button:hover {\n background: #f0f0f0;\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.field-list-item.active {\n flex-wrap: wrap;\n}\n\n.field-list-input {\n width: 100%;\n margin-top: 0.3rem;\n padding: 0.3rem 0.4rem;\n border: 1px solid #ddd;\n border-radius: 3px;\n font-size: 0.8rem;\n outline: none;\n}\n\n.field-list-input:focus {\n border-color: #6366f1;\n}\n\n.field-list-checkbox {\n margin-top: 0.2rem;\n width: 100%;\n display: flex;\n align-items: center;\n gap: 0.3rem;\n font-size: 0.8rem;\n cursor: pointer;\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-font-size {\n display: flex;\n align-items: center;\n gap: 0.35rem;\n margin-top: 0.4rem;\n font-size: 0.8rem;\n color: #666;\n}\n\n.signer-font-size label {\n white-space: nowrap;\n}\n\n.signer-font-size input {\n width: 50px;\n padding: 0.2rem 0.3rem;\n border: 1px solid #ddd;\n border-radius: 3px;\n font-size: 0.8rem;\n text-align: center;\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 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-progress.clickable {\n cursor: pointer;\n}\n\n.field-navigator-progress.clickable:hover {\n color: #555;\n}\n\n.field-navigator-toggle {\n margin-left: 0.3rem;\n font-size: 0.6rem;\n}\n\n.incomplete-fields-list {\n display: flex;\n flex-direction: column;\n max-height: 150px;\n overflow-y: auto;\n border: 1px solid #eee;\n border-radius: 4px;\n background: #fafafa;\n}\n\n.incomplete-field-item {\n padding: 0.4rem 0.6rem;\n border: none;\n background: none;\n text-align: left;\n font-size: 0.8rem;\n color: #c44;\n cursor: pointer;\n}\n\n.incomplete-field-item:hover {\n background: #fff0f0;\n}\n\n.incomplete-field-item:not(:last-child) {\n border-bottom: 1px solid #f0f0f0;\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.nav-btn-complete {\n background: #111;\n color: #fff;\n border-color: #111;\n font-weight: 500;\n}\n\n.nav-btn-complete:hover:not(:disabled) { background: #333; }\n\n.field-navigator-position {\n font-size: 0.85rem;\n color: #888;\n min-width: 50px;\n text-align: center;\n}\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\n/* ── Signer Panel Structure ──────────────── */\n\n.signer-panel-header {\n border-bottom: 1px solid #e5e5e5;\n padding: 0.75rem;\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-shrink: 0;\n}\n\n.signer-panel-body {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n.signer-panel-footer {\n margin-top: auto;\n flex-shrink: 0;\n}\n\n.signer-role-indicator {\n display: flex;\n flex-direction: column;\n gap: 0.1rem;\n font-size: 0.95rem;\n color: #333;\n}\n\n.signer-role-indicator-label {\n font-size: 0.65rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: #999;\n font-weight: 500;\n}\n\n.signer-step-badge {\n font-size: 0.7rem;\n color: #888;\n background: #f0f0f0;\n padding: 0.2rem 0.5rem;\n border-radius: 10px;\n white-space: nowrap;\n}\n\n/* ── Locked fields ───────────────────────── */\n\n.field-overlay.locked {\n border-style: dashed !important;\n opacity: 0.6;\n}\n\n.field-overlay.locked::after {\n content: '';\n position: absolute;\n inset: 0;\n background: repeating-linear-gradient(\n -45deg,\n transparent,\n transparent 4px,\n rgba(0,0,0,0.06) 4px,\n rgba(0,0,0,0.06) 5px\n );\n pointer-events: none;\n border-radius: 2px;\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
|
@@ -22,6 +22,10 @@ interface FormField {
|
|
|
22
22
|
inkColor?: string;
|
|
23
23
|
letterSpacing?: number;
|
|
24
24
|
lineHeight?: number;
|
|
25
|
+
bold?: boolean;
|
|
26
|
+
italic?: boolean;
|
|
27
|
+
underline?: boolean;
|
|
28
|
+
strikethrough?: boolean;
|
|
25
29
|
minLength?: number;
|
|
26
30
|
maxLength?: number;
|
|
27
31
|
fontFamily?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,10 @@ interface FormField {
|
|
|
22
22
|
inkColor?: string;
|
|
23
23
|
letterSpacing?: number;
|
|
24
24
|
lineHeight?: number;
|
|
25
|
+
bold?: boolean;
|
|
26
|
+
italic?: boolean;
|
|
27
|
+
underline?: boolean;
|
|
28
|
+
strikethrough?: boolean;
|
|
25
29
|
minLength?: number;
|
|
26
30
|
maxLength?: number;
|
|
27
31
|
fontFamily?: string;
|
package/dist/index.js
CHANGED
|
@@ -127,6 +127,17 @@ var CSS_FONT_MAP = {
|
|
|
127
127
|
function getCssFontFamily(fontFamily) {
|
|
128
128
|
return fontFamily ? CSS_FONT_MAP[fontFamily] : void 0;
|
|
129
129
|
}
|
|
130
|
+
function getCssTextStyle(field) {
|
|
131
|
+
const decorations = [];
|
|
132
|
+
if (field.underline) decorations.push("underline");
|
|
133
|
+
if (field.strikethrough) decorations.push("line-through");
|
|
134
|
+
return {
|
|
135
|
+
fontFamily: getCssFontFamily(field.fontFamily),
|
|
136
|
+
fontWeight: field.bold ? "bold" : void 0,
|
|
137
|
+
fontStyle: field.italic ? "italic" : void 0,
|
|
138
|
+
textDecorationLine: decorations.length ? decorations.join(" ") : void 0
|
|
139
|
+
};
|
|
140
|
+
}
|
|
130
141
|
function sortFieldsByPosition(fields) {
|
|
131
142
|
return [...fields].sort((a, b) => {
|
|
132
143
|
if (a.page !== b.page) return a.page - b.page;
|
|
@@ -782,6 +793,15 @@ function FieldPropertyPanel({ field, signerRoles, onUpdate, onDelete, prefillCon
|
|
|
782
793
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("label", { children: "Font Size (pt)" }),
|
|
783
794
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("input", { type: "number", min: "6", max: "72", value: field.fontSize, onChange: (e) => onUpdate(field.id, { fontSize: Number(e.target.value) }) })
|
|
784
795
|
] }),
|
|
796
|
+
isText && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "panel-field", children: [
|
|
797
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("label", { children: "Formatting" }),
|
|
798
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "text-format-buttons", children: [
|
|
799
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", className: `text-format-btn ${field.bold ? "active" : ""}`, style: { fontWeight: "bold" }, title: "Bold", onClick: () => onUpdate(field.id, { bold: !field.bold }), children: "B" }),
|
|
800
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", className: `text-format-btn ${field.italic ? "active" : ""}`, style: { fontStyle: "italic" }, title: "Italic", onClick: () => onUpdate(field.id, { italic: !field.italic }), children: "I" }),
|
|
801
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", className: `text-format-btn ${field.underline ? "active" : ""}`, style: { textDecorationLine: "underline" }, title: "Underline", onClick: () => onUpdate(field.id, { underline: !field.underline }), children: "U" }),
|
|
802
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", className: `text-format-btn ${field.strikethrough ? "active" : ""}`, style: { textDecorationLine: "line-through" }, title: "Strikethrough", onClick: () => onUpdate(field.id, { strikethrough: !field.strikethrough }), children: "S" })
|
|
803
|
+
] })
|
|
804
|
+
] }),
|
|
785
805
|
isText && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "panel-field-row", children: [
|
|
786
806
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "panel-field panel-field-half", children: [
|
|
787
807
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("label", { children: "Letter Spacing" }),
|
|
@@ -854,6 +874,10 @@ function BulkPropertyPanel({ fields, signerRoles, onUpdate, onAlign, onDelete })
|
|
|
854
874
|
const sharedInkColor = sharedValue(fields.map((f) => f.inkColor || "#000000"));
|
|
855
875
|
const sharedLetterSpacing = sharedValue(fields.map((f) => f.letterSpacing || 0));
|
|
856
876
|
const sharedLineHeight = sharedValue(fields.map((f) => f.lineHeight || 1.2));
|
|
877
|
+
const allBold = fields.every((f) => f.bold);
|
|
878
|
+
const allItalic = fields.every((f) => f.italic);
|
|
879
|
+
const allUnderline = fields.every((f) => f.underline);
|
|
880
|
+
const allStrike = fields.every((f) => f.strikethrough);
|
|
857
881
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "field-property-panel", children: [
|
|
858
882
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "panel-header", children: [
|
|
859
883
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("h3", { children: [
|
|
@@ -968,6 +992,15 @@ function BulkPropertyPanel({ fields, signerRoles, onUpdate, onAlign, onDelete })
|
|
|
968
992
|
}
|
|
969
993
|
)
|
|
970
994
|
] }),
|
|
995
|
+
hasText && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "panel-field", children: [
|
|
996
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("label", { children: "Formatting" }),
|
|
997
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "text-format-buttons", children: [
|
|
998
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", className: `text-format-btn ${allBold ? "active" : ""}`, style: { fontWeight: "bold" }, title: "Bold", onClick: () => onUpdate({ bold: !allBold }), children: "B" }),
|
|
999
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", className: `text-format-btn ${allItalic ? "active" : ""}`, style: { fontStyle: "italic" }, title: "Italic", onClick: () => onUpdate({ italic: !allItalic }), children: "I" }),
|
|
1000
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", className: `text-format-btn ${allUnderline ? "active" : ""}`, style: { textDecorationLine: "underline" }, title: "Underline", onClick: () => onUpdate({ underline: !allUnderline }), children: "U" }),
|
|
1001
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", className: `text-format-btn ${allStrike ? "active" : ""}`, style: { textDecorationLine: "line-through" }, title: "Strikethrough", onClick: () => onUpdate({ strikethrough: !allStrike }), children: "S" })
|
|
1002
|
+
] })
|
|
1003
|
+
] }),
|
|
971
1004
|
hasText && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "panel-field-row", children: [
|
|
972
1005
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "panel-field panel-field-half", children: [
|
|
973
1006
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("label", { children: "Letter Spacing" }),
|
|
@@ -1750,7 +1783,6 @@ function DesignerView({
|
|
|
1750
1783
|
}
|
|
1751
1784
|
}
|
|
1752
1785
|
const inkColor = field.inkColor || "#000000";
|
|
1753
|
-
const cssFontFamily = getCssFontFamily(field.fontFamily);
|
|
1754
1786
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
1755
1787
|
"div",
|
|
1756
1788
|
{
|
|
@@ -1758,9 +1790,9 @@ function DesignerView({
|
|
|
1758
1790
|
style: {
|
|
1759
1791
|
color: field.value ? inkColor : void 0,
|
|
1760
1792
|
fontSize: `${field.fontSize}pt`,
|
|
1761
|
-
fontFamily: cssFontFamily,
|
|
1762
1793
|
letterSpacing: field.letterSpacing ? `${field.letterSpacing}pt` : void 0,
|
|
1763
|
-
lineHeight: field.lineHeight ? `${field.lineHeight}` : void 0
|
|
1794
|
+
lineHeight: field.lineHeight ? `${field.lineHeight}` : void 0,
|
|
1795
|
+
...getCssTextStyle(field)
|
|
1764
1796
|
},
|
|
1765
1797
|
children: field.value || field.placeholder
|
|
1766
1798
|
}
|
|
@@ -1775,7 +1807,6 @@ function DesignerView({
|
|
|
1775
1807
|
] }) : null;
|
|
1776
1808
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "designer-layout", children: [
|
|
1777
1809
|
headerPortalRef?.current && headerButtons && (0, import_react_dom.createPortal)(headerButtons, headerPortalRef.current),
|
|
1778
|
-
!hideHeader && !headerPortalRef && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "designer-header", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "designer-header-right", children: headerButtons }) }),
|
|
1779
1810
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "designer-body", children: [
|
|
1780
1811
|
pages.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "designer-palette", children: [
|
|
1781
1812
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "palette-heading", children: "New Field Role" }),
|
|
@@ -1889,6 +1920,7 @@ function DesignerView({
|
|
|
1889
1920
|
pages.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
|
|
1890
1921
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "panel-resize-handle", onMouseDown: handleResizeStart }),
|
|
1891
1922
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "designer-panel", style: { width: panelWidth }, children: [
|
|
1923
|
+
!hideHeader && !headerPortalRef && headerButtons && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "designer-panel-actions", children: headerButtons }),
|
|
1892
1924
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "designer-panel-header", children: [
|
|
1893
1925
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "signer-role-indicator", children: [
|
|
1894
1926
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "signer-role-indicator-label", children: "Editing as" }),
|
|
@@ -2217,11 +2249,19 @@ function resolveAllFormulas(fields, customTransforms) {
|
|
|
2217
2249
|
}
|
|
2218
2250
|
|
|
2219
2251
|
// src/utils/pdfFiller.ts
|
|
2220
|
-
var
|
|
2221
|
-
Helvetica: import_pdf_lib.StandardFonts.Helvetica,
|
|
2222
|
-
Courier: import_pdf_lib.StandardFonts.Courier,
|
|
2223
|
-
TimesRoman: import_pdf_lib.StandardFonts.TimesRoman
|
|
2252
|
+
var FONT_VARIANTS = {
|
|
2253
|
+
Helvetica: [import_pdf_lib.StandardFonts.Helvetica, import_pdf_lib.StandardFonts.HelveticaBold, import_pdf_lib.StandardFonts.HelveticaOblique, import_pdf_lib.StandardFonts.HelveticaBoldOblique],
|
|
2254
|
+
Courier: [import_pdf_lib.StandardFonts.Courier, import_pdf_lib.StandardFonts.CourierBold, import_pdf_lib.StandardFonts.CourierOblique, import_pdf_lib.StandardFonts.CourierBoldOblique],
|
|
2255
|
+
TimesRoman: [import_pdf_lib.StandardFonts.TimesRoman, import_pdf_lib.StandardFonts.TimesRomanBold, import_pdf_lib.StandardFonts.TimesRomanItalic, import_pdf_lib.StandardFonts.TimesRomanBoldItalic]
|
|
2224
2256
|
};
|
|
2257
|
+
function resolveStandardFont(family, bold, italic) {
|
|
2258
|
+
const variants = FONT_VARIANTS[family] || FONT_VARIANTS.Helvetica;
|
|
2259
|
+
const idx = (bold ? 1 : 0) + (italic ? 2 : 0);
|
|
2260
|
+
return variants[idx];
|
|
2261
|
+
}
|
|
2262
|
+
function fontKey(family, bold, italic) {
|
|
2263
|
+
return `${family}|${bold ? "b" : ""}|${italic ? "i" : ""}`;
|
|
2264
|
+
}
|
|
2225
2265
|
var US_LETTER = [612, 792];
|
|
2226
2266
|
var US_LEGAL = [612, 1008];
|
|
2227
2267
|
var A4 = [595.28, 841.89];
|
|
@@ -2296,7 +2336,7 @@ async function renderFieldsOnPages(pages, fields, getFont, getSignature) {
|
|
|
2296
2336
|
page.drawImage(img, { x, y, width: w, height: h });
|
|
2297
2337
|
}
|
|
2298
2338
|
} else {
|
|
2299
|
-
const font = await getFont(field.fontFamily || "Helvetica");
|
|
2339
|
+
const font = await getFont(field.fontFamily || "Helvetica", field.bold, field.italic);
|
|
2300
2340
|
const spacing = field.letterSpacing || 0;
|
|
2301
2341
|
const textWidthAtSize = (text, size) => font.widthOfTextAtSize(text, size) + spacing * (text.length - 1);
|
|
2302
2342
|
let fontSize = field.autoShrink ? Math.min(field.fontSize, h * 0.7) : field.fontSize;
|
|
@@ -2307,13 +2347,14 @@ async function renderFieldsOnPages(pages, fields, getFont, getSignature) {
|
|
|
2307
2347
|
fontSize -= 0.5;
|
|
2308
2348
|
}
|
|
2309
2349
|
}
|
|
2350
|
+
const textX = x + 2;
|
|
2351
|
+
const baselineY = y + h * 0.3;
|
|
2310
2352
|
if (spacing > 0) {
|
|
2311
|
-
let cx =
|
|
2312
|
-
const cy = y + h * 0.3;
|
|
2353
|
+
let cx = textX;
|
|
2313
2354
|
for (const char of field.value) {
|
|
2314
2355
|
page.drawText(char, {
|
|
2315
2356
|
x: cx,
|
|
2316
|
-
y:
|
|
2357
|
+
y: baselineY,
|
|
2317
2358
|
size: fontSize,
|
|
2318
2359
|
font,
|
|
2319
2360
|
color: inkColor
|
|
@@ -2322,13 +2363,35 @@ async function renderFieldsOnPages(pages, fields, getFont, getSignature) {
|
|
|
2322
2363
|
}
|
|
2323
2364
|
} else {
|
|
2324
2365
|
page.drawText(field.value, {
|
|
2325
|
-
x:
|
|
2326
|
-
y:
|
|
2366
|
+
x: textX,
|
|
2367
|
+
y: baselineY,
|
|
2327
2368
|
size: fontSize,
|
|
2328
2369
|
font,
|
|
2329
2370
|
color: inkColor
|
|
2330
2371
|
});
|
|
2331
2372
|
}
|
|
2373
|
+
if (field.underline || field.strikethrough) {
|
|
2374
|
+
const textWidth = textWidthAtSize(field.value, fontSize);
|
|
2375
|
+
const lineThickness = Math.max(0.5, fontSize * 0.06);
|
|
2376
|
+
if (field.underline) {
|
|
2377
|
+
const uy = baselineY - fontSize * 0.12;
|
|
2378
|
+
page.drawLine({
|
|
2379
|
+
start: { x: textX, y: uy },
|
|
2380
|
+
end: { x: textX + textWidth, y: uy },
|
|
2381
|
+
thickness: lineThickness,
|
|
2382
|
+
color: inkColor
|
|
2383
|
+
});
|
|
2384
|
+
}
|
|
2385
|
+
if (field.strikethrough) {
|
|
2386
|
+
const sy = baselineY + fontSize * 0.3;
|
|
2387
|
+
page.drawLine({
|
|
2388
|
+
start: { x: textX, y: sy },
|
|
2389
|
+
end: { x: textX + textWidth, y: sy },
|
|
2390
|
+
thickness: lineThickness,
|
|
2391
|
+
color: inkColor
|
|
2392
|
+
});
|
|
2393
|
+
}
|
|
2394
|
+
}
|
|
2332
2395
|
}
|
|
2333
2396
|
}
|
|
2334
2397
|
}
|
|
@@ -2342,18 +2405,19 @@ async function createPdfBuilder(defaults = {}) {
|
|
|
2342
2405
|
const fontCache = /* @__PURE__ */ new Map();
|
|
2343
2406
|
const embeddedPagesByUrl = /* @__PURE__ */ new Map();
|
|
2344
2407
|
const signatureCache = /* @__PURE__ */ new Map();
|
|
2345
|
-
async function getFont(family) {
|
|
2346
|
-
|
|
2408
|
+
async function getFont(family, bold, italic) {
|
|
2409
|
+
const key = fontKey(family, bold, italic);
|
|
2410
|
+
let f = fontCache.get(key);
|
|
2347
2411
|
if (!f) {
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
fontCache.set(family, f);
|
|
2412
|
+
f = await doc.embedFont(resolveStandardFont(family, bold, italic));
|
|
2413
|
+
fontCache.set(key, f);
|
|
2351
2414
|
}
|
|
2352
2415
|
return f;
|
|
2353
2416
|
}
|
|
2354
2417
|
async function ensureFonts(fields) {
|
|
2355
|
-
const keys =
|
|
2356
|
-
for (const
|
|
2418
|
+
const keys = /* @__PURE__ */ new Map();
|
|
2419
|
+
for (const f of fields) keys.set(fontKey(f.fontFamily || "Helvetica", f.bold, f.italic), f);
|
|
2420
|
+
for (const f of keys.values()) await getFont(f.fontFamily || "Helvetica", f.bold, f.italic);
|
|
2357
2421
|
}
|
|
2358
2422
|
async function embedSource(source) {
|
|
2359
2423
|
if (typeof source === "string") {
|
|
@@ -2830,7 +2894,7 @@ ${row.join(",")}`, "csv");
|
|
|
2830
2894
|
fontSize: `${field.fontSize}pt`,
|
|
2831
2895
|
letterSpacing: field.letterSpacing ? `${field.letterSpacing}pt` : void 0,
|
|
2832
2896
|
lineHeight: field.lineHeight ? `${field.lineHeight}` : void 0,
|
|
2833
|
-
|
|
2897
|
+
...getCssTextStyle(field)
|
|
2834
2898
|
};
|
|
2835
2899
|
if (field.type === "dropdown" || field.options && field.options.length > 0) {
|
|
2836
2900
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|