@signature.digital/catalog 1.3.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/.smartconfig.json +82 -0
- package/dist_bundle/bundle.js +6077 -0
- package/dist_bundle/bundle.js.map +7 -0
- package/dist_bundle/index.html +28 -0
- package/dist_ts_web/00_commitinfo_data.d.ts +8 -0
- package/dist_ts_web/00_commitinfo_data.js +9 -0
- package/dist_ts_web/elements/index.d.ts +3 -0
- package/dist_ts_web/elements/index.js +6 -0
- package/dist_ts_web/elements/sdig-signbox/index.d.ts +1 -0
- package/dist_ts_web/elements/sdig-signbox/index.js +2 -0
- package/dist_ts_web/elements/sdig-signbox/sdig-signbox.d.ts +13 -0
- package/dist_ts_web/elements/sdig-signbox/sdig-signbox.js +153 -0
- package/dist_ts_web/elements/sdig-signpad/index.d.ts +1 -0
- package/dist_ts_web/elements/sdig-signpad/index.js +2 -0
- package/dist_ts_web/elements/sdig-signpad/sdig-signpad.d.ts +22 -0
- package/dist_ts_web/elements/sdig-signpad/sdig-signpad.js +149 -0
- package/dist_ts_web/elements/sdig-workspace/index.d.ts +8 -0
- package/dist_ts_web/elements/sdig-workspace/index.js +9 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-audit.d.ts +12 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-audit.js +81 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-compose.d.ts +44 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-compose.js +418 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-developers.d.ts +12 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-developers.js +91 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-inbox.d.ts +19 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-inbox.js +181 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-placeholder.d.ts +14 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-placeholder.js +84 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-sign.d.ts +18 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-sign.js +152 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace.d.ts +31 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace.js +245 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace.shared.d.ts +53 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace.shared.js +385 -0
- package/dist_ts_web/index.d.ts +1 -0
- package/dist_ts_web/index.js +2 -0
- package/dist_ts_web/pages/index.d.ts +2 -0
- package/dist_ts_web/pages/index.js +3 -0
- package/dist_ts_web/pages/page1.d.ts +1 -0
- package/dist_ts_web/pages/page1.js +5 -0
- package/dist_ts_web/pages/page2.d.ts +1 -0
- package/dist_ts_web/pages/page2.js +5 -0
- package/dist_ts_web/plugins.d.ts +3 -0
- package/dist_ts_web/plugins.js +5 -0
- package/dist_watch/bundle.js +135319 -0
- package/dist_watch/bundle.js.map +7 -0
- package/dist_watch/index.html +28 -0
- package/license +19 -0
- package/package.json +63 -0
- package/readme.hints.md +31 -0
- package/readme.md +172 -0
- package/ts_web/00_commitinfo_data.ts +8 -0
- package/ts_web/elements/index.ts +6 -0
- package/ts_web/elements/sdig-signbox/index.ts +1 -0
- package/ts_web/elements/sdig-signbox/sdig-signbox.ts +109 -0
- package/ts_web/elements/sdig-signpad/index.ts +1 -0
- package/ts_web/elements/sdig-signpad/sdig-signpad.ts +115 -0
- package/ts_web/elements/sdig-workspace/index.ts +8 -0
- package/ts_web/elements/sdig-workspace/sdig-workspace-audit.ts +37 -0
- package/ts_web/elements/sdig-workspace/sdig-workspace-compose.ts +369 -0
- package/ts_web/elements/sdig-workspace/sdig-workspace-developers.ts +47 -0
- package/ts_web/elements/sdig-workspace/sdig-workspace-inbox.ts +117 -0
- package/ts_web/elements/sdig-workspace/sdig-workspace-placeholder.ts +22 -0
- package/ts_web/elements/sdig-workspace/sdig-workspace-sign.ts +91 -0
- package/ts_web/elements/sdig-workspace/sdig-workspace.shared.ts +440 -0
- package/ts_web/elements/sdig-workspace/sdig-workspace.ts +175 -0
- package/ts_web/index.ts +1 -0
- package/ts_web/pages/index.ts +2 -0
- package/ts_web/pages/page1.ts +5 -0
- package/ts_web/pages/page2.ts +5 -0
- package/ts_web/plugins.ts +8 -0
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { DeesElement, state, html, customElement, css } from '@design.estate/dees-element';
|
|
36
|
+
import { actionButton, demoFields, demoRecipients, fakeDocument, icon, pill, topBar, workspaceBaseStyles, workspaceDemoFrame } from './sdig-workspace.shared.js';
|
|
37
|
+
const fieldDefinitions = [
|
|
38
|
+
{ type: 'signature', icon: 'sign', label: 'Signature', w: 200, h: 50 },
|
|
39
|
+
{ type: 'initials', icon: 'type', label: 'Initials', w: 120, h: 32 },
|
|
40
|
+
{ type: 'date', icon: 'calendar', label: 'Date', w: 120, h: 32 },
|
|
41
|
+
{ type: 'text', icon: 'type', label: 'Text field', w: 220, h: 32 },
|
|
42
|
+
{ type: 'check', icon: 'check', label: 'Checkbox', w: 120, h: 32 },
|
|
43
|
+
];
|
|
44
|
+
const resizeHandles = ['n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw'];
|
|
45
|
+
let SdigWorkspaceCompose = (() => {
|
|
46
|
+
let _classDecorators = [customElement('sdig-workspace-compose')];
|
|
47
|
+
let _classDescriptor;
|
|
48
|
+
let _classExtraInitializers = [];
|
|
49
|
+
let _classThis;
|
|
50
|
+
let _classSuper = DeesElement;
|
|
51
|
+
let _step_decorators;
|
|
52
|
+
let _step_initializers = [];
|
|
53
|
+
let _step_extraInitializers = [];
|
|
54
|
+
let _activeRecipient_decorators;
|
|
55
|
+
let _activeRecipient_initializers = [];
|
|
56
|
+
let _activeRecipient_extraInitializers = [];
|
|
57
|
+
let _draggedRecipientId_decorators;
|
|
58
|
+
let _draggedRecipientId_initializers = [];
|
|
59
|
+
let _draggedRecipientId_extraInitializers = [];
|
|
60
|
+
let _selectedFieldId_decorators;
|
|
61
|
+
let _selectedFieldId_initializers = [];
|
|
62
|
+
let _selectedFieldId_extraInitializers = [];
|
|
63
|
+
let _recipients_decorators;
|
|
64
|
+
let _recipients_initializers = [];
|
|
65
|
+
let _recipients_extraInitializers = [];
|
|
66
|
+
let _fields_decorators;
|
|
67
|
+
let _fields_initializers = [];
|
|
68
|
+
let _fields_extraInitializers = [];
|
|
69
|
+
var SdigWorkspaceCompose = class extends _classSuper {
|
|
70
|
+
static { _classThis = this; }
|
|
71
|
+
static {
|
|
72
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
73
|
+
_step_decorators = [state()];
|
|
74
|
+
_activeRecipient_decorators = [state()];
|
|
75
|
+
_draggedRecipientId_decorators = [state()];
|
|
76
|
+
_selectedFieldId_decorators = [state()];
|
|
77
|
+
_recipients_decorators = [state()];
|
|
78
|
+
_fields_decorators = [state()];
|
|
79
|
+
__esDecorate(this, null, _step_decorators, { kind: "accessor", name: "step", static: false, private: false, access: { has: obj => "step" in obj, get: obj => obj.step, set: (obj, value) => { obj.step = value; } }, metadata: _metadata }, _step_initializers, _step_extraInitializers);
|
|
80
|
+
__esDecorate(this, null, _activeRecipient_decorators, { kind: "accessor", name: "activeRecipient", static: false, private: false, access: { has: obj => "activeRecipient" in obj, get: obj => obj.activeRecipient, set: (obj, value) => { obj.activeRecipient = value; } }, metadata: _metadata }, _activeRecipient_initializers, _activeRecipient_extraInitializers);
|
|
81
|
+
__esDecorate(this, null, _draggedRecipientId_decorators, { kind: "accessor", name: "draggedRecipientId", static: false, private: false, access: { has: obj => "draggedRecipientId" in obj, get: obj => obj.draggedRecipientId, set: (obj, value) => { obj.draggedRecipientId = value; } }, metadata: _metadata }, _draggedRecipientId_initializers, _draggedRecipientId_extraInitializers);
|
|
82
|
+
__esDecorate(this, null, _selectedFieldId_decorators, { kind: "accessor", name: "selectedFieldId", static: false, private: false, access: { has: obj => "selectedFieldId" in obj, get: obj => obj.selectedFieldId, set: (obj, value) => { obj.selectedFieldId = value; } }, metadata: _metadata }, _selectedFieldId_initializers, _selectedFieldId_extraInitializers);
|
|
83
|
+
__esDecorate(this, null, _recipients_decorators, { kind: "accessor", name: "recipients", static: false, private: false, access: { has: obj => "recipients" in obj, get: obj => obj.recipients, set: (obj, value) => { obj.recipients = value; } }, metadata: _metadata }, _recipients_initializers, _recipients_extraInitializers);
|
|
84
|
+
__esDecorate(this, null, _fields_decorators, { kind: "accessor", name: "fields", static: false, private: false, access: { has: obj => "fields" in obj, get: obj => obj.fields, set: (obj, value) => { obj.fields = value; } }, metadata: _metadata }, _fields_initializers, _fields_extraInitializers);
|
|
85
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
86
|
+
SdigWorkspaceCompose = _classThis = _classDescriptor.value;
|
|
87
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
88
|
+
}
|
|
89
|
+
static demo = () => workspaceDemoFrame(html `<sdig-workspace-compose></sdig-workspace-compose>`);
|
|
90
|
+
static demoGroups = ['Signature Digital Workspace'];
|
|
91
|
+
#step_accessor_storage = __runInitializers(this, _step_initializers, 2);
|
|
92
|
+
get step() { return this.#step_accessor_storage; }
|
|
93
|
+
set step(value) { this.#step_accessor_storage = value; }
|
|
94
|
+
#activeRecipient_accessor_storage = (__runInitializers(this, _step_extraInitializers), __runInitializers(this, _activeRecipient_initializers, 0));
|
|
95
|
+
get activeRecipient() { return this.#activeRecipient_accessor_storage; }
|
|
96
|
+
set activeRecipient(value) { this.#activeRecipient_accessor_storage = value; }
|
|
97
|
+
#draggedRecipientId_accessor_storage = (__runInitializers(this, _activeRecipient_extraInitializers), __runInitializers(this, _draggedRecipientId_initializers, null));
|
|
98
|
+
get draggedRecipientId() { return this.#draggedRecipientId_accessor_storage; }
|
|
99
|
+
set draggedRecipientId(value) { this.#draggedRecipientId_accessor_storage = value; }
|
|
100
|
+
#selectedFieldId_accessor_storage = (__runInitializers(this, _draggedRecipientId_extraInitializers), __runInitializers(this, _selectedFieldId_initializers, null));
|
|
101
|
+
get selectedFieldId() { return this.#selectedFieldId_accessor_storage; }
|
|
102
|
+
set selectedFieldId(value) { this.#selectedFieldId_accessor_storage = value; }
|
|
103
|
+
#recipients_accessor_storage = (__runInitializers(this, _selectedFieldId_extraInitializers), __runInitializers(this, _recipients_initializers, [...demoRecipients]));
|
|
104
|
+
get recipients() { return this.#recipients_accessor_storage; }
|
|
105
|
+
set recipients(value) { this.#recipients_accessor_storage = value; }
|
|
106
|
+
#fields_accessor_storage = (__runInitializers(this, _recipients_extraInitializers), __runInitializers(this, _fields_initializers, [...demoFields]));
|
|
107
|
+
get fields() { return this.#fields_accessor_storage; }
|
|
108
|
+
set fields(value) { this.#fields_accessor_storage = value; }
|
|
109
|
+
draggedFieldDefinition = (__runInitializers(this, _fields_extraInitializers), null);
|
|
110
|
+
draggedFieldGrabOffset = null;
|
|
111
|
+
fieldInteraction = null;
|
|
112
|
+
static styles = [workspaceBaseStyles, css `
|
|
113
|
+
.stepper { height: 44px; flex-shrink: 0; border-bottom: 1px solid var(--border-subtle); display: flex; align-items: center; padding: 0 24px; gap: 24px; overflow-x: auto; }
|
|
114
|
+
.step { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--text-muted); white-space: nowrap; background: transparent; }
|
|
115
|
+
.step-number { width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--bg-input); border: 1px solid var(--border); color: var(--text-muted); font-size: 10px; font-weight: 700; }
|
|
116
|
+
.step.active { color: var(--text); font-weight: 500; }
|
|
117
|
+
.step.active .step-number { background: var(--accent); border-color: var(--accent); color: white; }
|
|
118
|
+
.step.done .step-number { background: var(--success); border-color: var(--success); color: white; }
|
|
119
|
+
.compose-workspace { flex: 1; display: flex; overflow: hidden; }
|
|
120
|
+
.palette { width: 260px; border-right: 1px solid var(--border-subtle); padding: 16px; background: var(--bg-el); overflow-y: auto; flex-shrink: 0; }
|
|
121
|
+
.right-panel { width: 280px; border-left: 1px solid var(--border-subtle); padding: 16px; background: var(--bg-el); overflow-y: auto; flex-shrink: 0; }
|
|
122
|
+
.field-tool { width: var(--tool-w); height: var(--tool-h); display: flex; align-items: center; gap: 8px; padding: 0 10px; background: color-mix(in srgb, var(--recipient-color) 8%, var(--bg-card)); border: 1.5px dashed var(--recipient-color); border-radius: 4px; font-size: 12px; color: var(--recipient-color); margin-bottom: 8px; cursor: grab; }
|
|
123
|
+
.field-tool:active { cursor: grabbing; }
|
|
124
|
+
.field-tool span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
125
|
+
.swatch { width: 10px; height: 10px; border-radius: 2px; background: var(--recipient-color, var(--accent)); flex-shrink: 0; }
|
|
126
|
+
.document-stage { flex: 1; overflow: auto; background: hsl(0 0% 8%); display: flex; flex-direction: column; align-items: center; padding: 32px; gap: 20px; }
|
|
127
|
+
:host-context(sdig-workspace[theme='light']) .document-stage { background: hsl(0 0% 92%); }
|
|
128
|
+
.recipient-line { cursor: grab; }
|
|
129
|
+
.recipient-line.dragging { opacity: 0.45; border-color: var(--accent); }
|
|
130
|
+
.page-drop-target { outline: 1px dashed transparent; outline-offset: 8px; }
|
|
131
|
+
.page-drop-target.drag-over { outline-color: var(--accent); }
|
|
132
|
+
.field-box { user-select: none; touch-action: none; }
|
|
133
|
+
.field-box.selected { z-index: 5; cursor: move; }
|
|
134
|
+
.field-content { width: 100%; height: 100%; display: flex; align-items: center; gap: 6px; pointer-events: none; overflow: hidden; }
|
|
135
|
+
.field-content span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
136
|
+
.resize-handle { position: absolute; z-index: 2; width: 9px; height: 9px; border-radius: 50%; background: var(--bg-card); border: 1.5px solid var(--field-color); box-shadow: 0 0 0 2px var(--bg-card); touch-action: none; }
|
|
137
|
+
.resize-handle.n { top: -6px; left: 50%; transform: translateX(-50%); cursor: ns-resize; }
|
|
138
|
+
.resize-handle.ne { top: -6px; right: -6px; cursor: nesw-resize; }
|
|
139
|
+
.resize-handle.e { right: -6px; top: 50%; transform: translateY(-50%); cursor: ew-resize; }
|
|
140
|
+
.resize-handle.se { right: -6px; bottom: -6px; cursor: nwse-resize; }
|
|
141
|
+
.resize-handle.s { bottom: -6px; left: 50%; transform: translateX(-50%); cursor: ns-resize; }
|
|
142
|
+
.resize-handle.sw { left: -6px; bottom: -6px; cursor: nesw-resize; }
|
|
143
|
+
.resize-handle.w { left: -6px; top: 50%; transform: translateY(-50%); cursor: ew-resize; }
|
|
144
|
+
.resize-handle.nw { left: -6px; top: -6px; cursor: nwse-resize; }
|
|
145
|
+
.field-editor { margin-top: 16px; padding: 12px; }
|
|
146
|
+
.field-editor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
|
|
147
|
+
.field-control { display: flex; flex-direction: column; gap: 4px; font-size: 10px; color: var(--text-muted); }
|
|
148
|
+
.field-control.full { grid-column: 1 / -1; }
|
|
149
|
+
.field-control input, .field-control select { width: 100%; height: 30px; padding: 0 8px; border: 1px solid var(--border); border-radius: 5px; background: var(--bg-input); color: var(--text); font-size: 12px; outline: none; }
|
|
150
|
+
.field-control input:focus, .field-control select:focus { border-color: var(--accent); }
|
|
151
|
+
@media (max-width: 920px) { .compose-workspace { flex-direction: column; overflow: auto; } .palette, .right-panel { width: 100%; border: 0; border-bottom: 1px solid var(--border-subtle); } .document-page { width: 560px; } }
|
|
152
|
+
`];
|
|
153
|
+
disconnectedCallback = async () => {
|
|
154
|
+
this.stopFieldInteraction();
|
|
155
|
+
await super.disconnectedCallback();
|
|
156
|
+
};
|
|
157
|
+
recipientColor(id) {
|
|
158
|
+
return this.recipients.find((recipient) => recipient.id === id)?.color || 'var(--accent)';
|
|
159
|
+
}
|
|
160
|
+
fieldIcon(type) {
|
|
161
|
+
if (type === 'signature')
|
|
162
|
+
return 'sign';
|
|
163
|
+
if (type === 'date')
|
|
164
|
+
return 'calendar';
|
|
165
|
+
if (type === 'check')
|
|
166
|
+
return 'check';
|
|
167
|
+
return 'type';
|
|
168
|
+
}
|
|
169
|
+
fieldDefinition(type) {
|
|
170
|
+
return fieldDefinitions.find((definition) => definition.type === type) || fieldDefinitions[0];
|
|
171
|
+
}
|
|
172
|
+
clamp(value, min, max) {
|
|
173
|
+
return Math.max(min, Math.min(max, value));
|
|
174
|
+
}
|
|
175
|
+
updateField(fieldId, patch) {
|
|
176
|
+
this.fields = this.fields.map((field) => field.id === fieldId ? { ...field, ...patch } : field);
|
|
177
|
+
}
|
|
178
|
+
updateSelectedField(patch) {
|
|
179
|
+
if (!this.selectedFieldId)
|
|
180
|
+
return;
|
|
181
|
+
this.updateField(this.selectedFieldId, patch);
|
|
182
|
+
}
|
|
183
|
+
updateSelectedFieldNumber(property, event) {
|
|
184
|
+
const value = Number(event.target.value);
|
|
185
|
+
if (!Number.isFinite(value))
|
|
186
|
+
return;
|
|
187
|
+
const min = property === 'w' || property === 'h' ? 16 : 0;
|
|
188
|
+
this.updateSelectedField({ [property]: Math.max(min, Math.round(value)) });
|
|
189
|
+
}
|
|
190
|
+
resetSelectedFieldSize(field) {
|
|
191
|
+
const definition = this.fieldDefinition(field.type);
|
|
192
|
+
this.updateSelectedField({ w: definition.w, h: definition.h });
|
|
193
|
+
}
|
|
194
|
+
removeSelectedField() {
|
|
195
|
+
if (!this.selectedFieldId)
|
|
196
|
+
return;
|
|
197
|
+
this.fields = this.fields.filter((field) => field.id !== this.selectedFieldId);
|
|
198
|
+
this.selectedFieldId = null;
|
|
199
|
+
}
|
|
200
|
+
handleDocumentClick = (event) => {
|
|
201
|
+
const target = event.target;
|
|
202
|
+
if (target?.closest('.field-box'))
|
|
203
|
+
return;
|
|
204
|
+
this.selectedFieldId = null;
|
|
205
|
+
};
|
|
206
|
+
startFieldInteraction(event, field, mode, handle) {
|
|
207
|
+
if (event.button !== 0)
|
|
208
|
+
return;
|
|
209
|
+
const page = this.shadowRoot?.querySelector('.document-page');
|
|
210
|
+
if (!page)
|
|
211
|
+
return;
|
|
212
|
+
const pageRect = page.getBoundingClientRect();
|
|
213
|
+
this.selectedFieldId = field.id;
|
|
214
|
+
this.fieldInteraction = {
|
|
215
|
+
fieldId: field.id,
|
|
216
|
+
mode,
|
|
217
|
+
handle,
|
|
218
|
+
startClientX: event.clientX,
|
|
219
|
+
startClientY: event.clientY,
|
|
220
|
+
startField: { ...field },
|
|
221
|
+
pageWidth: pageRect.width,
|
|
222
|
+
pageHeight: pageRect.height,
|
|
223
|
+
};
|
|
224
|
+
event.preventDefault();
|
|
225
|
+
event.stopPropagation();
|
|
226
|
+
window.addEventListener('pointermove', this.handleFieldPointerMove, { passive: false });
|
|
227
|
+
window.addEventListener('pointerup', this.stopFieldInteraction);
|
|
228
|
+
window.addEventListener('pointercancel', this.stopFieldInteraction);
|
|
229
|
+
}
|
|
230
|
+
startFieldMove(event, field) {
|
|
231
|
+
this.startFieldInteraction(event, field, 'move');
|
|
232
|
+
}
|
|
233
|
+
startFieldResize(event, field, handle) {
|
|
234
|
+
this.startFieldInteraction(event, field, 'resize', handle);
|
|
235
|
+
}
|
|
236
|
+
handleFieldPointerMove = (event) => {
|
|
237
|
+
if (!this.fieldInteraction)
|
|
238
|
+
return;
|
|
239
|
+
event.preventDefault();
|
|
240
|
+
const interaction = this.fieldInteraction;
|
|
241
|
+
const dx = event.clientX - interaction.startClientX;
|
|
242
|
+
const dy = event.clientY - interaction.startClientY;
|
|
243
|
+
const start = interaction.startField;
|
|
244
|
+
if (interaction.mode === 'move') {
|
|
245
|
+
this.updateField(interaction.fieldId, {
|
|
246
|
+
x: Math.round(this.clamp(start.x + dx, 0, interaction.pageWidth - start.w)),
|
|
247
|
+
y: Math.round(this.clamp(start.y + dy, 0, interaction.pageHeight - start.h)),
|
|
248
|
+
});
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const minWidth = 32;
|
|
252
|
+
const minHeight = 24;
|
|
253
|
+
let x = start.x;
|
|
254
|
+
let y = start.y;
|
|
255
|
+
let w = start.w;
|
|
256
|
+
let h = start.h;
|
|
257
|
+
const handle = interaction.handle || 'se';
|
|
258
|
+
if (handle.includes('e')) {
|
|
259
|
+
w = this.clamp(start.w + dx, minWidth, interaction.pageWidth - start.x);
|
|
260
|
+
}
|
|
261
|
+
if (handle.includes('s')) {
|
|
262
|
+
h = this.clamp(start.h + dy, minHeight, interaction.pageHeight - start.y);
|
|
263
|
+
}
|
|
264
|
+
if (handle.includes('w')) {
|
|
265
|
+
x = this.clamp(start.x + dx, 0, start.x + start.w - minWidth);
|
|
266
|
+
w = start.x + start.w - x;
|
|
267
|
+
}
|
|
268
|
+
if (handle.includes('n')) {
|
|
269
|
+
y = this.clamp(start.y + dy, 0, start.y + start.h - minHeight);
|
|
270
|
+
h = start.y + start.h - y;
|
|
271
|
+
}
|
|
272
|
+
this.updateField(interaction.fieldId, {
|
|
273
|
+
x: Math.round(x),
|
|
274
|
+
y: Math.round(y),
|
|
275
|
+
w: Math.round(w),
|
|
276
|
+
h: Math.round(h),
|
|
277
|
+
});
|
|
278
|
+
};
|
|
279
|
+
stopFieldInteraction = () => {
|
|
280
|
+
this.fieldInteraction = null;
|
|
281
|
+
window.removeEventListener('pointermove', this.handleFieldPointerMove);
|
|
282
|
+
window.removeEventListener('pointerup', this.stopFieldInteraction);
|
|
283
|
+
window.removeEventListener('pointercancel', this.stopFieldInteraction);
|
|
284
|
+
};
|
|
285
|
+
reorderRecipient(targetId) {
|
|
286
|
+
if (this.draggedRecipientId === null || this.draggedRecipientId === targetId)
|
|
287
|
+
return;
|
|
288
|
+
const next = [...this.recipients];
|
|
289
|
+
const fromIndex = next.findIndex((recipient) => recipient.id === this.draggedRecipientId);
|
|
290
|
+
const toIndex = next.findIndex((recipient) => recipient.id === targetId);
|
|
291
|
+
if (fromIndex === -1 || toIndex === -1)
|
|
292
|
+
return;
|
|
293
|
+
const [moved] = next.splice(fromIndex, 1);
|
|
294
|
+
next.splice(toIndex, 0, moved);
|
|
295
|
+
this.recipients = next.map((recipient, index) => ({ ...recipient, order: index + 1 }));
|
|
296
|
+
this.draggedRecipientId = null;
|
|
297
|
+
}
|
|
298
|
+
addFieldFromDrop(event) {
|
|
299
|
+
event.preventDefault();
|
|
300
|
+
const page = event.currentTarget;
|
|
301
|
+
page.classList.remove('drag-over');
|
|
302
|
+
const transferredType = event.dataTransfer?.getData('application/x-signature-field');
|
|
303
|
+
if (!this.draggedFieldDefinition && !transferredType)
|
|
304
|
+
return;
|
|
305
|
+
const definition = this.draggedFieldDefinition || this.fieldDefinition(transferredType);
|
|
306
|
+
const transferredOffset = event.dataTransfer?.getData('application/x-signature-field-offset');
|
|
307
|
+
const offset = this.draggedFieldGrabOffset || (transferredOffset ? JSON.parse(transferredOffset) : { x: definition.w / 2, y: definition.h / 2 });
|
|
308
|
+
const rect = page.getBoundingClientRect();
|
|
309
|
+
const x = Math.round(event.clientX - rect.left - offset.x);
|
|
310
|
+
const y = Math.round(event.clientY - rect.top - offset.y);
|
|
311
|
+
const nextField = {
|
|
312
|
+
id: `field_${Date.now()}`,
|
|
313
|
+
type: definition.type,
|
|
314
|
+
x: Math.max(0, Math.min(Math.max(0, rect.width - definition.w), x)),
|
|
315
|
+
y: Math.max(0, Math.min(Math.max(0, rect.height - definition.h), y)),
|
|
316
|
+
w: definition.w,
|
|
317
|
+
h: definition.h,
|
|
318
|
+
page: 1,
|
|
319
|
+
recipient: this.activeRecipient,
|
|
320
|
+
label: definition.label,
|
|
321
|
+
};
|
|
322
|
+
this.fields = [...this.fields, nextField];
|
|
323
|
+
this.selectedFieldId = nextField.id;
|
|
324
|
+
this.draggedFieldDefinition = null;
|
|
325
|
+
this.draggedFieldGrabOffset = null;
|
|
326
|
+
}
|
|
327
|
+
startFieldToolDrag(event, fieldType) {
|
|
328
|
+
const toolRect = event.currentTarget.getBoundingClientRect();
|
|
329
|
+
const offset = {
|
|
330
|
+
x: Math.round(event.clientX - toolRect.left),
|
|
331
|
+
y: Math.round(event.clientY - toolRect.top),
|
|
332
|
+
};
|
|
333
|
+
this.draggedFieldDefinition = fieldType;
|
|
334
|
+
this.draggedFieldGrabOffset = offset;
|
|
335
|
+
event.dataTransfer?.setData('application/x-signature-field', fieldType.type);
|
|
336
|
+
event.dataTransfer?.setData('application/x-signature-field-offset', JSON.stringify(offset));
|
|
337
|
+
if (event.dataTransfer)
|
|
338
|
+
event.dataTransfer.effectAllowed = 'copy';
|
|
339
|
+
}
|
|
340
|
+
endFieldToolDrag() {
|
|
341
|
+
this.draggedFieldDefinition = null;
|
|
342
|
+
this.draggedFieldGrabOffset = null;
|
|
343
|
+
}
|
|
344
|
+
renderFieldEditor(field) {
|
|
345
|
+
return html `
|
|
346
|
+
<div class="card field-editor">
|
|
347
|
+
<div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px;">
|
|
348
|
+
<div style="font-size: 11px; font-weight: 600;">Field editor</div>
|
|
349
|
+
${pill(this.fieldDefinition(field.type).label, 'info', true)}
|
|
350
|
+
</div>
|
|
351
|
+
<div class="field-editor-grid">
|
|
352
|
+
<label class="field-control full">Label<input .value=${field.label} @input=${(event) => this.updateSelectedField({ label: event.target.value })} /></label>
|
|
353
|
+
<label class="field-control full">Assigned signer<select .value=${String(field.recipient)} @change=${(event) => this.updateSelectedField({ recipient: Number(event.target.value) })}>${this.recipients.map((recipient) => html `<option value=${String(recipient.id)}>${recipient.order}. ${recipient.name}</option>`)}</select></label>
|
|
354
|
+
<label class="field-control">X<input type="number" min="0" .value=${String(field.x)} @input=${(event) => this.updateSelectedFieldNumber('x', event)} /></label>
|
|
355
|
+
<label class="field-control">Y<input type="number" min="0" .value=${String(field.y)} @input=${(event) => this.updateSelectedFieldNumber('y', event)} /></label>
|
|
356
|
+
<label class="field-control">Width<input type="number" min="16" .value=${String(field.w)} @input=${(event) => this.updateSelectedFieldNumber('w', event)} /></label>
|
|
357
|
+
<label class="field-control">Height<input type="number" min="16" .value=${String(field.h)} @input=${(event) => this.updateSelectedFieldNumber('h', event)} /></label>
|
|
358
|
+
</div>
|
|
359
|
+
<div style="display: flex; gap: 8px; margin-top: 12px;">
|
|
360
|
+
<button class="btn outline small" style="flex: 1;" @click=${() => this.resetSelectedFieldSize(field)}>Reset size</button>
|
|
361
|
+
<button class="btn ghost small" style="color: var(--error);" @click=${() => this.removeSelectedField()}>Delete</button>
|
|
362
|
+
</div>
|
|
363
|
+
</div>
|
|
364
|
+
`;
|
|
365
|
+
}
|
|
366
|
+
renderResizeHandles(field) {
|
|
367
|
+
return html `${resizeHandles.map((handle) => html `<span class="resize-handle ${handle}" @pointerdown=${(event) => this.startFieldResize(event, field, handle)}></span>`)}`;
|
|
368
|
+
}
|
|
369
|
+
renderStepper() {
|
|
370
|
+
const labels = ['Upload', 'Place fields', 'Recipients & routing', 'Review & send'];
|
|
371
|
+
return html `
|
|
372
|
+
<div class="stepper">
|
|
373
|
+
${labels.map((label, index) => {
|
|
374
|
+
const stepNumber = index + 1;
|
|
375
|
+
return html `<button class="step ${stepNumber === this.step ? 'active' : stepNumber < this.step ? 'done' : ''}" @click=${() => this.step = stepNumber}><span class="step-number">${stepNumber < this.step ? '✓' : stepNumber}</span><span>${label}</span>${index < labels.length - 1 ? html `<span style="width: 24px; height: 1px; background: var(--border); margin-left: 8px;"></span>` : ''}</button>`;
|
|
376
|
+
})}
|
|
377
|
+
<div style="flex: 1;"></div><span class="mono" style="font-size: 11px; color: var(--text-muted);">doc_8mK3pL · 14 pages · 2.4 MB</span>
|
|
378
|
+
</div>
|
|
379
|
+
`;
|
|
380
|
+
}
|
|
381
|
+
render() {
|
|
382
|
+
const selectedField = this.fields.find((field) => field.id === this.selectedFieldId);
|
|
383
|
+
return html `
|
|
384
|
+
${topBar({ breadcrumb: ['signature.digital', 'Inbox', 'Compose'], title: 'Master Services Agreement', subtitle: pill('Draft · auto-saved'), actions: html `${actionButton('Save draft', 'ghost')}${actionButton('Preview', 'outline', 'eye')}${actionButton('Send for signature', 'primary', 'send')}` })}
|
|
385
|
+
${this.renderStepper()}
|
|
386
|
+
<div class="compose-workspace">
|
|
387
|
+
<div class="palette">
|
|
388
|
+
<div class="label-upper">Drag onto document</div>
|
|
389
|
+
${fieldDefinitions.map((fieldType) => html `<div class="field-tool" style="--tool-w: ${fieldType.w}px; --tool-h: ${fieldType.h}px; --recipient-color: ${this.recipientColor(this.activeRecipient)};" draggable="true" @dragstart=${(event) => this.startFieldToolDrag(event, fieldType)} @dragend=${() => this.endFieldToolDrag()}>${icon(fieldType.icon, 14)}<span style="flex: 1;">${fieldType.label}</span></div>`)}
|
|
390
|
+
<div style="height: 1px; background: var(--border-subtle); margin: 20px 0 16px;"></div>
|
|
391
|
+
<div class="label-upper">Active for</div>
|
|
392
|
+
${this.recipients.map((recipient) => html `<div class="recipient-line ${this.activeRecipient === recipient.id ? 'active' : ''}" @click=${() => this.activeRecipient = recipient.id}><span class="swatch" style="--recipient-color: ${recipient.color};"></span><span style="flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">${recipient.name.split(' ')[0]}</span><span class="mono" style="font-size: 10px; color: var(--text-muted);">${this.fields.filter((field) => field.recipient === recipient.id).length}</span></div>`)}
|
|
393
|
+
</div>
|
|
394
|
+
<div class="document-stage">
|
|
395
|
+
<div class="document-page page-drop-target" @click=${this.handleDocumentClick} @dragover=${(event) => { event.preventDefault(); if (event.dataTransfer)
|
|
396
|
+
event.dataTransfer.dropEffect = 'copy'; event.currentTarget.classList.add('drag-over'); }} @dragleave=${(event) => event.currentTarget.classList.remove('drag-over')} @drop=${(event) => this.addFieldFromDrop(event)}>
|
|
397
|
+
${fakeDocument()}
|
|
398
|
+
${this.fields.map((field) => html `<div class="field-box ${this.selectedFieldId === field.id ? 'selected' : ''}" style="--x: ${field.x}px; --y: ${field.y}px; --w: ${field.w}px; --h: ${field.h}px; --field-color: ${this.recipientColor(field.recipient)};" @click=${() => this.selectedFieldId = field.id} @pointerdown=${(event) => this.startFieldMove(event, field)}><div class="field-content">${icon(this.fieldIcon(field.type), 12)}<span>${field.label}</span></div>${this.selectedFieldId === field.id ? this.renderResizeHandles(field) : ''}</div>`)}
|
|
399
|
+
<div class="mono" style="position: absolute; bottom: 12px; right: 16px; font-size: 9px; color: hsl(0 0% 60%);">Page 1 of 14</div>
|
|
400
|
+
</div>
|
|
401
|
+
<div style="display: flex; align-items: center; gap: 10px; font-size: 11px; color: var(--text-muted);">${actionButton('Prev', 'outline')}${html `<span class="mono">1 / 14</span>`}${actionButton('Next', 'outline')}</div>
|
|
402
|
+
</div>
|
|
403
|
+
<div class="right-panel">
|
|
404
|
+
<div class="label-upper">Signing order · drag to reorder</div>
|
|
405
|
+
${this.recipients.map((recipient) => html `<div class="recipient-line ${this.draggedRecipientId === recipient.id ? 'dragging' : ''}" draggable="true" @dragstart=${() => this.draggedRecipientId = recipient.id} @dragover=${(event) => event.preventDefault()} @drop=${() => this.reorderRecipient(recipient.id)} @dragend=${() => this.draggedRecipientId = null}><span class="mono" style="width: 14px; font-size: 10px; color: var(--text-muted);">${recipient.order}</span><span class="avatar" style="background: ${recipient.color};">${recipient.name.split(' ').map((part) => part[0]).slice(0, 2).join('')}</span><div style="flex: 1; min-width: 0;"><div style="font-size: 12px; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">${recipient.name}</div><div class="mono" style="font-size: 10px; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">${recipient.email}</div></div>${icon('more', 12)}</div>`)}
|
|
406
|
+
${selectedField ? this.renderFieldEditor(selectedField) : ''}
|
|
407
|
+
</div>
|
|
408
|
+
</div>
|
|
409
|
+
`;
|
|
410
|
+
}
|
|
411
|
+
static {
|
|
412
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
413
|
+
}
|
|
414
|
+
};
|
|
415
|
+
return SdigWorkspaceCompose = _classThis;
|
|
416
|
+
})();
|
|
417
|
+
export { SdigWorkspaceCompose };
|
|
418
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RpZy13b3Jrc3BhY2UtY29tcG9zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9zZGlnLXdvcmtzcGFjZS9zZGlnLXdvcmtzcGFjZS1jb21wb3NlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUF1QixHQUFHLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUF5QyxNQUFNLDRCQUE0QixDQUFDO0FBNkJ4TSxNQUFNLGdCQUFnQixHQUF1QjtJQUMzQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUN0RSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUNwRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUNoRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUNsRSxFQUFFLElBQUksRUFB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
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
declare global {
|
|
3
|
+
interface HTMLElementTagNameMap {
|
|
4
|
+
'sdig-workspace-developers': SdigWorkspaceDevelopers;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export declare class SdigWorkspaceDevelopers extends DeesElement {
|
|
8
|
+
static demo: () => TemplateResult;
|
|
9
|
+
static demoGroups: string[];
|
|
10
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
11
|
+
render(): TemplateResult;
|
|
12
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { DeesElement, html, customElement, css } from '@design.estate/dees-element';
|
|
36
|
+
import { actionButton, icon, pill, topBar, workspaceBaseStyles, workspaceDemoFrame } from './sdig-workspace.shared.js';
|
|
37
|
+
let SdigWorkspaceDevelopers = (() => {
|
|
38
|
+
let _classDecorators = [customElement('sdig-workspace-developers')];
|
|
39
|
+
let _classDescriptor;
|
|
40
|
+
let _classExtraInitializers = [];
|
|
41
|
+
let _classThis;
|
|
42
|
+
let _classSuper = DeesElement;
|
|
43
|
+
var SdigWorkspaceDevelopers = class extends _classSuper {
|
|
44
|
+
static { _classThis = this; }
|
|
45
|
+
static {
|
|
46
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
47
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
48
|
+
SdigWorkspaceDevelopers = _classThis = _classDescriptor.value;
|
|
49
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
50
|
+
}
|
|
51
|
+
static demo = () => workspaceDemoFrame(html `<sdig-workspace-developers></sdig-workspace-developers>`);
|
|
52
|
+
static demoGroups = ['Signature Digital Workspace'];
|
|
53
|
+
static styles = [workspaceBaseStyles, css `
|
|
54
|
+
.developer-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; }
|
|
55
|
+
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
|
|
56
|
+
.metric-card { padding: 14px; }
|
|
57
|
+
.metric-value { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 22px; font-weight: 600; letter-spacing: -0.02em; }
|
|
58
|
+
pre.code { margin: 0; padding: 16px; background: var(--bg-el); border: 1px solid var(--border-subtle); border-radius: 6px; font-size: 12px; line-height: 1.7; color: var(--text-sec); overflow: auto; }
|
|
59
|
+
@media (max-width: 920px) { .developer-grid, .stats-grid { grid-template-columns: 1fr; } }
|
|
60
|
+
`];
|
|
61
|
+
render() {
|
|
62
|
+
return html `
|
|
63
|
+
${topBar({ breadcrumb: ['signature.digital', 'Developers'], title: 'Developers', subtitle: pill('API · v0.42', 'info', true), actions: html `${actionButton('View on GitHub', 'outline', 'github')}${actionButton('New API key', 'primary', 'plus')}` })}
|
|
64
|
+
<div class="content-scroll developer-grid">
|
|
65
|
+
<div style="display: flex; flex-direction: column; gap: 16px;">
|
|
66
|
+
<div class="card" style="padding: 20px;"><div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px;"><span style="font-size: 14px; font-weight: 600;">Send a document in 8 lines</span><span class="pill">node</span></div><pre class="code mono">import { Signature } from '@signature.digital/sdk';
|
|
67
|
+
|
|
68
|
+
const sig = new Signature(process.env.SIGD_KEY);
|
|
69
|
+
|
|
70
|
+
await sig.documents.send({
|
|
71
|
+
file: './msa.pdf',
|
|
72
|
+
recipients: [{ name: 'Sarah Chen', email: 'sarah@acme.com' }],
|
|
73
|
+
fields: 'auto',
|
|
74
|
+
});</pre></div>
|
|
75
|
+
<div class="stats-grid">${[['Requests this month', '14,892', '+8.2%'], ['P95 latency', '142ms', '-12ms'], ['Error rate', '0.04%', '✓']].map((metric) => html `<div class="card metric-card"><div class="metric-value">${metric[1]}</div><div style="font-size: 10px; color: var(--text-muted); margin-top: 2px;">${metric[0]}</div><div class="mono" style="font-size: 10px; color: var(--success); margin-top: 6px;">${metric[2]}</div></div>`)}</div>
|
|
76
|
+
</div>
|
|
77
|
+
<div style="display: flex; flex-direction: column; gap: 16px;">
|
|
78
|
+
<div class="card" style="padding: 16px;"><div style="display: flex; align-items: center; gap: 8px; margin-bottom: 10px;">${icon('github', 14)}<span style="font-size: 12px; font-weight: 600;">signature-digital/core</span></div><div style="font-size: 11px; color: var(--text-muted); line-height: 1.5;">MIT-licensed. Self-host on your own infra, or use signature.digital cloud.</div></div>
|
|
79
|
+
<div class="card" style="padding: 16px;"><div class="label-upper">Self-host status</div>${[['Docker image', 'ghcr.io/signature-digital'], ['Helm chart', 'v0.42.1'], ['Postgres ≥ 14', 'required'], ['S3-compatible', 'optional']].map((row) => html `<div style="display: flex; justify-content: space-between; font-size: 11px; margin-bottom: 6px;"><span style="color: var(--text-muted);">${row[0]}</span><span class="mono" style="color: var(--text-sec);">${row[1]}</span></div>`)}</div>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
`;
|
|
83
|
+
}
|
|
84
|
+
static {
|
|
85
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
return SdigWorkspaceDevelopers = _classThis;
|
|
89
|
+
})();
|
|
90
|
+
export { SdigWorkspaceDevelopers };
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RpZy13b3Jrc3BhY2UtZGV2ZWxvcGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9zZGlnLXdvcmtzcGFjZS9zZGlnLXdvcmtzcGFjZS1kZXZlbG9wZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQXVCLEdBQUcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztJQVMxRyx1QkFBdUI7NEJBRG5DLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQzs7OztzQkFDRSxXQUFXO3VDQUFuQixTQUFRLFdBQVc7Ozs7WUFBeEQsNktBb0NDOzs7O1FBbkNRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFBLHlEQUF5RCxDQUFDLENBQUM7UUFDdEcsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFFcEQsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQTs7Ozs7OztHQU8vQyxDQUFDLENBQUM7UUFFSSxNQUFNO1lBQ1gsT0FBTyxJQUFJLENBQUE7UUFDUCxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFBLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxZQUFZLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUM7Ozs7Ozs7Ozs7OztvQ0FZek4sQ0FBQyxDQUFDLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUEsMkRBQTJELE1BQU0sQ0FBQyxDQUFDLENBQUMsa0ZBQWtGLE1BQU0sQ0FBQyxDQUFDLENBQUMsNEZBQTRGLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDOzs7cUlBR3BULElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29HQUNuRCxDQUFDLENBQUMsY0FBYyxFQUFFLDJCQUEyQixDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQSw0SUFBNEksR0FBRyxDQUFDLENBQUMsQ0FBQyw2REFBNkQsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7OztLQUc5ZCxDQUFDO1FBQ0osQ0FBQzs7WUFuQ1UsdURBQXVCOzs7OztTQUF2Qix1QkFBdUIifQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
import { type TDensity } from './sdig-workspace.shared.js';
|
|
3
|
+
declare global {
|
|
4
|
+
interface HTMLElementTagNameMap {
|
|
5
|
+
'sdig-workspace-inbox': SdigWorkspaceInbox;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export declare class SdigWorkspaceInbox extends DeesElement {
|
|
9
|
+
static demo: () => TemplateResult;
|
|
10
|
+
static demoGroups: string[];
|
|
11
|
+
accessor density: TDensity;
|
|
12
|
+
private accessor filter;
|
|
13
|
+
private accessor search;
|
|
14
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
15
|
+
private get filteredDocuments();
|
|
16
|
+
private statusPill;
|
|
17
|
+
private openDocument;
|
|
18
|
+
render(): TemplateResult;
|
|
19
|
+
}
|