@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,245 @@
|
|
|
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, property, state, html, customElement, css } from '@design.estate/dees-element';
|
|
36
|
+
import { icon } from './sdig-workspace.shared.js';
|
|
37
|
+
import './sdig-workspace-inbox.js';
|
|
38
|
+
import './sdig-workspace-compose.js';
|
|
39
|
+
import './sdig-workspace-sign.js';
|
|
40
|
+
import './sdig-workspace-audit.js';
|
|
41
|
+
import './sdig-workspace-developers.js';
|
|
42
|
+
import './sdig-workspace-placeholder.js';
|
|
43
|
+
let SdigWorkspace = (() => {
|
|
44
|
+
let _classDecorators = [customElement('sdig-workspace')];
|
|
45
|
+
let _classDescriptor;
|
|
46
|
+
let _classExtraInitializers = [];
|
|
47
|
+
let _classThis;
|
|
48
|
+
let _classSuper = DeesElement;
|
|
49
|
+
let _accent_decorators;
|
|
50
|
+
let _accent_initializers = [];
|
|
51
|
+
let _accent_extraInitializers = [];
|
|
52
|
+
let _density_decorators;
|
|
53
|
+
let _density_initializers = [];
|
|
54
|
+
let _density_extraInitializers = [];
|
|
55
|
+
let _theme_decorators;
|
|
56
|
+
let _theme_initializers = [];
|
|
57
|
+
let _theme_extraInitializers = [];
|
|
58
|
+
let _initialView_decorators;
|
|
59
|
+
let _initialView_initializers = [];
|
|
60
|
+
let _initialView_extraInitializers = [];
|
|
61
|
+
let _view_decorators;
|
|
62
|
+
let _view_initializers = [];
|
|
63
|
+
let _view_extraInitializers = [];
|
|
64
|
+
var SdigWorkspace = class extends _classSuper {
|
|
65
|
+
static { _classThis = this; }
|
|
66
|
+
static {
|
|
67
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
68
|
+
_accent_decorators = [property({ type: String })];
|
|
69
|
+
_density_decorators = [property({ type: String })];
|
|
70
|
+
_theme_decorators = [property({ type: String, reflect: true })];
|
|
71
|
+
_initialView_decorators = [property({ type: String })];
|
|
72
|
+
_view_decorators = [state()];
|
|
73
|
+
__esDecorate(this, null, _accent_decorators, { kind: "accessor", name: "accent", static: false, private: false, access: { has: obj => "accent" in obj, get: obj => obj.accent, set: (obj, value) => { obj.accent = value; } }, metadata: _metadata }, _accent_initializers, _accent_extraInitializers);
|
|
74
|
+
__esDecorate(this, null, _density_decorators, { kind: "accessor", name: "density", static: false, private: false, access: { has: obj => "density" in obj, get: obj => obj.density, set: (obj, value) => { obj.density = value; } }, metadata: _metadata }, _density_initializers, _density_extraInitializers);
|
|
75
|
+
__esDecorate(this, null, _theme_decorators, { kind: "accessor", name: "theme", static: false, private: false, access: { has: obj => "theme" in obj, get: obj => obj.theme, set: (obj, value) => { obj.theme = value; } }, metadata: _metadata }, _theme_initializers, _theme_extraInitializers);
|
|
76
|
+
__esDecorate(this, null, _initialView_decorators, { kind: "accessor", name: "initialView", static: false, private: false, access: { has: obj => "initialView" in obj, get: obj => obj.initialView, set: (obj, value) => { obj.initialView = value; } }, metadata: _metadata }, _initialView_initializers, _initialView_extraInitializers);
|
|
77
|
+
__esDecorate(this, null, _view_decorators, { kind: "accessor", name: "view", static: false, private: false, access: { has: obj => "view" in obj, get: obj => obj.view, set: (obj, value) => { obj.view = value; } }, metadata: _metadata }, _view_initializers, _view_extraInitializers);
|
|
78
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
79
|
+
SdigWorkspace = _classThis = _classDescriptor.value;
|
|
80
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
81
|
+
}
|
|
82
|
+
static demo = () => html `<sdig-workspace></sdig-workspace>`;
|
|
83
|
+
static demoGroups = ['Signature Digital Workspace'];
|
|
84
|
+
#accent_accessor_storage = __runInitializers(this, _accent_initializers, '#3b82f6');
|
|
85
|
+
get accent() { return this.#accent_accessor_storage; }
|
|
86
|
+
set accent(value) { this.#accent_accessor_storage = value; }
|
|
87
|
+
#density_accessor_storage = (__runInitializers(this, _accent_extraInitializers), __runInitializers(this, _density_initializers, 'comfortable'));
|
|
88
|
+
get density() { return this.#density_accessor_storage; }
|
|
89
|
+
set density(value) { this.#density_accessor_storage = value; }
|
|
90
|
+
#theme_accessor_storage = (__runInitializers(this, _density_extraInitializers), __runInitializers(this, _theme_initializers, 'dark'));
|
|
91
|
+
get theme() { return this.#theme_accessor_storage; }
|
|
92
|
+
set theme(value) { this.#theme_accessor_storage = value; }
|
|
93
|
+
#initialView_accessor_storage = (__runInitializers(this, _theme_extraInitializers), __runInitializers(this, _initialView_initializers, 'inbox'));
|
|
94
|
+
get initialView() { return this.#initialView_accessor_storage; }
|
|
95
|
+
set initialView(value) { this.#initialView_accessor_storage = value; }
|
|
96
|
+
#view_accessor_storage = (__runInitializers(this, _initialView_extraInitializers), __runInitializers(this, _view_initializers, 'inbox'));
|
|
97
|
+
get view() { return this.#view_accessor_storage; }
|
|
98
|
+
set view(value) { this.#view_accessor_storage = value; }
|
|
99
|
+
connectedCallback = (__runInitializers(this, _view_extraInitializers), async () => {
|
|
100
|
+
await super.connectedCallback();
|
|
101
|
+
this.view = this.initialView || 'inbox';
|
|
102
|
+
this.addEventListener('workspace-view-request', this.handleViewRequest);
|
|
103
|
+
});
|
|
104
|
+
disconnectedCallback = async () => {
|
|
105
|
+
this.removeEventListener('workspace-view-request', this.handleViewRequest);
|
|
106
|
+
await super.disconnectedCallback();
|
|
107
|
+
};
|
|
108
|
+
static styles = css `
|
|
109
|
+
:host {
|
|
110
|
+
display: block;
|
|
111
|
+
width: 100%;
|
|
112
|
+
height: 100%;
|
|
113
|
+
min-height: 720px;
|
|
114
|
+
--accent: #3b82f6;
|
|
115
|
+
--bg: hsl(0 0% 3.9%);
|
|
116
|
+
--bg-el: hsl(0 0% 6%);
|
|
117
|
+
--bg-card: hsl(0 0% 7%);
|
|
118
|
+
--bg-input: hsl(0 0% 9%);
|
|
119
|
+
--border: hsl(0 0% 14.9%);
|
|
120
|
+
--border-subtle: hsl(0 0% 11%);
|
|
121
|
+
--border-strong: hsl(0 0% 20%);
|
|
122
|
+
--text: hsl(0 0% 98%);
|
|
123
|
+
--text-sec: hsl(0 0% 63.9%);
|
|
124
|
+
--text-muted: hsl(0 0% 48%);
|
|
125
|
+
--text-dim: hsl(0 0% 32%);
|
|
126
|
+
--hover: rgba(255,255,255,0.06);
|
|
127
|
+
--hover-subtle: rgba(255,255,255,0.03);
|
|
128
|
+
--row-hover: rgba(255,255,255,0.025);
|
|
129
|
+
--success: #22c55e;
|
|
130
|
+
--warning: #f59e0b;
|
|
131
|
+
--error: #ef4444;
|
|
132
|
+
font-family: Geist, Inter, Roboto, -apple-system, BlinkMacSystemFont, sans-serif;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
:host([theme='light']) {
|
|
136
|
+
--bg: hsl(0 0% 99%);
|
|
137
|
+
--bg-el: hsl(0 0% 97%);
|
|
138
|
+
--bg-card: hsl(0 0% 100%);
|
|
139
|
+
--bg-input: hsl(0 0% 98%);
|
|
140
|
+
--border: hsl(0 0% 90%);
|
|
141
|
+
--border-subtle: hsl(0 0% 93%);
|
|
142
|
+
--border-strong: hsl(0 0% 80%);
|
|
143
|
+
--text: hsl(0 0% 9%);
|
|
144
|
+
--text-sec: hsl(0 0% 32%);
|
|
145
|
+
--text-muted: hsl(0 0% 45%);
|
|
146
|
+
--text-dim: hsl(0 0% 62%);
|
|
147
|
+
--hover: rgba(0,0,0,0.04);
|
|
148
|
+
--hover-subtle: rgba(0,0,0,0.02);
|
|
149
|
+
--row-hover: rgba(0,0,0,0.02);
|
|
150
|
+
--success: #16a34a;
|
|
151
|
+
--warning: #d97706;
|
|
152
|
+
--error: #dc2626;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
* { box-sizing: border-box; }
|
|
156
|
+
button { font: inherit; border: 0; cursor: pointer; }
|
|
157
|
+
.workspace { display: flex; height: 100%; min-height: 720px; background: var(--bg); color: var(--text); overflow: hidden; }
|
|
158
|
+
.sidebar { width: 220px; background: var(--bg); border-right: 1px solid var(--border-subtle); display: flex; flex-direction: column; flex-shrink: 0; height: 100%; }
|
|
159
|
+
.brand { padding: 14px 16px 12px; display: flex; align-items: center; gap: 8px; }
|
|
160
|
+
.logomark { width: 26px; height: 26px; border-radius: 6px; background: var(--bg-el); border: 1px solid var(--border-strong); display: inline-flex; align-items: center; justify-content: center; font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 13px; font-weight: 700; position: relative; }
|
|
161
|
+
.logomark::after, .wordmark::after { content: ''; display: inline-block; border-radius: 50%; background: var(--accent); }
|
|
162
|
+
.logomark::after { width: 4px; height: 4px; position: absolute; right: 5px; bottom: 5px; }
|
|
163
|
+
.wordmark { font-size: 13px; font-weight: 500; letter-spacing: -0.02em; white-space: nowrap; }
|
|
164
|
+
.wordmark .dot { color: var(--text-muted); }
|
|
165
|
+
.wordmark::after { width: 4px; height: 4px; margin-left: 3px; transform: translateY(-1px); }
|
|
166
|
+
.workspace-card { margin: 0 12px 8px; padding: 7px 10px; background: var(--bg-el); border: 1px solid var(--border-subtle); border-radius: 6px; display: flex; align-items: center; gap: 8px; }
|
|
167
|
+
.workspace-badge { width: 18px; height: 18px; border-radius: 4px; background: linear-gradient(135deg, var(--accent), hsl(280 70% 60%)); color: white; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
|
|
168
|
+
.workspace-name { font-size: 12px; font-weight: 500; line-height: 1.2; }
|
|
169
|
+
.workspace-plan { font-size: 10px; color: var(--text-muted); }
|
|
170
|
+
.nav-block { padding: 4px 0; }
|
|
171
|
+
.nav-item { display: flex; align-items: center; gap: 10px; padding: 7px 10px; margin: 1px 8px; border-radius: 6px; color: var(--text-muted); background: transparent; transition: all 0.1s ease; font-size: 13px; position: relative; width: calc(100% - 16px); text-align: left; }
|
|
172
|
+
.compact .nav-item { padding: 5px 10px; }
|
|
173
|
+
.nav-item:hover { background: var(--hover-subtle); color: var(--text-sec); }
|
|
174
|
+
.nav-item.active { background: var(--hover); color: var(--text); font-weight: 500; }
|
|
175
|
+
.nav-item.active::before { content: ''; position: absolute; left: -8px; width: 2px; height: 14px; border-radius: 2px; background: var(--accent); }
|
|
176
|
+
.nav-count { margin-left: auto; min-width: 18px; padding: 1px 6px; border-radius: 999px; background: var(--bg-el); color: var(--text-muted); font-size: 10px; text-align: center; }
|
|
177
|
+
.github-card { margin: 8px 12px; padding: 10px; border: 1px solid var(--border-subtle); border-radius: 6px; background: var(--bg-el); }
|
|
178
|
+
.sparkline { margin-top: 8px; display: flex; gap: 2px; align-items: flex-end; height: 18px; }
|
|
179
|
+
.sparkline span { flex: 1; background: var(--border-strong); border-radius: 1px; }
|
|
180
|
+
.sparkline span:nth-last-child(-n+4) { background: var(--accent); }
|
|
181
|
+
.user-card { padding: 8px 12px; border-top: 1px solid var(--border-subtle); display: flex; align-items: center; gap: 10px; }
|
|
182
|
+
.avatar { width: 26px; height: 26px; border-radius: 50%; background: var(--accent); color: white; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
|
|
183
|
+
.main { flex: 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
|
|
184
|
+
.view-host { flex: 1; min-height: 0; display: flex; flex-direction: column; }
|
|
185
|
+
.statusbar { height: 24px; flex-shrink: 0; border-top: 1px solid var(--border-subtle); background: var(--bg); display: flex; align-items: center; padding: 0 16px; gap: 16px; font-size: 10px; color: var(--text-dim); font-family: 'Intel One Mono', ui-monospace, SFMono-Regular, Menlo, monospace; }
|
|
186
|
+
@media (max-width: 920px) { .workspace { flex-direction: column; min-height: 100vh; } .sidebar { width: 100%; height: auto; border-right: 0; border-bottom: 1px solid var(--border-subtle); } .brand, .workspace-card, .github-card, .user-card { display: none; } .nav-block { display: flex; overflow-x: auto; padding: 8px; } .nav-item { width: auto; margin: 0 2px; } .statusbar { display: none; } }
|
|
187
|
+
`;
|
|
188
|
+
handleViewRequest = (event) => {
|
|
189
|
+
this.setView(event.detail.view);
|
|
190
|
+
};
|
|
191
|
+
setView(viewArg) {
|
|
192
|
+
this.view = viewArg;
|
|
193
|
+
this.dispatchEvent(new CustomEvent('view-change', { detail: { view: viewArg }, bubbles: true, composed: true }));
|
|
194
|
+
}
|
|
195
|
+
navButton(item) {
|
|
196
|
+
return html `<button class="nav-item ${this.view === item.id ? 'active' : ''}" @click=${() => this.setView(item.id)}>${icon(item.icon, 15)}<span>${item.label}</span>${item.count !== undefined ? html `<span class="nav-count">${item.count}</span>` : ''}</button>`;
|
|
197
|
+
}
|
|
198
|
+
renderSidebar() {
|
|
199
|
+
const navItems = [
|
|
200
|
+
{ id: 'inbox', label: 'Inbox', icon: 'inbox', count: 4 },
|
|
201
|
+
{ id: 'compose', label: 'Compose', icon: 'plus' },
|
|
202
|
+
{ id: 'templates', label: 'Templates', icon: 'folder', count: 12 },
|
|
203
|
+
{ id: 'audit', label: 'Audit Trail', icon: 'shield' },
|
|
204
|
+
{ id: 'developers', label: 'Developers', icon: 'code' },
|
|
205
|
+
];
|
|
206
|
+
const lowerItems = [
|
|
207
|
+
{ id: 'team', label: 'Team', icon: 'user' },
|
|
208
|
+
{ id: 'settings', label: 'Settings', icon: 'settings' },
|
|
209
|
+
];
|
|
210
|
+
return html `
|
|
211
|
+
<aside class="sidebar">
|
|
212
|
+
<div class="brand"><span class="logomark">s</span><span class="wordmark">signature<span class="dot">.</span>digital</span></div>
|
|
213
|
+
<div class="workspace-card"><span class="workspace-badge">L</span><div style="flex: 1; min-width: 0;"><div class="workspace-name">Lossless GmbH</div><div class="workspace-plan">Cloud · Pro</div></div>${icon('chevronDown', 12)}</div>
|
|
214
|
+
<div class="nav-block">${navItems.map((item) => this.navButton(item))}</div>
|
|
215
|
+
<div style="flex: 1;"></div>
|
|
216
|
+
<div class="github-card"><div style="display: flex; align-items: center; gap: 6px; margin-bottom: 8px; font-size: 11px; color: var(--text-sec); font-family: 'Intel One Mono', ui-monospace;">${icon('github', 13)} signature-digital/core</div><div style="display: flex; gap: 12px; font-size: 11px; color: var(--text-muted);"><span>${icon('star', 11)} 8.2k</span><span>${icon('git', 11)} 248</span></div><div class="sparkline">${[3, 5, 2, 7, 4, 6, 8, 5, 9, 6, 4, 8, 7, 10].map((height) => html `<span style="height: ${height * 10}%"></span>`)}</div></div>
|
|
217
|
+
<div class="nav-block" style="border-top: 1px solid var(--border-subtle); padding-top: 8px;">${lowerItems.map((item) => this.navButton(item))}</div>
|
|
218
|
+
<div class="user-card"><span class="avatar">PK</span><div style="flex: 1; min-width: 0;"><div style="font-size: 12px; font-weight: 500;">Philipp K.</div><div style="font-family: 'Intel One Mono', ui-monospace; font-size: 10px; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis;">philipp@lossless.com</div></div>${icon('more', 14)}</div>
|
|
219
|
+
</aside>
|
|
220
|
+
`;
|
|
221
|
+
}
|
|
222
|
+
renderView() {
|
|
223
|
+
switch (this.view) {
|
|
224
|
+
case 'inbox': return html `<sdig-workspace-inbox class="view-host" .density=${this.density}></sdig-workspace-inbox>`;
|
|
225
|
+
case 'compose': return html `<sdig-workspace-compose class="view-host"></sdig-workspace-compose>`;
|
|
226
|
+
case 'sign': return html `<sdig-workspace-sign class="view-host"></sdig-workspace-sign>`;
|
|
227
|
+
case 'audit': return html `<sdig-workspace-audit class="view-host"></sdig-workspace-audit>`;
|
|
228
|
+
case 'developers': return html `<sdig-workspace-developers class="view-host"></sdig-workspace-developers>`;
|
|
229
|
+
case 'templates': return html `<sdig-workspace-placeholder class="view-host" label="Templates" subtitle="Reusable agreement templates"></sdig-workspace-placeholder>`;
|
|
230
|
+
case 'team': return html `<sdig-workspace-placeholder class="view-host" label="Team" subtitle="Workspace members & roles"></sdig-workspace-placeholder>`;
|
|
231
|
+
case 'settings': return html `<sdig-workspace-placeholder class="view-host" label="Settings" subtitle="Workspace, billing, security"></sdig-workspace-placeholder>`;
|
|
232
|
+
default: return html `<sdig-workspace-inbox class="view-host" .density=${this.density}></sdig-workspace-inbox>`;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
render() {
|
|
236
|
+
return html `<div class="workspace ${this.density === 'compact' ? 'compact' : ''}" style="--accent: ${this.accent};" data-screen-label=${this.view}>${this.renderSidebar()}<main class="main">${this.renderView()}<div class="statusbar"><span style="display: inline-flex; align-items: center; gap: 5px;"><span style="width: 6px; height: 6px; border-radius: 50%; background: var(--success);"></span>api.signature.digital</span><span>eu-central-1</span><span>4 sigs queued</span><div style="flex: 1;"></div><span style="color: var(--accent);">Open Source · MIT</span><span>v0.42.1</span><span>${icon('git', 11)} main</span></div></main></div>`;
|
|
237
|
+
}
|
|
238
|
+
static {
|
|
239
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
return SdigWorkspace = _classThis;
|
|
243
|
+
})();
|
|
244
|
+
export { SdigWorkspace };
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RpZy13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c193ZWIvZWxlbWVudHMvc2RpZy13b3Jrc3BhY2Uvc2RpZy13b3Jrc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUF1QixHQUFHLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxSCxPQUFPLEVBQUUsSUFBSSxFQUE0RCxNQUFNLDRCQUE0QixDQUFDO0FBQzVHLE9BQU8sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLGlDQUFpQyxDQUFDO0lBUzVCLGFBQWE7NEJBRHpCLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQzs7OztzQkFDRyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7OzZCQUFuQixTQUFRLFdBQVc7Ozs7a0NBSTNDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzttQ0FDMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2lDQUMxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQzt1Q0FDekMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dDQUMxQixLQUFLLEVBQUU7WUFKb0IsdUtBQWdCLE1BQU0sNkJBQU4sTUFBTSx1RkFBcUI7WUFDM0MsMEtBQWdCLE9BQU8sNkJBQVAsT0FBTyx5RkFBMkI7WUFDbkMsb0tBQWdCLEtBQUssNkJBQUwsS0FBSyxxRkFBMkI7WUFDL0Qsc0xBQWdCLFdBQVcs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
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
import '@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-icon/dees-icon.js';
|
|
3
|
+
export type TWorkspaceView = 'inbox' | 'compose' | 'sign' | 'audit' | 'developers' | 'templates' | 'team' | 'settings';
|
|
4
|
+
export type TWorkspaceTheme = 'dark' | 'light';
|
|
5
|
+
export type TDensity = 'compact' | 'comfortable';
|
|
6
|
+
export interface IDocumentRow {
|
|
7
|
+
id: string;
|
|
8
|
+
title: string;
|
|
9
|
+
status: 'awaiting' | 'signed' | 'draft' | 'declined';
|
|
10
|
+
recipients: Array<{
|
|
11
|
+
name: string;
|
|
12
|
+
initials: string;
|
|
13
|
+
signed: boolean;
|
|
14
|
+
}>;
|
|
15
|
+
updated: string;
|
|
16
|
+
sender: string;
|
|
17
|
+
pages: number;
|
|
18
|
+
deadline?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface IRecipient {
|
|
21
|
+
id: number;
|
|
22
|
+
name: string;
|
|
23
|
+
email: string;
|
|
24
|
+
color: string;
|
|
25
|
+
order: number;
|
|
26
|
+
}
|
|
27
|
+
export interface IFieldPlacement {
|
|
28
|
+
id: string;
|
|
29
|
+
type: 'signature' | 'date' | 'text' | 'initials' | 'check';
|
|
30
|
+
x: number;
|
|
31
|
+
y: number;
|
|
32
|
+
w: number;
|
|
33
|
+
h: number;
|
|
34
|
+
page: number;
|
|
35
|
+
recipient: number;
|
|
36
|
+
label: string;
|
|
37
|
+
}
|
|
38
|
+
export declare const demoDocuments: IDocumentRow[];
|
|
39
|
+
export declare const demoRecipients: IRecipient[];
|
|
40
|
+
export declare const demoFields: IFieldPlacement[];
|
|
41
|
+
export declare const workspaceBaseStyles: import("@design.estate/dees-element").CSSResult;
|
|
42
|
+
export declare function icon(name: string, size?: number): TemplateResult;
|
|
43
|
+
export declare function pill(label: string, tone?: 'default' | 'success' | 'warning' | 'error' | 'info', dot?: boolean): TemplateResult;
|
|
44
|
+
export declare function actionButton(label: string, variant?: 'primary' | 'outline' | 'ghost', iconName?: string, onClick?: () => void): TemplateResult;
|
|
45
|
+
export declare function topBar(config: {
|
|
46
|
+
breadcrumb: string[];
|
|
47
|
+
title: string;
|
|
48
|
+
subtitle?: TemplateResult;
|
|
49
|
+
actions?: TemplateResult;
|
|
50
|
+
}): TemplateResult;
|
|
51
|
+
export declare function workspaceDemoFrame(content: TemplateResult, theme?: TWorkspaceTheme): TemplateResult;
|
|
52
|
+
export declare function fakeDocument(): TemplateResult;
|
|
53
|
+
export declare function requestWorkspaceView(element: HTMLElement, view: TWorkspaceView): void;
|