@bpmnkit/plugins 0.0.8

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.
Files changed (140) hide show
  1. package/README.md +153 -0
  2. package/dist/ai-bridge/css.d.ts +2 -0
  3. package/dist/ai-bridge/css.js +366 -0
  4. package/dist/ai-bridge/index.d.ts +44 -0
  5. package/dist/ai-bridge/index.js +132 -0
  6. package/dist/ai-bridge/panel.d.ts +27 -0
  7. package/dist/ai-bridge/panel.js +715 -0
  8. package/dist/ascii-view/css.d.ts +4 -0
  9. package/dist/ascii-view/css.js +83 -0
  10. package/dist/ascii-view/index.d.ts +25 -0
  11. package/dist/ascii-view/index.js +92 -0
  12. package/dist/command-palette/css.d.ts +4 -0
  13. package/dist/command-palette/css.js +157 -0
  14. package/dist/command-palette/index.d.ts +53 -0
  15. package/dist/command-palette/index.js +378 -0
  16. package/dist/command-palette-editor/index.d.ts +35 -0
  17. package/dist/command-palette-editor/index.js +60 -0
  18. package/dist/config-panel/css.d.ts +4 -0
  19. package/dist/config-panel/css.js +719 -0
  20. package/dist/config-panel/index.d.ts +36 -0
  21. package/dist/config-panel/index.js +73 -0
  22. package/dist/config-panel/renderer.d.ts +127 -0
  23. package/dist/config-panel/renderer.js +1162 -0
  24. package/dist/config-panel/types.d.ts +118 -0
  25. package/dist/config-panel/types.js +2 -0
  26. package/dist/config-panel-bpmn/index.d.ts +58 -0
  27. package/dist/config-panel-bpmn/index.js +1320 -0
  28. package/dist/config-panel-bpmn/template-engine.d.ts +17 -0
  29. package/dist/config-panel-bpmn/template-engine.js +307 -0
  30. package/dist/config-panel-bpmn/template-to-service-task.d.ts +30 -0
  31. package/dist/config-panel-bpmn/template-to-service-task.js +92 -0
  32. package/dist/config-panel-bpmn/template-types.d.ts +126 -0
  33. package/dist/config-panel-bpmn/template-types.js +6 -0
  34. package/dist/config-panel-bpmn/templates/generated.d.ts +3 -0
  35. package/dist/config-panel-bpmn/templates/generated.js +57865 -0
  36. package/dist/config-panel-bpmn/util.d.ts +46 -0
  37. package/dist/config-panel-bpmn/util.js +195 -0
  38. package/dist/dmn-editor/css.d.ts +3 -0
  39. package/dist/dmn-editor/css.js +667 -0
  40. package/dist/dmn-editor/dmn-editor.d.ts +34 -0
  41. package/dist/dmn-editor/dmn-editor.js +646 -0
  42. package/dist/dmn-editor/drd-canvas.d.ts +85 -0
  43. package/dist/dmn-editor/drd-canvas.js +1087 -0
  44. package/dist/dmn-editor/index.d.ts +3 -0
  45. package/dist/dmn-editor/index.js +2 -0
  46. package/dist/dmn-viewer/css.d.ts +3 -0
  47. package/dist/dmn-viewer/css.js +151 -0
  48. package/dist/dmn-viewer/dmn-viewer.d.ts +30 -0
  49. package/dist/dmn-viewer/dmn-viewer.js +160 -0
  50. package/dist/dmn-viewer/feel.d.ts +3 -0
  51. package/dist/dmn-viewer/feel.js +2 -0
  52. package/dist/dmn-viewer/index.d.ts +14 -0
  53. package/dist/dmn-viewer/index.js +12 -0
  54. package/dist/element-docs/content.d.ts +20 -0
  55. package/dist/element-docs/content.js +1032 -0
  56. package/dist/element-docs/index.d.ts +7 -0
  57. package/dist/element-docs/index.js +643 -0
  58. package/dist/feel-playground/css.d.ts +4 -0
  59. package/dist/feel-playground/css.js +292 -0
  60. package/dist/feel-playground/index.d.ts +4 -0
  61. package/dist/feel-playground/index.js +3 -0
  62. package/dist/feel-playground/playground-plugin.d.ts +14 -0
  63. package/dist/feel-playground/playground-plugin.js +292 -0
  64. package/dist/form-editor/css.d.ts +3 -0
  65. package/dist/form-editor/css.js +703 -0
  66. package/dist/form-editor/form-editor.d.ts +48 -0
  67. package/dist/form-editor/form-editor.js +1039 -0
  68. package/dist/form-editor/index.d.ts +3 -0
  69. package/dist/form-editor/index.js +2 -0
  70. package/dist/form-viewer/css.d.ts +3 -0
  71. package/dist/form-viewer/css.js +303 -0
  72. package/dist/form-viewer/form-viewer.d.ts +29 -0
  73. package/dist/form-viewer/form-viewer.js +376 -0
  74. package/dist/form-viewer/index.d.ts +12 -0
  75. package/dist/form-viewer/index.js +11 -0
  76. package/dist/history/checkpoint.d.ts +10 -0
  77. package/dist/history/checkpoint.js +92 -0
  78. package/dist/history/css.d.ts +2 -0
  79. package/dist/history/css.js +130 -0
  80. package/dist/history/history-panel.d.ts +12 -0
  81. package/dist/history/history-panel.js +142 -0
  82. package/dist/history/index.d.ts +5 -0
  83. package/dist/history/index.js +3 -0
  84. package/dist/main-menu/css.d.ts +4 -0
  85. package/dist/main-menu/css.js +272 -0
  86. package/dist/main-menu/index.d.ts +59 -0
  87. package/dist/main-menu/index.js +285 -0
  88. package/dist/minimap/css.d.ts +10 -0
  89. package/dist/minimap/css.js +54 -0
  90. package/dist/minimap/index.d.ts +38 -0
  91. package/dist/minimap/index.js +69 -0
  92. package/dist/minimap/minimap.d.ts +35 -0
  93. package/dist/minimap/minimap.js +166 -0
  94. package/dist/optimize/index.d.ts +21 -0
  95. package/dist/optimize/index.js +304 -0
  96. package/dist/process-runner/css.d.ts +2 -0
  97. package/dist/process-runner/css.js +467 -0
  98. package/dist/process-runner/index.d.ts +56 -0
  99. package/dist/process-runner/index.js +549 -0
  100. package/dist/storage/auto-save.d.ts +11 -0
  101. package/dist/storage/auto-save.js +44 -0
  102. package/dist/storage/css.d.ts +2 -0
  103. package/dist/storage/css.js +2 -0
  104. package/dist/storage/db.d.ts +99 -0
  105. package/dist/storage/db.js +116 -0
  106. package/dist/storage/dialog.d.ts +15 -0
  107. package/dist/storage/dialog.js +201 -0
  108. package/dist/storage/export.d.ts +3 -0
  109. package/dist/storage/export.js +137 -0
  110. package/dist/storage/index.d.ts +44 -0
  111. package/dist/storage/index.js +201 -0
  112. package/dist/storage/sidebar.d.ts +2 -0
  113. package/dist/storage/sidebar.js +2 -0
  114. package/dist/storage/storage-api.d.ts +76 -0
  115. package/dist/storage/storage-api.js +342 -0
  116. package/dist/storage/types.d.ts +44 -0
  117. package/dist/storage/types.js +2 -0
  118. package/dist/storage-tabs-bridge/index.d.ts +96 -0
  119. package/dist/storage-tabs-bridge/index.js +502 -0
  120. package/dist/tabs/css.d.ts +3 -0
  121. package/dist/tabs/css.js +642 -0
  122. package/dist/tabs/file-resolver.d.ts +71 -0
  123. package/dist/tabs/file-resolver.js +46 -0
  124. package/dist/tabs/index.d.ts +15 -0
  125. package/dist/tabs/index.js +13 -0
  126. package/dist/tabs/tabs-plugin.d.ts +250 -0
  127. package/dist/tabs/tabs-plugin.js +1119 -0
  128. package/dist/token-highlight/css.d.ts +2 -0
  129. package/dist/token-highlight/css.js +81 -0
  130. package/dist/token-highlight/index.d.ts +44 -0
  131. package/dist/token-highlight/index.js +164 -0
  132. package/dist/watermark/css.d.ts +10 -0
  133. package/dist/watermark/css.js +54 -0
  134. package/dist/watermark/index.d.ts +48 -0
  135. package/dist/watermark/index.js +64 -0
  136. package/dist/zoom-controls/css.d.ts +4 -0
  137. package/dist/zoom-controls/css.js +48 -0
  138. package/dist/zoom-controls/index.d.ts +36 -0
  139. package/dist/zoom-controls/index.js +111 -0
  140. package/package.json +121 -0
@@ -0,0 +1,703 @@
1
+ export const FORM_EDITOR_CSS = `
2
+ .form-editor {
3
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
4
+ font-size: 13px;
5
+ height: 100%;
6
+ box-sizing: border-box;
7
+ display: flex;
8
+ flex-direction: row;
9
+ overflow: hidden;
10
+ background: var(--fe-bg, #ffffff);
11
+ color: var(--fe-fg, #1c1c1c);
12
+ --fe-bg: #ffffff;
13
+ --fe-fg: #1c1c1c;
14
+ --fe-border: #e5e7eb;
15
+ --fe-panel-bg: #f9fafb;
16
+ --fe-row-hover: #f3f4f6;
17
+ --fe-badge-bg: #e5e7eb;
18
+ --fe-badge-fg: #374151;
19
+ --fe-btn-bg: #e5e7eb;
20
+ --fe-btn-fg: #374151;
21
+ --fe-btn-hover: #d1d5db;
22
+ --fe-input-bg: #ffffff;
23
+ --fe-input-border: #d1d5db;
24
+ --fe-label: #6b7280;
25
+ --fe-accent: var(--bpmnkit-accent, #1a56db);
26
+ --fe-danger: #dc2626;
27
+ --fe-section-fg: #9ca3af;
28
+ --fe-card-selected-bg: #eff3ff;
29
+ --fe-card-selected-border: #3d5afe;
30
+ --fe-card-hover-border: #93c5fd;
31
+ --fe-drop-active-bg: #dbeafe;
32
+ --fe-drop-active-border: #3b82f6;
33
+ --fe-container-border: #c4b5fd;
34
+ --fe-preview-input-bg: #f9fafb;
35
+ --fe-preview-input-border: #d1d5db;
36
+ --fe-preview-label: #6b7280;
37
+ }
38
+
39
+ .form-editor.dark {
40
+ --fe-bg: var(--bpmnkit-surface-2, #1e1e2e);
41
+ --fe-fg: #cdd6f4;
42
+ --fe-border: #313244;
43
+ --fe-panel-bg: var(--bpmnkit-surface-2, #1e1e2e);
44
+ --fe-row-hover: #2a2a3e;
45
+ --fe-badge-bg: #313244;
46
+ --fe-badge-fg: #bac2de;
47
+ --fe-btn-bg: #313244;
48
+ --fe-btn-fg: #bac2de;
49
+ --fe-btn-hover: #45475a;
50
+ --fe-input-bg: #1e1e2e;
51
+ --fe-input-border: #45475a;
52
+ --fe-label: #bac2de;
53
+ --fe-accent: var(--bpmnkit-accent-bright, #89b4fa);
54
+ --fe-danger: #f38ba8;
55
+ --fe-section-fg: #6c7086;
56
+ --fe-card-selected-bg: #1e1e3a;
57
+ --fe-card-selected-border: #89b4fa;
58
+ --fe-card-hover-border: #585b70;
59
+ --fe-drop-active-bg: #1e2040;
60
+ --fe-drop-active-border: #89b4fa;
61
+ --fe-container-border: #7c6fd4;
62
+ --fe-preview-input-bg: #1e1e2e;
63
+ --fe-preview-input-border: #45475a;
64
+ --fe-preview-label: #7f849c;
65
+ }
66
+
67
+ /* ── Palette ────────────────────────────────────────────────────── */
68
+
69
+ .fe-palette {
70
+ width: 260px;
71
+ flex-shrink: 0;
72
+ border-right: 1px solid var(--fe-border);
73
+ display: flex;
74
+ flex-direction: column;
75
+ overflow: hidden;
76
+ background: var(--fe-panel-bg);
77
+ }
78
+
79
+ .fe-palette-header {
80
+ display: flex;
81
+ align-items: center;
82
+ padding: 10px 12px;
83
+ border-bottom: 1px solid var(--fe-border);
84
+ flex-shrink: 0;
85
+ font-size: 11px;
86
+ font-weight: 700;
87
+ text-transform: uppercase;
88
+ letter-spacing: 0.06em;
89
+ color: var(--fe-section-fg);
90
+ }
91
+
92
+ .fe-palette-search {
93
+ display: block;
94
+ width: 100%;
95
+ box-sizing: border-box;
96
+ padding: 7px 10px;
97
+ border: none;
98
+ border-bottom: 1px solid var(--fe-border);
99
+ background: var(--fe-input-bg);
100
+ color: var(--fe-fg);
101
+ font-family: inherit;
102
+ font-size: 12px;
103
+ outline: none;
104
+ flex-shrink: 0;
105
+ }
106
+
107
+ .fe-palette-search::placeholder {
108
+ color: var(--fe-section-fg);
109
+ }
110
+
111
+ .fe-palette-entries {
112
+ flex: 1;
113
+ overflow-y: auto;
114
+ padding: 8px 0;
115
+ }
116
+
117
+ .fe-palette-group {
118
+ margin-bottom: 8px;
119
+ }
120
+
121
+ .fe-palette-group-label {
122
+ font-size: 10px;
123
+ font-weight: 700;
124
+ text-transform: uppercase;
125
+ letter-spacing: 0.06em;
126
+ color: var(--fe-section-fg);
127
+ padding: 4px 10px 4px;
128
+ }
129
+
130
+ .fe-palette-group-items {
131
+ display: flex;
132
+ flex-wrap: wrap;
133
+ gap: 4px;
134
+ padding: 2px 8px;
135
+ }
136
+
137
+ .fe-palette-item {
138
+ width: 72px;
139
+ height: 72px;
140
+ display: flex;
141
+ flex-direction: column;
142
+ align-items: center;
143
+ justify-content: center;
144
+ gap: 4px;
145
+ border: 1px solid transparent;
146
+ border-radius: 6px;
147
+ cursor: grab;
148
+ background: var(--fe-bg);
149
+ padding: 6px 4px;
150
+ box-sizing: border-box;
151
+ transition: border-color 0.1s, background 0.1s;
152
+ user-select: none;
153
+ }
154
+
155
+ .fe-palette-item:hover {
156
+ border-color: var(--fe-border);
157
+ background: var(--fe-row-hover);
158
+ }
159
+
160
+ .fe-palette-item:active {
161
+ cursor: grabbing;
162
+ }
163
+
164
+ .fe-palette-icon {
165
+ width: 36px;
166
+ height: 36px;
167
+ border-radius: 6px;
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ font-size: 15px;
172
+ font-weight: 600;
173
+ flex-shrink: 0;
174
+ }
175
+
176
+ .fe-palette-item-label {
177
+ font-size: 10px;
178
+ text-align: center;
179
+ color: var(--fe-fg);
180
+ line-height: 1.2;
181
+ max-height: 2.4em;
182
+ overflow: hidden;
183
+ word-break: break-word;
184
+ }
185
+
186
+ /* Palette group icon colors */
187
+ .fe-palette-item-input .fe-palette-icon {
188
+ background: #dbeafe;
189
+ color: #1d4ed8;
190
+ }
191
+ .fe-palette-item-selection .fe-palette-icon {
192
+ background: #dcfce7;
193
+ color: #15803d;
194
+ }
195
+ .fe-palette-item-presentation .fe-palette-icon {
196
+ background: #fef3c7;
197
+ color: #92400e;
198
+ }
199
+ .fe-palette-item-container .fe-palette-icon {
200
+ background: #ede9fe;
201
+ color: #6d28d9;
202
+ }
203
+ .fe-palette-item-action .fe-palette-icon {
204
+ background: #fee2e2;
205
+ color: #b91c1c;
206
+ }
207
+
208
+ /* Dark mode palette icon colors */
209
+ .form-editor.dark .fe-palette-item-input .fe-palette-icon {
210
+ background: #1e3a5f;
211
+ color: #93c5fd;
212
+ }
213
+ .form-editor.dark .fe-palette-item-selection .fe-palette-icon {
214
+ background: #14532d;
215
+ color: #86efac;
216
+ }
217
+ .form-editor.dark .fe-palette-item-presentation .fe-palette-icon {
218
+ background: #451a03;
219
+ color: #fcd34d;
220
+ }
221
+ .form-editor.dark .fe-palette-item-container .fe-palette-icon {
222
+ background: #2e1065;
223
+ color: #c4b5fd;
224
+ }
225
+ .form-editor.dark .fe-palette-item-action .fe-palette-icon {
226
+ background: #450a0a;
227
+ color: #fca5a5;
228
+ }
229
+
230
+ /* ── Canvas ─────────────────────────────────────────────────────── */
231
+
232
+ .fe-canvas {
233
+ flex: 1;
234
+ overflow-y: auto;
235
+ position: relative;
236
+ background: var(--fe-bg);
237
+ }
238
+
239
+ .fe-canvas-inner {
240
+ padding: 20px;
241
+ min-height: 100%;
242
+ box-sizing: border-box;
243
+ }
244
+
245
+ /* Empty state */
246
+ .fe-canvas-empty {
247
+ display: flex;
248
+ flex-direction: column;
249
+ align-items: center;
250
+ justify-content: center;
251
+ min-height: 100%;
252
+ padding: 40px;
253
+ box-sizing: border-box;
254
+ color: var(--fe-section-fg);
255
+ text-align: center;
256
+ }
257
+
258
+ .fe-canvas-empty-active {
259
+ background: var(--fe-drop-active-bg);
260
+ }
261
+
262
+ .fe-canvas-empty-icon {
263
+ font-size: 48px;
264
+ margin-bottom: 12px;
265
+ opacity: 0.4;
266
+ }
267
+
268
+ .fe-canvas-empty-heading {
269
+ font-size: 16px;
270
+ font-weight: 600;
271
+ margin-bottom: 6px;
272
+ color: var(--fe-fg);
273
+ opacity: 0.6;
274
+ }
275
+
276
+ .fe-canvas-empty-hint {
277
+ font-size: 13px;
278
+ opacity: 0.7;
279
+ max-width: 280px;
280
+ }
281
+
282
+ /* Drop zones */
283
+ .fe-drop-zone {
284
+ height: 8px;
285
+ border-radius: 4px;
286
+ transition: height 0.1s, background 0.1s;
287
+ position: relative;
288
+ }
289
+
290
+ .fe-canvas.fe-dragging .fe-drop-zone {
291
+ height: 24px;
292
+ }
293
+
294
+ .fe-drop-zone.fe-drop-zone-active {
295
+ height: 36px !important;
296
+ background: var(--fe-drop-active-bg);
297
+ border: 2px dashed var(--fe-drop-active-border);
298
+ border-radius: 4px;
299
+ }
300
+
301
+ /* Cards */
302
+ .fe-canvas-card {
303
+ position: relative;
304
+ display: flex;
305
+ align-items: stretch;
306
+ border: 2px solid transparent;
307
+ border-radius: 6px;
308
+ background: var(--fe-bg);
309
+ cursor: pointer;
310
+ transition: border-color 0.1s;
311
+ }
312
+
313
+ .fe-canvas-card:hover {
314
+ border-color: var(--fe-card-hover-border);
315
+ }
316
+
317
+ .fe-canvas-card.selected {
318
+ border-color: var(--fe-card-selected-border);
319
+ background: var(--fe-card-selected-bg);
320
+ }
321
+
322
+ .fe-canvas-card.fe-card-dragging {
323
+ opacity: 0.3;
324
+ }
325
+
326
+ .fe-card-drag-handle {
327
+ width: 20px;
328
+ display: flex;
329
+ align-items: center;
330
+ justify-content: center;
331
+ cursor: grab;
332
+ color: var(--fe-section-fg);
333
+ font-size: 14px;
334
+ opacity: 0.4;
335
+ flex-shrink: 0;
336
+ border-radius: 4px 0 0 4px;
337
+ }
338
+
339
+ .fe-canvas-card:hover .fe-card-drag-handle {
340
+ opacity: 1;
341
+ }
342
+
343
+ .fe-card-drag-handle:active {
344
+ cursor: grabbing;
345
+ }
346
+
347
+ .fe-card-content {
348
+ flex: 1;
349
+ padding: 10px 10px 10px 4px;
350
+ min-width: 0;
351
+ }
352
+
353
+ .fe-card-delete {
354
+ position: absolute;
355
+ top: 4px;
356
+ right: 4px;
357
+ width: 20px;
358
+ height: 20px;
359
+ border: none;
360
+ border-radius: 3px;
361
+ background: transparent;
362
+ color: var(--fe-danger);
363
+ font-size: 12px;
364
+ cursor: pointer;
365
+ display: flex;
366
+ align-items: center;
367
+ justify-content: center;
368
+ opacity: 0;
369
+ transition: opacity 0.1s;
370
+ padding: 0;
371
+ }
372
+
373
+ .fe-canvas-card:hover .fe-card-delete,
374
+ .fe-canvas-card.selected .fe-card-delete {
375
+ opacity: 1;
376
+ }
377
+
378
+ .fe-card-delete:hover {
379
+ background: var(--fe-danger);
380
+ color: #fff;
381
+ }
382
+
383
+ /* Container canvas (children) */
384
+ .fe-container-canvas {
385
+ margin-top: 8px;
386
+ padding-left: 10px;
387
+ border-left: 3px dashed var(--fe-container-border);
388
+ }
389
+
390
+ .fe-container-empty {
391
+ padding: 12px;
392
+ border: 2px dashed var(--fe-border);
393
+ border-radius: 4px;
394
+ color: var(--fe-section-fg);
395
+ font-size: 12px;
396
+ text-align: center;
397
+ transition: background 0.1s, border-color 0.1s;
398
+ }
399
+
400
+ .fe-container-empty.fe-drop-zone-active {
401
+ background: var(--fe-drop-active-bg);
402
+ border-color: var(--fe-drop-active-border);
403
+ color: var(--fe-accent);
404
+ }
405
+
406
+ /* Component preview */
407
+ .fe-preview {
408
+ pointer-events: none;
409
+ user-select: none;
410
+ }
411
+
412
+ .fe-preview-label {
413
+ font-size: 11px;
414
+ font-weight: 500;
415
+ color: var(--fe-preview-label);
416
+ margin-bottom: 4px;
417
+ }
418
+
419
+ .fe-preview-input {
420
+ height: 28px;
421
+ border: 1px solid var(--fe-preview-input-border);
422
+ border-radius: 3px;
423
+ background: var(--fe-preview-input-bg);
424
+ }
425
+
426
+ .fe-preview-textarea {
427
+ height: 56px;
428
+ border: 1px solid var(--fe-preview-input-border);
429
+ border-radius: 3px;
430
+ background: var(--fe-preview-input-bg);
431
+ }
432
+
433
+ .fe-preview-select {
434
+ height: 28px;
435
+ border: 1px solid var(--fe-preview-input-border);
436
+ border-radius: 3px;
437
+ background: var(--fe-preview-input-bg);
438
+ display: flex;
439
+ align-items: center;
440
+ padding: 0 8px;
441
+ font-size: 12px;
442
+ color: var(--fe-section-fg);
443
+ justify-content: space-between;
444
+ }
445
+
446
+ .fe-preview-checkbox-row {
447
+ display: flex;
448
+ align-items: center;
449
+ gap: 6px;
450
+ font-size: 12px;
451
+ }
452
+
453
+ .fe-preview-checkbox {
454
+ width: 14px;
455
+ height: 14px;
456
+ border: 1px solid var(--fe-preview-input-border);
457
+ border-radius: 2px;
458
+ background: var(--fe-preview-input-bg);
459
+ flex-shrink: 0;
460
+ }
461
+
462
+ .fe-preview-radio {
463
+ width: 14px;
464
+ height: 14px;
465
+ border: 1px solid var(--fe-preview-input-border);
466
+ border-radius: 50%;
467
+ background: var(--fe-preview-input-bg);
468
+ flex-shrink: 0;
469
+ }
470
+
471
+ .fe-preview-option-row {
472
+ display: flex;
473
+ align-items: center;
474
+ gap: 6px;
475
+ margin-bottom: 3px;
476
+ font-size: 12px;
477
+ }
478
+
479
+ .fe-preview-button {
480
+ display: inline-flex;
481
+ align-items: center;
482
+ justify-content: center;
483
+ height: 32px;
484
+ padding: 0 16px;
485
+ background: var(--fe-accent);
486
+ color: #fff;
487
+ border-radius: 4px;
488
+ font-size: 13px;
489
+ font-weight: 500;
490
+ }
491
+
492
+ .fe-preview-badge {
493
+ display: inline-flex;
494
+ align-items: center;
495
+ padding: 2px 8px;
496
+ background: var(--fe-badge-bg);
497
+ color: var(--fe-badge-fg);
498
+ border-radius: 12px;
499
+ font-size: 11px;
500
+ font-weight: 600;
501
+ text-transform: uppercase;
502
+ }
503
+
504
+ .fe-preview-text {
505
+ font-size: 12px;
506
+ color: var(--fe-fg);
507
+ white-space: nowrap;
508
+ overflow: hidden;
509
+ text-overflow: ellipsis;
510
+ max-width: 400px;
511
+ }
512
+
513
+ .fe-preview-separator {
514
+ border: none;
515
+ border-top: 1px solid var(--fe-border);
516
+ margin: 4px 0;
517
+ }
518
+
519
+ .fe-preview-spacer {
520
+ height: 24px;
521
+ }
522
+
523
+ .fe-preview-image {
524
+ display: flex;
525
+ align-items: center;
526
+ gap: 8px;
527
+ font-size: 12px;
528
+ color: var(--fe-section-fg);
529
+ padding: 8px;
530
+ border: 1px dashed var(--fe-border);
531
+ border-radius: 3px;
532
+ }
533
+
534
+ .fe-preview-group-label {
535
+ font-size: 12px;
536
+ font-weight: 600;
537
+ color: var(--fe-fg);
538
+ }
539
+
540
+ /* ── Properties panel ───────────────────────────────────────────── */
541
+
542
+ .fe-props {
543
+ width: 300px;
544
+ flex-shrink: 0;
545
+ border-left: 1px solid var(--fe-border);
546
+ display: flex;
547
+ flex-direction: column;
548
+ overflow: hidden;
549
+ background: var(--fe-panel-bg);
550
+ }
551
+
552
+ .fe-props-header {
553
+ padding: 12px 14px;
554
+ border-bottom: 1px solid var(--fe-border);
555
+ flex-shrink: 0;
556
+ }
557
+
558
+ .fe-props-header-title {
559
+ display: flex;
560
+ align-items: center;
561
+ gap: 8px;
562
+ margin-bottom: 4px;
563
+ }
564
+
565
+ .fe-props-header-icon {
566
+ width: 24px;
567
+ height: 24px;
568
+ border-radius: 4px;
569
+ display: flex;
570
+ align-items: center;
571
+ justify-content: center;
572
+ font-size: 13px;
573
+ font-weight: 600;
574
+ flex-shrink: 0;
575
+ }
576
+
577
+ .fe-props-header-type {
578
+ font-size: 13px;
579
+ font-weight: 600;
580
+ color: var(--fe-fg);
581
+ }
582
+
583
+ .fe-props-header-hint {
584
+ font-size: 11px;
585
+ color: var(--fe-section-fg);
586
+ }
587
+
588
+ .fe-props-body {
589
+ flex: 1;
590
+ overflow-y: auto;
591
+ padding: 16px;
592
+ }
593
+
594
+ .fe-prop-row {
595
+ margin-bottom: 14px;
596
+ }
597
+
598
+ .fe-prop-label {
599
+ display: block;
600
+ font-size: 11px;
601
+ font-weight: 600;
602
+ text-transform: uppercase;
603
+ letter-spacing: 0.04em;
604
+ color: var(--fe-label);
605
+ margin-bottom: 5px;
606
+ }
607
+
608
+ .fe-prop-input {
609
+ display: block;
610
+ width: 100%;
611
+ box-sizing: border-box;
612
+ padding: 6px 8px;
613
+ border: 1px solid var(--fe-input-border);
614
+ border-radius: 4px;
615
+ background: var(--fe-input-bg);
616
+ color: var(--fe-fg);
617
+ font-family: inherit;
618
+ font-size: 13px;
619
+ outline: none;
620
+ }
621
+
622
+ .fe-prop-input:focus {
623
+ border-color: var(--fe-accent);
624
+ }
625
+
626
+ .fe-prop-checkbox {
627
+ display: flex;
628
+ align-items: center;
629
+ gap: 8px;
630
+ cursor: pointer;
631
+ font-size: 13px;
632
+ }
633
+
634
+ .fe-prop-checkbox input[type="checkbox"] {
635
+ width: 14px;
636
+ height: 14px;
637
+ cursor: pointer;
638
+ accent-color: var(--fe-accent);
639
+ }
640
+
641
+ /* Options list (select/radio/checklist/taglist) */
642
+ .fe-options-list {
643
+ margin-bottom: 6px;
644
+ }
645
+
646
+ .fe-option-row {
647
+ display: flex;
648
+ align-items: center;
649
+ gap: 6px;
650
+ margin-bottom: 4px;
651
+ }
652
+
653
+ .fe-option-row .fe-prop-input {
654
+ flex: 1;
655
+ }
656
+
657
+ .fe-options-add-row {
658
+ display: flex;
659
+ align-items: center;
660
+ margin-bottom: 4px;
661
+ }
662
+
663
+ /* Shared buttons */
664
+ .fe-btn {
665
+ display: inline-flex;
666
+ align-items: center;
667
+ gap: 4px;
668
+ background: var(--fe-btn-bg);
669
+ color: var(--fe-btn-fg);
670
+ border: none;
671
+ border-radius: 3px;
672
+ font-size: 12px;
673
+ padding: 3px 8px;
674
+ cursor: pointer;
675
+ white-space: nowrap;
676
+ font-family: inherit;
677
+ }
678
+
679
+ .fe-btn:hover {
680
+ background: var(--fe-btn-hover);
681
+ }
682
+
683
+ .fe-btn-danger {
684
+ color: var(--fe-danger);
685
+ }
686
+
687
+ .fe-btn-icon {
688
+ width: 22px;
689
+ height: 22px;
690
+ padding: 3px;
691
+ border-radius: 3px;
692
+ }
693
+ `.trim();
694
+ const STYLE_ID = "bpmn-sdk-form-editor-css";
695
+ export function injectFormEditorStyles() {
696
+ if (document.getElementById(STYLE_ID))
697
+ return;
698
+ const style = document.createElement("style");
699
+ style.id = STYLE_ID;
700
+ style.textContent = FORM_EDITOR_CSS;
701
+ document.head.appendChild(style);
702
+ }
703
+ //# sourceMappingURL=css.js.map