@bpmn-io/form-js-editor 0.12.2 → 0.13.1

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 (47) hide show
  1. package/README.md +0 -3
  2. package/dist/assets/form-js-editor-base.css +486 -0
  3. package/dist/assets/form-js-editor.css +1161 -60
  4. package/dist/index.cjs +1247 -526
  5. package/dist/index.cjs.map +1 -1
  6. package/dist/index.es.js +1249 -528
  7. package/dist/index.es.js.map +1 -1
  8. package/dist/types/FormEditor.d.ts +9 -0
  9. package/dist/types/core/FormFieldRegistry.d.ts +1 -1
  10. package/dist/types/core/FormLayoutValidator.d.ts +16 -0
  11. package/dist/types/core/FormLayouter.d.ts +1 -0
  12. package/dist/types/core/index.d.ts +8 -4
  13. package/dist/types/features/dragging/Dragging.d.ts +60 -0
  14. package/dist/types/features/dragging/index.d.ts +6 -0
  15. package/dist/types/features/editor-actions/index.d.ts +1 -1
  16. package/dist/types/features/expression-language/index.d.ts +8 -0
  17. package/dist/types/features/keyboard/index.d.ts +1 -1
  18. package/dist/types/features/modeling/FormLayoutUpdater.d.ts +13 -0
  19. package/dist/types/features/modeling/Modeling.d.ts +7 -7
  20. package/dist/types/features/modeling/behavior/index.d.ts +3 -3
  21. package/dist/types/features/modeling/cmd/Util.d.ts +1 -0
  22. package/dist/types/features/modeling/index.d.ts +3 -1
  23. package/dist/types/features/palette/index.d.ts +1 -1
  24. package/dist/types/features/properties-panel/entries/ColumnsEntry.d.ts +2 -1
  25. package/dist/types/features/properties-panel/entries/InputKeyValuesSourceEntry.d.ts +1 -1
  26. package/dist/types/features/properties-panel/entries/SelectEntries.d.ts +1 -0
  27. package/dist/types/features/properties-panel/entries/factories/simpleBoolEntryFactory.d.ts +1 -0
  28. package/dist/types/features/properties-panel/groups/GeneralGroup.d.ts +1 -1
  29. package/dist/types/features/properties-panel/groups/LayoutGroup.d.ts +11 -0
  30. package/dist/types/features/properties-panel/groups/index.d.ts +1 -0
  31. package/dist/types/features/properties-panel/index.d.ts +1 -1
  32. package/dist/types/features/selection/index.d.ts +2 -2
  33. package/dist/types/import/Importer.d.ts +4 -2
  34. package/dist/types/import/index.d.ts +1 -1
  35. package/dist/types/index.d.ts +2 -2
  36. package/dist/types/render/EditorFormFields.d.ts +1 -1
  37. package/dist/types/render/components/FieldDragPreview.d.ts +1 -0
  38. package/dist/types/render/components/editor-form-fields/EditorText.d.ts +1 -1
  39. package/dist/types/render/components/editor-form-fields/index.d.ts +1 -1
  40. package/dist/types/render/components/icons/index.d.ts +1 -1
  41. package/dist/types/render/hooks/index.d.ts +3 -0
  42. package/dist/types/render/hooks/useDebounce.d.ts +1 -0
  43. package/dist/types/render/hooks/usePrevious.d.ts +1 -0
  44. package/dist/types/render/index.d.ts +2 -2
  45. package/package.json +10 -8
  46. package/dist/assets/dragula.css +0 -22
  47. package/dist/assets/properties-panel.css +0 -1016
package/README.md CHANGED
@@ -46,10 +46,7 @@ For proper styling include the necessary stylesheets, and font used:
46
46
  <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,600;1,400&display=swap" rel="stylesheet">
47
47
 
48
48
  <link rel="stylesheet" href="https://unpkg.com/@bpmn-io/form-js@0.10.0/dist/assets/form-js.css">
49
- <link rel="stylesheet" href="https://unpkg.com/@bpmn-io/form-js@0.10.0/dist/assets/flatpickr/light.css">
50
49
  <link rel="stylesheet" href="https://unpkg.com/@bpmn-io/form-js@0.10.0/dist/assets/form-js-editor.css">
51
- <link rel="stylesheet" href="https://unpkg.com/@bpmn-io/form-js@0.10.0/dist/assets/dragula.css">
52
- <link rel="stylesheet" href="https://unpkg.com/@bpmn-io/form-js@0.10.0/dist/assets/properties-panel.css">
53
50
  ```
54
51
 
55
52
 
@@ -0,0 +1,486 @@
1
+ .fjs-editor-container {
2
+ --color-children-border: var(--color-grey-225-10-75);
3
+ --color-children-selected-border: var(--color-blue-219-100-53);
4
+ --color-children-selected-background: transparent;
5
+ --color-children-hover-border: var(--color-blue-219-100-53-05);
6
+
7
+ --color-context-pad-item-background: var(--color-white);
8
+ --color-context-pad-item-fill: var(--color-grey-225-10-35);
9
+ --color-context-pad-item-hover-fill: var(--color-black);
10
+
11
+ --color-dragula-background: var(--color-blue-205-100-95);
12
+ --color-dragula-border: var(--color-blue-205-100-45);
13
+ --color-dragula-mirror-background: var(--color-white);
14
+ --color-dragula-mirror-border: var(--color-grey-225-10-90);
15
+ --color-dragula-error-background: var(--color-red-360-100-92);
16
+ --color-dragula-error-border: var(--color-red-360-100-45);
17
+ }
18
+
19
+ .fjs-palette-container {
20
+ --color-palette-text: var(--color-grey-225-10-15);
21
+ --color-palette-container-background: var(--color-grey-225-10-95);
22
+ --color-palette-container-border: var(--color-grey-225-10-80);
23
+ --color-palette-header: var(--color-text);
24
+ --color-palette-header-background: var(--color-grey-225-10-95);
25
+ --color-palette-header-border: var(--color-grey-225-10-85);
26
+ --color-palette-search: var(--color-palette-text);
27
+ --color-palette-search-icon: var(--color-grey-225-10-35);
28
+ --color-palette-search-icon-hover: var(--color-grey-225-10-15);
29
+ --color-palette-search-background: var(--color-white);
30
+ --color-palette-search-border: var(--color-grey-225-10-75);
31
+ --color-palette-search-focus-background: var(--color-blue-205-100-95);
32
+ --color-palette-search-focus-border: var(--color-blue-205-100-50);
33
+ --color-palette-search-clear-focus-border: var(--color-grey-225-10-50);
34
+ --color-palette-group-title: var(--color-palette-text);
35
+ --color-palette-field: var(--color-palette-text);
36
+ --color-palette-field-background: var(--color-white);
37
+ --color-palette-field-border: var(--color-grey-225-10-80);
38
+ --color-palette-field-hover-background: var(--color-grey-225-10-90);
39
+ --cursor-palette-field: grab;
40
+ --palette-width: 250px;
41
+ }
42
+
43
+ .fjs-properties-container {
44
+ --color-properties-container-background: var(--color-white);
45
+ --color-properties-container-border: var(--color-grey-225-10-80);
46
+ --properties-panel-width: 300px;
47
+ }
48
+
49
+ .fjs-editor-container {
50
+ height: 100%;
51
+ width: 100%;
52
+ display: flex;
53
+ }
54
+
55
+ .fjs-editor-container .fjs-form-editor {
56
+ display: flex;
57
+ flex: 1;
58
+ flex-direction: row;
59
+ }
60
+
61
+ .fjs-editor-container .fjs-form-container,
62
+ .fjs-editor-container .fjs-editor-palette-container,
63
+ .fjs-editor-container .fjs-editor-properties-container {
64
+ overflow-y: auto;
65
+ position: relative;
66
+ }
67
+
68
+ .fjs-editor-container .fjs-form-container,
69
+ .fjs-editor-container .fjs-form {
70
+ display: flex;
71
+ flex-direction: column;
72
+ flex: 1;
73
+ }
74
+
75
+ .fjs-editor-container .fjs-form > .fjs-element {
76
+ flex-grow: 1;
77
+ }
78
+
79
+ .fjs-editor-container .fjs-children .fjs-children {
80
+ border: dashed 2px var(--color-children-border);
81
+ }
82
+
83
+ .fjs-editor-container .fjs-children .fjs-element {
84
+ position: relative;
85
+ border: solid 2px transparent;
86
+ }
87
+
88
+ .fjs-editor-container .fjs-form-field:not(.fjs-powered-by) {
89
+ margin: 1px 6px;
90
+ }
91
+
92
+ .fjs-editor-container .fjs-children .fjs-element.fjs-editor-selected {
93
+ border-color: var(--color-children-selected-border) !important;
94
+ background-color: var(--color-children-selected-background);
95
+ }
96
+
97
+ .fjs-editor-container .fjs-children .fjs-element:hover {
98
+ border-color: var(--color-children-hover-border);
99
+ }
100
+
101
+ .fjs-editor-container .fjs-input:disabled,
102
+ .fjs-editor-container .fjs-textarea:disabled,
103
+ .fjs-editor-container .fjs-taglist-input:disabled,
104
+ .fjs-editor-container .fjs-select:disabled {
105
+ pointer-events: none;
106
+ }
107
+
108
+ .fjs-editor-container .fjs-drag-container,
109
+ .fjs-editor-container .fjs-drop-container-vertical {
110
+ user-select: none;
111
+ }
112
+
113
+ .fjs-editor-container .fjs-layout-row {
114
+ padding: 4px 0px;
115
+ }
116
+
117
+ .fjs-editor-container .fjs-drag-row-move {
118
+ display: flex;
119
+ width: 100%;
120
+ padding: 3px 0px;
121
+ }
122
+
123
+ .fjs-editor-container .fjs-row-dragger {
124
+ visibility: hidden;
125
+ z-index: 2;
126
+ position: relative;
127
+ margin-left: -12px;
128
+ margin-top: auto;
129
+ margin-bottom: auto;
130
+ cursor: grab;
131
+ width: 32px;
132
+ height: 32px;
133
+ display: flex;
134
+ justify-content: center;
135
+ align-items: center;
136
+ }
137
+
138
+ .fjs-editor-container .fjs-drag-row-move:hover .fjs-row-dragger {
139
+ visibility: visible;
140
+ }
141
+
142
+ /**
143
+ * Cursor styles
144
+ */
145
+ .fjs-cursor-grab {
146
+ cursor: -webkit-grab;
147
+ cursor: -moz-grab;
148
+ cursor: grab;
149
+ }
150
+
151
+ .fjs-cursor-grabbing {
152
+ cursor: -webkit-grabbing;
153
+ cursor: -moz-grabbing;
154
+ cursor: grabbing;
155
+ }
156
+
157
+ .fjs-cursor-crosshair {
158
+ cursor: crosshair;
159
+ }
160
+
161
+ .fjs-cursor-move {
162
+ cursor: move;
163
+ }
164
+
165
+ .fjs-cursor-not-allowed {
166
+ cursor: not-allowed;
167
+ }
168
+
169
+
170
+ /**
171
+ * Context Pad
172
+ */
173
+ .fjs-editor-container .fjs-context-pad {
174
+ z-index: 2;
175
+ position: absolute;
176
+ top: 3px;
177
+ right: 3px;
178
+ box-shadow: 1px 1px 1px 1px rgb(0 0 0 / 10%);
179
+ }
180
+
181
+ .fjs-editor-container .fjs-context-pad-item {
182
+ border: none;
183
+ border-radius: 3px;
184
+ background-color: var(--color-context-pad-item-background);
185
+ padding: 0;
186
+ width: 24px;
187
+ height: 24px;
188
+ fill: var(--color-context-pad-item-fill);
189
+ display: flex;
190
+ justify-content: center;
191
+ align-items: center;
192
+ }
193
+
194
+ .fjs-editor-container .fjs-context-pad-item:hover {
195
+ fill: var(--color-context-pad-item-hover-fill);
196
+ }
197
+
198
+ /**
199
+ * Palette
200
+ */
201
+ .fjs-editor-container .fjs-palette-container {
202
+ height: 100%;
203
+ }
204
+
205
+ .fjs-palette-container {
206
+ width: var(--palette-width);
207
+ background-color: var(--color-palette-container-background);
208
+ border-right: solid 1px var(--color-palette-container-border);
209
+ font-family: var(--font-family);
210
+ }
211
+
212
+ .fjs-palette-container .fjs-palette {
213
+ height: 100%;
214
+ display: flex;
215
+ flex-direction: column;
216
+ flex: 1;
217
+ }
218
+
219
+ .fjs-palette-container .fjs-palette-header {
220
+ font-size: 14px;
221
+ font-weight: bold;
222
+ color: var(--color-palette-header);
223
+ padding: 10px 15px;
224
+ border-bottom: solid 1px var(--color-palette-header-border);
225
+ background: var(--color-palette-header-background);
226
+ user-select: none;
227
+ }
228
+
229
+ .fjs-palette-container .fjs-palette-search-container {
230
+ display: flex;
231
+ flex-direction: row;
232
+ padding: 4px;
233
+ margin: 15px;
234
+ margin-top: 12px;
235
+ color: var(--color-palette-search);
236
+ border: 1px solid var(--color-palette-search-border);
237
+ background-color: var(--color-palette-search-background);
238
+ border-radius: 2px;
239
+ font-size: 14px;
240
+ }
241
+
242
+ .fjs-palette-container .fjs-palette-search-container:focus-within {
243
+ outline: none;
244
+ background-color: var(--color-palette-search-focus-background);
245
+ border: 1px solid var(--color-palette-search-focus-border);
246
+ }
247
+
248
+ .fjs-palette-container .fjs-palette-search-icon {
249
+ margin-right: 6px;
250
+ display: flex;
251
+ align-items: center;
252
+ justify-content: center;
253
+ color: var(--color-palette-search-icon);
254
+ }
255
+
256
+ .fjs-palette-container .fjs-palette-search {
257
+ background-color: inherit;
258
+ font-family: inherit;
259
+ margin: 0;
260
+ border: none;
261
+ padding: 0;
262
+ }
263
+
264
+ .fjs-palette-container .fjs-palette-search:focus {
265
+ outline: none;
266
+ }
267
+
268
+ .fjs-palette-container .fjs-palette-search-clear {
269
+ display: flex;
270
+ justify-content: center;
271
+ align-items: center;
272
+ border: none;
273
+ margin-left: auto;
274
+ padding: 0;
275
+ background: transparent;
276
+ color: var(--color-palette-search-icon);
277
+ }
278
+
279
+ .fjs-palette-container .fjs-palette-search-clear svg {
280
+ margin: 0;
281
+ }
282
+
283
+ .fjs-palette-container .fjs-palette-search-clear:hover {
284
+ color: var(--color-palette-search-icon-hover);
285
+ }
286
+
287
+ .fjs-palette-container .fjs-palette-entries {
288
+ height: 100%;
289
+ overflow-x: hidden;
290
+ overflow-y: auto;
291
+ }
292
+
293
+ .fjs-palette-container .fjs-palette-group {
294
+ padding: 5px 15px;
295
+ padding-right: 0px;
296
+ }
297
+
298
+ .fjs-palette-container .fjs-palette-group-title {
299
+ font-size: 14px;
300
+ font-weight: 500;
301
+ color: var(--color-palette-group-title);
302
+ user-select: none;
303
+ }
304
+
305
+ .fjs-palette-container .fjs-palette-fields {
306
+ height: 100%;
307
+ display: flex;
308
+ flex-wrap: wrap;
309
+ gap: 3%;
310
+ }
311
+
312
+ .fjs-palette-field {
313
+ height: 68px;
314
+ margin: 5px 0;
315
+ display: flex;
316
+ flex-direction: column;
317
+ justify-content: center;
318
+ font-size: 11px;
319
+ user-select: none;
320
+ color: var( --color-palette-field);
321
+ background: var(--color-palette-field-background);
322
+ }
323
+
324
+ .fjs-palette-container .fjs-palette-field {
325
+ width: 68px;
326
+ }
327
+
328
+ .fjs-palette-field .fjs-palette-field-icon {
329
+ margin: 0 auto;
330
+ }
331
+
332
+ .fjs-palette-field .fjs-palette-field-text {
333
+ text-align: center;
334
+ }
335
+
336
+ .fjs-palette-container .fjs-palette-field:hover {
337
+ background-color: var(--color-palette-field-hover-background);
338
+ cursor: var(--cursor-palette-field);
339
+ }
340
+
341
+ .fjs-palette-container .fjs-palette-no-entries {
342
+ padding: 5px 15px;
343
+ font-size: 14px;
344
+ color: var(--color-palette-text);
345
+ }
346
+
347
+ /**
348
+ * Properties Panel
349
+ */
350
+ .fjs-editor-container .fjs-properties-container {
351
+ height: 100%;
352
+ }
353
+
354
+ .fjs-properties-container {
355
+ background-color: var(--color-properties-container-background);
356
+ width: var(--properties-panel-width);
357
+ border-left: solid 1px var(--color-properties-container-border);
358
+ color: var(--color-text);
359
+ }
360
+
361
+ .fjs-properties-container .fjs-properties-panel {
362
+ height: 100%;
363
+ }
364
+
365
+ .fjs-properties-container .fjs-properties-panel * {
366
+ box-sizing: border-box;
367
+ }
368
+
369
+ .fjs-properties-container .fjs-properties-panel .bio-properties-panel-header-icon svg {
370
+ transform: scale(1.3);
371
+ }
372
+
373
+ /**
374
+ * Editor Form Fields
375
+ */
376
+ .fjs-editor-container .fjs-form-field-placeholder {
377
+ color: var(--color-text-light);
378
+ font-style: italic;
379
+ }
380
+
381
+ .fjs-editor-container .fjs-form-field-placeholder svg {
382
+ width: 36px;
383
+ height: 36px;
384
+ vertical-align: middle;
385
+ margin-top: -2px;
386
+ margin-right: 2px;
387
+ }
388
+
389
+ /**
390
+ * Custom Dragula Styles
391
+ */
392
+ .gu-transit {
393
+ background: var(--color-dragula-background) !important;
394
+ border: dashed 2px var(--color-dragula-border) !important;
395
+ border-radius: 3px !important;
396
+ filter: none !important;
397
+ height: 70px !important;
398
+ opacity: 1 !important;
399
+ /* mitigate for additional border in row */
400
+ flex-grow: 0.98 !important;
401
+ margin: 0 !important;
402
+ }
403
+
404
+ /* row drop preview */
405
+ .fjs-children > .gu-transit {
406
+ height: 28px !important;
407
+ margin-left: 28px !important;
408
+ margin-right: -8px !important;
409
+ flex: unset !important;
410
+ width: unset !important;
411
+ max-width: unset !important;
412
+ }
413
+
414
+ /* error drop preview */
415
+ .fjs-error-drop > .gu-transit {
416
+ height: 100% !important;
417
+ background: var(--color-dragula-error-background) !important;
418
+ border: none !important;
419
+ width: 6px !important;
420
+ flex: none !important;
421
+ padding: 0 !important;
422
+ border-radius: 5px !important;
423
+ }
424
+
425
+ .fjs-error-drop.cds--row {
426
+ flex-wrap: nowrap !important;
427
+ }
428
+
429
+ .gu-transit * {
430
+ display: none !important;
431
+ }
432
+
433
+ .gu-mirror {
434
+ background-color: var(--color-dragula-mirror-background) !important;
435
+ border: solid 1px var(--color-dragula-mirror-border) !important;
436
+ border-radius: 5px !important;
437
+ box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.15) !important;
438
+ display: flex !important;
439
+ filter: none !important;
440
+ flex-direction: row !important;
441
+ justify-content: center !important;
442
+ align-items: center !important;
443
+ opacity: 0.5 !important;
444
+ padding: 0 !important;
445
+ pointer-events: none !important;
446
+ height: 54px !important;
447
+ }
448
+
449
+ .fjs-field-preview {
450
+ margin: 5px 0;
451
+ display: flex;
452
+ flex-direction: column;
453
+ justify-content: center;
454
+ font-size: 11px;
455
+ user-select: none;
456
+ color: var(--color-text);
457
+ background: var(--color-white);
458
+ }
459
+
460
+ .fjs-field-preview .fjs-field-preview-icon {
461
+ margin: 0 auto;
462
+ }
463
+
464
+ .fjs-field-preview .fjs-field-preview-text {
465
+ text-align: center;
466
+ }
467
+
468
+ .gu-mirror.fjs-field-preview-container {
469
+ transform: rotate(-15deg);
470
+ font-family: var(--font-family);
471
+ width: 68px !important;
472
+ height: 68px !important;
473
+ }
474
+
475
+ .gu-mirror.fjs-drag-row-move {
476
+ padding: 4px 12px !important;
477
+ height: fit-content !important;
478
+ opacity: 0.8 !important;
479
+ max-height: 120px !important;
480
+ overflow: hidden !important;
481
+ align-items: start !important;
482
+ }
483
+
484
+ .gu-mirror.fjs-drag-row-move .cds--row {
485
+ flex-wrap: nowrap !important;
486
+ }