@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,667 @@
1
+ export const DMN_EDITOR_CSS = `
2
+ .dmn-editor {
3
+ font-family: Arial, sans-serif;
4
+ font-size: 14px;
5
+ overflow: hidden;
6
+ height: 100%;
7
+ box-sizing: border-box;
8
+ background: var(--dme-bg, #fff);
9
+ color: var(--dme-fg, #1c1c1c);
10
+ display: flex;
11
+ flex-direction: column;
12
+ }
13
+
14
+ .dmn-editor-body {
15
+ flex: 1;
16
+ overflow: hidden;
17
+ position: relative;
18
+ display: flex;
19
+ flex-direction: column;
20
+ }
21
+
22
+ /* ── Light theme (default) ── */
23
+ .dmn-editor,
24
+ .dmn-editor.light {
25
+ --dme-bg: #fff;
26
+ --dme-fg: #1c1c1c;
27
+ --dme-border: #ddd;
28
+ --dme-hp-bg: #e8f0fe;
29
+ --dme-hp-fg: #1a56db;
30
+ --dme-input-section: #f0f4ff;
31
+ --dme-output-section: #f0fff4;
32
+ --dme-annotation-bg: #fafaf5;
33
+ --dme-row-hover: #f5f5f5;
34
+ --dme-row-even: #fafafa;
35
+ --dme-clause-fg: #888;
36
+ --dme-btn-bg: #e2e8f0;
37
+ --dme-btn-fg: #334155;
38
+ --dme-btn-hover: #cbd5e1;
39
+ --dme-input-cell-bg: transparent;
40
+ --dme-input-cell-fg: #1c1c1c;
41
+ --dme-accent: var(--bpmnkit-accent, #1a56db);
42
+ --dme-divider: 3px double #aaa;
43
+ }
44
+
45
+ /* ── Dark theme ── */
46
+ .dmn-editor.dark {
47
+ --dme-bg: var(--bpmnkit-surface-2, #1e1e2e);
48
+ --dme-fg: #cdd6f4;
49
+ --dme-border: #313244;
50
+ --dme-hp-bg: #1e1e3a;
51
+ --dme-hp-fg: #89b4fa;
52
+ --dme-input-section: #1e1e3a;
53
+ --dme-output-section: #1a2e1a;
54
+ --dme-annotation-bg: #252530;
55
+ --dme-row-hover: #2a2a3e;
56
+ --dme-row-even: #252535;
57
+ --dme-clause-fg: #6c6f85;
58
+ --dme-btn-bg: #313244;
59
+ --dme-btn-fg: #bac2de;
60
+ --dme-btn-hover: #45475a;
61
+ --dme-input-cell-bg: transparent;
62
+ --dme-input-cell-fg: #cdd6f4;
63
+ --dme-accent: var(--bpmnkit-accent-bright, #89b4fa);
64
+ --dme-divider: 3px double #444;
65
+ }
66
+
67
+ /* ── Table view wrapper ── */
68
+ .dme-back-bar {
69
+ display: flex;
70
+ align-items: center;
71
+ gap: 12px;
72
+ padding: 8px 16px;
73
+ border-bottom: 1px solid var(--dme-border);
74
+ background: var(--dme-bg);
75
+ flex-shrink: 0;
76
+ }
77
+
78
+ .dme-back-btn {
79
+ padding: 4px 12px;
80
+ font-size: 13px;
81
+ }
82
+
83
+ .dme-back-title {
84
+ font-weight: 600;
85
+ font-size: 15px;
86
+ color: var(--dme-fg);
87
+ }
88
+
89
+ .dme-table-wrap {
90
+ overflow: auto;
91
+ flex: 1;
92
+ padding: 24px;
93
+ max-width: 1200px;
94
+ margin: 0 auto;
95
+ width: 100%;
96
+ box-sizing: border-box;
97
+ }
98
+
99
+ /* ── DRD Canvas ── */
100
+ .drd-root {
101
+ position: relative;
102
+ height: 100%;
103
+ width: 100%;
104
+ overflow: hidden;
105
+ }
106
+
107
+ /* Crosshair cursor during connect mode */
108
+ .drd-root.drd-connect-mode .drd-svg {
109
+ cursor: crosshair;
110
+ }
111
+
112
+ .drd-svg {
113
+ position: absolute;
114
+ inset: 0;
115
+ width: 100%;
116
+ height: 100%;
117
+ cursor: default;
118
+ background: var(--drd-canvas-bg, #f8f8f5);
119
+ }
120
+
121
+ /* Dark theme DRD variables */
122
+ .dmn-editor.dark {
123
+ --drd-canvas-bg: #1a1a24;
124
+ --drd-grid: rgba(255, 255, 255, 0.07);
125
+ --drd-node-fill: #252535;
126
+ --drd-node-stroke: #9ca3af;
127
+ --drd-decision-fill: #1e2a42;
128
+ --drd-decision-stroke: #60a5fa;
129
+ --drd-input-fill: #1a2e22;
130
+ --drd-input-stroke: #4ade80;
131
+ --drd-ks-fill: #2d1f10;
132
+ --drd-ks-stroke: #fb923c;
133
+ --drd-bkm-fill: #261a38;
134
+ --drd-bkm-stroke: #c084fc;
135
+ --drd-ann-stroke: #9ca3af;
136
+ --drd-edge: #9ca3af;
137
+ --drd-assoc: #6b7280;
138
+ }
139
+
140
+ /* ── Floating bar (shared base for bottom-bar and ctx-bar) ── */
141
+ .drd-bar {
142
+ display: flex;
143
+ align-items: center;
144
+ gap: 2px;
145
+ padding: 4px;
146
+ background: rgba(255, 255, 255, 0.93);
147
+ backdrop-filter: blur(10px);
148
+ border: 1px solid var(--bpmnkit-panel-border, rgba(0,0,0,0.08));
149
+ border-radius: 10px;
150
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
151
+ z-index: 10;
152
+ pointer-events: all;
153
+ }
154
+
155
+ .dmn-editor.dark .drd-bar {
156
+ background: var(--bpmnkit-panel-bg, rgba(13,13,22,0.92));
157
+ border-color: var(--bpmnkit-panel-border, rgba(255,255,255,0.08));
158
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
159
+ }
160
+
161
+ /* Bottom-center palette */
162
+ .drd-bottom-bar {
163
+ position: absolute;
164
+ bottom: 10px;
165
+ left: 50%;
166
+ transform: translateX(-50%);
167
+ }
168
+
169
+ /* Contextual toolbar below selected node */
170
+ .drd-ctx-bar {
171
+ position: absolute;
172
+ transform: translateX(-50%);
173
+ }
174
+
175
+ /* Bar icon buttons */
176
+ .drd-bar-btn {
177
+ display: flex;
178
+ align-items: center;
179
+ justify-content: center;
180
+ width: 32px;
181
+ height: 32px;
182
+ background: transparent;
183
+ border: 1px solid transparent;
184
+ border-radius: 6px;
185
+ color: #374151;
186
+ cursor: pointer;
187
+ padding: 0;
188
+ flex-shrink: 0;
189
+ transition: background 0.1s, color 0.1s;
190
+ }
191
+
192
+ .drd-bar-btn:hover {
193
+ background: rgba(0, 0, 0, 0.06);
194
+ }
195
+
196
+ .drd-bar-btn.active {
197
+ background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12));
198
+ color: var(--bpmnkit-accent, #1a56db);
199
+ border-color: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12));
200
+ }
201
+
202
+ .drd-bar-btn svg {
203
+ width: 20px;
204
+ height: 20px;
205
+ pointer-events: none;
206
+ }
207
+
208
+ .dmn-editor.dark .drd-bar-btn {
209
+ color: rgba(255, 255, 255, 0.65);
210
+ }
211
+
212
+ .dmn-editor.dark .drd-bar-btn:hover {
213
+ background: rgba(255, 255, 255, 0.08);
214
+ color: #fff;
215
+ }
216
+
217
+ .dmn-editor.dark .drd-bar-btn.active {
218
+ background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15));
219
+ color: var(--bpmnkit-accent-bright, #89b4fa);
220
+ border-color: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15));
221
+ }
222
+
223
+ .drd-bar-sep {
224
+ width: 1px;
225
+ height: 20px;
226
+ background: rgba(0, 0, 0, 0.1);
227
+ margin: 0 2px;
228
+ flex-shrink: 0;
229
+ }
230
+
231
+ .dmn-editor.dark .drd-bar-sep {
232
+ background: rgba(255, 255, 255, 0.1);
233
+ }
234
+
235
+ /* Snap alignment guide lines */
236
+ .drd-align-guide {
237
+ stroke: var(--bpmnkit-accent, #6b9df7);
238
+ stroke-width: 1;
239
+ stroke-dasharray: 4 2;
240
+ pointer-events: none;
241
+ }
242
+
243
+ /* ── DRD Node shapes ── */
244
+ .drd-node {
245
+ cursor: pointer;
246
+ }
247
+
248
+ .drd-shape {
249
+ stroke: var(--drd-node-stroke, #374151);
250
+ stroke-width: 1.5;
251
+ fill: var(--drd-node-fill, #ffffff);
252
+ }
253
+
254
+ .drd-node--decision .drd-shape {
255
+ fill: var(--drd-decision-fill, #eff6ff);
256
+ stroke: var(--drd-decision-stroke, #3b82f6);
257
+ }
258
+
259
+ .drd-node--inputData .drd-shape {
260
+ fill: var(--drd-input-fill, #f0fdf4);
261
+ stroke: var(--drd-input-stroke, #16a34a);
262
+ }
263
+
264
+ .drd-node--knowledgeSource .drd-shape {
265
+ fill: var(--drd-ks-fill, #fff7ed);
266
+ stroke: var(--drd-ks-stroke, #ea580c);
267
+ }
268
+
269
+ .drd-node--businessKnowledgeModel .drd-shape {
270
+ fill: var(--drd-bkm-fill, #faf5ff);
271
+ stroke: var(--drd-bkm-stroke, #9333ea);
272
+ }
273
+
274
+ .drd-node--textAnnotation .drd-shape {
275
+ stroke: var(--drd-ann-stroke, #6b7280);
276
+ }
277
+
278
+ .drd-node--selected .drd-shape {
279
+ stroke-width: 2.5;
280
+ filter: drop-shadow(0 0 4px rgba(59,130,246,0.5));
281
+ }
282
+
283
+ /* Connect source highlight */
284
+ .drd-node--connect-src .drd-shape {
285
+ stroke: #f97316 !important;
286
+ stroke-width: 2.5;
287
+ }
288
+
289
+ /* Connect mode hover highlight */
290
+ .drd-connect-hi {
291
+ fill: none;
292
+ stroke: var(--bpmnkit-accent-bright, #3b82f6);
293
+ stroke-width: 2;
294
+ stroke-dasharray: 4,3;
295
+ opacity: 0;
296
+ pointer-events: none;
297
+ transition: opacity 0.1s;
298
+ }
299
+
300
+ .drd-node:hover .drd-connect-hi {
301
+ opacity: 1;
302
+ }
303
+
304
+ /* ── DRD Node labels ── */
305
+ .drd-label {
306
+ display: flex;
307
+ align-items: center;
308
+ justify-content: center;
309
+ text-align: center;
310
+ font-size: 12px;
311
+ font-weight: 500;
312
+ color: var(--dme-fg, #1c1c1c);
313
+ padding: 4px 6px;
314
+ box-sizing: border-box;
315
+ overflow: hidden;
316
+ pointer-events: none;
317
+ user-select: none;
318
+ word-break: break-word;
319
+ }
320
+
321
+ /* ── DRD Edges ── */
322
+ .drd-edge-line {
323
+ stroke: var(--drd-edge, #374151);
324
+ }
325
+
326
+ .drd-edge--association .drd-edge-line {
327
+ stroke: var(--drd-assoc, #9ca3af);
328
+ }
329
+
330
+ .drd-edge--selected .drd-edge-line {
331
+ stroke: var(--bpmnkit-accent-bright, #3b82f6);
332
+ stroke-width: 2.5;
333
+ }
334
+
335
+ /* ── Marker colors ── */
336
+ .drd-marker-fill {
337
+ fill: var(--drd-edge, #374151);
338
+ }
339
+
340
+ .drd-marker-stroke {
341
+ stroke: var(--drd-edge, #374151);
342
+ }
343
+
344
+ .drd-marker-assoc {
345
+ stroke: var(--drd-assoc, #9ca3af);
346
+ }
347
+
348
+ /* ── Inline label editing ── */
349
+ .drd-inline-edit {
350
+ box-sizing: border-box;
351
+ border: 2px solid var(--dme-accent);
352
+ border-radius: 2px;
353
+ background: var(--dme-bg);
354
+ color: var(--dme-fg);
355
+ font-size: 12px;
356
+ font-weight: 500;
357
+ text-align: center;
358
+ padding: 4px;
359
+ outline: none;
360
+ }
361
+
362
+ /* ── Decision section ── */
363
+ .dme-decision {
364
+ margin-bottom: 32px;
365
+ }
366
+
367
+ .dme-decision-header {
368
+ display: flex;
369
+ align-items: center;
370
+ gap: 8px;
371
+ margin-bottom: 10px;
372
+ }
373
+
374
+ .dme-name-input {
375
+ font-size: 15px;
376
+ font-weight: 600;
377
+ background: transparent;
378
+ border: none;
379
+ border-bottom: 2px solid transparent;
380
+ color: var(--dme-fg);
381
+ padding: 2px 4px;
382
+ outline: none;
383
+ min-width: 120px;
384
+ }
385
+
386
+ .dme-name-input:hover,
387
+ .dme-name-input:focus {
388
+ border-bottom-color: var(--dme-accent);
389
+ }
390
+
391
+ /* ── Table ── */
392
+ .dme-table {
393
+ border-collapse: collapse;
394
+ table-layout: fixed;
395
+ width: 100%;
396
+ min-width: 400px;
397
+ }
398
+
399
+ .dme-table th,
400
+ .dme-table td {
401
+ border: 1px solid var(--dme-border);
402
+ padding: 0;
403
+ vertical-align: top;
404
+ }
405
+
406
+ /* ── Hit policy cell ── */
407
+ .dme-th-hp {
408
+ position: relative;
409
+ width: 48px;
410
+ min-width: 48px;
411
+ background: var(--dme-hp-bg) !important;
412
+ text-align: center;
413
+ vertical-align: middle !important;
414
+ padding: 0 !important;
415
+ }
416
+
417
+ .dme-hp-abbr {
418
+ display: block;
419
+ font-size: 18px;
420
+ font-weight: 700;
421
+ color: var(--dme-hp-fg);
422
+ pointer-events: none;
423
+ user-select: none;
424
+ line-height: 1;
425
+ }
426
+
427
+ .dme-th-hp .dme-hp-select {
428
+ position: absolute;
429
+ inset: 0;
430
+ width: 100%;
431
+ height: 100%;
432
+ opacity: 0;
433
+ cursor: pointer;
434
+ margin: 0;
435
+ padding: 0;
436
+ border: none;
437
+ font-size: 14px;
438
+ }
439
+
440
+ /* ── Column headers ── */
441
+ .dme-th-input {
442
+ background: var(--dme-input-section) !important;
443
+ min-width: 160px;
444
+ padding: 6px 8px 4px !important;
445
+ }
446
+
447
+ .dme-th-output {
448
+ background: var(--dme-output-section) !important;
449
+ min-width: 160px;
450
+ padding: 6px 8px 4px !important;
451
+ }
452
+
453
+ .dme-th-annotation {
454
+ background: var(--dme-annotation-bg) !important;
455
+ min-width: 140px;
456
+ padding: 6px 8px 4px !important;
457
+ vertical-align: middle !important;
458
+ }
459
+
460
+ .dme-th-add {
461
+ width: 36px;
462
+ min-width: 36px;
463
+ text-align: center;
464
+ vertical-align: middle !important;
465
+ padding: 4px !important;
466
+ background: var(--dme-bg) !important;
467
+ }
468
+
469
+ /* Double border separating last input from first output */
470
+ .dme-th-input.dme-last-input {
471
+ border-right: var(--dme-divider) !important;
472
+ }
473
+
474
+ .dme-table td.dme-last-input {
475
+ border-right: var(--dme-divider) !important;
476
+ }
477
+
478
+ /* ── Clause label (When / And / Then / Annotation) ── */
479
+ .dme-clause {
480
+ font-size: 10px;
481
+ text-transform: uppercase;
482
+ letter-spacing: 0.06em;
483
+ color: var(--dme-clause-fg);
484
+ margin-bottom: 4px;
485
+ user-select: none;
486
+ }
487
+
488
+ /* ── Column label / expression inputs ── */
489
+ .dme-col-label {
490
+ display: block;
491
+ width: 100%;
492
+ box-sizing: border-box;
493
+ background: transparent;
494
+ border: none;
495
+ border-bottom: 1px solid var(--dme-border);
496
+ color: var(--dme-fg);
497
+ font-size: 12px;
498
+ font-weight: 600;
499
+ padding: 2px 2px;
500
+ outline: none;
501
+ margin-bottom: 2px;
502
+ }
503
+
504
+ .dme-col-expr {
505
+ display: block;
506
+ width: 100%;
507
+ box-sizing: border-box;
508
+ background: transparent;
509
+ border: none;
510
+ border-bottom: 1px dashed var(--dme-border);
511
+ color: var(--dme-clause-fg);
512
+ font-size: 11px;
513
+ padding: 2px 2px;
514
+ outline: none;
515
+ margin-bottom: 4px;
516
+ }
517
+
518
+ .dme-col-label:focus,
519
+ .dme-col-expr:focus {
520
+ border-bottom-color: var(--dme-accent);
521
+ }
522
+
523
+ /* ── Column footer: typeRef + delete ── */
524
+ .dme-col-footer {
525
+ display: flex;
526
+ align-items: center;
527
+ gap: 4px;
528
+ margin-top: 2px;
529
+ }
530
+
531
+ .dme-typeref {
532
+ flex: 1;
533
+ min-width: 0;
534
+ font-size: 11px;
535
+ background: var(--dme-bg);
536
+ color: var(--dme-fg);
537
+ border: 1px solid var(--dme-border);
538
+ border-radius: 3px;
539
+ padding: 1px 3px;
540
+ outline: none;
541
+ cursor: pointer;
542
+ }
543
+
544
+ /* ── Body rows ── */
545
+ .dme-table tr:nth-child(even) td {
546
+ background: var(--dme-row-even);
547
+ }
548
+
549
+ .dme-table tbody tr:hover td {
550
+ background: var(--dme-row-hover);
551
+ }
552
+
553
+ .dme-row-num {
554
+ color: var(--dme-clause-fg);
555
+ font-size: 11px;
556
+ width: 48px;
557
+ min-width: 48px;
558
+ text-align: center;
559
+ user-select: none;
560
+ padding: 6px 4px;
561
+ cursor: context-menu;
562
+ background: var(--dme-hp-bg) !important;
563
+ }
564
+
565
+ .dme-cell-annotation {
566
+ background: var(--dme-annotation-bg) !important;
567
+ }
568
+
569
+ /* ── Entry textarea ── */
570
+ .dme-entry {
571
+ display: block;
572
+ width: 100%;
573
+ box-sizing: border-box;
574
+ background: var(--dme-input-cell-bg);
575
+ border: none;
576
+ color: var(--dme-input-cell-fg);
577
+ font-family: inherit;
578
+ font-size: 13px;
579
+ padding: 6px 8px;
580
+ outline: none;
581
+ resize: none;
582
+ min-height: 32px;
583
+ }
584
+
585
+ .dme-entry:focus {
586
+ background: color-mix(in srgb, var(--dme-accent) 8%, transparent);
587
+ outline: 1px solid var(--dme-accent);
588
+ outline-offset: -1px;
589
+ }
590
+
591
+ /* ── Buttons ── */
592
+ .dme-btn {
593
+ display: inline-flex;
594
+ align-items: center;
595
+ justify-content: center;
596
+ background: var(--dme-btn-bg);
597
+ color: var(--dme-btn-fg);
598
+ border: none;
599
+ border-radius: 3px;
600
+ font-size: 12px;
601
+ padding: 2px 6px;
602
+ cursor: pointer;
603
+ line-height: 1;
604
+ white-space: nowrap;
605
+ }
606
+
607
+ .dme-btn:hover {
608
+ background: var(--dme-btn-hover);
609
+ }
610
+
611
+ .dme-btn-icon {
612
+ width: 20px;
613
+ height: 20px;
614
+ padding: 2px;
615
+ border-radius: 3px;
616
+ }
617
+
618
+ .dme-add-rule {
619
+ margin-top: 8px;
620
+ font-size: 12px;
621
+ padding: 4px 10px;
622
+ }
623
+
624
+ .dme-th-add .dme-btn-icon {
625
+ display: block;
626
+ margin: 2px auto;
627
+ }
628
+
629
+ /* ── Context menu ── */
630
+ .dme-ctx-menu {
631
+ position: fixed;
632
+ z-index: 9999;
633
+ background: var(--dme-bg);
634
+ border: 1px solid var(--dme-border);
635
+ border-radius: 4px;
636
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
637
+ min-width: 160px;
638
+ padding: 3px 0;
639
+ font-size: 13px;
640
+ color: var(--dme-fg);
641
+ }
642
+
643
+ .dme-ctx-item {
644
+ padding: 6px 14px;
645
+ cursor: pointer;
646
+ }
647
+
648
+ .dme-ctx-item:hover {
649
+ background: var(--dme-row-hover);
650
+ }
651
+
652
+ .dme-ctx-sep {
653
+ border: none;
654
+ border-top: 1px solid var(--dme-border);
655
+ margin: 3px 0;
656
+ }
657
+ `.trim();
658
+ const STYLE_ID = "bpmn-sdk-dmn-editor-css";
659
+ export function injectDmnEditorStyles() {
660
+ if (document.getElementById(STYLE_ID))
661
+ return;
662
+ const style = document.createElement("style");
663
+ style.id = STYLE_ID;
664
+ style.textContent = DMN_EDITOR_CSS;
665
+ document.head.appendChild(style);
666
+ }
667
+ //# sourceMappingURL=css.js.map
@@ -0,0 +1,34 @@
1
+ export interface DmnEditorOptions {
2
+ container: HTMLElement;
3
+ theme?: "dark" | "light";
4
+ }
5
+ /** Native DMN editor with DRD canvas and editable decision tables. Zero external dependencies. */
6
+ export declare class DmnEditor {
7
+ private _defs;
8
+ private readonly _root;
9
+ private readonly _body;
10
+ private readonly _handlers;
11
+ private _destroyed;
12
+ private _ctxMenu;
13
+ private _view;
14
+ private _activeDecisionId;
15
+ private _drdCanvas;
16
+ constructor(options: DmnEditorOptions);
17
+ loadXML(xml: string): Promise<void>;
18
+ getXML(): Promise<string>;
19
+ onChange(handler: () => void): () => void;
20
+ setTheme(theme: "dark" | "light"): void;
21
+ destroy(): void;
22
+ private _emit;
23
+ private _render;
24
+ private _renderDrd;
25
+ private _renderTableView;
26
+ private _closeCtxMenu;
27
+ private _openCtxMenu;
28
+ private _renderDecision;
29
+ private _buildTable;
30
+ private _buildTypeRefSelect;
31
+ private _buildRuleRow;
32
+ private _buildEntryInput;
33
+ }
34
+ //# sourceMappingURL=dmn-editor.d.ts.map