@icure/form 1.1.23 → 1.1.25

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 (62) hide show
  1. package/.yarn/cache/{prosemirror-view-npm-1.34.2-c94b518ce1-5895d76c3f.zip → prosemirror-view-npm-1.34.3-c79b7cffaa-622a9e4061.zip} +0 -0
  2. package/.yarn/install-state.gz +0 -0
  3. package/components/common/metadata-buttons-bar.d.ts +1 -0
  4. package/components/common/metadata-buttons-bar.js +271 -239
  5. package/components/common/metadata-buttons-bar.js.map +1 -1
  6. package/components/common/styles/paths.d.ts +1 -0
  7. package/components/common/styles/paths.js +14 -1
  8. package/components/common/styles/paths.js.map +1 -1
  9. package/components/icure-button/index.d.ts +13 -0
  10. package/components/icure-button/index.js +1106 -0
  11. package/components/icure-button/index.js.map +1 -0
  12. package/components/icure-button-group/index.d.ts +3 -1
  13. package/components/icure-button-group/index.js +248 -220
  14. package/components/icure-button-group/index.js.map +1 -1
  15. package/components/icure-date-picker/index.js +220 -213
  16. package/components/icure-date-picker/index.js.map +1 -1
  17. package/components/icure-dropdown-field/index.js +221 -214
  18. package/components/icure-dropdown-field/index.js.map +1 -1
  19. package/components/icure-form/fields/button/button.d.ts +13 -0
  20. package/components/icure-form/fields/button/button.js +74 -0
  21. package/components/icure-form/fields/button/button.js.map +1 -0
  22. package/components/icure-form/fields/button/index.d.ts +1 -0
  23. package/components/icure-form/fields/button/index.js +18 -0
  24. package/components/icure-form/fields/button/index.js.map +1 -0
  25. package/components/icure-form/fields/dropdown/dropdown-field.js +0 -2
  26. package/components/icure-form/fields/dropdown/dropdown-field.js.map +1 -1
  27. package/components/icure-form/fields/index.d.ts +1 -0
  28. package/components/icure-form/fields/index.js +1 -0
  29. package/components/icure-form/fields/index.js.map +1 -1
  30. package/components/icure-form/fields/label/label.d.ts +2 -0
  31. package/components/icure-form/fields/label/label.js +17 -1
  32. package/components/icure-form/fields/label/label.js.map +1 -1
  33. package/components/icure-form/fields/token-field/token-field.d.ts +2 -0
  34. package/components/icure-form/fields/token-field/token-field.js +20 -4
  35. package/components/icure-form/fields/token-field/token-field.js.map +1 -1
  36. package/components/icure-form/index.d.ts +1 -0
  37. package/components/icure-form/index.js +221 -210
  38. package/components/icure-form/index.js.map +1 -1
  39. package/components/icure-form/renderer/form/form.js +35 -10
  40. package/components/icure-form/renderer/form/form.js.map +1 -1
  41. package/components/icure-form/renderer/index.d.ts +1 -1
  42. package/components/icure-form/renderer/index.js.map +1 -1
  43. package/components/icure-label/index.d.ts +2 -0
  44. package/components/icure-label/index.js +227 -211
  45. package/components/icure-label/index.js.map +1 -1
  46. package/components/icure-text-field/index.d.ts +7 -0
  47. package/components/icure-text-field/index.js +295 -242
  48. package/components/icure-text-field/index.js.map +1 -1
  49. package/components/icure-text-field/schema/token-schema.js +2 -2
  50. package/components/icure-text-field/schema/token-schema.js.map +1 -1
  51. package/components/model/index.d.ts +15 -7
  52. package/components/model/index.js +19 -13
  53. package/components/model/index.js.map +1 -1
  54. package/components/themes/default/index.js +3 -0
  55. package/components/themes/default/index.js.map +1 -1
  56. package/components/themes/icure-blue/index.js +91 -53
  57. package/components/themes/icure-blue/index.js.map +1 -1
  58. package/components/themes/kendo/index.js +20 -1
  59. package/components/themes/kendo/index.js.map +1 -1
  60. package/conversion/icure-convert.js +1 -1
  61. package/conversion/icure-convert.js.map +1 -1
  62. package/package.json +1 -1
@@ -36,37 +36,58 @@ const baseCss = (0, lit_2.css) `@charset "UTF-8";
36
36
 
37
37
  .ProseMirror {
38
38
  position: relative;
39
- }
40
-
41
- .ProseMirror {
42
39
  width: 100%;
43
40
  word-wrap: break-word;
44
41
  white-space: pre-wrap;
45
42
  -webkit-font-variant-ligatures: none;
46
43
  font-variant-ligatures: none;
47
44
  font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
45
+ padding: 6px 8px 2px 8px;
46
+ line-height: 1.2;
47
+ color: #274768;
48
+ font-size: 14px;
49
+ font-weight: 400;
50
+ outline: none;
51
+ }
52
+ .ProseMirror p:last-child,
53
+ .ProseMirror h1:last-child,
54
+ .ProseMirror h2:last-child,
55
+ .ProseMirror h3:last-child,
56
+ .ProseMirror h4:last-child,
57
+ .ProseMirror h5:last-child,
58
+ .ProseMirror h6:last-child {
59
+ margin-bottom: 2px;
60
+ }
61
+ .ProseMirror p {
62
+ margin-bottom: 1em;
48
63
  }
49
-
50
64
  .ProseMirror pre {
51
65
  white-space: pre-wrap;
52
66
  }
53
-
54
67
  .ProseMirror li {
55
68
  position: relative;
56
69
  }
70
+ .ProseMirror ul,
71
+ .ProseMirror ol {
72
+ padding-left: 30px;
73
+ }
74
+ .ProseMirror blockquote {
75
+ padding-left: 1em;
76
+ border-left: 3px solid #eee;
77
+ margin-left: 0;
78
+ margin-right: 0;
79
+ }
57
80
 
81
+ .ProseMirror-hideselection {
82
+ caret-color: transparent;
83
+ }
58
84
  .ProseMirror-hideselection *::selection {
59
85
  background: transparent;
60
86
  }
61
-
62
87
  .ProseMirror-hideselection *::-moz-selection {
63
88
  background: transparent;
64
89
  }
65
90
 
66
- .ProseMirror-hideselection {
67
- caret-color: transparent;
68
- }
69
-
70
91
  .ProseMirror-selectednode {
71
92
  outline: 2px solid #8cf;
72
93
  }
@@ -75,8 +96,7 @@ const baseCss = (0, lit_2.css) `@charset "UTF-8";
75
96
  li.ProseMirror-selectednode {
76
97
  outline: none;
77
98
  }
78
-
79
- li.ProseMirror-selectednode:after {
99
+ li.ProseMirror-selectednode :after {
80
100
  content: "";
81
101
  position: absolute;
82
102
  left: -32px;
@@ -92,7 +112,6 @@ li.ProseMirror-selectednode:after {
92
112
  pointer-events: none;
93
113
  position: absolute;
94
114
  }
95
-
96
115
  .ProseMirror-gapcursor:after {
97
116
  content: "";
98
117
  display: block;
@@ -118,7 +137,6 @@ li.ProseMirror-selectednode:after {
118
137
  border: none;
119
138
  margin: 1em 0;
120
139
  }
121
-
122
140
  .ProseMirror-example-setup-style hr:after {
123
141
  content: "";
124
142
  display: block;
@@ -127,18 +145,6 @@ li.ProseMirror-selectednode:after {
127
145
  line-height: 2px;
128
146
  }
129
147
 
130
- .ProseMirror ul,
131
- .ProseMirror ol {
132
- padding-left: 30px;
133
- }
134
-
135
- .ProseMirror blockquote {
136
- padding-left: 1em;
137
- border-left: 3px solid #eee;
138
- margin-left: 0;
139
- margin-right: 0;
140
- }
141
-
142
148
  .ProseMirror-example-setup-style img {
143
149
  cursor: default;
144
150
  }
@@ -152,21 +158,18 @@ li.ProseMirror-selectednode:after {
152
158
  z-index: 11;
153
159
  box-shadow: -0.5px 2px 5px rgba(0, 0, 0, 0.2);
154
160
  }
155
-
156
161
  .ProseMirror-prompt h5 {
157
162
  margin: 0;
158
163
  font-weight: normal;
159
164
  font-size: 100%;
160
165
  color: #444;
161
166
  }
162
-
163
167
  .ProseMirror-prompt input[type=text],
164
168
  .ProseMirror-prompt textarea {
165
169
  background: #eee;
166
170
  border: none;
167
171
  outline: none;
168
172
  }
169
-
170
173
  .ProseMirror-prompt input[type=text] {
171
174
  padding: 0 4px;
172
175
  }
@@ -180,7 +183,6 @@ li.ProseMirror-selectednode:after {
180
183
  background: transparent;
181
184
  padding: 0;
182
185
  }
183
-
184
186
  .ProseMirror-prompt-close:after {
185
187
  content: "✕";
186
188
  font-size: 12px;
@@ -211,29 +213,6 @@ li.ProseMirror-selectednode:after {
211
213
  align-items: flex-end;
212
214
  }
213
215
 
214
- .ProseMirror p:last-child,
215
- .ProseMirror h1:last-child,
216
- .ProseMirror h2:last-child,
217
- .ProseMirror h3:last-child,
218
- .ProseMirror h4:last-child,
219
- .ProseMirror h5:last-child,
220
- .ProseMirror h6:last-child {
221
- margin-bottom: 2px;
222
- }
223
-
224
- .ProseMirror {
225
- padding: 6px 8px 2px 8px;
226
- line-height: 1.2;
227
- color: #274768;
228
- font-size: 14px;
229
- font-weight: 400;
230
- outline: none;
231
- }
232
-
233
- .ProseMirror p {
234
- margin-bottom: 1em;
235
- }
236
-
237
216
  .icure-input {
238
217
  background: #edf2f7;
239
218
  border-radius: 8px;
@@ -261,29 +240,22 @@ li.ProseMirror-selectednode:after {
261
240
  align-items: flex-start;
262
241
  }
263
242
  #editor.tokens-list .ProseMirror li, #editor.styled-tokens-list .ProseMirror li {
264
- display: inline-block;
243
+ display: flex;
244
+ flex-direction: row;
265
245
  border-radius: 8px;
266
246
  padding: 2px 4px;
267
247
  margin-right: 2px;
268
248
  background-color: #dadada;
269
249
  border-color: rgba(42, 61, 108, 0.44);
250
+ min-height: 20px;
270
251
  }
271
252
  #editor.tokens-list .ProseMirror li span, #editor.styled-tokens-list .ProseMirror li span {
272
- min-width: 26px;
273
253
  display: inline-block;
254
+ min-height: 18px;
274
255
  }
275
256
  #editor.tokens-list .ProseMirror li span br, #editor.styled-tokens-list .ProseMirror li span br {
276
257
  display: none;
277
258
  }
278
- #editor.tokens-list .ProseMirror li span:after:hover, #editor.styled-tokens-list .ProseMirror li span:after:hover {
279
- background: transparent url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxu cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJPdXRsaW5lIiB2aWV3 Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iIzAwMDAwMCIgZmlsbD0iIzAwMDAwMCIg d2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPjxwYXRoIGQ9Ik0xNiw4YTEsMSwwLDAs MC0xLjQxNCwwTDEyLDEwLjU4Niw5LjQxNCw4QTEsMSwwLDAsMCw4LDkuNDE0TDEw LjU4NiwxMiw4LDE0LjU4NkExLDEsMCwwLDAsOS40MTQsMTZMMTIsMTMuNDE0LDE0 LjU4NiwxNkExLDEsMCwwLDAsMTYsMTQuNTg2TDEzLjQxNCwxMiwxNiw5LjQxNEEx LDEsMCwwLDAsMTYsOFoiLz48cGF0aCBkPSJNMTIsMEExMiwxMiwwLDEsMCwyNCwx MiwxMi4wMTMsMTIuMDEzLDAsMCwwLDEyLDBabTAsMjJBMTAsMTAsMCwxLDEsMjIs MTIsMTAuMDExLDEwLjAxMSwwLDAsMSwxMiwyMloiLz48L3N2Zz4K") no-repeat center/16px;
280
- }
281
- #editor.tokens-list .ProseMirror li span:after, #editor.styled-tokens-list .ProseMirror li span:after {
282
- content: " ";
283
- min-width: 22px;
284
- background: transparent url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxu cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJPdXRsaW5lIiB2aWV3 Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iIzg4ODg4OCIgZmlsbD0iIzg4ODg4OCIg d2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPjxwYXRoIGQ9Ik0xNiw4YTEsMSwwLDAs MC0xLjQxNCwwTDEyLDEwLjU4Niw5LjQxNCw4QTEsMSwwLDAsMCw4LDkuNDE0TDEw LjU4NiwxMiw4LDE0LjU4NkExLDEsMCwwLDAsOS40MTQsMTZMMTIsMTMuNDE0LDE0 LjU4NiwxNkExLDEsMCwwLDAsMTYsMTQuNTg2TDEzLjQxNCwxMiwxNiw5LjQxNEEx LDEsMCwwLDAsMTYsOFoiLz48cGF0aCBkPSJNMTIsMEExMiwxMiwwLDEsMCwyNCwx MiwxMi4wMTMsMTIuMDEzLDAsMCwwLDEyLDBabTAsMjJBMTAsMTAsMCwxLDEsMjIs MTIsMTAuMDExLDEwLjAxMSwwLDAsMSwxMiwyMloiLz48L3N2Zz4K") no-repeat center/16px;
285
- display: inline-block;
286
- }
287
259
  #editor.items-list .ProseMirror {
288
260
  display: flex;
289
261
  flex-direction: column;
@@ -319,66 +291,81 @@ h3 {
319
291
  margin-top: 0;
320
292
  }
321
293
 
294
+ .icure-input-metadata-container {
295
+ display: flex;
296
+ }
297
+ .icure-input-metadata-container .icure-metadata-container {
298
+ display: flex;
299
+ flex-grow: 1;
300
+ padding: 0 4px;
301
+ border: 1px solid #DDE3E7;
302
+ border-left: none;
303
+ border-radius: 0 6px 6px 0;
304
+ outline: 0;
305
+ box-sizing: border-box;
306
+ }
307
+ .icure-input-metadata-container .icure-metadata-container__validationError {
308
+ border-color: red;
309
+ }
310
+
322
311
  .extra {
323
- flex-shrink: 0;
312
+ min-width: 20px;
313
+ width: auto;
314
+ height: 20px;
315
+ transition: all 0.24s cubic-bezier(0.42, 0.01, 1, 0.62);
316
+ }
317
+ .extra:hover .info {
318
+ display: none;
319
+ }
320
+ .extra:hover .buttons-container .menu-container .btn {
321
+ animation: slideIn 0.24s ease-in forwards;
322
+ pointer-events: none;
323
+ display: unset !important;
324
+ }
325
+ .extra.forced .info, .extra.forced .extra .info.hidden {
326
+ opacity: 0 !important;
327
+ z-index: 0 !important;
328
+ display: none;
329
+ }
330
+ .extra.forced .buttons-container .btn {
331
+ opacity: 1 !important;
332
+ display: unset !important;
333
+ }
334
+ .extra.forced:hover .buttons-container .menu-container .btn {
335
+ animation: none;
336
+ pointer-events: all;
337
+ }
338
+ .extra--metadataButtonsBar {
339
+ height: 100%;
324
340
  display: flex;
325
- flex-flow: row nowrap;
326
341
  align-items: center;
327
- padding: 0 8px;
328
- transition: all 0.24s cubic-bezier(0.42, 0.01, 1, 0.62);
342
+ padding: 0 4px;
329
343
  }
330
-
331
- .extra > .info {
344
+ .extra .info {
332
345
  color: #809ab4;
333
- font-size: 12px;
346
+ font-size: 15px;
334
347
  width: 100%;
335
348
  height: auto;
336
349
  overflow: hidden;
337
350
  pointer-events: none;
338
- text-align: right;
351
+ text-align: center;
339
352
  }
340
-
341
- .extra > .info > span {
353
+ .extra .info span {
342
354
  font-weight: 700;
343
355
  }
344
-
356
+ .extra .info.hidden {
357
+ display: none;
358
+ }
345
359
  .extra .buttons-container {
346
- position: relative;
347
360
  display: flex;
348
- height: 100%;
361
+ height: 20px;
362
+ width: auto;
349
363
  flex-flow: row nowrap;
350
364
  align-items: center;
351
365
  justify-content: flex-end;
352
- width: 0;
353
366
  transition: all 0.24s cubic-bezier(0.14, 0.69, 0.87, 0.54);
367
+ z-index: 1000;
354
368
  }
355
-
356
- .extra:hover .buttons-container .menu-container .btn {
357
- animation: slideIn 0.24s ease-in forwards;
358
- pointer-events: none;
359
- display: unset !important;
360
- }
361
-
362
- .extra.forced:hover .buttons-container .menu-container .btn {
363
- animation: none;
364
- pointer-events: all;
365
- }
366
-
367
- .extra.forced .buttons-container .btn {
368
- opacity: 1 !important;
369
- display: unset !important;
370
- }
371
-
372
- .extra .buttons-container .btn.forced {
373
- opacity: 1 !important;
374
- display: unset !important;
375
- }
376
-
377
- .extra.forced .info, .extra .info.hidden {
378
- opacity: 0 !important;
379
- z-index: 0 !important;
380
- }
381
-
382
369
  .extra .buttons-container .btn {
383
370
  border: none;
384
371
  background: transparent;
@@ -388,32 +375,44 @@ h3 {
388
375
  opacity: 0;
389
376
  cursor: pointer;
390
377
  height: 20px;
391
- width: 10px;
392
378
  margin-left: 4px;
393
379
  margin-right: 4px;
394
380
  padding: 0;
395
381
  }
396
-
397
- .extra .buttons-container .menu-container:last-child .btn {
398
- margin-right: 0;
382
+ .extra .buttons-container .btn svg {
383
+ width: 15px;
384
+ height: 15px;
399
385
  }
400
-
401
386
  .extra .buttons-container .btn svg path {
402
387
  fill: #809ab4;
403
388
  }
404
-
389
+ .extra .buttons-container .btn.forced {
390
+ opacity: 1 !important;
391
+ display: unset !important;
392
+ }
405
393
  .extra .buttons-container .btn.forced svg path {
406
394
  fill: crimson !important;
407
395
  }
408
-
396
+ .extra .buttons-container .btn:focus, .extra .buttons-container .btn:focus-within {
397
+ border: none;
398
+ outline: none;
399
+ }
409
400
  .extra .buttons-container .btn:hover svg path {
410
401
  fill: #274768;
411
402
  }
412
-
403
+ .extra .buttons-container .menu-container .btn:hover::before {
404
+ content: "";
405
+ display: block;
406
+ border-color: #274768 transparent transparent transparent;
407
+ border-style: solid;
408
+ border-width: 4px;
409
+ position: absolute;
410
+ top: -6px;
411
+ }
413
412
  .extra .buttons-container .menu-container .btn:hover::after {
414
413
  content: attr(data-content);
415
414
  position: absolute;
416
- top: -22px;
415
+ top: -21px;
417
416
  height: 16px;
418
417
  left: 50%;
419
418
  transform: translateX(-50%);
@@ -429,21 +428,8 @@ h3 {
429
428
  font-size: 12px;
430
429
  line-height: 0;
431
430
  }
432
-
433
- .extra .buttons-container .btn:focus,
434
- .extra .buttons-container .btn:focus-within {
435
- border: none;
436
- outline: none;
437
- }
438
-
439
- .extra .buttons-container .menu-container .btn:hover::before {
440
- content: "";
441
- display: block;
442
- border-color: #274768 transparent transparent transparent;
443
- border-style: solid;
444
- border-width: 4px;
445
- position: absolute;
446
- top: -6px;
431
+ .extra .buttons-container .menu-container:last-child .btn {
432
+ margin-right: 0;
447
433
  }
448
434
 
449
435
  @keyframes slideIn {
@@ -463,15 +449,47 @@ h3 {
463
449
  align-items: center;
464
450
  height: fit-content;
465
451
  }
452
+ .menu-container .item {
453
+ height: 30px;
454
+ width: 100%;
455
+ background: transparent;
456
+ border-radius: 4px;
457
+ font-size: 14px;
458
+ color: #274768;
459
+ display: flex;
460
+ flex-flow: row nowrap;
461
+ align-items: center;
462
+ justify-content: flex-start;
463
+ box-shadow: none;
464
+ border: none;
465
+ white-space: nowrap;
466
+ overflow-x: hidden;
467
+ text-overflow: ellipsis;
468
+ }
469
+ .menu-container .item.existing {
470
+ background-color: #BFE8EA;
471
+ }
472
+ .menu-container .item.selected {
473
+ color: white;
474
+ background-color: #084B83;
475
+ }
476
+ .menu-container .item:hover {
477
+ background: #DCE7F2;
478
+ color: #274768;
479
+ font-weight: 500;
480
+ border-radius: 4px;
481
+ }
466
482
 
467
483
  .value-date-menu {
468
484
  width: unset !important;
469
485
  }
470
486
 
471
487
  .menu {
472
- display: block;
488
+ display: flex;
489
+ flex-direction: column;
490
+ gap: 2px;
473
491
  position: absolute;
474
- top: 20px;
492
+ top: 32px;
475
493
  right: -12px;
476
494
  z-index: 2;
477
495
  background: #fff;
@@ -513,56 +531,27 @@ h3 {
513
531
  }
514
532
 
515
533
  .menu-trigger:focus .menu {
516
- display: block;
517
- }
518
-
519
- .menu-container .item {
520
- height: 22px;
521
- width: 100%;
522
- background: transparent;
523
- border-radius: 4px;
524
- font-size: 14px;
525
- color: #274768;
526
534
  display: flex;
527
- flex-flow: row nowrap;
528
- align-items: center;
529
- justify-content: flex-start;
530
- box-shadow: none;
531
- border: none;
532
- white-space: nowrap;
533
- overflow-x: hidden;
534
- text-overflow: ellipsis;
535
- }
536
-
537
- .menu-container .item:hover {
538
- background: #f5f9fd;
539
- font-weight: 500;
540
- border-radius: 4px;
541
535
  }
542
536
 
543
537
  span {
544
538
  position: relative;
545
539
  z-index: 1;
546
540
  }
547
-
548
541
  span.date {
549
542
  margin-right: 1px;
550
543
  }
551
-
552
544
  span.time {
553
545
  margin-left: 1px;
554
546
  }
555
-
556
547
  span.measure {
557
548
  display: inline-block;
558
549
  margin-right: 1px;
559
550
  }
560
-
561
551
  span.unit {
562
552
  margin-left: 1px;
563
553
  display: inline-block;
564
554
  }
565
-
566
555
  span[data-content]:hover::after {
567
556
  position: absolute;
568
557
  content: attr(data-content);
@@ -574,7 +563,6 @@ span[data-content]:hover::after {
574
563
  left: 0px;
575
564
  padding: 0px 2px;
576
565
  }
577
-
578
566
  span[data-content]::before {
579
567
  position: absolute;
580
568
  content: "";
@@ -606,7 +594,6 @@ span[data-content]::before {
606
594
  cursor: pointer;
607
595
  border-radius: 0 2px 2px 0;
608
596
  }
609
-
610
597
  .companion:hover {
611
598
  font-weight: 700;
612
599
  background: hsl(202, 100%, 50%);
@@ -629,14 +616,19 @@ span[data-content]::before {
629
616
  background: white;
630
617
  box-shadow: 0 1.1px 1.1px rgba(0, 0, 0, 0.022), 0 2.7px 2.7px rgba(0, 0, 0, 0.032), 0 5px 5px rgba(0, 0, 0, 0.04), 0 8.9px 8.9px rgba(0, 0, 0, 0.048), 0 16.7px 16.7px rgba(0, 0, 0, 0.058), 0 40px 40px rgba(0, 0, 0, 0.08);
631
618
  }
632
-
633
619
  .suggestion-palette ul {
634
620
  white-space: nowrap;
635
621
  list-style-type: none;
636
622
  margin: 0;
637
623
  padding: 0;
638
624
  }
639
-
625
+ .suggestion-palette ul li:not(:first-child) svg.tab-icn,
626
+ .suggestion-palette ul li:not(.focused) svg.return-icn, .suggestion-palette ul.focused li:first-child svg.tab-icn {
627
+ height: 0;
628
+ width: 0;
629
+ transform: scale(0);
630
+ opacity: 0;
631
+ }
640
632
  .suggestion-palette ul li {
641
633
  padding: 0 8px;
642
634
  font-size: 11px;
@@ -648,6 +640,12 @@ span[data-content]::before {
648
640
  border-radius: 4px;
649
641
  color: rgb(39, 71, 104);
650
642
  }
643
+ .suggestion-palette ul li.focused {
644
+ background-color: rgb(237, 242, 247);
645
+ }
646
+ .suggestion-palette ul li.focused svg.return-icn {
647
+ animation: growIn 0.24s ease-in forwards;
648
+ }
651
649
  .suggestion-palette ul li svg {
652
650
  height: 12px;
653
651
  width: 12px;
@@ -658,23 +656,6 @@ span[data-content]::before {
658
656
  fill: rgb(128, 154, 180);
659
657
  }
660
658
 
661
- .suggestion-palette ul li:not(:first-child) svg.tab-icn,
662
- .suggestion-palette ul li:not(.focused) svg.return-icn,
663
- .suggestion-palette ul.focused li:first-child svg.tab-icn {
664
- height: 0;
665
- width: 0;
666
- transform: scale(0);
667
- opacity: 0;
668
- }
669
-
670
- .suggestion-palette ul li.focused {
671
- background-color: rgb(237, 242, 247);
672
- }
673
-
674
- .suggestion-palette ul li.focused svg.return-icn {
675
- animation: growIn 0.24s ease-in forwards;
676
- }
677
-
678
659
  @keyframes growIn {
679
660
  0% {
680
661
  transform: scale(0.5);
@@ -728,7 +709,7 @@ span.code-count-3::before {
728
709
  flex-direction: column;
729
710
  align-items: flex-start;
730
711
  position: absolute;
731
- top: 30px;
712
+ top: calc(100% + 6px);
732
713
  left: 0;
733
714
  z-index: 2;
734
715
  background: #fff;
@@ -744,15 +725,14 @@ span.code-count-3::before {
744
725
  flex-direction: column;
745
726
  align-items: flex-start;
746
727
  position: absolute;
747
- top: 30px;
748
- right: 0;
728
+ top: calc(100% + 6px);
729
+ left: 0;
749
730
  z-index: 2;
750
731
  background: #fff;
751
732
  box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
752
733
  width: 260px;
753
734
  overflow-y: auto;
754
735
  max-height: 280px;
755
- left: 0px;
756
736
  }
757
737
 
758
738
  app-date-picker {
@@ -783,7 +763,6 @@ app-date-picker {
783
763
  -ms-user-select: none; /* IE 10 and IE 11 */
784
764
  user-select: none; /* Standard syntax */
785
765
  }
786
-
787
766
  .option:hover {
788
767
  color: #656565;
789
768
  background-color: #ededed;
@@ -811,13 +790,6 @@ app-date-picker {
811
790
  position: relative;
812
791
  }
813
792
 
814
- .icure-form {
815
- background-color: rgba(0, 0, 0, 0);
816
- display: grid;
817
- gap: 0 6px;
818
- grid-template-columns: repeat(24, 1fr);
819
- }
820
-
821
793
  .group {
822
794
  align-items: end;
823
795
  display: grid;
@@ -833,6 +805,12 @@ app-date-picker {
833
805
  background-color: #e7f0fd;
834
806
  }
835
807
 
808
+ .icure-form {
809
+ background-color: rgba(0, 0, 0, 0);
810
+ display: grid;
811
+ gap: 16px 6px;
812
+ grid-template-columns: repeat(24, 1fr);
813
+ }
836
814
  .icure-form hr {
837
815
  display: block;
838
816
  margin-top: 20px;
@@ -868,16 +846,22 @@ app-date-picker {
868
846
  }
869
847
 
870
848
  .icure-form-field {
871
- align-items: end;
872
849
  display: grid;
850
+ align-items: flex-start;
873
851
  }
874
852
 
875
853
  .error {
876
854
  color: red;
877
855
  font-size: 12px;
856
+ margin-top: 4px;
878
857
  }
879
858
 
880
- .icure-text-field > .icure-label, .icure-button-group > .icure-label {
859
+ .icure-text-field .icure-label-extra, .icure-button-group .icure-label-extra {
860
+ display: flex;
861
+ width: 100%;
862
+ gap: 12px;
863
+ }
864
+ .icure-text-field .icure-label, .icure-button-group .icure-label {
881
865
  z-index: 1;
882
866
  pointer-events: none;
883
867
  line-height: 1.4em;
@@ -890,9 +874,8 @@ app-date-picker {
890
874
  max-width: 85%;
891
875
  min-width: 0;
892
876
  }
893
- .icure-text-field > .icure-label.float, .icure-button-group > .icure-label.float {
894
- display: inline-block;
895
- height: 1.4em;
877
+ .icure-text-field .icure-label.float, .icure-button-group .icure-label.float {
878
+ display: flex;
896
879
  white-space: nowrap;
897
880
  text-overflow: ellipsis;
898
881
  overflow: hidden;
@@ -901,9 +884,6 @@ app-date-picker {
901
884
  .icure-text-field {
902
885
  position: relative;
903
886
  width: 100%;
904
- flex-direction: row;
905
- justify-content: stretch;
906
- align-items: center;
907
887
  }
908
888
  .icure-text-field > .icure-label {
909
889
  transition: transform 0.2s ease-out, color 0.2s ease-out;
@@ -925,12 +905,14 @@ app-date-picker {
925
905
  }
926
906
  .icure-text-field .icure-input,
927
907
  .icure-text-field .input-container {
928
- border-radius: 2px;
929
- padding: 0 8px;
908
+ padding: 8px;
930
909
  width: 100%;
931
910
  box-sizing: border-box;
932
911
  border-width: 1px;
933
912
  border-style: solid;
913
+ border-color: #DDE3E7;
914
+ border-radius: 2px;
915
+ box-sizing: border-box;
934
916
  outline: 0;
935
917
  font: inherit;
936
918
  font-size: 14px;
@@ -941,9 +923,15 @@ app-date-picker {
941
923
  position: relative;
942
924
  -webkit-appearance: none;
943
925
  background-color: #ffffff;
944
- border-color: red;
945
926
  color: #000000;
946
- box-sizing: border-box;
927
+ }
928
+ .icure-text-field .icure-input__validationError,
929
+ .icure-text-field .input-container__validationError {
930
+ border-color: red;
931
+ }
932
+ .icure-text-field .icure-input__withMetadata,
933
+ .icure-text-field .input-container__withMetadata {
934
+ border-radius: 6px 0 0 6px;
947
935
  }
948
936
  .icure-text-field .icure-input:focus, .icure-text-field .icure-input:focus-within,
949
937
  .icure-text-field .input-container:focus,
@@ -998,13 +986,13 @@ app-date-picker {
998
986
  color: #656565;
999
987
  opacity: 0.5;
1000
988
  }
1001
- .icure-text-field .icure-input .extra .buttons-container .btn svg path,
1002
- .icure-text-field .input-container .extra .buttons-container .btn svg path {
989
+ .icure-text-field .icure-input .extra .btn svg path,
990
+ .icure-text-field .input-container .extra .btn svg path {
1003
991
  fill: #656565;
1004
992
  opacity: 0.5;
1005
993
  }
1006
- .icure-text-field .icure-input .extra .buttons-container .btn svg path:hover,
1007
- .icure-text-field .input-container .extra .buttons-container .btn svg path:hover {
994
+ .icure-text-field .icure-input .extra .btn svg path:hover,
995
+ .icure-text-field .input-container .extra .btn svg path:hover {
1008
996
  fill: #656565;
1009
997
  opacity: 1;
1010
998
  }
@@ -1018,6 +1006,24 @@ input[type=radio] {
1018
1006
  accent-color: #06a070;
1019
1007
  }
1020
1008
 
1009
+ .icure-button {
1010
+ display: flex;
1011
+ height: 32px;
1012
+ padding: 0 16px;
1013
+ background-color: #084B83;
1014
+ color: white;
1015
+ border-radius: 6px;
1016
+ cursor: pointer;
1017
+ }
1018
+ .icure-button:hover {
1019
+ background-color: #3D87C5;
1020
+ }
1021
+
1022
+ .icure-button-group {
1023
+ display: flex;
1024
+ flex-direction: column;
1025
+ gap: 4px;
1026
+ }
1021
1027
  .icure-button-group > div {
1022
1028
  display: grid;
1023
1029
  }
@@ -1111,8 +1117,8 @@ class MetadataButtonBar extends lit_1.LitElement {
1111
1117
  const forcedByValueDate = (discordantMetadata === null || discordantMetadata === void 0 ? void 0 : discordantMetadata.valueDate) !== undefined;
1112
1118
  const forcedByLanguage = this.selectedLanguage && this.defaultLanguage !== this.selectedLanguage;
1113
1119
  const forcedByVersion = this.revision && this.revision !== ((_f = (_e = this.versions) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.revision);
1114
- return (0, lit_1.html) ` <div id="extra" class=${'extra' + (forcedByMenu ? ' forced' : '')}>
1115
- <div class="info ${forcedByOwner || forcedByLanguage || forcedByValueDate ? 'hidden' : ''}">•</div>
1120
+ return (0, lit_1.html) ` <div id="extra" class=${'extra extra--metadataButtonsBar' + (forcedByMenu ? ' forced' : '')}>
1121
+ <div class="info ${forcedByOwner || forcedByLanguage || forcedByValueDate ? 'hidden' : ''}">&#9432</div>
1116
1122
  <div class="buttons-container">
1117
1123
  <div class="menu-container">
1118
1124
  <button
@@ -1124,11 +1130,20 @@ class MetadataButtonBar extends lit_1.LitElement {
1124
1130
  </button>
1125
1131
  ${this.displayOwnersMenu
1126
1132
  ? (0, lit_1.html) `
1127
- <div id="menu" class="menu">
1128
- <div class="input-container">${paths_1.searchPicto} <input id="ownerSearch" @input="${this.searchOwner}" /></div>
1129
- ${(_m = (((_l = this.availableOwners) === null || _l === void 0 ? void 0 : _l.length) ? this.availableOwners : Object.values(this.loadedOwners))) === null || _m === void 0 ? void 0 : _m.map((x) => (0, lit_1.html) `<button @click="${() => this.handleOwnerButtonClicked(x.id)}" id="${x.id}" class="item">${x.text}</button>`)}
1130
- </div>
1131
- `
1133
+ <div id="menu" class="menu">
1134
+ <div class="input-container">${paths_1.searchPicto} <input id="ownerSearch" @input="${this.searchOwner}" /></div>
1135
+ ${(_m = (((_l = this.availableOwners) === null || _l === void 0 ? void 0 : _l.length) ? this.availableOwners : Object.values(this.loadedOwners))) === null || _m === void 0 ? void 0 : _m.map((x) => {
1136
+ var _a, _b, _c;
1137
+ return (0, lit_1.html) ` <button
1138
+ @click="${() => this.handleOwnerButtonClicked(x.id)}"
1139
+ id="${x.id}"
1140
+ class="${((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.owner) && ((_c = this.loadedOwners[(_b = this.metadata) === null || _b === void 0 ? void 0 : _b.owner]) === null || _c === void 0 ? void 0 : _c.text) === x.text ? 'item selected' : 'item'}"
1141
+ >
1142
+ ${x.text}
1143
+ </button>`;
1144
+ })}
1145
+ </div>
1146
+ `
1132
1147
  : ''}
1133
1148
  </div>
1134
1149
  <div class="menu-container">
@@ -1137,20 +1152,20 @@ class MetadataButtonBar extends lit_1.LitElement {
1137
1152
  class="btn date ${forcedByValueDate ? 'forced' : ''}"
1138
1153
  @click="${() => this.toggleValueDateMenu()}"
1139
1154
  >
1140
- ${paths_1.datePicto}
1155
+ ${paths_1.calendarPatientPicto}
1141
1156
  </button>
1142
1157
  ${this.displayValueDateMenu
1143
1158
  ? (0, lit_1.html) `
1144
- <div id="menu" class="menu value-date-menu">
1145
- <app-date-picker
1146
- locale="${(_p = this.defaultLanguage) !== null && _p !== void 0 ? _p : 'en'}"
1147
- style=""
1148
- max="${constants_1.MAX_DATE}"
1149
- min="${(0, to_resolved_date_1.toResolvedDate)('1900-01-01')}"
1150
- @date-updated="${this.dateUpdated}"
1151
- ></app-date-picker>
1152
- </div>
1153
- `
1159
+ <div id="menu" class="menu value-date-menu">
1160
+ <app-date-picker
1161
+ locale="${(_p = this.defaultLanguage) !== null && _p !== void 0 ? _p : 'en'}"
1162
+ style=""
1163
+ max="${constants_1.MAX_DATE}"
1164
+ min="${(0, to_resolved_date_1.toResolvedDate)('1900-01-01')}"
1165
+ @date-updated="${this.dateUpdated}"
1166
+ ></app-date-picker>
1167
+ </div>
1168
+ `
1154
1169
  : ''}
1155
1170
  </div>
1156
1171
  <div class="menu-container">
@@ -1167,13 +1182,13 @@ class MetadataButtonBar extends lit_1.LitElement {
1167
1182
  </button>
1168
1183
  ${this.displayVersionsMenu
1169
1184
  ? (0, lit_1.html) ` <div id="menu" class="menu">
1170
- ${this.versions.map((x) => {
1185
+ ${this.versions.map((x) => {
1171
1186
  var _a;
1172
- return (0, lit_1.html) `<button class="item ${x.revision === this.revision ? 'selected' : ''}" @click="${() => this.handleRevisionButtonClicked(x.revision)}">
1173
- ${x.revision == null ? 'Latest' : (_a = x.revision) !== null && _a !== void 0 ? _a : ''} ${x.modified ? `(${(0, date_fns_1.format)(new Date(x.modified), 'yyyy-MM-dd')})` : ''}
1174
- </button>`;
1187
+ return (0, lit_1.html) ` <button class="item ${x.revision === this.revision ? 'item selected' : ''}" @click="${() => this.handleRevisionButtonClicked(x.revision)}">
1188
+ ${x.revision == null ? 'Latest' : (_a = x.revision) !== null && _a !== void 0 ? _a : ''} ${x.modified ? `(${(0, date_fns_1.format)(new Date(x.modified), 'yyyy-MM-dd')})` : ''}
1189
+ </button>`;
1175
1190
  })}
1176
- </div>`
1191
+ </div>`
1177
1192
  : ''}
1178
1193
  </div>
1179
1194
  <div class="menu-container">
@@ -1186,13 +1201,26 @@ class MetadataButtonBar extends lit_1.LitElement {
1186
1201
  </button>
1187
1202
  ${this.displayLanguagesMenu
1188
1203
  ? (0, lit_1.html) `
1189
- <div id="menu" class="menu">
1190
- <div class="input-container">${paths_1.searchPicto} <input id="languageSearch" @input="${this.searchLanguage}" /></div>
1191
- ${[this.defaultLanguage, ...Object.keys(this.languages).filter((x) => x !== this.defaultLanguage)]
1204
+ <div id="menu" class="menu">
1205
+ <div class="input-container">${paths_1.searchPicto} <input id="languageSearch" @input="${this.searchLanguage}" /></div>
1206
+ ${[this.defaultLanguage, ...Object.keys(this.languages).filter((x) => x !== this.defaultLanguage)]
1192
1207
  .filter((x) => { var _a, _b, _c; return !!x && ((_b = (_a = (0, languages_1.languageName)(x)) !== null && _a !== void 0 ? _a : this.languages[x]) !== null && _b !== void 0 ? _b : x).toLowerCase().includes(((_c = this.languageInputValue) !== null && _c !== void 0 ? _c : '').toLowerCase()); })
1193
- .map((x) => (0, lit_1.html) `<button @click="${() => this.handleLanguageButtonClicked(x)}" id="${x}" class="item">${x ? (0, languages_1.languageName)(x) : ''}</button>`)}
1194
- </div>
1195
- `
1208
+ .map((x) => {
1209
+ var _a;
1210
+ return (0, lit_1.html) ` <button
1211
+ @click="${() => this.handleLanguageButtonClicked(x)}"
1212
+ id="${x}"
1213
+ class="${(x === this.defaultLanguage && !this.selectedLanguage) || x === this.selectedLanguage
1214
+ ? 'item item selected'
1215
+ : ((_a = this.existingLanguages) === null || _a === void 0 ? void 0 : _a.includes(x))
1216
+ ? 'item item existing'
1217
+ : 'item'}"
1218
+ >
1219
+ ${x ? (0, languages_1.languageName)(x) : ''}
1220
+ </button>`;
1221
+ })}
1222
+ </div>
1223
+ `
1196
1224
  : ''}
1197
1225
  </div>
1198
1226
  </div>
@@ -1270,7 +1298,7 @@ class MetadataButtonBar extends lit_1.LitElement {
1270
1298
  }
1271
1299
  toggleVersionsMenu() {
1272
1300
  this.displayVersionsMenu = !this.displayVersionsMenu;
1273
- if (this.displayLanguagesMenu) {
1301
+ if (this.displayVersionsMenu) {
1274
1302
  this.displayOwnersMenu = false;
1275
1303
  this.displayLanguagesMenu = false;
1276
1304
  this.displayValueDateMenu = false;
@@ -1306,6 +1334,10 @@ __decorate([
1306
1334
  (0, decorators_js_1.property)(),
1307
1335
  __metadata("design:type", Object)
1308
1336
  ], MetadataButtonBar.prototype, "languages", void 0);
1337
+ __decorate([
1338
+ (0, decorators_js_1.property)(),
1339
+ __metadata("design:type", Array)
1340
+ ], MetadataButtonBar.prototype, "existingLanguages", void 0);
1309
1341
  __decorate([
1310
1342
  (0, decorators_js_1.property)(),
1311
1343
  __metadata("design:type", Object)