@bpmn-io/form-js-viewer 0.10.0-alpha.3 → 0.10.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 (68) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +165 -164
  3. package/dist/assets/flatpickr/light.css +809 -0
  4. package/dist/assets/form-js.css +611 -498
  5. package/dist/index.cjs +1493 -369
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.es.js +1475 -372
  8. package/dist/index.es.js.map +1 -1
  9. package/dist/types/Form.d.ts +144 -144
  10. package/dist/types/core/ConditionChecker.d.ts +57 -57
  11. package/dist/types/core/EventBus.d.ts +1 -1
  12. package/dist/types/core/FormFieldRegistry.d.ts +17 -17
  13. package/dist/types/core/Validator.d.ts +7 -7
  14. package/dist/types/core/index.d.ts +18 -18
  15. package/dist/types/import/Importer.d.ts +43 -43
  16. package/dist/types/import/index.d.ts +5 -5
  17. package/dist/types/index.d.ts +18 -18
  18. package/dist/types/render/FormFields.d.ts +5 -5
  19. package/dist/types/render/Renderer.d.ts +23 -23
  20. package/dist/types/render/components/Description.d.ts +1 -1
  21. package/dist/types/render/components/Errors.d.ts +1 -1
  22. package/dist/types/render/components/FormComponent.d.ts +1 -1
  23. package/dist/types/render/components/FormField.d.ts +1 -1
  24. package/dist/types/render/components/Label.d.ts +1 -1
  25. package/dist/types/render/components/PoweredBy.d.ts +1 -1
  26. package/dist/types/render/components/Sanitizer.d.ts +8 -8
  27. package/dist/types/render/components/Util.d.ts +17 -19
  28. package/dist/types/render/components/form-fields/Button.d.ts +11 -11
  29. package/dist/types/render/components/form-fields/Checkbox.d.ts +13 -13
  30. package/dist/types/render/components/form-fields/Checklist.d.ts +12 -12
  31. package/dist/types/render/components/form-fields/Datetime.d.ts +11 -0
  32. package/dist/types/render/components/form-fields/Default.d.ts +9 -9
  33. package/dist/types/render/components/form-fields/Image.d.ts +8 -8
  34. package/dist/types/render/components/form-fields/Number.d.ts +14 -14
  35. package/dist/types/render/components/form-fields/Radio.d.ts +12 -12
  36. package/dist/types/render/components/form-fields/Select.d.ts +12 -12
  37. package/dist/types/render/components/form-fields/Taglist.d.ts +12 -12
  38. package/dist/types/render/components/form-fields/Text.d.ts +10 -10
  39. package/dist/types/render/components/form-fields/Textarea.d.ts +13 -13
  40. package/dist/types/render/components/form-fields/Textfield.d.ts +13 -13
  41. package/dist/types/render/components/form-fields/parts/Datepicker.d.ts +1 -0
  42. package/dist/types/render/components/form-fields/parts/DropdownList.d.ts +1 -1
  43. package/dist/types/render/components/form-fields/parts/InputAdorner.d.ts +1 -0
  44. package/dist/types/render/components/form-fields/parts/Timepicker.d.ts +1 -0
  45. package/dist/types/render/components/icons/index.d.ts +16 -0
  46. package/dist/types/render/components/index.d.ts +17 -15
  47. package/dist/types/render/components/util/dateTimeUtil.d.ts +12 -0
  48. package/dist/types/render/components/util/numberFieldUtil.d.ts +4 -4
  49. package/dist/types/render/components/util/sanitizerUtil.d.ts +3 -0
  50. package/dist/types/render/context/FormContext.d.ts +12 -12
  51. package/dist/types/render/context/FormRenderContext.d.ts +6 -6
  52. package/dist/types/render/context/index.d.ts +2 -2
  53. package/dist/types/render/hooks/useCondition.d.ts +9 -9
  54. package/dist/types/render/hooks/useEvaluation.d.ts +6 -6
  55. package/dist/types/render/hooks/useExpressionValue.d.ts +5 -5
  56. package/dist/types/render/hooks/useKeyDownAction.d.ts +1 -1
  57. package/dist/types/render/hooks/useService.d.ts +1 -1
  58. package/dist/types/render/hooks/useValuesAsync.d.ts +28 -28
  59. package/dist/types/render/index.d.ts +11 -11
  60. package/dist/types/src/types.d.ts +35 -35
  61. package/dist/types/util/constants/DatetimeConstants.d.ts +24 -0
  62. package/dist/types/util/constants/ValuesSourceConstants.d.ts +15 -0
  63. package/dist/types/util/constants/index.d.ts +2 -0
  64. package/dist/types/util/feel.d.ts +15 -14
  65. package/dist/types/util/form.d.ts +6 -6
  66. package/dist/types/util/index.d.ts +25 -24
  67. package/dist/types/util/injector.d.ts +2 -2
  68. package/package.json +4 -2
@@ -1,498 +1,611 @@
1
- /**
2
- * Theming
3
- */
4
- .fjs-container {
5
- --color-grey-225-10-15: hsl(225, 10%, 15%);
6
- --color-grey-225-10-35: hsl(225, 10%, 35%);
7
- --color-grey-225-10-55: hsl(225, 10%, 55%);
8
- --color-grey-225-10-75: hsl(225, 10%, 75%);
9
- --color-grey-225-10-80: hsl(225, 10%, 80%);
10
- --color-grey-225-10-85: hsl(225, 10%, 85%);
11
- --color-grey-225-10-90: hsl(225, 10%, 90%);
12
- --color-grey-225-10-93: hsl(225, 10%, 93%);
13
- --color-grey-225-10-95: hsl(225, 10%, 95%);
14
- --color-grey-225-10-97: hsl(225, 10%, 97%);
15
-
16
- --color-blue-205-100-40: hsl(205, 100%, 40%);
17
- --color-blue-205-100-45: hsl(205, 100%, 45%);
18
- --color-blue-205-100-50: hsl(205, 100%, 50%);
19
- --color-blue-205-100-80: hsl(205, 100%, 80%);
20
- --color-blue-205-100-95: hsl(205, 100%, 95%);
21
-
22
- --color-green-150-86-44: hsl(150, 86%, 44%);
23
-
24
- --color-red-360-100-40: hsl(360, 100%, 40%);
25
- --color-red-360-100-45: hsl(360, 100%, 45%);
26
- --color-red-360-100-92: hsl(360, 100%, 92%);
27
- --color-red-360-100-95: hsl(360, 100%, 95%);
28
- --color-red-360-100-97: hsl(360, 100%, 97%);
29
-
30
- --color-white: hsl(0, 0%, 100%);
31
- --color-black: hsl(0, 0%, 0%);
32
-
33
- --color-background: var(--color-white);
34
- --color-background-disabled: var(--color-grey-225-10-95);
35
- --color-background-adornment: var(--color-grey-225-10-93);
36
- --color-text: var(--color-grey-225-10-15);
37
- --color-text-light: var(--color-grey-225-10-35);
38
- --color-text-lighter: var(--color-grey-225-10-55);
39
- --color-text-inverted: var(--color-white);
40
- --color-borders: var(--color-grey-225-10-55);
41
- --color-borders-disabled: var(--color-grey-225-10-75);
42
- --color-borders-adornment: var(--color-grey-225-10-85);
43
- --color-warning: var(--color-red-360-100-45);
44
- --color-accent: var(--color-blue-205-100-40);
45
-
46
- --font-family: 'IBM Plex Sans', sans-serif;
47
-
48
- --border-definition: 1px solid var(--color-borders);
49
- --border-definition-adornment: 1px solid var(--color-borders-adornment);
50
- --outline-definition: 1px solid var(--color-borders);
51
- --border-definition-disabled: 1px solid var(--color-borders-disabled);
52
-
53
- height: 100%;
54
- }
55
-
56
- /**
57
- * Layout styles
58
- */
59
- .fjs-container .fjs-vertical-layout {
60
- display: flex;
61
- flex-direction: column;
62
- }
63
-
64
- .fjs-container .fjs-columns {
65
- display: flex;
66
- flex-direction: row;
67
- }
68
-
69
- .fjs-container .fjs-column {
70
- flex-grow: 1;
71
- }
72
-
73
- .fjs-container img {
74
- max-width: 100%;
75
- }
76
-
77
- /**
78
- * Visual styles
79
- */
80
- .fjs-container .fjs-form {
81
- font-family: var(--font-family);
82
- font-size: 14px;
83
- line-height: 1.3;
84
- font-weight: 400;
85
-
86
- color: var(--color-text);
87
- background-color: var(--color-background);
88
-
89
- position: relative;
90
- }
91
-
92
- .fjs-container .fjs-form * {
93
- box-sizing: border-box;
94
- }
95
-
96
- .fjs-container .fjs-form-field {
97
- margin: 16px;
98
- }
99
-
100
- .fjs-container .fjs-form-field-placeholder {
101
- color: var(--color-text-light);
102
- }
103
-
104
- .fjs-container .fjs-input,
105
- .fjs-container .fjs-textarea,
106
- .fjs-container .fjs-select {
107
- border-color: var(--color-borders);
108
- background-color: var(--color-background);
109
- font-family: inherit;
110
- }
111
-
112
- .fjs-container .fjs-input::placeholder,
113
- .fjs-container .fjs-textarea::placeholder,
114
- .fjs-container .fjs-select > option:disabled,
115
- .fjs-container .fjs-select [disabled] {
116
- font-style: italic;
117
- letter-spacing: 0.25px;
118
- color: var(--color-text-lighter);
119
- }
120
-
121
- .fjs-container .fjs-form-field-label {
122
- display: flex;
123
- align-items: center;
124
- }
125
-
126
- .fjs-container .fjs-form-field-description {
127
- display: block;
128
- color: var(--color-text-light);
129
- }
130
-
131
- .fjs-container .fjs-form-field-label,
132
- .fjs-container .fjs-form-field-description {
133
- margin: 4px 0;
134
- }
135
-
136
- .fjs-container .fjs-form-field.required label::after,
137
- .fjs-container .fjs-form-field.required .group-title::after {
138
- content: '*';
139
- }
140
-
141
- .fjs-container .fjs-checkbox.group.required label::after,
142
- .fjs-container .fjs-radio.required label::after {
143
- display: none;
144
- }
145
-
146
- .fjs-container .fjs-input[type='text'],
147
- .fjs-container .fjs-input[type='email'],
148
- .fjs-container .fjs-input[type='tel'],
149
- .fjs-container .fjs-input[type='number'],
150
- .fjs-container .fjs-button[type='submit'],
151
- .fjs-container .fjs-button[type='reset'],
152
- .fjs-container .fjs-textarea,
153
- .fjs-container .fjs-select {
154
- display: block;
155
- width: 100%;
156
- padding: 8px;
157
- margin: 4px 0;
158
- border-width: 1px;
159
- border-style: solid;
160
- border-radius: 3px;
161
- }
162
-
163
- .fjs-container .fjs-input-group {
164
- display: flex;
165
- width: 100%;
166
- margin-top: 8px;
167
- border: var(--border-definition);
168
- border-radius: 3px;
169
- }
170
-
171
- .fjs-container .fjs-input-group.disabled {
172
- background-color: var(--color-background-disabled);
173
- }
174
-
175
- .fjs-container .fjs-input-group.disabled,
176
- .fjs-container .fjs-input-group.disabled .fjs-input,
177
- .fjs-container .fjs-input-group.disabled .fjs-input-adornment {
178
- border-color: var(--color-borders-disabled);
179
- }
180
-
181
- .fjs-container .fjs-taglist .fjs-taglist-input,
182
- .fjs-container .fjs-input-group .fjs-input {
183
- border: none;
184
- border-radius: 0;
185
- margin: 0;
186
- outline: 0;
187
- }
188
-
189
- .fjs-container .fjs-input-group .fjs-input-adornment {
190
- border-width: 0;
191
- }
192
-
193
- .fjs-container .fjs-input-group .fjs-input-adornment.border-left {
194
- border-left-width: 1px;
195
- }
196
-
197
- .fjs-container .fjs-input-group .fjs-input-adornment.border-right {
198
- border-right-width: 1px;
199
- }
200
-
201
- .fjs-container .fjs-input-group .fjs-input-adornment.border-radius-right {
202
- border-radius: 0 3px 3px 0;
203
- }
204
-
205
- .fjs-container .fjs-input-group .fjs-input-adornment.border-radius-left {
206
- border-radius: 3px 0 0 3px;
207
- }
208
-
209
- .fjs-container .fjs-input-group .fjs-input,
210
- .fjs-container .fjs-input-group.disabled .fjs-input {
211
- border-radius: 3px;
212
- }
213
-
214
- .fjs-container .fjs-vertical-group {
215
- display: flex;
216
- width: 100%;
217
- }
218
-
219
- .fjs-container .fjs-textarea {
220
- resize: none;
221
- overflow: hidden;
222
- height: 75px;
223
- font-size: 14px;
224
- }
225
-
226
- .fjs-container .fjs-number-arrow-container {
227
- display: flex;
228
- flex-direction: column;
229
- border-radius: 0 2px 2px 0;
230
- width: 23px;
231
- overflow: clip;
232
- border-left: var(--border-definition-adornment);
233
- }
234
-
235
- .fjs-container .fjs-number-arrow-separator {
236
- height: 1px;
237
- background-color: var(--color-borders-adornment);
238
- }
239
-
240
- .fjs-container .fjs-number-arrow-container button {
241
- border: none;
242
- flex: 1;
243
- color: var(--color-text-light);
244
- background-color: var(--color-grey-225-10-95);
245
- font-weight: bold;
246
- font-size: 10px;
247
- }
248
-
249
- .fjs-container .fjs-number-arrow-container button:hover {
250
- background-color: var(--color-grey-225-10-93);
251
- color: var(--color-text);
252
- }
253
-
254
- .fjs-container .fjs-number-arrow-container.disabled button {
255
- background-color: var(--color-grey-225-10-95);
256
- }
257
-
258
-
259
- .fjs-container .fjs-radio {
260
- display: flex;
261
- flex-direction: column;
262
- }
263
-
264
- .fjs-container .fjs-input[type='checkbox'],
265
- .fjs-container .fjs-input[type='radio'] {
266
- margin: 6px 10px 6px 4px;
267
- }
268
-
269
- .fjs-container .fjs-button[type='submit'] {
270
- color: var(--color-text-inverted);
271
- background-color: var(--color-accent);
272
- border-color: var(--color-accent);
273
- }
274
-
275
- .fjs-container .fjs-button[type='reset'] {
276
- color: var(--color-text);
277
- background-color: transparent;
278
- border-color: var(--color-borders);
279
- }
280
-
281
- .fjs-container .fjs-button[type='submit'],
282
- .fjs-container .fjs-button[type='reset'] {
283
- min-width: 100px;
284
- width: auto;
285
- }
286
-
287
- .fjs-container .fjs-button[type='submit'] {
288
- font-weight: 600;
289
- }
290
-
291
- .fjs-container .fjs-taglist:focus-within,
292
- .fjs-container .fjs-input-group:focus-within,
293
- .fjs-container .fjs-textarea:focus,
294
- .fjs-container .fjs-input[type='text']:focus,
295
- .fjs-container .fjs-input[type='email']:focus,
296
- .fjs-container .fjs-input[type='tel']:focus,
297
- .fjs-container .fjs-input[type='number']:focus,
298
- .fjs-container .fjs-button[type='submit']:focus,
299
- .fjs-container .fjs-button[type='reset']:focus,
300
- .fjs-container .fjs-textarea:focus,
301
- .fjs-container .fjs-select:focus {
302
- outline: var(--color-borders) solid 1px;
303
- }
304
-
305
- .fjs-container .fjs-input-group .fjs-input,
306
- .fjs-container .fjs-input-group .fjs-input:focus {
307
- outline: none;
308
- }
309
-
310
- .fjs-container .fjs-button[type='submit']:focus {
311
- border-color: var(--color-accent);
312
- }
313
-
314
- .fjs-container .fjs-input:disabled,
315
- .fjs-container .fjs-textarea:disabled,
316
- .fjs-container .fjs-select:disabled {
317
- background-color: var(--color-background-disabled);
318
- border-color: var(--color-borders-disabled);
319
- }
320
-
321
- .fjs-container .fjs-button[type='submit']:disabled,
322
- .fjs-container .fjs-button[type='reset']:disabled {
323
- color: var(--text-light);
324
- background-color: var(--color-background-disabled);
325
- border-color: var(--color-borders-disabled);
326
- }
327
-
328
- .fjs-container .fjs-form-field.fjs-has-errors .fjs-input,
329
- .fjs-container .fjs-form-field.fjs-has-errors .fjs-select,
330
- .fjs-container .fjs-form-field.fjs-has-errors .fjs-input-group,
331
- .fjs-container .fjs-form-field.fjs-has-errors .fjs-textarea {
332
- border-color: var(--color-warning);
333
- outline-color: var(--color-warning);
334
- }
335
-
336
- .fjs-container .fjs-form-field.fjs-has-errors .fjs-number-arrow-container {
337
- border-color: var(--color-red-360-100-92);
338
- }
339
-
340
- .fjs-container .fjs-form-field.fjs-has-errors .fjs-number-arrow-separator {
341
- background-color: var(--color-red-360-100-92);
342
- }
343
-
344
- .fjs-container .fjs-form-field.fjs-has-errors .fjs-number-arrow-container button {
345
- background-color: var(--color-red-360-100-97);
346
- }
347
-
348
- .fjs-container .fjs-form-field.fjs-has-errors .fjs-number-arrow-container button:hover {
349
- background-color: var(--color-red-360-100-95);
350
- }
351
-
352
- .fjs-container .fjs-form-field-error {
353
- color: var(--color-warning);
354
- }
355
-
356
- .fjs-container .fjs-form-field-error > ul {
357
- list-style-type: none;
358
- margin: 0;
359
- padding: 0;
360
- }
361
-
362
- .fjs-container .fjs-form-field-error > ul > li {
363
- list-style-type: none;
364
- }
365
-
366
- .fjs-container .fjs-form-field-text a {
367
- color: var(--color-accent);
368
- }
369
-
370
- .fjs-container .fjs-taglist-anchor {
371
- position: relative;
372
- }
373
-
374
- .fjs-container .fjs-taglist {
375
- display: flex;
376
- flex-wrap: wrap;
377
- gap: 5px;
378
- border: var(--color-borders) solid 1px;
379
- border-radius: 3px;
380
- padding: 5px;
381
- background-color: var(--color-background);
382
- }
383
-
384
- .fjs-container .fjs-taglist.disabled {
385
- border: var(--color-borders-disabled) solid 1px;
386
- background-color: var(--color-background-disabled);
387
- }
388
-
389
- .fjs-container .fjs-taglist .fjs-taglist-tag {
390
- display: flex;
391
- overflow: hidden;
392
- user-select: none;
393
- border-radius: 2px;
394
- background-color: var(--color-grey-225-10-90);
395
- }
396
-
397
- .fjs-container .fjs-taglist .fjs-taglist-tags {
398
- display: flex;
399
- flex-wrap: wrap;
400
- gap: 5px;
401
- }
402
-
403
- .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-label {
404
- padding: 2px 6px 2px 8px;
405
- }
406
-
407
- .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove {
408
- overflow: clip;
409
- width: 22px;
410
- height: 22px;
411
- text-align: center;
412
- line-height: 28px;
413
- background-color: var(--color-grey-225-10-80);
414
- border: none;
415
- padding: 1px 0;
416
- color: var(--color-black);
417
- }
418
-
419
- .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove svg {
420
- opacity: 0.6;
421
- }
422
-
423
- .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove:hover,
424
- .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove:focus-visible {
425
- background-color: var(--color-grey-225-10-75);
426
- }
427
-
428
- .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove:hover > svg,
429
- .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove:focus-visible > svg {
430
- opacity: 1;
431
- }
432
-
433
- .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove:focus-visible {
434
- outline: none;
435
- }
436
-
437
- .fjs-container .fjs-taglist .fjs-taglist-input {
438
- border: none;
439
- background-color: transparent;
440
- min-width: 100px;
441
- height: 22px;
442
- flex-grow: 1;
443
- }
444
-
445
- .fjs-container .fjs-taglist .fjs-taglist-input:focus-visible {
446
- outline: none;
447
- }
448
-
449
- .fjs-container .fjs-taglist .fjs-taglist-dropdown-anchor {
450
- position: relative;
451
- }
452
-
453
- .fjs-container .fjs-dropdownlist {
454
- position: absolute;
455
- user-select: none;
456
- overflow-y: scroll;
457
- max-height: 120px;
458
- scroll-behavior: smooth;
459
- width: 100%;
460
- border-radius: 3px;
461
- margin-top: 3px;
462
- box-shadow: 0px 0px 5px var(--color-grey-225-10-85);
463
- background-color: var(--color-white);
464
- }
465
-
466
- .fjs-container .fjs-dropdownlist .fjs-dropdownlist-item {
467
- padding: 6px 8px;
468
- border-bottom: 1px solid var(--color-grey-225-10-90);
469
- color: var(--color-grey-225-10-35);
470
- }
471
-
472
- .fjs-container .fjs-dropdownlist .fjs-dropdownlist-item:last-child {
473
- border-bottom: none;
474
- }
475
-
476
- .fjs-container .fjs-dropdownlist .fjs-dropdownlist-item.focused {
477
- background-color: var(--color-grey-225-10-90);
478
- color: var(--color-black);
479
- }
480
-
481
- .fjs-container .fjs-dropdownlist .fjs-dropdownlist-empty {
482
- padding: 6px 8px;
483
- color: var(--color-text-lighter);
484
- }
485
-
486
- .fjs-container .fjs-image-container {
487
- width: fit-content;
488
- height: fit-content;
489
- }
490
-
491
- .fjs-container .fjs-image {
492
- object-fit: contain;
493
- }
494
-
495
- .fjs-container .fjs-image-placeholder {
496
- height: 64px;
497
- margin: 2px 0;
498
- }
1
+ /**
2
+ * Theming
3
+ */
4
+ .fjs-container {
5
+ --color-grey-225-10-15: hsl(225, 10%, 15%);
6
+ --color-grey-225-10-35: hsl(225, 10%, 35%);
7
+ --color-grey-225-10-45: hsl(225, 10%, 45%);
8
+ --color-grey-225-10-55: hsl(225, 10%, 55%);
9
+ --color-grey-225-10-75: hsl(225, 10%, 75%);
10
+ --color-grey-225-10-80: hsl(225, 10%, 80%);
11
+ --color-grey-225-10-85: hsl(225, 10%, 85%);
12
+ --color-grey-225-10-90: hsl(225, 10%, 90%);
13
+ --color-grey-225-10-93: hsl(225, 10%, 93%);
14
+ --color-grey-225-10-95: hsl(225, 10%, 95%);
15
+ --color-grey-225-10-97: hsl(225, 10%, 97%);
16
+
17
+ --color-blue-205-100-40: hsl(205, 100%, 40%);
18
+ --color-blue-205-100-45: hsl(205, 100%, 45%);
19
+ --color-blue-205-100-50: hsl(205, 100%, 50%);
20
+ --color-blue-205-100-80: hsl(205, 100%, 80%);
21
+ --color-blue-205-100-95: hsl(205, 100%, 95%);
22
+
23
+ --color-green-150-86-44: hsl(150, 86%, 44%);
24
+
25
+ --color-red-360-100-40: hsl(360, 100%, 40%);
26
+ --color-red-360-100-45: hsl(360, 100%, 45%);
27
+ --color-red-360-100-92: hsl(360, 100%, 92%);
28
+ --color-red-360-100-95: hsl(360, 100%, 95%);
29
+ --color-red-360-100-97: hsl(360, 100%, 97%);
30
+
31
+ --color-white: hsl(0, 0%, 100%);
32
+ --color-black: hsl(0, 0%, 0%);
33
+
34
+ --color-background: var(--color-white);
35
+ --color-background-disabled: var(--color-grey-225-10-95);
36
+ --color-background-adornment: var(--color-grey-225-10-95);
37
+ --color-text: var(--color-grey-225-10-15);
38
+ --color-text-light: var(--color-grey-225-10-35);
39
+ --color-text-lighter: var(--color-grey-225-10-45);
40
+ --color-text-lightest: var(--color-grey-225-10-55);
41
+ --color-text-inverted: var(--color-white);
42
+ --color-borders: var(--color-grey-225-10-55);
43
+ --color-borders-disabled: var(--color-grey-225-10-75);
44
+ --color-borders-adornment: var(--color-grey-225-10-85);
45
+ --color-warning: var(--color-red-360-100-45);
46
+ --color-accent: var(--color-blue-205-100-40);
47
+ --color-datepicker-focused-day: var(--color-grey-225-10-55);
48
+
49
+ --font-family: 'IBM Plex Sans', sans-serif;
50
+
51
+ --border-definition: 1px solid var(--color-borders);
52
+ --border-definition-adornment: 1px solid var(--color-borders-adornment);
53
+ --outline-definition: 1px solid var(--color-borders);
54
+ --border-definition-disabled: 1px solid var(--color-borders-disabled);
55
+
56
+ height: 100%;
57
+ }
58
+
59
+ /**
60
+ * Layout styles
61
+ */
62
+ .fjs-container .fjs-vertical-layout {
63
+ display: flex;
64
+ flex-direction: column;
65
+ }
66
+
67
+ .fjs-container .fjs-columns {
68
+ display: flex;
69
+ flex-direction: row;
70
+ }
71
+
72
+ .fjs-container .fjs-vertical-group {
73
+ display: flex;
74
+ flex: 1;
75
+ width: 100%;
76
+ }
77
+
78
+ .fjs-container .fjs-column {
79
+ flex-grow: 1;
80
+ }
81
+
82
+ .fjs-container img {
83
+ max-width: 100%;
84
+ }
85
+
86
+ /**
87
+ * Visual styles
88
+ */
89
+ .fjs-container .fjs-form {
90
+ font-family: var(--font-family);
91
+ font-size: 14px;
92
+ line-height: 1.3;
93
+ font-weight: 400;
94
+ color: var(--color-text);
95
+ background-color: var(--color-background);
96
+ position: relative;
97
+ }
98
+
99
+ .fjs-container .fjs-form * {
100
+ box-sizing: border-box;
101
+ }
102
+
103
+ .fjs-container .fjs-form-field {
104
+ margin: 16px;
105
+ }
106
+
107
+ .fjs-container .fjs-form-field-placeholder {
108
+ color: var(--color-text-light);
109
+ font-style: italic;
110
+ }
111
+
112
+ .fjs-container .fjs-form-field-placeholder svg {
113
+ width: 36px;
114
+ height: 36px;
115
+ vertical-align: middle;
116
+ margin-top: -2px;
117
+ margin-right: 2px;
118
+ }
119
+
120
+ .fjs-container .fjs-input,
121
+ .fjs-container .fjs-textarea,
122
+ .fjs-container .fjs-select {
123
+ border-color: var(--color-borders);
124
+ background-color: var(--color-background);
125
+ font-family: inherit;
126
+ }
127
+
128
+ .fjs-container .fjs-input::placeholder,
129
+ .fjs-container .fjs-textarea::placeholder,
130
+ .fjs-container .fjs-select > option:disabled,
131
+ .fjs-container .fjs-select [disabled] {
132
+ font-style: italic;
133
+ letter-spacing: 0.25px;
134
+ color: var(--color-text-lightest);
135
+ }
136
+
137
+ .fjs-container .fjs-form-field-label {
138
+ display: flex;
139
+ align-items: center;
140
+ }
141
+
142
+ .fjs-container .fjs-incollapsible-label {
143
+ min-height: 18.2px;
144
+ }
145
+
146
+ .fjs-container .fjs-form-field-description {
147
+ display: block;
148
+ color: var(--color-text-light);
149
+ }
150
+
151
+ .fjs-container .fjs-form-field-label,
152
+ .fjs-container .fjs-form-field-description {
153
+ margin: 4px 0;
154
+ }
155
+
156
+ .fjs-container .fjs-form-field.required label::after,
157
+ .fjs-container .fjs-form-field.required .group-title::after {
158
+ content: '*';
159
+ }
160
+
161
+ .fjs-container .fjs-checkbox.group.required label::after,
162
+ .fjs-container .fjs-radio.required label::after {
163
+ display: none;
164
+ }
165
+
166
+ .fjs-container .fjs-input,
167
+ .fjs-container .fjs-textarea,
168
+ .fjs-container .fjs-select {
169
+ background-color: var(--color-background);
170
+ }
171
+
172
+ .fjs-container .fjs-input-adornment {
173
+ border-style: solid;
174
+ border-color: var(--color-borders-adornment);
175
+ background-color: var(--color-background-adornment);
176
+ color: var(--color-text-lighter);
177
+ padding: 8px;
178
+ width: auto !important;
179
+ min-width: 34px;
180
+ text-align: center;
181
+ }
182
+
183
+ .fjs-container .fjs-input-adornment svg {
184
+ display: block;
185
+ margin: auto;
186
+ width: 15px;
187
+ }
188
+
189
+ .fjs-container .fjs-input-adornment span {
190
+ color: var(--color-background-adornment);
191
+ }
192
+
193
+ .fjs-container .fjs-input::placeholder,
194
+ .fjs-container .fjs-textarea::placeholder,
195
+ .fjs-container .fjs-select > option:disabled,
196
+ .fjs-container .fjs-select [disabled] {
197
+ font-style: italic;
198
+ letter-spacing: 0.25px;
199
+ color: var(--color-text-lightest);
200
+ }
201
+
202
+ .fjs-container .fjs-input[type='text'],
203
+ .fjs-container .fjs-input[type='email'],
204
+ .fjs-container .fjs-input[type='tel'],
205
+ .fjs-container .fjs-input[type='number'],
206
+ .fjs-container .fjs-button[type='submit'],
207
+ .fjs-container .fjs-button[type='reset'],
208
+ .fjs-container .fjs-textarea,
209
+ .fjs-container .fjs-select {
210
+ display: block;
211
+ width: 100%;
212
+ padding: 8px;
213
+ margin: 4px 0;
214
+ border: var(--border-definition);
215
+ border-radius: 3px;
216
+ }
217
+
218
+ .fjs-container .fjs-datepicker,
219
+ .fjs-container .fjs-timepicker,
220
+ .fjs-container .fjs-datetime-subsection {
221
+ width: 100%;
222
+ }
223
+
224
+ .fjs-container .fjs-datetime-separator {
225
+ width: 10px;
226
+ }
227
+
228
+ .fjs-container .fjs-input-group {
229
+ display: flex;
230
+ width: 100%;
231
+ margin: 4px 0;
232
+ border: var(--border-definition);
233
+ border-radius: 3px;
234
+ }
235
+
236
+ .fjs-container .fjs-taglist .fjs-taglist-input,
237
+ .fjs-container .fjs-input-group .fjs-input {
238
+ border: none;
239
+ border-radius: 0;
240
+ margin: 0;
241
+ outline: 0;
242
+ width: auto;
243
+ flex-grow: 1;
244
+ }
245
+
246
+ .fjs-container .fjs-input-group .fjs-input-adornment {
247
+ border-width: 0;
248
+ }
249
+
250
+ .fjs-container .fjs-input-group .fjs-input-adornment.border-left {
251
+ border-left-width: 1px;
252
+ }
253
+
254
+ .fjs-container .fjs-input-group .fjs-input-adornment.border-right {
255
+ border-right-width: 1px;
256
+ }
257
+
258
+ .fjs-container .fjs-input-group .fjs-input-adornment.border-radius-right {
259
+ border-radius: 0 3px 3px 0;
260
+ }
261
+
262
+ .fjs-container .fjs-input-group .fjs-input-adornment.border-radius-left {
263
+ border-radius: 3px 0 0 3px;
264
+ }
265
+
266
+ .fjs-container .fjs-input-group .fjs-input,
267
+ .fjs-container .fjs-input-group.disabled .fjs-input {
268
+ border-radius: 3px;
269
+ }
270
+
271
+ .fjs-container .fjs-vertical-group {
272
+ display: flex;
273
+ width: 100%;
274
+ }
275
+
276
+ .fjs-container .flatpickr-wrapper {
277
+ width: 100%;
278
+ }
279
+
280
+ .fjs-container .fjs-textarea {
281
+ resize: none;
282
+ overflow: hidden;
283
+ height: 75px;
284
+ font-size: 14px;
285
+ }
286
+
287
+ .fjs-container .fjs-number-arrow-container {
288
+ display: flex;
289
+ flex-direction: column;
290
+ border-radius: 0 2px 2px 0;
291
+ width: 23px;
292
+ overflow: clip;
293
+ border-left: var(--border-definition-adornment);
294
+ }
295
+
296
+ .fjs-container .fjs-number-arrow-separator {
297
+ height: 1px;
298
+ background-color: var(--color-borders-adornment);
299
+ }
300
+
301
+ .fjs-container .fjs-number-arrow-container button {
302
+ border: none;
303
+ flex: 1;
304
+ color: var(--color-text-light);
305
+ background-color: var(--color-grey-225-10-95);
306
+ font-weight: bold;
307
+ font-size: 10px;
308
+ }
309
+
310
+ .fjs-container .fjs-number-arrow-container button:hover {
311
+ background-color: var(--color-grey-225-10-93);
312
+ color: var(--color-text);
313
+ }
314
+
315
+
316
+
317
+ .fjs-container .fjs-radio {
318
+ display: flex;
319
+ flex-direction: column;
320
+ }
321
+
322
+ .fjs-container .fjs-input[type='checkbox'],
323
+ .fjs-container .fjs-input[type='radio'] {
324
+ margin: 6px 10px 6px 4px;
325
+ }
326
+
327
+ .fjs-container .fjs-button[type='submit'] {
328
+ color: var(--color-text-inverted);
329
+ background-color: var(--color-accent);
330
+ border-color: var(--color-accent);
331
+ }
332
+
333
+ .fjs-container .fjs-button[type='reset'] {
334
+ color: var(--color-text);
335
+ background-color: transparent;
336
+ border-color: var(--color-borders);
337
+ }
338
+
339
+ .fjs-container .fjs-button[type='submit'],
340
+ .fjs-container .fjs-button[type='reset'] {
341
+ min-width: 100px;
342
+ width: auto;
343
+ }
344
+
345
+ .fjs-container .fjs-button[type='submit'] {
346
+ font-weight: 600;
347
+ }
348
+
349
+ .fjs-container .fjs-taglist:focus-within,
350
+ .fjs-container .fjs-input-group:focus-within,
351
+ .fjs-container .fjs-input[type='text']:focus,
352
+ .fjs-container .fjs-input[type='email']:focus,
353
+ .fjs-container .fjs-input[type='tel']:focus,
354
+ .fjs-container .fjs-input[type='number']:focus,
355
+ .fjs-container .fjs-button[type='submit']:focus,
356
+ .fjs-container .fjs-button[type='reset']:focus,
357
+ .fjs-container .fjs-textarea:focus,
358
+ .fjs-container .fjs-select:focus {
359
+ outline: var(--outline-definition);
360
+ }
361
+
362
+ .fjs-container .fjs-input-group .fjs-input,
363
+ .fjs-container .fjs-input-group .fjs-input:focus {
364
+ outline: none;
365
+ }
366
+
367
+ .fjs-container .fjs-input-group .fjs-input,
368
+ .fjs-container .fjs-input-group .fjs-input:focus {
369
+ outline: none;
370
+ }
371
+
372
+ .fjs-container .fjs-button[type='submit']:focus {
373
+ border-color: var(--color-accent);
374
+ }
375
+
376
+ .fjs-container .fjs-input:disabled,
377
+ .fjs-container .fjs-textarea:disabled,
378
+ .fjs-container .fjs-select:disabled,
379
+ .fjs-container .fjs-number-arrow-container.disabled button,
380
+ .fjs-container .fjs-input-group.disabled,
381
+ .fjs-container .fjs-taglist.disabled {
382
+ background-color: var(--color-background-disabled);
383
+ border-color: var(--color-borders-disabled);
384
+ }
385
+
386
+ .fjs-container .fjs-button[type='submit']:disabled,
387
+ .fjs-container .fjs-button[type='reset']:disabled {
388
+ color: var(--text-light);
389
+ background-color: var(--color-background-disabled);
390
+ border-color: var(--color-borders-disabled);
391
+ }
392
+
393
+ .fjs-container .fjs-input-group.disabled .fjs-input,
394
+ .fjs-container .fjs-input-group.disabled .fjs-input-adornment {
395
+ border-color: var(--color-borders-disabled);
396
+ }
397
+
398
+ .fjs-container .fjs-form-field.fjs-has-errors .fjs-input,
399
+ .fjs-container .fjs-form-field.fjs-has-errors .fjs-select,
400
+ .fjs-container .fjs-form-field.fjs-has-errors .fjs-textarea,
401
+ .fjs-container .fjs-form-field.fjs-has-errors .fjs-input-group,
402
+ .fjs-container .fjs-form-field.fjs-has-errors .fjs-input-group .fjs-input {
403
+ border-color: var(--color-warning);
404
+ outline-color: var(--color-warning);
405
+ }
406
+
407
+ .fjs-container .fjs-form-field.fjs-has-errors .fjs-number-arrow-container {
408
+ border-color: var(--color-red-360-100-92);
409
+ }
410
+
411
+ .fjs-container .fjs-form-field.fjs-has-errors .fjs-number-arrow-separator {
412
+ background-color: var(--color-red-360-100-92);
413
+ }
414
+
415
+ .fjs-container .fjs-form-field.fjs-has-errors .fjs-number-arrow-container button {
416
+ background-color: var(--color-red-360-100-97);
417
+ }
418
+
419
+ .fjs-container .fjs-form-field.fjs-has-errors .fjs-number-arrow-container button:hover {
420
+ background-color: var(--color-red-360-100-95);
421
+ }
422
+
423
+ .fjs-container .fjs-form-field.fjs-has-errors .fjs-input-adornment {
424
+ border-color: var(--color-red-360-100-92);
425
+ background: var(--color-red-360-100-97);
426
+ }
427
+
428
+ .fjs-container .fjs-form-field-error {
429
+ color: var(--color-warning);
430
+ }
431
+
432
+ .fjs-container .fjs-form-field-error > ul {
433
+ list-style-type: none;
434
+ margin: 0;
435
+ padding: 0;
436
+ }
437
+
438
+ .fjs-container .fjs-form-field-error > ul > li {
439
+ list-style-type: none;
440
+ }
441
+
442
+ .fjs-container .fjs-form-field-text a {
443
+ color: var(--color-accent);
444
+ }
445
+
446
+ .fjs-container .fjs-taglist-anchor,
447
+ .fjs-container .fjs-timepicker-anchor {
448
+ position: relative;
449
+ }
450
+
451
+ .fjs-container .fjs-taglist {
452
+ display: flex;
453
+ flex-wrap: wrap;
454
+ gap: 5px;
455
+ border: var(--color-borders) solid 1px;
456
+ border-radius: 3px;
457
+ margin: 4px 0;
458
+ padding: 5px;
459
+ background-color: var(--color-background);
460
+ }
461
+
462
+ .fjs-container .fjs-taglist .fjs-taglist-tag {
463
+ display: flex;
464
+ overflow: hidden;
465
+ user-select: none;
466
+ border-radius: 2px;
467
+ background-color: var(--color-grey-225-10-90);
468
+ }
469
+
470
+ .fjs-container .fjs-taglist .fjs-taglist-tags {
471
+ display: flex;
472
+ flex-wrap: wrap;
473
+ gap: 5px;
474
+ }
475
+
476
+ .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-label {
477
+ padding: 2px 6px 2px 8px;
478
+ }
479
+
480
+ .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove {
481
+ overflow: clip;
482
+ width: 22px;
483
+ height: 22px;
484
+ text-align: center;
485
+ line-height: 28px;
486
+ background-color: var(--color-grey-225-10-80);
487
+ border: none;
488
+ padding: 1px 0;
489
+ color: var(--color-black);
490
+ }
491
+
492
+ .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove svg {
493
+ opacity: 0.6;
494
+ }
495
+
496
+ .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove:hover,
497
+ .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove:focus-visible {
498
+ background-color: var(--color-grey-225-10-75);
499
+ }
500
+
501
+ .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove:hover > svg,
502
+ .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove:focus-visible > svg {
503
+ opacity: 1;
504
+ }
505
+
506
+ .fjs-container .fjs-taglist .fjs-taglist-tag .fjs-taglist-tag-remove:focus-visible {
507
+ outline: none;
508
+ }
509
+
510
+ .fjs-container .fjs-taglist .fjs-taglist-input {
511
+ border: none;
512
+ background-color: transparent;
513
+ min-width: 100px;
514
+ height: 22px;
515
+ flex-grow: 1;
516
+ }
517
+
518
+ .fjs-container .fjs-dropdownlist {
519
+ z-index: 1;
520
+ position: absolute;
521
+ user-select: none;
522
+ overflow-y: auto;
523
+ width: 100%;
524
+ border-radius: 3px;
525
+ margin-top: 3px;
526
+ box-shadow: 0px 0px 5px var(--color-grey-225-10-85);
527
+ background-color: var(--color-white);
528
+ }
529
+
530
+ .fjs-container .fjs-dropdownlist .fjs-dropdownlist-item {
531
+ padding: 6px 8px;
532
+ border-bottom: 1px solid var(--color-grey-225-10-90);
533
+ color: var(--color-grey-225-10-35);
534
+ }
535
+
536
+ .fjs-container .fjs-dropdownlist .fjs-dropdownlist-item:last-child {
537
+ border-bottom: none;
538
+ }
539
+
540
+ .fjs-container .fjs-dropdownlist .fjs-dropdownlist-item.focused {
541
+ background-color: var(--color-grey-225-10-90);
542
+ color: var(--color-black);
543
+ }
544
+
545
+ .fjs-container .fjs-dropdownlist .fjs-dropdownlist-empty {
546
+ padding: 6px 8px;
547
+ color: var(--color-text-lightest);
548
+ }
549
+
550
+ .fjs-container .fjs-image-container {
551
+ width: fit-content;
552
+ height: fit-content;
553
+ }
554
+
555
+ .fjs-container .fjs-image {
556
+ object-fit: contain;
557
+ }
558
+
559
+ .fjs-container .fjs-image-placeholder {
560
+ height: 64px;
561
+ margin: 4px 0;
562
+ }
563
+
564
+ /**
565
+ * Flatpickr style adjustments
566
+ */
567
+
568
+ .flatpickr-day.today {
569
+ border-color: transparent !important;
570
+ background-color: transparent !important;
571
+ font-weight: bold !important;
572
+ }
573
+
574
+ .flatpickr-day.today:hover,
575
+ .flatpickr-day.today:focus {
576
+ border-color: var(--color-borders) !important;
577
+ background-color: var(--color-datepicker-focused-day) !important;
578
+ color: var(--color-text-inverted) !important;
579
+ }
580
+
581
+ .flatpickr-day.selected {
582
+ border-color: var(--color-accent) !important;
583
+ background-color: inherit !important;
584
+ color: inherit !important;
585
+ font-weight: normal !important;
586
+ }
587
+
588
+ .flatpickr-day.selected.today {
589
+ font-weight: bold !important;
590
+ }
591
+
592
+ .flatpickr-day.selected:hover,
593
+ .flatpickr-day.selected:focus {
594
+ background-color: var(--color-accent) !important;
595
+ font-weight: bold !important;
596
+ color: var(--color-text-inverted) !important;
597
+ }
598
+
599
+ .flatpickr-days, .flatpickr-weekdays {
600
+ padding: 10px !important;
601
+ width: 100% !important;
602
+ }
603
+
604
+ .fjs-container .flatpickr-calendar.hasTime.noCalendar {
605
+ width: auto !important;
606
+ max-width: 250px !important;
607
+ }
608
+
609
+ .flatpickr-calendar {
610
+ width: 326px !important;
611
+ }