@bpmnkit/editor 0.0.34 → 0.1.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/chrome.d.ts +24 -0
- package/dist/chrome.js +75 -0
- package/dist/css.d.ts +5 -4
- package/dist/css.js +231 -357
- package/dist/dock.js +58 -80
- package/dist/editor.js +12 -2
- package/dist/i18n.d.ts +35 -0
- package/dist/i18n.js +45 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +3 -1
- package/dist/inject.d.ts +3 -0
- package/dist/inject.js +12 -0
- package/dist/modal.js +33 -53
- package/package.json +3 -3
package/dist/css.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { injectChromeStyles } from "./chrome.js";
|
|
1
2
|
/** ID used to prevent duplicate style injection. */
|
|
2
3
|
export const EDITOR_STYLE_ID = "bpmnkit-editor-styles-v1";
|
|
3
4
|
/** ID used to prevent duplicate HUD style injection. */
|
|
@@ -19,22 +20,23 @@ export const EDITOR_CSS = `
|
|
|
19
20
|
|
|
20
21
|
/* Keyboard-focus ring on the editor host — distinct from the selection outline */
|
|
21
22
|
.bpmnkit-canvas-host:focus-visible {
|
|
22
|
-
outline: 2px dashed var(--bpmnkit-accent
|
|
23
|
+
outline: 2px dashed var(--bpmnkit-ds-accent, #a8503a);
|
|
23
24
|
outline-offset: -2px;
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
/* Selection outline */
|
|
27
28
|
.bpmnkit-sel-indicator {
|
|
28
29
|
fill: none;
|
|
29
|
-
stroke: var(--bpmnkit-accent, #
|
|
30
|
-
stroke-width: 1
|
|
30
|
+
stroke: var(--bpmnkit-ds-accent, #a8503a);
|
|
31
|
+
stroke-width: 1;
|
|
32
|
+
stroke-dasharray: 4 3;
|
|
31
33
|
pointer-events: none;
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
/* Resize handle */
|
|
35
37
|
.bpmnkit-resize-handle {
|
|
36
38
|
fill: #fff;
|
|
37
|
-
stroke: var(--bpmnkit-accent, #
|
|
39
|
+
stroke: var(--bpmnkit-ds-accent, #a8503a);
|
|
38
40
|
stroke-width: 1.5;
|
|
39
41
|
cursor: nwse-resize;
|
|
40
42
|
}
|
|
@@ -57,7 +59,7 @@ export const EDITOR_CSS = `
|
|
|
57
59
|
|
|
58
60
|
/* Connection port */
|
|
59
61
|
.bpmnkit-conn-port {
|
|
60
|
-
fill: var(--bpmnkit-accent, #
|
|
62
|
+
fill: var(--bpmnkit-ds-accent, #a8503a);
|
|
61
63
|
stroke: none;
|
|
62
64
|
cursor: crosshair;
|
|
63
65
|
opacity: 0.7;
|
|
@@ -68,8 +70,9 @@ export const EDITOR_CSS = `
|
|
|
68
70
|
|
|
69
71
|
/* Rubber-band selection */
|
|
70
72
|
.bpmnkit-rubber-band {
|
|
71
|
-
fill:
|
|
72
|
-
|
|
73
|
+
fill: var(--bpmnkit-ds-accent, #a8503a);
|
|
74
|
+
fill-opacity: 0.06;
|
|
75
|
+
stroke: var(--bpmnkit-ds-accent, #a8503a);
|
|
73
76
|
stroke-dasharray: 4 2;
|
|
74
77
|
pointer-events: none;
|
|
75
78
|
}
|
|
@@ -82,7 +85,7 @@ export const EDITOR_CSS = `
|
|
|
82
85
|
|
|
83
86
|
/* Ghost connection line */
|
|
84
87
|
.bpmnkit-ghost-conn {
|
|
85
|
-
stroke: var(--bpmnkit-accent, #
|
|
88
|
+
stroke: var(--bpmnkit-ds-accent, #a8503a);
|
|
86
89
|
stroke-width: 1.5;
|
|
87
90
|
stroke-dasharray: 6 3;
|
|
88
91
|
fill: none;
|
|
@@ -96,15 +99,16 @@ export const EDITOR_CSS = `
|
|
|
96
99
|
|
|
97
100
|
/* Resize preview rect */
|
|
98
101
|
.bpmnkit-resize-preview {
|
|
99
|
-
fill:
|
|
100
|
-
|
|
102
|
+
fill: var(--bpmnkit-ds-accent, #a8503a);
|
|
103
|
+
fill-opacity: 0.06;
|
|
104
|
+
stroke: var(--bpmnkit-ds-accent, #a8503a);
|
|
101
105
|
stroke-dasharray: 4 2;
|
|
102
106
|
pointer-events: none;
|
|
103
107
|
}
|
|
104
108
|
|
|
105
109
|
/* Alignment guide lines (snap helpers) */
|
|
106
110
|
.bpmnkit-align-guide {
|
|
107
|
-
stroke: var(--bpmnkit-accent
|
|
111
|
+
stroke: var(--bpmnkit-ds-accent, #a8503a);
|
|
108
112
|
stroke-width: 1;
|
|
109
113
|
stroke-dasharray: 4 2;
|
|
110
114
|
pointer-events: none;
|
|
@@ -120,39 +124,39 @@ export const EDITOR_CSS = `
|
|
|
120
124
|
|
|
121
125
|
/* Edge hover dot (waypoint insertion indicator) */
|
|
122
126
|
.bpmnkit-edge-hover-dot {
|
|
123
|
-
fill: var(--bpmnkit-accent, #
|
|
127
|
+
fill: var(--bpmnkit-ds-accent, #a8503a);
|
|
124
128
|
stroke: #fff;
|
|
125
129
|
stroke-width: 1.5;
|
|
126
130
|
pointer-events: none;
|
|
127
131
|
opacity: 0.85;
|
|
128
132
|
}
|
|
129
|
-
[data-theme="dark"] .bpmnkit-edge-hover-dot { fill: var(--bpmnkit-accent, #
|
|
133
|
+
[data-theme="dark"] .bpmnkit-edge-hover-dot { fill: var(--bpmnkit-ds-accent-on-dark, #c9755c); }
|
|
130
134
|
|
|
131
135
|
/* Edge waypoint angle balls (visible on edge hover) */
|
|
132
136
|
.bpmnkit-edge-waypoint-ball {
|
|
133
|
-
fill: var(--bpmnkit-accent, #
|
|
137
|
+
fill: var(--bpmnkit-ds-accent, #a8503a);
|
|
134
138
|
stroke: #fff;
|
|
135
139
|
stroke-width: 1.5;
|
|
136
140
|
cursor: move;
|
|
137
141
|
}
|
|
138
|
-
.bpmnkit-edge-waypoint-ball:hover { fill: var(--bpmnkit-accent, #
|
|
139
|
-
[data-theme="dark"] .bpmnkit-edge-waypoint-ball { fill: var(--bpmnkit-accent, #
|
|
142
|
+
.bpmnkit-edge-waypoint-ball:hover { fill: var(--bpmnkit-ds-accent, #a8503a); }
|
|
143
|
+
[data-theme="dark"] .bpmnkit-edge-waypoint-ball { fill: var(--bpmnkit-ds-accent-on-dark, #c9755c); }
|
|
140
144
|
|
|
141
145
|
/* Edge endpoint drag handles */
|
|
142
146
|
.bpmnkit-edge-endpoint {
|
|
143
|
-
fill: var(--bpmnkit-accent, #
|
|
147
|
+
fill: var(--bpmnkit-ds-accent, #a8503a);
|
|
144
148
|
stroke: #fff;
|
|
145
149
|
stroke-width: 1.5;
|
|
146
150
|
cursor: grab;
|
|
147
151
|
}
|
|
148
152
|
.bpmnkit-edge-endpoint:hover {
|
|
149
|
-
fill: var(--bpmnkit-accent, #
|
|
153
|
+
fill: var(--bpmnkit-ds-accent, #a8503a);
|
|
150
154
|
}
|
|
151
155
|
|
|
152
156
|
/* Ghost polyline when dragging an edge endpoint */
|
|
153
157
|
.bpmnkit-endpoint-ghost {
|
|
154
158
|
fill: none;
|
|
155
|
-
stroke: var(--bpmnkit-accent, #
|
|
159
|
+
stroke: var(--bpmnkit-ds-accent, #a8503a);
|
|
156
160
|
stroke-width: 1.5;
|
|
157
161
|
stroke-dasharray: 5 3;
|
|
158
162
|
pointer-events: none;
|
|
@@ -187,9 +191,8 @@ export const EDITOR_CSS = `
|
|
|
187
191
|
min-height: 16px;
|
|
188
192
|
padding: 1px 3px;
|
|
189
193
|
background: #fff;
|
|
190
|
-
border: 1px solid var(--bpmnkit-accent, #
|
|
191
|
-
|
|
192
|
-
font-family: system-ui, -apple-system, sans-serif;
|
|
194
|
+
border: 1px solid var(--bpmnkit-ds-accent, #a8503a);
|
|
195
|
+
font-family: var(--bpmnkit-ds-font-sans, system-ui, -apple-system, sans-serif);
|
|
193
196
|
font-size: 11px;
|
|
194
197
|
text-align: center;
|
|
195
198
|
outline: none;
|
|
@@ -201,7 +204,7 @@ export const EDITOR_CSS = `
|
|
|
201
204
|
/* Boundary event attach highlight */
|
|
202
205
|
.bpmnkit-boundary-host {
|
|
203
206
|
fill: none;
|
|
204
|
-
stroke: var(--bpmnkit-accent, #
|
|
207
|
+
stroke: var(--bpmnkit-ds-accent, #a8503a);
|
|
205
208
|
stroke-width: 2;
|
|
206
209
|
stroke-dasharray: 6 3;
|
|
207
210
|
pointer-events: none;
|
|
@@ -217,7 +220,6 @@ export const EDITOR_CSS = `
|
|
|
217
220
|
z-index: 100;
|
|
218
221
|
max-width: calc(100% - 32px);
|
|
219
222
|
padding: 6px 12px;
|
|
220
|
-
border-radius: 6px;
|
|
221
223
|
background: #fef3c7;
|
|
222
224
|
border: 1px solid #f59e0b;
|
|
223
225
|
color: #92400e;
|
|
@@ -254,6 +256,7 @@ export const EDITOR_CSS = `
|
|
|
254
256
|
export function injectEditorStyles() {
|
|
255
257
|
if (typeof document === "undefined")
|
|
256
258
|
return;
|
|
259
|
+
injectChromeStyles();
|
|
257
260
|
if (document.getElementById(EDITOR_STYLE_ID))
|
|
258
261
|
return;
|
|
259
262
|
const style = document.createElement("style");
|
|
@@ -262,63 +265,77 @@ export function injectEditorStyles() {
|
|
|
262
265
|
document.head.appendChild(style);
|
|
263
266
|
}
|
|
264
267
|
/** CSS for the editor HUD — panels, buttons, dropdowns, group picker.
|
|
265
|
-
*
|
|
266
|
-
* `data-bpmnkit-hud-theme="
|
|
268
|
+
* Flat, square and hairline-ruled per the bpmnkit.com design system.
|
|
269
|
+
* The light `--canvas` ground is the default; `data-bpmnkit-hud-theme="dark"`
|
|
270
|
+
* (or `"neon"`) on `document.body` switches it. */
|
|
267
271
|
export const HUD_CSS = `
|
|
268
|
-
/* ── HUD
|
|
272
|
+
/* ── HUD chrome ──────────────────────────────────────────────────────
|
|
273
|
+
The bpmnkit.com design system applied to the editor's chrome: flat
|
|
274
|
+
(no shadow, gradient or blur), square, and bounded by 1px hairlines.
|
|
275
|
+
The per-theme grounds it reads are declared once in chrome.ts.
|
|
276
|
+
The diagram itself is renderer-owned and untouched by this sheet.
|
|
277
|
+
──────────────────────────────────────────────────────────────────── */
|
|
269
278
|
.hud { position: absolute; z-index: 100; }
|
|
270
279
|
|
|
271
|
-
/*
|
|
280
|
+
/* A toolbar or palette is ONE bordered box with internal hairlines —
|
|
281
|
+
never individually bordered buttons and never gaps. */
|
|
272
282
|
.panel {
|
|
273
|
-
display: flex; align-items:
|
|
274
|
-
background: var(--bpmnkit-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
283
|
+
display: flex; align-items: stretch;
|
|
284
|
+
background: var(--bpmnkit-chrome-ground);
|
|
285
|
+
border: 1px solid var(--bpmnkit-chrome-line);
|
|
286
|
+
/* Stated, not inherited: hosts differ on whether they set a global reset. */
|
|
287
|
+
box-sizing: border-box;
|
|
288
|
+
font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
|
|
279
289
|
}
|
|
280
290
|
|
|
291
|
+
|
|
281
292
|
/* ── HUD positions ───────────────────────────────────────────────── */
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
#hud-
|
|
293
|
+
/* Sits in the tab bar's centre slot: a 28px group with 4px clear of the bar's
|
|
294
|
+
own rules top and bottom, so the two borders never sit on each other. */
|
|
295
|
+
#hud-top-center { top: 3px; left: 50%; transform: translateX(-50%); height: 30px; }
|
|
296
|
+
#hud-bottom-left { bottom: 16px; left: 16px; }
|
|
297
|
+
#hud-bottom-center { bottom: 16px; left: 50%; transform: translateX(-50%); }
|
|
285
298
|
#ctx-toolbar { display: none; transform: translateX(-50%); }
|
|
286
299
|
#cfg-toolbar { display: none; transform: translate(-50%, -100%); }
|
|
287
300
|
|
|
288
|
-
/* ── Top center: strip floating card, merge into tab bar ─────────── */
|
|
289
|
-
#hud-top-center.panel {
|
|
290
|
-
background: transparent;
|
|
291
|
-
backdrop-filter: none;
|
|
292
|
-
border: none;
|
|
293
|
-
border-radius: 0;
|
|
294
|
-
box-shadow: none;
|
|
295
|
-
padding: 0 2px;
|
|
296
|
-
/* Pass clicks through the transparent background to the tab bar center slot. */
|
|
297
|
-
pointer-events: none;
|
|
298
|
-
}
|
|
299
|
-
#hud-top-center.panel > * {
|
|
300
|
-
pointer-events: auto;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
301
|
/* ── Icon buttons ────────────────────────────────────────────────── */
|
|
304
302
|
.hud-btn {
|
|
305
303
|
display: flex; align-items: center; justify-content: center;
|
|
306
|
-
width:
|
|
304
|
+
width: 34px; height: 28px;
|
|
307
305
|
background: transparent;
|
|
308
|
-
border:
|
|
309
|
-
|
|
310
|
-
color: var(--bpmnkit-fg-muted, rgba(255,255,255,0.6));
|
|
306
|
+
border: none;
|
|
307
|
+
color: var(--bpmnkit-chrome-ink-2);
|
|
311
308
|
cursor: pointer;
|
|
312
|
-
transition: background 0.1s, color 0.1s, border-color 0.1s;
|
|
313
309
|
padding: 0; flex-shrink: 0;
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
310
|
+
font-family: inherit;
|
|
311
|
+
font-size: 13px;
|
|
312
|
+
/* Never let a Unicode glyph be promoted to a colour emoji. */
|
|
313
|
+
font-variant-emoji: text;
|
|
314
|
+
}
|
|
315
|
+
.hud-btn:hover { background: var(--bpmnkit-chrome-hover); color: var(--bpmnkit-chrome-ink); }
|
|
316
|
+
.hud-btn.active { background: var(--bpmnkit-chrome-accent); color: var(--bpmnkit-chrome-accent-fg); }
|
|
317
|
+
.hud-btn:disabled { opacity: 0.3; cursor: default; }
|
|
318
|
+
.hud-btn:disabled:hover { background: transparent; color: var(--bpmnkit-chrome-ink-2); }
|
|
319
319
|
.hud-btn svg { width: 16px; height: 16px; pointer-events: none; }
|
|
320
320
|
|
|
321
|
-
/*
|
|
321
|
+
/* The palette's targets are a touch larger than the toolbar's; the zoom
|
|
322
|
+
cluster shares the palette's height so the bottom strip reads as one row. */
|
|
323
|
+
#hud-bottom-center .hud-btn { width: 36px; height: 32px; }
|
|
324
|
+
#hud-bottom-left .hud-btn { height: 32px; }
|
|
325
|
+
|
|
326
|
+
/* One hairline BETWEEN adjacent items, never on a group's outer edge — so a
|
|
327
|
+
group's ends stay clean and an explicit .hud-sep never doubles up with one.
|
|
328
|
+
Declared after the button rules on purpose: they zero their own borders, and
|
|
329
|
+
the .panel-plus-id form outranks the id-scoped zoom buttons. */
|
|
330
|
+
.panel > * + *,
|
|
331
|
+
.panel #tool-groups > * + *,
|
|
332
|
+
.panel #zoom-expanded > * + * { border-left: 1px solid var(--bpmnkit-chrome-line-soft); }
|
|
333
|
+
/* The mobile collapse toggles are hidden siblings on desktop, so the item after
|
|
334
|
+
one would otherwise draw a hairline flush against the group's own border. */
|
|
335
|
+
#hud-top-center > #btn-tc-toggle + *,
|
|
336
|
+
#hud-bottom-center > #btn-bc-toggle + * { border-left: none; }
|
|
337
|
+
|
|
338
|
+
/* ── Group button: small marker at the bottom-right corner ───────── */
|
|
322
339
|
.hud-btn[data-group] { position: relative; }
|
|
323
340
|
.hud-btn[data-group]::after {
|
|
324
341
|
content: '';
|
|
@@ -330,217 +347,135 @@ export const HUD_CSS = `
|
|
|
330
347
|
}
|
|
331
348
|
|
|
332
349
|
/* ── Tool groups container ───────────────────────────────────────── */
|
|
333
|
-
#tool-groups { display: flex; align-items:
|
|
350
|
+
#tool-groups { display: flex; align-items: stretch; }
|
|
334
351
|
|
|
335
|
-
/* ── Separator
|
|
336
|
-
.hud-sep {
|
|
352
|
+
/* ── Separator — a structural rule, not a soft internal one ──────── */
|
|
353
|
+
.hud-sep {
|
|
354
|
+
width: 1px; flex: none; align-self: stretch;
|
|
355
|
+
background: var(--bpmnkit-chrome-line);
|
|
356
|
+
border-left: none;
|
|
357
|
+
}
|
|
358
|
+
.panel > .hud-sep + * { border-left: none; }
|
|
337
359
|
|
|
338
360
|
/* ── Zoom widget ─────────────────────────────────────────────────── */
|
|
339
361
|
#btn-zoom-current {
|
|
340
|
-
padding: 0
|
|
341
|
-
background: transparent; border:
|
|
342
|
-
color:
|
|
343
|
-
font-
|
|
344
|
-
|
|
362
|
+
padding: 0 12px; height: 32px;
|
|
363
|
+
background: transparent; border: none;
|
|
364
|
+
color: var(--bpmnkit-chrome-ink-2); cursor: pointer;
|
|
365
|
+
font-family: inherit; font-size: 12px;
|
|
366
|
+
font-variant-numeric: tabular-nums;
|
|
345
367
|
white-space: nowrap;
|
|
346
368
|
}
|
|
347
|
-
#btn-zoom-current:hover { background:
|
|
369
|
+
#btn-zoom-current:hover { background: var(--bpmnkit-chrome-hover); color: var(--bpmnkit-chrome-ink); }
|
|
348
370
|
|
|
349
|
-
#zoom-expanded { display: none; align-items:
|
|
371
|
+
#zoom-expanded { display: none; align-items: stretch; }
|
|
350
372
|
#zoom-expanded.open { display: flex; }
|
|
351
373
|
|
|
352
374
|
#btn-zoom-pct {
|
|
353
|
-
padding: 0
|
|
354
|
-
background:
|
|
355
|
-
color:
|
|
356
|
-
font-
|
|
357
|
-
|
|
375
|
+
padding: 0 10px; height: 32px;
|
|
376
|
+
background: transparent; border: none;
|
|
377
|
+
color: var(--bpmnkit-chrome-ink-2); cursor: pointer;
|
|
378
|
+
font-family: inherit; font-size: 12px;
|
|
379
|
+
font-variant-numeric: tabular-nums;
|
|
358
380
|
white-space: nowrap; min-width: 60px; text-align: center;
|
|
359
381
|
}
|
|
360
|
-
#btn-zoom-pct:hover { background:
|
|
382
|
+
#btn-zoom-pct:hover { background: var(--bpmnkit-chrome-hover); color: var(--bpmnkit-chrome-ink); }
|
|
361
383
|
|
|
362
384
|
/* ── Dropdown menus ──────────────────────────────────────────────── */
|
|
363
385
|
.dropdown {
|
|
364
386
|
position: absolute; display: none; flex-direction: column;
|
|
365
|
-
|
|
366
|
-
background: var(--bpmnkit-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
box-shadow: 0 6px 24px rgba(0,0,0,0.5);
|
|
371
|
-
z-index: 200; min-width: 150px;
|
|
387
|
+
padding: 0;
|
|
388
|
+
background: var(--bpmnkit-chrome-ground);
|
|
389
|
+
border: 1px solid var(--bpmnkit-chrome-line);
|
|
390
|
+
z-index: 200; min-width: 170px;
|
|
391
|
+
font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
|
|
372
392
|
}
|
|
373
393
|
.dropdown.open { display: flex; }
|
|
374
394
|
|
|
375
395
|
.drop-item {
|
|
376
|
-
display: flex; align-items: center; gap:
|
|
377
|
-
padding:
|
|
396
|
+
display: flex; align-items: center; gap: 9px;
|
|
397
|
+
padding: 8px 12px;
|
|
378
398
|
border: none; background: transparent;
|
|
379
|
-
color:
|
|
380
|
-
|
|
381
|
-
|
|
399
|
+
color: var(--bpmnkit-chrome-ink-2); cursor: pointer;
|
|
400
|
+
font-family: inherit; font-size: 12px; text-align: left; width: 100%;
|
|
401
|
+
font-variant-emoji: text;
|
|
382
402
|
}
|
|
383
|
-
.drop-item:hover { background:
|
|
384
|
-
.drop-item .di-check { width: 14px; height: 14px; flex-shrink: 0; color: var(--bpmnkit-accent
|
|
403
|
+
.drop-item:hover { background: var(--bpmnkit-chrome-hover); color: var(--bpmnkit-chrome-ink); }
|
|
404
|
+
.drop-item .di-check { width: 14px; height: 14px; flex-shrink: 0; color: var(--bpmnkit-chrome-accent); }
|
|
385
405
|
.drop-item .di-icon { width: 14px; height: 14px; flex-shrink: 0; opacity: 0.7; }
|
|
386
406
|
.drop-item svg { width: 14px; height: 14px; }
|
|
387
|
-
.drop-sep { height: 1px; background:
|
|
407
|
+
.drop-sep { height: 1px; background: var(--bpmnkit-chrome-line-soft); }
|
|
388
408
|
.drop-label {
|
|
389
|
-
padding:
|
|
390
|
-
font-size:
|
|
391
|
-
color:
|
|
409
|
+
padding: 8px 12px 6px;
|
|
410
|
+
font-size: var(--bpmnkit-ds-t-mono-micro, 10.5px); letter-spacing: 0.12em;
|
|
411
|
+
color: var(--bpmnkit-chrome-ink-4); text-transform: uppercase;
|
|
392
412
|
}
|
|
393
413
|
|
|
394
414
|
/* ── Group element picker ────────────────────────────────────────── */
|
|
395
415
|
.group-picker {
|
|
396
416
|
position: absolute;
|
|
397
|
-
display: flex; flex-direction: row;
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
backdrop-filter: blur(12px);
|
|
401
|
-
border: 1px solid var(--bpmnkit-panel-border, rgba(255, 255, 255, 0.08));
|
|
402
|
-
border-radius: 9px;
|
|
403
|
-
box-shadow: 0 6px 24px rgba(0,0,0,0.5);
|
|
417
|
+
display: flex; flex-direction: row; align-items: stretch;
|
|
418
|
+
background: var(--bpmnkit-chrome-ground);
|
|
419
|
+
border: 1px solid var(--bpmnkit-chrome-line);
|
|
404
420
|
z-index: 300;
|
|
421
|
+
font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
|
|
405
422
|
}
|
|
406
423
|
.group-picker-label {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
/* ── Light theme overrides ───────────────────────────────────────── */
|
|
416
|
-
[data-bpmnkit-hud-theme="light"] .panel {
|
|
417
|
-
background: var(--bpmnkit-panel-bg, rgba(255,255,255,0.92));
|
|
418
|
-
border-color: var(--bpmnkit-panel-border, rgba(0,0,0,0.08));
|
|
419
|
-
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
|
424
|
+
display: flex; align-items: center;
|
|
425
|
+
padding: 0 10px;
|
|
426
|
+
font-size: var(--bpmnkit-ds-t-mono-micro, 10.5px); letter-spacing: 0.12em;
|
|
427
|
+
color: var(--bpmnkit-chrome-ink-4); text-transform: uppercase;
|
|
428
|
+
white-space: nowrap;
|
|
429
|
+
border-right: 1px solid var(--bpmnkit-chrome-line);
|
|
420
430
|
}
|
|
421
|
-
[data-bpmnkit-hud-theme="light"] #hud-top-center.panel {
|
|
422
|
-
background: transparent;
|
|
423
|
-
backdrop-filter: none;
|
|
424
|
-
border: none;
|
|
425
|
-
box-shadow: none;
|
|
426
|
-
}
|
|
427
|
-
[data-bpmnkit-hud-theme="light"] .hud-btn { color: var(--bpmnkit-fg-muted, #6666a0); }
|
|
428
|
-
[data-bpmnkit-hud-theme="light"] .hud-btn:hover { background: rgba(0,0,0,0.06); color: var(--bpmnkit-fg, #1a1a2e); }
|
|
429
|
-
[data-bpmnkit-hud-theme="light"] .hud-btn.active { background: rgba(0,0,0,0.08); color: var(--bpmnkit-fg, #1a1a2e); border-color: rgba(0,0,0,0.15); }
|
|
430
|
-
[data-bpmnkit-hud-theme="light"] .hud-btn:disabled:hover { background: transparent; color: var(--bpmnkit-fg-muted, #6666a0); }
|
|
431
|
-
[data-bpmnkit-hud-theme="light"] .hud-sep { background: var(--bpmnkit-panel-border, rgba(0,0,0,0.08)); }
|
|
432
|
-
[data-bpmnkit-hud-theme="light"] #btn-zoom-current { color: var(--bpmnkit-fg-muted, #6666a0); }
|
|
433
|
-
[data-bpmnkit-hud-theme="light"] #btn-zoom-current:hover { background: rgba(0,0,0,0.06); color: var(--bpmnkit-fg, #1a1a2e); }
|
|
434
|
-
[data-bpmnkit-hud-theme="light"] #btn-zoom-pct {
|
|
435
|
-
background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.1); color: var(--bpmnkit-fg-muted, #6666a0);
|
|
436
|
-
}
|
|
437
|
-
[data-bpmnkit-hud-theme="light"] #btn-zoom-pct:hover { background: rgba(0,0,0,0.08); color: var(--bpmnkit-fg, #1a1a2e); }
|
|
438
|
-
[data-bpmnkit-hud-theme="light"] .dropdown {
|
|
439
|
-
background: var(--bpmnkit-panel-bg, rgba(255,255,255,0.92));
|
|
440
|
-
border-color: var(--bpmnkit-panel-border, rgba(0,0,0,0.08));
|
|
441
|
-
box-shadow: 0 6px 24px rgba(0,0,0,0.15);
|
|
442
|
-
}
|
|
443
|
-
[data-bpmnkit-hud-theme="light"] .drop-item { color: var(--bpmnkit-fg-muted, #6666a0); }
|
|
444
|
-
[data-bpmnkit-hud-theme="light"] .drop-item:hover { background: rgba(0,0,0,0.05); color: var(--bpmnkit-fg, #1a1a2e); }
|
|
445
|
-
[data-bpmnkit-hud-theme="light"] .drop-sep { background: var(--bpmnkit-border, #d0d0e8); }
|
|
446
|
-
[data-bpmnkit-hud-theme="light"] .drop-label { color: rgba(0,0,0,0.35); }
|
|
447
|
-
[data-bpmnkit-hud-theme="light"] .group-picker {
|
|
448
|
-
background: var(--bpmnkit-panel-bg, rgba(255,255,255,0.92));
|
|
449
|
-
border-color: var(--bpmnkit-panel-border, rgba(0,0,0,0.08));
|
|
450
|
-
box-shadow: 0 6px 24px rgba(0,0,0,0.15);
|
|
451
|
-
}
|
|
452
|
-
[data-bpmnkit-hud-theme="light"] .group-picker-label {
|
|
453
|
-
color: rgba(0,0,0,0.35);
|
|
454
|
-
border-right-color: rgba(0,0,0,0.08);
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
/* ── Neon theme overrides ────────────────────────────────────────── */
|
|
458
|
-
[data-bpmnkit-hud-theme="neon"] .panel {
|
|
459
|
-
background: oklch(8% 0.03 270 / 0.96);
|
|
460
|
-
border-color: oklch(65% 0.28 280 / 0.2);
|
|
461
|
-
box-shadow: 0 2px 16px oklch(65% 0.28 280 / 0.12), 0 0 0 1px oklch(65% 0.28 280 / 0.1);
|
|
462
|
-
}
|
|
463
|
-
[data-bpmnkit-hud-theme="neon"] #hud-top-center.panel {
|
|
464
|
-
background: transparent; backdrop-filter: none; border: none; box-shadow: none;
|
|
465
|
-
}
|
|
466
|
-
[data-bpmnkit-hud-theme="neon"] .hud-btn { color: oklch(65% 0.1 280); }
|
|
467
|
-
[data-bpmnkit-hud-theme="neon"] .hud-btn:hover { background: oklch(65% 0.28 280 / 0.12); color: oklch(88% 0.02 270); }
|
|
468
|
-
[data-bpmnkit-hud-theme="neon"] .hud-btn.active { background: oklch(65% 0.28 280 / 0.18); color: oklch(73% 0.16 280); border-color: oklch(65% 0.28 280 / 0.35); }
|
|
469
|
-
[data-bpmnkit-hud-theme="neon"] .hud-sep { background: oklch(65% 0.28 280 / 0.15); }
|
|
470
|
-
[data-bpmnkit-hud-theme="neon"] .dropdown {
|
|
471
|
-
background: oklch(8% 0.03 270 / 0.97);
|
|
472
|
-
border-color: oklch(65% 0.28 280 / 0.2);
|
|
473
|
-
box-shadow: 0 6px 24px oklch(0% 0 0 / 0.6), 0 0 0 1px oklch(65% 0.28 280 / 0.1);
|
|
474
|
-
}
|
|
475
|
-
[data-bpmnkit-hud-theme="neon"] .drop-item { color: oklch(65% 0.1 280); }
|
|
476
|
-
[data-bpmnkit-hud-theme="neon"] .drop-item:hover { background: oklch(65% 0.28 280 / 0.1); color: oklch(88% 0.02 270); }
|
|
477
|
-
[data-bpmnkit-hud-theme="neon"] .drop-sep { background: oklch(65% 0.28 280 / 0.15); }
|
|
478
|
-
[data-bpmnkit-hud-theme="neon"] .drop-label { color: oklch(50% 0.06 280); }
|
|
479
|
-
[data-bpmnkit-hud-theme="neon"] .group-picker {
|
|
480
|
-
background: oklch(8% 0.03 270 / 0.97);
|
|
481
|
-
border-color: oklch(65% 0.28 280 / 0.2);
|
|
482
|
-
box-shadow: 0 6px 24px oklch(0% 0 0 / 0.6);
|
|
483
|
-
}
|
|
484
|
-
[data-bpmnkit-hud-theme="neon"] .group-picker-label { color: oklch(50% 0.06 280); border-right-color: oklch(65% 0.28 280 / 0.15); }
|
|
485
431
|
|
|
486
432
|
/* ── Reference link button (wider text variant of hud-btn) ──────── */
|
|
487
433
|
.ref-link-btn {
|
|
488
|
-
height:
|
|
434
|
+
height: 28px; padding: 0 10px;
|
|
489
435
|
background: transparent;
|
|
490
|
-
border:
|
|
491
|
-
|
|
492
|
-
color: rgba(255, 255, 255, 0.6);
|
|
436
|
+
border: none;
|
|
437
|
+
color: var(--bpmnkit-chrome-ink-2);
|
|
493
438
|
cursor: pointer;
|
|
494
|
-
font-size: 12px;
|
|
439
|
+
font-family: inherit; font-size: 12px;
|
|
495
440
|
max-width: 160px;
|
|
496
441
|
overflow: hidden;
|
|
497
442
|
text-overflow: ellipsis;
|
|
498
443
|
white-space: nowrap;
|
|
499
444
|
flex-shrink: 0;
|
|
500
|
-
transition: background 0.1s, color 0.1s;
|
|
501
|
-
align-self: center;
|
|
502
445
|
}
|
|
503
|
-
.ref-link-btn:hover { background:
|
|
504
|
-
[data-bpmnkit-hud-theme="light"] .ref-link-btn { color: var(--bpmnkit-fg-muted, #6666a0); }
|
|
505
|
-
[data-bpmnkit-hud-theme="light"] .ref-link-btn:hover { background: rgba(0,0,0,0.06); color: var(--bpmnkit-fg, #1a1a2e); }
|
|
446
|
+
.ref-link-btn:hover { background: var(--bpmnkit-chrome-hover); color: var(--bpmnkit-chrome-ink); }
|
|
506
447
|
|
|
507
|
-
/* ──
|
|
508
|
-
.bpmnkit-color-swatches { display: flex; gap: 4px; padding:
|
|
448
|
+
/* ── Colour swatches — element fills, exempt from the one-accent rule ── */
|
|
449
|
+
.bpmnkit-color-swatches { display: flex; gap: 4px; padding: 0 8px; align-items: center; }
|
|
509
450
|
.bpmnkit-color-swatch {
|
|
510
|
-
width: 16px; height: 16px;
|
|
511
|
-
border:
|
|
512
|
-
transition: transform 0.1s;
|
|
451
|
+
width: 16px; height: 16px; cursor: pointer;
|
|
452
|
+
border: 1px solid var(--bpmnkit-chrome-line); flex-shrink: 0;
|
|
513
453
|
padding: 0;
|
|
514
454
|
}
|
|
515
|
-
.bpmnkit-color-swatch
|
|
516
|
-
.bpmnkit-color-swatch.active { border-color: rgba(255,255,255,0.8); }
|
|
517
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-color-swatch.active { border-color: rgba(0,0,0,0.5); }
|
|
455
|
+
.bpmnkit-color-swatch.active { border-color: var(--bpmnkit-chrome-accent); }
|
|
518
456
|
.bpmnkit-color-swatch--default {
|
|
519
|
-
background: transparent;
|
|
457
|
+
background: transparent;
|
|
520
458
|
position: relative; overflow: hidden;
|
|
521
459
|
}
|
|
522
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-color-swatch--default { border-color: rgba(0,0,0,0.2); }
|
|
523
460
|
.bpmnkit-color-swatch--default::after {
|
|
524
461
|
content: ''; position: absolute;
|
|
525
|
-
top:
|
|
526
|
-
width:
|
|
527
|
-
background:
|
|
462
|
+
top: 0; left: 50%; transform: translateX(-50%) rotate(-45deg);
|
|
463
|
+
width: 1px; height: 100%;
|
|
464
|
+
background: currentColor; color: var(--bpmnkit-chrome-ink-4);
|
|
528
465
|
}
|
|
529
466
|
|
|
530
|
-
/* ── Contextual Ask-AI button
|
|
531
|
-
.ctx-ask-ai-btn { color: var(--bpmnkit-accent
|
|
532
|
-
.ctx-ask-ai-btn:hover { background:
|
|
533
|
-
[data-bpmnkit-hud-theme="light"] .ctx-ask-ai-btn { color: var(--bpmnkit-accent, #1a56db); opacity: 0.7; }
|
|
534
|
-
[data-bpmnkit-hud-theme="light"] .ctx-ask-ai-btn:hover { background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12)); color: var(--bpmnkit-accent, #1a56db); opacity: 1; }
|
|
467
|
+
/* ── Contextual Ask-AI button ────────────────────────────────────── */
|
|
468
|
+
.ctx-ask-ai-btn { color: var(--bpmnkit-chrome-accent); }
|
|
469
|
+
.ctx-ask-ai-btn:hover { background: var(--bpmnkit-chrome-hover); color: var(--bpmnkit-chrome-accent); }
|
|
535
470
|
|
|
536
471
|
/* ── New-diagram onboarding overlay ──────────────────────────────── */
|
|
537
472
|
#bpmnkit-empty-state {
|
|
538
473
|
position: absolute; z-index: 50;
|
|
539
474
|
top: 36px; left: 0; bottom: 0; right: 0;
|
|
540
475
|
display: flex; align-items: center; justify-content: center;
|
|
541
|
-
background: var(--bpmnkit-
|
|
476
|
+
background: var(--bpmnkit-ds-canvas, #fbfbfc);
|
|
542
477
|
}
|
|
543
|
-
[data-bpmnkit-hud-theme="
|
|
478
|
+
[data-bpmnkit-hud-theme="dark"] #bpmnkit-empty-state { background: var(--bpmnkit-bg, #0d0d16); }
|
|
544
479
|
[data-bpmnkit-hud-theme="neon"] #bpmnkit-empty-state { background: oklch(5% 0.025 270); }
|
|
545
480
|
|
|
546
481
|
.bpmnkit-onboard-inner {
|
|
@@ -549,93 +484,60 @@ export const HUD_CSS = `
|
|
|
549
484
|
}
|
|
550
485
|
.bpmnkit-onboard-header { text-align: center; }
|
|
551
486
|
.bpmnkit-onboard-title {
|
|
552
|
-
color:
|
|
487
|
+
color: var(--bpmnkit-chrome-ink); font-size: 17px; font-weight: 700;
|
|
488
|
+
letter-spacing: -0.025em; margin: 0 0 8px;
|
|
553
489
|
}
|
|
554
490
|
.bpmnkit-onboard-sub {
|
|
555
|
-
|
|
491
|
+
font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
|
|
492
|
+
font-size: var(--bpmnkit-ds-t-mono-label, 11.5px); letter-spacing: 0.08em;
|
|
493
|
+
color: var(--bpmnkit-chrome-ink-4); margin: 0;
|
|
556
494
|
}
|
|
557
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-onboard-title { color: rgba(0,0,0,0.72); }
|
|
558
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-onboard-sub { color: rgba(0,0,0,0.38); }
|
|
559
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-title { color: oklch(88% 0.02 270); }
|
|
560
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-sub { color: oklch(50% 0.06 280); }
|
|
561
495
|
|
|
562
|
-
|
|
496
|
+
/* One bordered box subdivided by hairlines — not gapped cards. */
|
|
497
|
+
.bpmnkit-onboard-actions {
|
|
498
|
+
display: flex; width: 100%;
|
|
499
|
+
border: 1px solid var(--bpmnkit-chrome-line); background: var(--bpmnkit-chrome-ground);
|
|
500
|
+
}
|
|
563
501
|
|
|
564
502
|
.bpmnkit-onboard-btn {
|
|
565
503
|
flex: 1; display: flex; flex-direction: column; align-items: flex-start;
|
|
566
|
-
gap:
|
|
567
|
-
background:
|
|
568
|
-
border: 1px solid
|
|
569
|
-
|
|
570
|
-
color: inherit;
|
|
571
|
-
}
|
|
572
|
-
.bpmnkit-onboard-btn:hover {
|
|
573
|
-
background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.14);
|
|
574
|
-
}
|
|
575
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-onboard-btn {
|
|
576
|
-
background: rgba(0,0,0,0.03); border-color: rgba(0,0,0,0.08);
|
|
577
|
-
}
|
|
578
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-onboard-btn:hover {
|
|
579
|
-
background: rgba(0,0,0,0.06); border-color: rgba(0,0,0,0.14);
|
|
580
|
-
}
|
|
581
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-btn {
|
|
582
|
-
background: oklch(65% 0.28 280 / 0.05); border-color: oklch(65% 0.28 280 / 0.15);
|
|
583
|
-
}
|
|
584
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-btn:hover {
|
|
585
|
-
background: oklch(65% 0.28 280 / 0.1); border-color: oklch(65% 0.28 280 / 0.28);
|
|
504
|
+
gap: 12px; padding: 18px 16px;
|
|
505
|
+
background: transparent;
|
|
506
|
+
border: none; border-right: 1px solid var(--bpmnkit-chrome-line-soft);
|
|
507
|
+
cursor: pointer; text-align: left;
|
|
508
|
+
color: inherit;
|
|
586
509
|
}
|
|
510
|
+
.bpmnkit-onboard-btn:last-child { border-right: none; }
|
|
511
|
+
.bpmnkit-onboard-btn:hover { background: var(--bpmnkit-chrome-hover); }
|
|
587
512
|
|
|
588
513
|
.bpmnkit-onboard-btn-icon {
|
|
589
514
|
display: flex; align-items: center; justify-content: center;
|
|
590
|
-
width: 32px; height: 32px;
|
|
591
|
-
|
|
515
|
+
width: 32px; height: 32px;
|
|
516
|
+
border: 1px solid var(--bpmnkit-chrome-line); color: var(--bpmnkit-chrome-ink-2); flex-shrink: 0;
|
|
592
517
|
}
|
|
593
518
|
.bpmnkit-onboard-btn-icon svg { width: 16px; height: 16px; pointer-events: none; }
|
|
594
|
-
|
|
595
|
-
background: rgba(0,0,0,0.07); color: rgba(0,0,0,0.55);
|
|
596
|
-
}
|
|
597
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-btn-icon {
|
|
598
|
-
background: oklch(65% 0.28 280 / 0.1); color: oklch(73% 0.16 280);
|
|
599
|
-
}
|
|
519
|
+
.bpmnkit-onboard-btn--ai .bpmnkit-onboard-btn-icon { color: var(--bpmnkit-chrome-accent); border-color: var(--bpmnkit-chrome-accent); }
|
|
600
520
|
|
|
601
|
-
.bpmnkit-onboard-btn
|
|
602
|
-
background: rgba(76,142,247,0.18); color: #8ab8ff;
|
|
603
|
-
}
|
|
604
|
-
.bpmnkit-onboard-btn--ai:hover { border-color: rgba(76,142,247,0.3); }
|
|
605
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-onboard-btn--ai .bpmnkit-onboard-btn-icon {
|
|
606
|
-
background: rgba(26,86,219,0.1); color: #1a56db;
|
|
607
|
-
}
|
|
608
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-onboard-btn--ai:hover { border-color: rgba(26,86,219,0.28); }
|
|
609
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-btn--ai .bpmnkit-onboard-btn-icon {
|
|
610
|
-
background: oklch(72% 0.18 185 / 0.15); color: oklch(72% 0.18 185);
|
|
611
|
-
}
|
|
612
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-btn--ai:hover { border-color: oklch(72% 0.18 185 / 0.35); }
|
|
613
|
-
|
|
614
|
-
.bpmnkit-onboard-btn-label { display: flex; flex-direction: column; gap: 3px; }
|
|
521
|
+
.bpmnkit-onboard-btn-label { display: flex; flex-direction: column; gap: 4px; }
|
|
615
522
|
.bpmnkit-onboard-btn-title {
|
|
616
|
-
font-size:
|
|
523
|
+
font-size: 14px; font-weight: 700; color: var(--bpmnkit-chrome-ink); margin: 0;
|
|
617
524
|
}
|
|
618
525
|
.bpmnkit-onboard-btn-desc {
|
|
619
|
-
font-size:
|
|
526
|
+
font-size: 12px; color: var(--bpmnkit-chrome-ink-4); margin: 0; line-height: 1.5;
|
|
620
527
|
}
|
|
621
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-onboard-btn-title { color: rgba(0,0,0,0.72); }
|
|
622
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-onboard-btn-desc { color: rgba(0,0,0,0.36); }
|
|
623
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-btn-title { color: oklch(82% 0.04 270); }
|
|
624
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-btn-desc { color: oklch(50% 0.06 280); }
|
|
625
528
|
|
|
626
|
-
.bpmnkit-onboard-links { display: flex; gap:
|
|
529
|
+
.bpmnkit-onboard-links { display: flex; gap: 18px; flex-wrap: wrap; justify-content: center; }
|
|
627
530
|
.bpmnkit-onboard-links a {
|
|
628
|
-
|
|
531
|
+
font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
|
|
532
|
+
color: var(--bpmnkit-chrome-ink-4); font-size: var(--bpmnkit-ds-t-mono-micro, 10.5px);
|
|
533
|
+
letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none;
|
|
629
534
|
}
|
|
630
|
-
.bpmnkit-onboard-links a:hover { color:
|
|
631
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-onboard-links a { color: rgba(0,0,0,0.25); }
|
|
632
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-onboard-links a:hover { color: rgba(0,0,0,0.6); }
|
|
633
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-links a { color: oklch(45% 0.06 280); }
|
|
634
|
-
[data-bpmnkit-hud-theme="neon"] .bpmnkit-onboard-links a:hover { color: oklch(65% 0.1 280); }
|
|
535
|
+
.bpmnkit-onboard-links a:hover { color: var(--bpmnkit-chrome-accent); }
|
|
635
536
|
|
|
636
537
|
@media (max-width: 520px) {
|
|
637
538
|
.bpmnkit-onboard-actions { flex-direction: column; }
|
|
638
|
-
.bpmnkit-onboard-btn { flex-direction: row; align-items: center; gap: 12px; }
|
|
539
|
+
.bpmnkit-onboard-btn { flex-direction: row; align-items: center; gap: 12px; border-right: none; border-bottom: 1px solid var(--bpmnkit-chrome-line-soft); }
|
|
540
|
+
.bpmnkit-onboard-btn:last-child { border-bottom: none; }
|
|
639
541
|
.bpmnkit-onboard-btn-label { flex-direction: column; }
|
|
640
542
|
}
|
|
641
543
|
|
|
@@ -648,130 +550,103 @@ export const HUD_CSS = `
|
|
|
648
550
|
#hud-top-center::-webkit-scrollbar { display: none; }
|
|
649
551
|
|
|
650
552
|
/* ── Push HUD toolbar down when simulation banner is visible ─────── */
|
|
651
|
-
.bpmnkit-sim-active #hud-top-center { top:
|
|
553
|
+
.bpmnkit-sim-active #hud-top-center { top: 39px; }
|
|
652
554
|
|
|
653
555
|
/* ── Simulation active banner ────────────────────────────────────── */
|
|
654
556
|
#bpmnkit-sim-banner {
|
|
655
557
|
position: absolute;
|
|
656
558
|
top: 0; left: 0; right: 0;
|
|
657
559
|
z-index: 150;
|
|
658
|
-
display: flex; align-items: center; justify-content: center; gap:
|
|
659
|
-
padding:
|
|
660
|
-
background:
|
|
661
|
-
border-bottom: 1px solid
|
|
662
|
-
|
|
663
|
-
font-size:
|
|
664
|
-
|
|
560
|
+
display: flex; align-items: center; justify-content: center; gap: 14px;
|
|
561
|
+
padding: 8px 16px;
|
|
562
|
+
background: var(--bpmnkit-chrome-ground);
|
|
563
|
+
border-bottom: 1px solid var(--bpmnkit-chrome-accent);
|
|
564
|
+
font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
|
|
565
|
+
font-size: var(--bpmnkit-ds-t-mono-label, 11.5px); letter-spacing: 0.08em;
|
|
566
|
+
text-transform: uppercase;
|
|
567
|
+
color: var(--bpmnkit-chrome-accent);
|
|
665
568
|
pointer-events: auto;
|
|
666
569
|
}
|
|
667
570
|
#bpmnkit-sim-banner.hidden { display: none; }
|
|
668
571
|
#bpmnkit-sim-banner-exit {
|
|
669
|
-
padding:
|
|
670
|
-
background:
|
|
671
|
-
border: 1px solid
|
|
672
|
-
color: inherit; cursor: pointer;
|
|
673
|
-
|
|
674
|
-
}
|
|
675
|
-
#bpmnkit-sim-banner-exit:hover { background: rgba(217, 119, 6, 0.35); }
|
|
676
|
-
[data-bpmnkit-hud-theme="light"] #bpmnkit-sim-banner {
|
|
677
|
-
background: rgba(254, 243, 199, 0.95);
|
|
678
|
-
border-bottom-color: rgba(217, 119, 6, 0.25);
|
|
679
|
-
color: #92400e;
|
|
680
|
-
}
|
|
681
|
-
[data-bpmnkit-hud-theme="light"] #bpmnkit-sim-banner-exit {
|
|
682
|
-
background: rgba(217, 119, 6, 0.1); border-color: rgba(217, 119, 6, 0.3);
|
|
572
|
+
padding: 4px 12px;
|
|
573
|
+
background: transparent;
|
|
574
|
+
border: 1px solid var(--bpmnkit-chrome-accent);
|
|
575
|
+
color: inherit; cursor: pointer;
|
|
576
|
+
font-family: inherit; font-size: inherit; letter-spacing: inherit;
|
|
683
577
|
}
|
|
578
|
+
#bpmnkit-sim-banner-exit:hover { background: var(--bpmnkit-chrome-accent); color: var(--bpmnkit-chrome-accent-fg); }
|
|
684
579
|
|
|
685
580
|
/* ── Context menu ────────────────────────────────────────────────── */
|
|
686
|
-
#bpmnkit-ctx-menu { min-width:
|
|
581
|
+
#bpmnkit-ctx-menu { min-width: 170px; }
|
|
687
582
|
|
|
688
583
|
/* ── Element search bar ──────────────────────────────────────────── */
|
|
689
584
|
#bpmnkit-search-bar {
|
|
690
585
|
position: absolute;
|
|
691
586
|
top: 44px; left: 50%; transform: translateX(-50%);
|
|
692
587
|
z-index: 120;
|
|
693
|
-
display: flex; align-items: center; gap:
|
|
694
|
-
padding:
|
|
695
|
-
background:
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
border-radius: 8px;
|
|
699
|
-
box-shadow: 0 4px 16px rgba(0,0,0,0.4);
|
|
588
|
+
display: flex; align-items: center; gap: 10px;
|
|
589
|
+
padding: 6px 12px;
|
|
590
|
+
background: var(--bpmnkit-chrome-ground);
|
|
591
|
+
border: 1px solid var(--bpmnkit-chrome-line);
|
|
592
|
+
font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
|
|
700
593
|
}
|
|
701
594
|
#bpmnkit-search-bar.hidden { display: none; }
|
|
702
595
|
#bpmnkit-search-input {
|
|
703
|
-
width: 220px; padding:
|
|
596
|
+
width: 220px; padding: 2px 0;
|
|
704
597
|
background: transparent; border: none;
|
|
705
|
-
color:
|
|
598
|
+
color: var(--bpmnkit-chrome-ink); font-family: inherit; font-size: 12.5px; outline: none;
|
|
706
599
|
}
|
|
707
|
-
#bpmnkit-search-input::placeholder { color:
|
|
600
|
+
#bpmnkit-search-input::placeholder { color: var(--bpmnkit-chrome-ink-4); }
|
|
708
601
|
#bpmnkit-search-count {
|
|
709
|
-
font-size:
|
|
602
|
+
font-size: var(--bpmnkit-ds-t-mono-micro, 10.5px); letter-spacing: 0.12em;
|
|
603
|
+
color: var(--bpmnkit-chrome-ink-4); white-space: nowrap; min-width: 44px;
|
|
710
604
|
}
|
|
711
605
|
#bpmnkit-search-close {
|
|
712
|
-
background: transparent; border: none; color:
|
|
713
|
-
cursor: pointer; font-size:
|
|
714
|
-
|
|
715
|
-
#bpmnkit-search-close:hover { color: #fff; }
|
|
716
|
-
[data-bpmnkit-hud-theme="light"] #bpmnkit-search-bar {
|
|
717
|
-
background: rgba(252, 252, 254, 0.96);
|
|
718
|
-
border-color: var(--bpmnkit-panel-border, rgba(0,0,0,0.08));
|
|
719
|
-
box-shadow: 0 4px 16px rgba(0,0,0,0.12);
|
|
606
|
+
background: transparent; border: none; color: var(--bpmnkit-chrome-ink-4);
|
|
607
|
+
cursor: pointer; font-family: inherit; font-size: 14px; line-height: 1; padding: 0 2px;
|
|
608
|
+
font-variant-emoji: text;
|
|
720
609
|
}
|
|
721
|
-
|
|
722
|
-
[data-bpmnkit-hud-theme="light"] #bpmnkit-search-input::placeholder { color: rgba(0,0,0,0.3); }
|
|
723
|
-
[data-bpmnkit-hud-theme="light"] #bpmnkit-search-count { color: rgba(0,0,0,0.4); }
|
|
724
|
-
[data-bpmnkit-hud-theme="light"] #bpmnkit-search-close { color: rgba(0,0,0,0.35); }
|
|
725
|
-
[data-bpmnkit-hud-theme="light"] #bpmnkit-search-close:hover { color: rgba(0,0,0,0.8); }
|
|
610
|
+
#bpmnkit-search-close:hover { color: var(--bpmnkit-chrome-ink); }
|
|
726
611
|
|
|
727
612
|
/* ── Keyboard shortcuts modal ────────────────────────────────────── */
|
|
728
613
|
#bpmnkit-shortcuts-modal {
|
|
729
614
|
position: absolute; inset: 0; z-index: 200;
|
|
730
615
|
display: flex; align-items: center; justify-content: center;
|
|
731
|
-
background:
|
|
732
|
-
backdrop-filter: blur(4px);
|
|
616
|
+
background: color-mix(in srgb, var(--bpmnkit-ds-dark, #14161a) 55%, transparent);
|
|
733
617
|
}
|
|
734
618
|
#bpmnkit-shortcuts-modal.hidden { display: none; }
|
|
735
619
|
#bpmnkit-shortcuts-inner {
|
|
736
|
-
background: var(--bpmnkit-
|
|
737
|
-
border: 1px solid var(--bpmnkit-
|
|
738
|
-
|
|
739
|
-
box-shadow: 0 8px 32px rgba(0,0,0,0.5);
|
|
740
|
-
padding: 20px 24px;
|
|
620
|
+
background: var(--bpmnkit-chrome-ground);
|
|
621
|
+
border: 1px solid var(--bpmnkit-chrome-line);
|
|
622
|
+
padding: 24px 26px;
|
|
741
623
|
min-width: 320px; max-width: 480px;
|
|
742
|
-
color:
|
|
624
|
+
color: var(--bpmnkit-chrome-ink-2);
|
|
743
625
|
}
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
color:
|
|
626
|
+
#bpmnkit-shortcuts-inner h3 {
|
|
627
|
+
margin: 0 0 16px;
|
|
628
|
+
font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
|
|
629
|
+
font-size: var(--bpmnkit-ds-t-mono-micro, 10.5px); letter-spacing: 0.12em;
|
|
630
|
+
text-transform: uppercase; font-weight: 400; color: var(--bpmnkit-chrome-ink-4);
|
|
749
631
|
}
|
|
750
|
-
#bpmnkit-shortcuts-inner h3 { margin: 0 0 14px; font-size: 14px; font-weight: 700; }
|
|
751
632
|
.bpmnkit-sc-row {
|
|
752
|
-
display: flex; justify-content: space-between; align-items: center;
|
|
753
|
-
padding:
|
|
633
|
+
display: flex; justify-content: space-between; align-items: center; gap: 24px;
|
|
634
|
+
padding: 7px 0; border-bottom: 1px solid var(--bpmnkit-chrome-line-soft); font-size: 12.5px;
|
|
754
635
|
}
|
|
755
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-sc-row { border-bottom-color: rgba(0,0,0,0.06); }
|
|
756
636
|
.bpmnkit-sc-row:last-child { border-bottom: none; }
|
|
757
637
|
.bpmnkit-sc-key {
|
|
758
|
-
font-family: var(--font-mono, monospace);
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
[data-bpmnkit-hud-theme="light"] .bpmnkit-sc-key {
|
|
763
|
-
background: rgba(0,0,0,0.06); border-color: rgba(0,0,0,0.12); color: rgba(0,0,0,0.7);
|
|
638
|
+
font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
|
|
639
|
+
border: 1px solid var(--bpmnkit-chrome-line);
|
|
640
|
+
padding: 1px 7px; font-size: 11px; color: var(--bpmnkit-chrome-ink);
|
|
641
|
+
white-space: nowrap;
|
|
764
642
|
}
|
|
765
643
|
#bpmnkit-shortcuts-close {
|
|
766
|
-
display: block; margin:
|
|
767
|
-
background: var(--bpmnkit-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
}
|
|
771
|
-
#bpmnkit-shortcuts-close:hover { background: rgba(255,255,255,0.14); color: #fff; }
|
|
772
|
-
[data-bpmnkit-hud-theme="light"] #bpmnkit-shortcuts-close {
|
|
773
|
-
background: var(--bpmnkit-surface-2, rgba(0,0,0,0.05)); border-color: var(--bpmnkit-border, #d0d0e8); color: rgba(0,0,0,0.6);
|
|
644
|
+
display: block; margin: 18px auto 0; padding: 7px 20px;
|
|
645
|
+
background: var(--bpmnkit-ds-accent, #a8503a); border: none;
|
|
646
|
+
color: #fff; cursor: pointer;
|
|
647
|
+
font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace); font-size: 12px;
|
|
774
648
|
}
|
|
649
|
+
#bpmnkit-shortcuts-close:hover { background: var(--bpmnkit-ds-accent-hover, #8f412e); }
|
|
775
650
|
|
|
776
651
|
/* ── Mobile: collapsible center toolbars ─────────────────────────── */
|
|
777
652
|
#btn-bc-toggle, #btn-tc-toggle { display: none; }
|
|
@@ -781,21 +656,19 @@ export const HUD_CSS = `
|
|
|
781
656
|
#hud-bottom-left { display: none !important; }
|
|
782
657
|
|
|
783
658
|
#hud-bottom-center {
|
|
784
|
-
left:
|
|
659
|
+
left: 16px;
|
|
785
660
|
transform: none;
|
|
786
661
|
}
|
|
787
662
|
|
|
788
663
|
#btn-bc-toggle { display: flex; }
|
|
664
|
+
#hud-bottom-center > #btn-bc-toggle + * { border-left: 1px solid var(--bpmnkit-chrome-line-soft); }
|
|
789
665
|
|
|
790
666
|
/* Collapsed: hide all children except the toggle button */
|
|
791
667
|
#hud-bottom-center:not(.expanded) > *:not(#btn-bc-toggle) { display: none; }
|
|
792
668
|
|
|
793
669
|
/* Expanded: highlight the toggle button as a close affordance */
|
|
794
670
|
#hud-bottom-center.expanded #btn-bc-toggle {
|
|
795
|
-
background:
|
|
796
|
-
}
|
|
797
|
-
[data-bpmnkit-hud-theme="light"] #hud-bottom-center.expanded #btn-bc-toggle {
|
|
798
|
-
background: rgba(0,0,0,0.06); color: rgba(0,0,0,0.9);
|
|
671
|
+
background: var(--bpmnkit-chrome-accent); color: var(--bpmnkit-chrome-accent-fg);
|
|
799
672
|
}
|
|
800
673
|
}
|
|
801
674
|
|
|
@@ -806,6 +679,7 @@ export const HUD_CSS = `
|
|
|
806
679
|
export function injectHudStyles() {
|
|
807
680
|
if (typeof document === "undefined")
|
|
808
681
|
return;
|
|
682
|
+
injectChromeStyles();
|
|
809
683
|
if (document.getElementById(HUD_STYLE_ID))
|
|
810
684
|
return;
|
|
811
685
|
const style = document.createElement("style");
|