@bpmn-io/form-js-viewer 1.5.0 → 1.6.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 (46) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +189 -189
  3. package/dist/assets/form-js-base.css +1244 -1040
  4. package/dist/assets/form-js.css +219 -16
  5. package/dist/index.cjs +2305 -1089
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.es.js +2299 -1090
  8. package/dist/index.es.js.map +1 -1
  9. package/dist/types/Form.d.ts +15 -4
  10. package/dist/types/core/FieldFactory.d.ts +2 -0
  11. package/dist/types/core/FormFieldRegistry.d.ts +1 -0
  12. package/dist/types/core/PathRegistry.d.ts +7 -3
  13. package/dist/types/features/{expression-language → expressionLanguage}/ConditionChecker.d.ts +8 -4
  14. package/dist/types/features/index.d.ts +4 -2
  15. package/dist/types/features/repeatRender/RepeatRenderManager.d.ts +21 -0
  16. package/dist/types/features/repeatRender/index.d.ts +7 -0
  17. package/dist/types/features/viewerCommands/ViewerCommands.d.ts +1 -1
  18. package/dist/types/index.d.ts +1 -1
  19. package/dist/types/render/components/Label.d.ts +21 -1
  20. package/dist/types/render/components/Util.d.ts +1 -1
  21. package/dist/types/render/components/form-fields/DynamicList.d.ts +18 -0
  22. package/dist/types/render/components/form-fields/Table.d.ts +71 -0
  23. package/dist/types/render/components/form-fields/parts/ChildrenRenderer.d.ts +1 -0
  24. package/dist/types/render/components/index.d.ts +3 -1
  25. package/dist/types/render/context/FormRenderContext.d.ts +4 -3
  26. package/dist/types/render/context/LocalExpressionContext.d.ts +7 -0
  27. package/dist/types/render/context/index.d.ts +1 -0
  28. package/dist/types/render/hooks/index.d.ts +1 -0
  29. package/dist/types/render/hooks/useExpressionEvaluation.d.ts +3 -3
  30. package/dist/types/render/hooks/useFilteredFormData.d.ts +1 -0
  31. package/dist/types/render/hooks/useScrollIntoView.d.ts +18 -0
  32. package/dist/types/render/hooks/useTemplateEvaluation.d.ts +1 -1
  33. package/dist/types/types.d.ts +35 -35
  34. package/dist/types/util/constants/OptionsSourceConstants.d.ts +19 -0
  35. package/dist/types/util/constants/index.d.ts +1 -1
  36. package/dist/types/util/getSchemaVariables.d.ts +39 -0
  37. package/dist/types/util/index.d.ts +3 -52
  38. package/dist/types/util/simple.d.ts +20 -0
  39. package/dist/types/util/structure.d.ts +1 -0
  40. package/package.json +4 -4
  41. package/dist/types/render/components/form-fields/parts/Grid.d.ts +0 -1
  42. package/dist/types/util/constants/ValuesSourceConstants.d.ts +0 -19
  43. /package/dist/types/features/{expression-language → expressionLanguage}/FeelExpressionLanguage.d.ts +0 -0
  44. /package/dist/types/features/{expression-language → expressionLanguage}/FeelersTemplating.d.ts +0 -0
  45. /package/dist/types/features/{expression-language → expressionLanguage}/index.d.ts +0 -0
  46. /package/dist/types/features/{expression-language → expressionLanguage}/variableExtractionHelpers.d.ts +0 -0
@@ -13,6 +13,7 @@
13
13
  --color-grey-225-10-93: hsl(225, 10%, 93%);
14
14
  --color-grey-225-10-95: hsl(225, 10%, 95%);
15
15
  --color-grey-225-10-97: hsl(225, 10%, 97%);
16
+ --color-grey-0-0-88: hsl(0, 0%, 88%);
16
17
  --color-blue-219-100-53: hsl(219, 99%, 53%);
17
18
  --color-blue-219-100-53-05: hsla(219, 99%, 53%, 0.5);
18
19
  --color-blue-205-100-40: hsl(205, 100%, 40%);
@@ -47,10 +48,9 @@
47
48
  --color-background-inverted: var(--cds-background-inverse, var(--color-grey-225-10-90));
48
49
  --color-background-inverted-hover: var(--cds-background-inverse-hover, var(--color-grey-225-10-93));
49
50
  --color-background-active: var(--cds-background-active, var(--color-grey-225-10-75));
50
- --color-layer: var(
51
- --cds-layer,
52
- var(--cds-layer-01, var(--color-white))
53
- );
51
+ --color-layer: var(--cds-layer,
52
+ var(--cds-layer-01, var(--color-white)));
53
+ --color-layer-accent: var(--cds-layer-accent, var(--color-grey-0-0-88));
54
54
  --color-icon-base: var(--cds-icon-primary, var(--color-black));
55
55
  --color-icon-inverted: var(--cds-icon-inverse, var(--color-black));
56
56
  --color-text: var(--cds-text-primary, var(--color-grey-225-10-15));
@@ -64,6 +64,7 @@
64
64
  var(--cds-border-strong-01, var(--color-grey-225-10-55))
65
65
  );
66
66
  --color-borders-group: var(--cds-border-subtle, var(--color-grey-225-10-85));
67
+ --color-borders-table: var(--color-borders-group);
67
68
  --color-borders-disabled: var(--cds-border-disabled, var(--color-grey-225-10-75));
68
69
  --color-borders-adornment: var(
69
70
  --cds-border-subtle,
@@ -95,6 +96,7 @@
95
96
  --border-definition: 1px solid var(--color-borders);
96
97
  --border-definition-adornment: 1px solid var(--color-borders-adornment);
97
98
  --outline-definition: 1px solid var(--cds-focus, var(--color-borders));
99
+ --button-warning-outline-definition: 2px solid var(--color-warning);
98
100
  --border-definition-disabled: 1px solid var(--color-borders-disabled);
99
101
  --border-definition-readonly: 1px solid var(--color-borders-readonly);
100
102
  height: 100%;
@@ -303,47 +305,47 @@
303
305
  color: var(--color-text-lighter);
304
306
  }
305
307
 
306
- .fjs-container .fjs-form-field-group {
308
+ .fjs-container .fjs-form-field-grouplike {
307
309
  padding: 10px 6px 0 6px;
308
310
  margin: 0 10px;
309
311
  }
310
312
 
311
- .fjs-container .fjs-form-field-group .cds--grid {
313
+ .fjs-container .fjs-form-field-grouplike .cds--grid {
312
314
  padding: 4px 16px;
313
315
  }
314
316
 
315
- .fjs-container .fjs-form-field-group .fjs-form-field-group .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group),
316
- .fjs-container .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group) {
317
+ .fjs-container .fjs-form-field-grouplike .fjs-form-field-grouplike .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike),
318
+ .fjs-container .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike) {
317
319
  margin-left: -6px;
318
320
  }
319
321
 
320
- .fjs-container .fjs-form-field-group .fjs-form-field-group .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group),
321
- .fjs-container .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group) {
322
+ .fjs-container .fjs-form-field-grouplike .fjs-form-field-grouplike .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike),
323
+ .fjs-container .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike) {
322
324
  margin-right: -6px;
323
325
  }
324
326
 
325
- .fjs-container .fjs-form-field-group .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group) {
327
+ .fjs-container .fjs-form-field-grouplike .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike) {
326
328
  margin-left: 11px;
327
329
  }
328
330
 
329
- .fjs-container .fjs-form-field-group .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group) {
331
+ .fjs-container .fjs-form-field-grouplike .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike) {
330
332
  margin-right: 11px;
331
333
  }
332
334
 
333
- .fjs-container .fjs-form-field-group.fjs-outlined {
335
+ .fjs-container .fjs-form-field-grouplike.fjs-outlined {
334
336
  outline: solid var(--color-borders-group) 2px;
335
337
  }
336
338
 
337
- .fjs-container .fjs-form-field-group label {
339
+ .fjs-container .fjs-form-field-grouplike label {
338
340
  font-size: var(--font-size-label);
339
341
  }
340
342
 
341
- .fjs-container .fjs-form-field-group .fjs-form-field-group .cds--grid {
343
+ .fjs-container .fjs-form-field-grouplike .fjs-form-field-grouplike .cds--grid {
342
344
  padding-left: 2rem;
343
345
  padding-right: 2rem;
344
346
  }
345
347
 
346
- .fjs-container .fjs-form-field-group > label {
348
+ .fjs-container .fjs-form-field-grouplike > label {
347
349
  font-size: var(--font-size-group);
348
350
  line-height: var(--line-height-input);
349
351
  margin-left: 7px;
@@ -782,6 +784,26 @@
782
784
  cursor: default;
783
785
  }
784
786
 
787
+ .fjs-container .fjs-form-field-text table {
788
+ border-collapse: collapse;
789
+ width: auto;
790
+ }
791
+
792
+ .fjs-container .fjs-form-field-text table,
793
+ .fjs-container .fjs-form-field-text th,
794
+ .fjs-container .fjs-form-field-text td {
795
+ border: 1px solid var(--color-borders-table);
796
+ padding: 8px;
797
+ }
798
+
799
+ .fjs-container .fjs-form-field-text th {
800
+ font-weight: bold;
801
+ }
802
+
803
+ .fjs-container .fjs-form-field-text td {
804
+ white-space: nowrap;
805
+ }
806
+
785
807
  .fjs-container .fjs-taglist-anchor,
786
808
  .fjs-container .fjs-select-anchor,
787
809
  .fjs-container .fjs-timepicker-anchor {
@@ -972,6 +994,187 @@
972
994
  overflow: hidden;
973
995
  }
974
996
 
997
+ .fjs-container .fjs-form-field-table {
998
+ display: flex;
999
+ flex-direction: column;
1000
+ row-gap: 4px;
1001
+ }
1002
+
1003
+ .fjs-container .fjs-table-middle-container {
1004
+ display: flex;
1005
+ flex-direction: column;
1006
+ overflow-x: hidden;
1007
+ border: 1px solid var(--color-borders-group);
1008
+ border-radius: 3px;
1009
+ }
1010
+
1011
+ .fjs-container .fjs-table-middle-container.fjs-table-empty {
1012
+ border: none;
1013
+ color: var(--color-text-disabled);
1014
+ padding-left: 16px;
1015
+ }
1016
+
1017
+ .fjs-container .fjs-table-inner-container {
1018
+ display: flex;
1019
+ flex-direction: column;
1020
+ overflow-x: auto;
1021
+ }
1022
+
1023
+ .fjs-container .fjs-table {
1024
+ overflow-y: auto;
1025
+ border-collapse: collapse;
1026
+ }
1027
+
1028
+ .fjs-container .fjs-table-head {
1029
+ background-color: var(--color-layer-accent);
1030
+ }
1031
+
1032
+ .fjs-container .fjs-table-th {
1033
+ min-width: 120px;
1034
+ cursor: pointer;
1035
+ }
1036
+
1037
+ .fjs-container .fjs-table-th-label {
1038
+ user-select: none;
1039
+ display: flex;
1040
+ align-items: center;
1041
+ flex-direction: row;
1042
+ justify-content: space-between;
1043
+ }
1044
+
1045
+ .fjs-container .fjs-table-th:focus {
1046
+ outline: var(--outline-definition);
1047
+ outline-offset: -1px;
1048
+ }
1049
+
1050
+ .fjs-container .fjs-table-th,
1051
+ .fjs-container .fjs-table-td {
1052
+ text-align: left;
1053
+ height: 32px;
1054
+ padding: 0 16px;
1055
+ }
1056
+
1057
+ .fjs-container .fjs-table-body .fjs-table-tr:not(:last-child) {
1058
+ border-bottom: 1px solid var(--color-borders-group);
1059
+ }
1060
+
1061
+ .fjs-container .fjs-table-nav {
1062
+ display: flex;
1063
+ flex-direction: row;
1064
+ align-items: center;
1065
+ justify-content: flex-end;
1066
+ border-top: 1px solid var(--color-borders-group);
1067
+ }
1068
+
1069
+ .fjs-container .fjs-table-nav-button {
1070
+ border: unset;
1071
+ background: unset;
1072
+ width: 32px;
1073
+ height: 32px;
1074
+ cursor: pointer;
1075
+ display: flex;
1076
+ align-items: center;
1077
+ justify-content: center;
1078
+ border-left: 1px solid var(--color-borders-group);
1079
+ }
1080
+
1081
+ .fjs-container .fjs-table-nav-button:first-of-type {
1082
+ margin-left: 16px;
1083
+ }
1084
+
1085
+ .fjs-container .fjs-table-nav-button:focus {
1086
+ outline: var(--outline-definition);
1087
+ outline-offset: -1px;
1088
+ }
1089
+
1090
+ .fjs-container .fjs-table-nav-button svg {
1091
+ width: 16px;
1092
+ }
1093
+
1094
+ .fjs-container .fjs-table-sort-icon-asc,
1095
+ .fjs-container .fjs-table-sort-icon-desc {
1096
+ width: 16px;
1097
+ }
1098
+
1099
+ .fjs-container .fjs-repeat-row-container {
1100
+ display: flex;
1101
+ flex-direction: row;
1102
+ gap: 1rem;
1103
+ }
1104
+
1105
+ .fjs-container .fjs-repeat-row-rows {
1106
+ flex: 1;
1107
+ margin-right: 1rem;
1108
+ }
1109
+
1110
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove {
1111
+ display: flex;
1112
+ cursor: pointer;
1113
+ background: transparent;
1114
+ border: none;
1115
+ width: 32px;
1116
+ color: var(--color-icon-base);
1117
+ align-items: center;
1118
+ justify-content: center;
1119
+ padding: 0;
1120
+ }
1121
+
1122
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove:focus-visible {
1123
+ outline: none;
1124
+ }
1125
+
1126
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove .fjs-repeat-row-remove-icon-container {
1127
+ display: flex;
1128
+ width: 24px;
1129
+ height: 24px;
1130
+ border-radius: 2px;
1131
+ align-items: center;
1132
+ justify-content: center;
1133
+ }
1134
+
1135
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove:focus-visible .fjs-repeat-row-remove-icon-container {
1136
+ outline: var(--button-warning-outline-definition);
1137
+ }
1138
+
1139
+ .fjs-container .fjs-repeat-row-container:hover .fjs-repeat-render-footer-spacer {
1140
+ width: 24px;
1141
+ }
1142
+
1143
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove:hover,
1144
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove:focus-visible {
1145
+ color: var(--color-warning);
1146
+ }
1147
+
1148
+ .fjs-container .fjs-repeat-render-footer {
1149
+ display: flex;
1150
+ flex-direction: row;
1151
+ align-items: center;
1152
+ justify-content: center;
1153
+ padding: 12px 4px;
1154
+ }
1155
+
1156
+ .fjs-container .fjs-repeat-render-footer.fjs-remove-allowed {
1157
+ margin-right: 32px;
1158
+ justify-content: space-between;
1159
+ }
1160
+
1161
+ .fjs-container .fjs-repeat-render-footer button {
1162
+ background: none;
1163
+ border: none;
1164
+ padding: 4px;
1165
+ margin: 0;
1166
+ font-family: inherit;
1167
+ font-size: inherit;
1168
+ cursor: pointer;
1169
+ color: var(--color-accent);
1170
+ display: flex;
1171
+ align-items: center;
1172
+ }
1173
+
1174
+ .fjs-container .fjs-repeat-render-footer button svg {
1175
+ margin-right: 4px;
1176
+ }
1177
+
975
1178
  /**
976
1179
  * Flatpickr style adjustments
977
1180
  */