@unlev/exeq 0.4.2 → 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 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;
@@ -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-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":[]}
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
  }
@@ -2217,11 +2249,19 @@ function resolveAllFormulas(fields, customTransforms) {
2217
2249
  }
2218
2250
 
2219
2251
  // src/utils/pdfFiller.ts
2220
- var FONT_MAP = {
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 = x + 2;
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: cy,
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: x + 2,
2326
- y: y + h * 0.3,
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
- let f = fontCache.get(family);
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
- const stdName = FONT_MAP[family] || import_pdf_lib.StandardFonts.Helvetica;
2349
- f = await doc.embedFont(stdName);
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 = new Set(fields.map((f) => f.fontFamily || "Helvetica"));
2356
- for (const k of keys) await getFont(k);
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
- fontFamily: getCssFontFamily(field.fontFamily)
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)(