@konfuzio/document-validation-ui 0.1.19-dev.2 → 0.1.19

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 (143) hide show
  1. package/.eslintrc.js +10 -10
  2. package/.prettierrc.json +1 -1
  3. package/LICENSE +21 -21
  4. package/README.md +24 -24
  5. package/cypress.config.js +13 -13
  6. package/dist/js/app.js +1 -1
  7. package/dist/js/app.js.map +1 -1
  8. package/dist/js/chunk-vendors.js +1 -1
  9. package/dist/js/chunk-vendors.js.map +1 -1
  10. package/jest.config.js +4 -4
  11. package/package.json +66 -66
  12. package/src/api.js +82 -82
  13. package/src/assets/images/AcceptedCheckMark.vue +8 -8
  14. package/src/assets/images/AcceptedUser.vue +8 -8
  15. package/src/assets/images/ActionIcon.vue +60 -60
  16. package/src/assets/images/ArrowDownKey.vue +11 -11
  17. package/src/assets/images/ArrowUpKey.vue +11 -11
  18. package/src/assets/images/CategoryIconImg.vue +13 -13
  19. package/src/assets/images/CheckMark.vue +8 -8
  20. package/src/assets/images/DraggableIcon.vue +14 -14
  21. package/src/assets/images/EditDocIcon.vue +12 -12
  22. package/src/assets/images/EmptyStateImg.vue +129 -129
  23. package/src/assets/images/ErrorIcon.vue +28 -28
  24. package/src/assets/images/EyeIcon.vue +11 -11
  25. package/src/assets/images/FileNameNotSavedImage.vue +26 -26
  26. package/src/assets/images/FileNameSavedImage.vue +14 -14
  27. package/src/assets/images/FitZoomIcon.vue +16 -16
  28. package/src/assets/images/GridIcon.vue +16 -16
  29. package/src/assets/images/KeyboardIcon.vue +16 -16
  30. package/src/assets/images/MagicWandIcon.vue +16 -16
  31. package/src/assets/images/MinusIcon.vue +13 -13
  32. package/src/assets/images/NotFoundIcon.vue +16 -16
  33. package/src/assets/images/NotOptimizedIllustration.vue +651 -651
  34. package/src/assets/images/PlusIcon.vue +13 -13
  35. package/src/assets/images/QuestionMark.vue +12 -12
  36. package/src/assets/images/ServerImage.vue +73 -73
  37. package/src/assets/images/SettingsIcon.vue +14 -14
  38. package/src/assets/images/SplitLines.vue +18 -18
  39. package/src/assets/images/SplitZigZag.vue +49 -49
  40. package/src/assets/images/StarIcon.vue +16 -16
  41. package/src/assets/images/StatusImg.vue +14 -14
  42. package/src/assets/images/TranslateArrows.vue +33 -33
  43. package/src/assets/scss/ann_set_table_options.scss +26 -26
  44. package/src/assets/scss/annotation_details.scss +141 -141
  45. package/src/assets/scss/choose_label_set_modal.scss +65 -65
  46. package/src/assets/scss/document_action_bar.scss +37 -37
  47. package/src/assets/scss/document_annotations.scss +558 -558
  48. package/src/assets/scss/document_category.scss +85 -85
  49. package/src/assets/scss/document_dashboard.scss +52 -52
  50. package/src/assets/scss/document_edit.scss +410 -410
  51. package/src/assets/scss/document_error.scss +81 -81
  52. package/src/assets/scss/document_name.scss +60 -60
  53. package/src/assets/scss/document_page.scss +12 -12
  54. package/src/assets/scss/document_thumbnails.scss +41 -41
  55. package/src/assets/scss/document_toolbar.scss +111 -111
  56. package/src/assets/scss/document_top_bar.scss +171 -171
  57. package/src/assets/scss/document_viewport_modal.scss +25 -25
  58. package/src/assets/scss/documents_list.scss +141 -141
  59. package/src/assets/scss/edit_page_thumbnail.scss +53 -53
  60. package/src/assets/scss/empty_state.scss +34 -34
  61. package/src/assets/scss/extracting_data.scss +35 -35
  62. package/src/assets/scss/imports.scss +1 -1
  63. package/src/assets/scss/multi_ann_table_overlay.scss +38 -38
  64. package/src/assets/scss/multi_ann_table_popup.scss +12 -12
  65. package/src/assets/scss/new_annotation.scss +102 -102
  66. package/src/assets/scss/scrolling_document.scss +19 -19
  67. package/src/assets/scss/theme.scss +801 -801
  68. package/src/assets/scss/variables.scss +66 -66
  69. package/src/components/App.cy.js +7 -7
  70. package/src/components/App.vue +187 -187
  71. package/src/components/DocumentAnnotations/AnnotationActionButtons.vue +152 -152
  72. package/src/components/DocumentAnnotations/AnnotationContent.vue +210 -210
  73. package/src/components/DocumentAnnotations/AnnotationDetails.vue +251 -251
  74. package/src/components/DocumentAnnotations/AnnotationRow.vue +752 -752
  75. package/src/components/DocumentAnnotations/AnnotationSetActionButtons.vue +89 -89
  76. package/src/components/DocumentAnnotations/ChooseLabelSetModal.vue +186 -186
  77. package/src/components/DocumentAnnotations/DocumentAnnotations.cy.js +441 -441
  78. package/src/components/DocumentAnnotations/DocumentAnnotations.vue +534 -534
  79. package/src/components/DocumentAnnotations/DocumentLabel.vue +189 -189
  80. package/src/components/DocumentAnnotations/EmptyAnnotation.vue +193 -193
  81. package/src/components/DocumentAnnotations/EmptyState.vue +21 -21
  82. package/src/components/DocumentAnnotations/ExtractingData.vue +41 -41
  83. package/src/components/DocumentAnnotations/LoadingAnnotations.vue +43 -43
  84. package/src/components/DocumentAnnotations/LoadingLabels.vue +43 -43
  85. package/src/components/DocumentAnnotations/MultiAnnotationTableOverlay.vue +338 -338
  86. package/src/components/DocumentAnnotations/index.js +8 -8
  87. package/src/components/DocumentCategory.vue +281 -281
  88. package/src/components/DocumentDashboard.vue +170 -170
  89. package/src/components/DocumentEdit/DocumentEdit.cy.js +541 -541
  90. package/src/components/DocumentEdit/DocumentEdit.vue +503 -503
  91. package/src/components/DocumentEdit/EditConfirmationModal.vue +55 -55
  92. package/src/components/DocumentEdit/EditPageThumbnail.vue +114 -114
  93. package/src/components/DocumentEdit/EditPages.vue +161 -161
  94. package/src/components/DocumentEdit/EditSidebar.vue +154 -154
  95. package/src/components/DocumentEdit/RenameAndCategorize.vue +184 -184
  96. package/src/components/DocumentEdit/SidebarButtons.vue +53 -53
  97. package/src/components/DocumentEdit/SplitInfoBar.vue +21 -21
  98. package/src/components/DocumentEdit/index.js +4 -4
  99. package/src/components/DocumentModals/DocumentErrorModal.vue +58 -58
  100. package/src/components/DocumentModals/NotOptimizedViewportModal.vue +51 -51
  101. package/src/components/DocumentPage/ActionBar.vue +48 -48
  102. package/src/components/DocumentPage/AnnSetTableOptions.vue +111 -111
  103. package/src/components/DocumentPage/BoxSelection.vue +152 -152
  104. package/src/components/DocumentPage/DocumentPage.cy.js +92 -92
  105. package/src/components/DocumentPage/DocumentPage.vue +568 -568
  106. package/src/components/DocumentPage/DocumentToolbar.cy.js +215 -215
  107. package/src/components/DocumentPage/DocumentToolbar.vue +228 -228
  108. package/src/components/DocumentPage/DummyPage.vue +55 -55
  109. package/src/components/DocumentPage/MultiAnnSelection.vue +371 -371
  110. package/src/components/DocumentPage/NewAnnotation.vue +308 -308
  111. package/src/components/DocumentPage/ScrollingDocument.vue +149 -149
  112. package/src/components/DocumentPage/ScrollingPage.vue +179 -179
  113. package/src/components/DocumentPage/index.js +5 -5
  114. package/src/components/DocumentThumbnails/DocumentThumbnails.cy.js +67 -67
  115. package/src/components/DocumentThumbnails/DocumentThumbnails.vue +132 -132
  116. package/src/components/DocumentThumbnails/LoadingThumbnail.vue +25 -25
  117. package/src/components/DocumentThumbnails/index.js +1 -1
  118. package/src/components/DocumentTopBar/DocumentName.vue +236 -236
  119. package/src/components/DocumentTopBar/DocumentTopBar.cy.js +222 -222
  120. package/src/components/DocumentTopBar/DocumentTopBar.vue +202 -202
  121. package/src/components/DocumentTopBar/DocumentTopBarButtons.vue +183 -183
  122. package/src/components/DocumentTopBar/KeyboardActionsDescription.vue +74 -74
  123. package/src/components/DocumentTopBar/index.js +3 -3
  124. package/src/components/DocumentsList/DocumentsList.vue +121 -121
  125. package/src/components/DocumentsList/index.js +1 -1
  126. package/src/components/ErrorMessage.vue +40 -40
  127. package/src/components/index.js +1 -1
  128. package/src/constants.js +5 -5
  129. package/src/directives/scroll.js +28 -28
  130. package/src/i18n.js +22 -22
  131. package/src/icons.js +45 -45
  132. package/src/locales/de.json +148 -148
  133. package/src/locales/en.json +148 -148
  134. package/src/main.js +26 -26
  135. package/src/store/category.js +191 -191
  136. package/src/store/display.js +311 -311
  137. package/src/store/document.js +1438 -1438
  138. package/src/store/edit.js +316 -316
  139. package/src/store/index.js +21 -21
  140. package/src/store/project.js +143 -143
  141. package/src/store/selection.js +210 -210
  142. package/src/utils/utils.js +54 -54
  143. package/vue.config.js +25 -25
@@ -1,558 +1,558 @@
1
- @import "./imports.scss";
2
-
3
- #document-annotations {
4
- font-family: $font-family;
5
- flex: 1;
6
- background-color: $background;
7
- position: relative;
8
- display: flex;
9
- flex-direction: column;
10
-
11
- &.disabled {
12
- pointer-events: none;
13
- }
14
-
15
- .annotations-skeleton {
16
- .label-set-name-skeleton {
17
- margin: 24px 16px 8px 16px;
18
- }
19
-
20
- .label-properties-skeleton {
21
- padding-left: 16px;
22
- padding-right: 16px;
23
- padding-bottom: 8px;
24
- width: 100%;
25
- box-shadow: 0px 1px 0px $grey-lightest;
26
- display: flex;
27
- align-items: center;
28
-
29
- .loading-left {
30
- display: flex;
31
- width: 80%;
32
- align-items: center;
33
- gap: 10px;
34
-
35
- .label-skeleton {
36
- padding-top: 1px;
37
- width: 100%;
38
- }
39
- }
40
-
41
- .loading-right {
42
- width: 100%;
43
- }
44
- }
45
- }
46
-
47
- .annotation-set-list {
48
- padding-bottom: 16px;
49
- overflow: auto;
50
- max-height: 100%;
51
-
52
- .annotation-set-group {
53
- .label-set-header {
54
- display: flex;
55
- align-items: center;
56
- justify-content: space-between;
57
- height: 32px;
58
- margin: 24px 16px 8px 16px;
59
-
60
- &:hover {
61
- background-color: $background;
62
- }
63
-
64
- .label-set-name {
65
- font-weight: 600;
66
- font-size: 14px;
67
- line-height: 20px;
68
- color: $text;
69
- }
70
- }
71
-
72
- .ann-set-table {
73
- display: flex;
74
- align-items: center;
75
- width: fit-content;
76
- cursor: pointer;
77
- &:not(:last-child) {
78
- padding-bottom: 12px;
79
- }
80
-
81
- .ann-set-table-icon {
82
- padding: 4px 8px;
83
- border-radius: 32px;
84
- margin-left: 14px;
85
- background: $purple-low-opacity;
86
- display: flex;
87
- width: fit-content;
88
- align-items: center;
89
- .ann-set-number {
90
- font-weight: 400;
91
- font-size: 14px;
92
- line-height: 20px;
93
- margin-left: 4px;
94
- }
95
- }
96
- .ann-set-table-label-set-name {
97
- margin-left: 8px;
98
- font-size: 14px;
99
- line-height: 20px;
100
- }
101
- }
102
-
103
- .labels {
104
- .label {
105
- .label-group {
106
- display: flex;
107
- flex-direction: row;
108
- justify-content: space-between;
109
- align-items: center;
110
- border-bottom: 1px solid $grey-lightest;
111
- min-height: 44px;
112
- cursor: pointer;
113
-
114
- .label-group-left {
115
- display: flex;
116
- flex-direction: row;
117
- padding-left: 28px;
118
- color: $text-lighter;
119
- align-items: center;
120
-
121
- .label-name {
122
- padding-left: 20px;
123
- }
124
- }
125
-
126
- .label-group-right {
127
- display: flex;
128
- flex-direction: row;
129
- font-weight: 400;
130
- font-size: 14px;
131
- line-height: 20px;
132
- padding-right: 16px;
133
- cursor: default;
134
-
135
- .label-annotations-pending {
136
- padding: 0px 8px;
137
- border-radius: 20px;
138
- background: $grey-lighter-low-opacity;
139
- color: $text-lighter;
140
- margin-right: 4px;
141
- }
142
-
143
- .label-annotations-accepted {
144
- padding: 0px 8px;
145
- border-radius: 20px;
146
- background: $green-low-opacity;
147
- color: $green;
148
- }
149
- }
150
- }
151
-
152
- .label-group-annotation-list {
153
- background-color: $grey-hover;
154
-
155
- .annotation-row {
156
- padding-left: 16px;
157
- }
158
- }
159
-
160
- .label-name {
161
- color: $text-lighter;
162
- word-break: break-word;
163
- font-size: 14px;
164
- line-height: 20px;
165
- font-weight: 400;
166
- }
167
-
168
- .annotation-row {
169
- width: 100%;
170
- border-bottom: 1px solid $grey-lightest;
171
- transition: background-color 0.2s ease-out;
172
- display: flex;
173
- align-items: center;
174
- padding-right: 5px;
175
-
176
- &.clickable-cursor {
177
- cursor: pointer;
178
- }
179
-
180
- .annotation-row-left {
181
- flex: 1;
182
- padding-left: 8px;
183
- display: flex;
184
- align-items: center;
185
-
186
- .annotation-icon {
187
- height: 40px;
188
- padding: 0 15px;
189
- }
190
-
191
- .label-name {
192
- padding: 10px 0;
193
- padding-right: 4px;
194
- }
195
-
196
- .annotation-translation {
197
- display: flex;
198
- padding-left: 20px;
199
-
200
- &.pointer {
201
- cursor: pointer;
202
- }
203
-
204
- .icon {
205
- display: flex;
206
- }
207
-
208
- .translation-details {
209
- display: flex;
210
- flex-direction: column;
211
- gap: 8px;
212
- min-width: 216px;
213
- text-align: left;
214
- border-bottom: 1px solid $low-opacity-white;
215
- padding-bottom: 8px;
216
- word-wrap: break-all;
217
- white-space: normal;
218
-
219
- .translation-title {
220
- color: $white;
221
- font-weight: 400;
222
- font-size: 12px;
223
- line-height: 18px;
224
- display: flex;
225
- flex-direction: row;
226
- justify-content: space-between;
227
- .translated-string {
228
- font-weight: 500;
229
- text-align: right;
230
- &.no-translation {
231
- color: $red;
232
- font-weight: 400;
233
- }
234
- }
235
- }
236
- }
237
- .translation-info {
238
- padding-top: 8px;
239
- line-height: 18px;
240
- font-size: 12px;
241
- opacity: 0.7;
242
- color: $white;
243
- font-weight: 400;
244
- }
245
- }
246
- }
247
-
248
- .annotation-row-right {
249
- width: 60%;
250
- display: flex;
251
- align-items: center;
252
-
253
- .notification {
254
- background-color: transparent;
255
- }
256
-
257
- .annotation-content {
258
- width: 100%;
259
- font-size: 14px;
260
- line-height: 20px;
261
- font-weight: 400;
262
-
263
- .annotation,
264
- .empty-annotation {
265
- min-height: 36px;
266
- display: flex;
267
- align-items: center;
268
- }
269
-
270
- .loading-container {
271
- height: 20px;
272
- display: flex;
273
- align-items: center;
274
-
275
- .loading-icon-size {
276
- width: 13px;
277
- height: 13px;
278
- }
279
- }
280
-
281
- .spinner {
282
- color: $grey;
283
- }
284
- }
285
-
286
- .buttons-container {
287
- display: flex;
288
- gap: 8px;
289
- }
290
-
291
- .annotation-value {
292
- display: inline-block;
293
- color: $text;
294
- padding: 0 8px;
295
- border: none;
296
- background-color: transparent;
297
- inline-size: 100%;
298
- overflow-wrap: break-word;
299
- word-break: break-all;
300
-
301
- &:focus {
302
- outline: none;
303
- }
304
-
305
- &.label-empty {
306
- font-weight: 500;
307
- font-size: 14px;
308
- color: $primary;
309
-
310
- &.clicked-ann {
311
- font-weight: 400;
312
- color: $text-lighter;
313
- }
314
- }
315
- }
316
- }
317
-
318
- .empty-annotation {
319
- display: flex;
320
- width: 100%;
321
- justify-content: space-between;
322
- }
323
-
324
- &:hover,
325
- &.selected {
326
- background-color: $grey-lightest;
327
- }
328
-
329
- &.hovered-empty-labels {
330
- background-color: $grey-lightest;
331
- border-bottom-color: $grey-detail;
332
- }
333
-
334
- &.hovered-pending-annotations {
335
- position: relative;
336
- border-bottom-color: $primary;
337
-
338
- &:before {
339
- display: block;
340
- content: "";
341
- width: 100%;
342
- height: 100%;
343
- background: $primary;
344
- opacity: 0.1;
345
- position: absolute;
346
- top: 0;
347
- left: 0;
348
- }
349
- }
350
-
351
- &.editing {
352
- background-color: $background;
353
- border-bottom: 1px solid $primary;
354
- }
355
-
356
- .not-found-text {
357
- color: $grey;
358
- opacity: 0.3;
359
- }
360
-
361
- .saving-changes {
362
- color: $grey;
363
- }
364
-
365
- .error-editing {
366
- color: $red;
367
- animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
368
- transform: translate3d(0, 0, 0);
369
- }
370
-
371
- @keyframes shake {
372
- 10%,
373
- 90% {
374
- transform: translate3d(-1px, 0, 0);
375
- }
376
-
377
- 20%,
378
- 80% {
379
- transform: translate3d(2px, 0, 0);
380
- }
381
-
382
- 30%,
383
- 50%,
384
- 70% {
385
- transform: translate3d(-4px, 0, 0);
386
- }
387
-
388
- 40%,
389
- 60% {
390
- transform: translate3d(4px, 0, 0);
391
- }
392
- }
393
- }
394
- }
395
- }
396
-
397
- .no-labels {
398
- display: flex;
399
- gap: 5px;
400
- padding-left: 28px;
401
- color: $text-lighter;
402
- font-size: 14px;
403
- line-height: 20px;
404
- min-height: 44px;
405
-
406
- a {
407
- color: $white;
408
- text-decoration: underline;
409
- font-weight: 500;
410
- }
411
- }
412
- }
413
- }
414
-
415
- .action-buttons {
416
- display: flex;
417
- gap: 6px;
418
-
419
- button {
420
- height: 32px;
421
-
422
- &.annotation-save-btn {
423
- cursor: pointer;
424
- padding: 6px 14px 6px 14px;
425
- border-radius: 8px;
426
- font-weight: 500;
427
- font-size: 14px;
428
- line-height: 20px;
429
- width: auto;
430
- }
431
-
432
- &.annotation-cancel-btn {
433
- padding-top: 8px !important;
434
- border: none !important;
435
- background-color: transparent !important;
436
- width: 32px;
437
- }
438
-
439
- &.accept-all-btn,
440
- &.restore-btn {
441
- color: $primary !important;
442
- font-size: 14px !important;
443
- font-weight: 500;
444
- background-color: transparent !important;
445
- width: auto;
446
-
447
- &:hover {
448
- text-decoration: none !important;
449
- color: $primary !important;
450
- filter: $hover-style;
451
- }
452
-
453
- &:focus {
454
- box-shadow: none !important;
455
- }
456
- }
457
-
458
- &.finish-review-btn {
459
- height: 40px;
460
-
461
- .icon:last-child:not(:first-child) {
462
- margin: 0;
463
- }
464
- }
465
-
466
- &.text-btn {
467
- border-radius: 8px;
468
- font-weight: 500;
469
- font-size: 14px;
470
- line-height: 20px;
471
- }
472
-
473
- &.annotation-save-btn {
474
- padding: 6px 14px 6px 14px;
475
- }
476
-
477
- &.annotation-cancel-btn {
478
- border: none !important;
479
- background-color: transparent !important;
480
- width: 32px;
481
- }
482
- }
483
-
484
- .accept-decline-container {
485
- padding-right: 14px;
486
- display: flex;
487
- flex-direction: row;
488
- justify-content: center;
489
- button {
490
- padding: 6px;
491
-
492
- .decline-icon {
493
- height: 24px;
494
- width: 24px;
495
- padding: 6px;
496
- color: $red;
497
- vertical-align: middle;
498
- }
499
-
500
- svg {
501
- vertical-align: middle;
502
- height: 24px;
503
- }
504
- }
505
- }
506
-
507
- .missing-button-container {
508
- background-color: transparent;
509
-
510
- .missing-btn {
511
- color: $grey-blue !important;
512
- font-size: 14px !important;
513
- font-weight: 500;
514
- background-color: transparent !important;
515
- width: auto;
516
-
517
- &:hover {
518
- text-decoration: none !important;
519
- color: $text-color !important;
520
- }
521
-
522
- &:focus {
523
- box-shadow: none !important;
524
- }
525
- }
526
- }
527
- }
528
- }
529
-
530
- .annotation-row {
531
- display: flex;
532
- align-items: center;
533
- .annotation-icon {
534
- display: flex;
535
- }
536
- .annotation-value {
537
- outline: none;
538
- }
539
- }
540
-
541
- .message {
542
- .message-container {
543
- display: flex;
544
- flex: 1;
545
- align-items: center;
546
- justify-content: space-between;
547
- gap: 15px;
548
- font-size: 14px !important;
549
- }
550
-
551
- .btn-container {
552
- display: flex;
553
- }
554
- }
555
-
556
- .hidden {
557
- display: none !important;
558
- }
1
+ @import "./imports.scss";
2
+
3
+ #document-annotations {
4
+ font-family: $font-family;
5
+ flex: 1;
6
+ background-color: $background;
7
+ position: relative;
8
+ display: flex;
9
+ flex-direction: column;
10
+
11
+ &.disabled {
12
+ pointer-events: none;
13
+ }
14
+
15
+ .annotations-skeleton {
16
+ .label-set-name-skeleton {
17
+ margin: 24px 16px 8px 16px;
18
+ }
19
+
20
+ .label-properties-skeleton {
21
+ padding-left: 16px;
22
+ padding-right: 16px;
23
+ padding-bottom: 8px;
24
+ width: 100%;
25
+ box-shadow: 0px 1px 0px $grey-lightest;
26
+ display: flex;
27
+ align-items: center;
28
+
29
+ .loading-left {
30
+ display: flex;
31
+ width: 80%;
32
+ align-items: center;
33
+ gap: 10px;
34
+
35
+ .label-skeleton {
36
+ padding-top: 1px;
37
+ width: 100%;
38
+ }
39
+ }
40
+
41
+ .loading-right {
42
+ width: 100%;
43
+ }
44
+ }
45
+ }
46
+
47
+ .annotation-set-list {
48
+ padding-bottom: 16px;
49
+ overflow: auto;
50
+ max-height: 100%;
51
+
52
+ .annotation-set-group {
53
+ .label-set-header {
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: space-between;
57
+ height: 32px;
58
+ margin: 24px 16px 8px 16px;
59
+
60
+ &:hover {
61
+ background-color: $background;
62
+ }
63
+
64
+ .label-set-name {
65
+ font-weight: 600;
66
+ font-size: 14px;
67
+ line-height: 20px;
68
+ color: $text;
69
+ }
70
+ }
71
+
72
+ .ann-set-table {
73
+ display: flex;
74
+ align-items: center;
75
+ width: fit-content;
76
+ cursor: pointer;
77
+ &:not(:last-child) {
78
+ padding-bottom: 12px;
79
+ }
80
+
81
+ .ann-set-table-icon {
82
+ padding: 4px 8px;
83
+ border-radius: 32px;
84
+ margin-left: 14px;
85
+ background: $purple-low-opacity;
86
+ display: flex;
87
+ width: fit-content;
88
+ align-items: center;
89
+ .ann-set-number {
90
+ font-weight: 400;
91
+ font-size: 14px;
92
+ line-height: 20px;
93
+ margin-left: 4px;
94
+ }
95
+ }
96
+ .ann-set-table-label-set-name {
97
+ margin-left: 8px;
98
+ font-size: 14px;
99
+ line-height: 20px;
100
+ }
101
+ }
102
+
103
+ .labels {
104
+ .label {
105
+ .label-group {
106
+ display: flex;
107
+ flex-direction: row;
108
+ justify-content: space-between;
109
+ align-items: center;
110
+ border-bottom: 1px solid $grey-lightest;
111
+ min-height: 44px;
112
+ cursor: pointer;
113
+
114
+ .label-group-left {
115
+ display: flex;
116
+ flex-direction: row;
117
+ padding-left: 28px;
118
+ color: $text-lighter;
119
+ align-items: center;
120
+
121
+ .label-name {
122
+ padding-left: 20px;
123
+ }
124
+ }
125
+
126
+ .label-group-right {
127
+ display: flex;
128
+ flex-direction: row;
129
+ font-weight: 400;
130
+ font-size: 14px;
131
+ line-height: 20px;
132
+ padding-right: 16px;
133
+ cursor: default;
134
+
135
+ .label-annotations-pending {
136
+ padding: 0px 8px;
137
+ border-radius: 20px;
138
+ background: $grey-lighter-low-opacity;
139
+ color: $text-lighter;
140
+ margin-right: 4px;
141
+ }
142
+
143
+ .label-annotations-accepted {
144
+ padding: 0px 8px;
145
+ border-radius: 20px;
146
+ background: $green-low-opacity;
147
+ color: $green;
148
+ }
149
+ }
150
+ }
151
+
152
+ .label-group-annotation-list {
153
+ background-color: $grey-hover;
154
+
155
+ .annotation-row {
156
+ padding-left: 16px;
157
+ }
158
+ }
159
+
160
+ .label-name {
161
+ color: $text-lighter;
162
+ word-break: break-word;
163
+ font-size: 14px;
164
+ line-height: 20px;
165
+ font-weight: 400;
166
+ }
167
+
168
+ .annotation-row {
169
+ width: 100%;
170
+ border-bottom: 1px solid $grey-lightest;
171
+ transition: background-color 0.2s ease-out;
172
+ display: flex;
173
+ align-items: center;
174
+ padding-right: 5px;
175
+
176
+ &.clickable-cursor {
177
+ cursor: pointer;
178
+ }
179
+
180
+ .annotation-row-left {
181
+ flex: 1;
182
+ padding-left: 8px;
183
+ display: flex;
184
+ align-items: center;
185
+
186
+ .annotation-icon {
187
+ height: 40px;
188
+ padding: 0 15px;
189
+ }
190
+
191
+ .label-name {
192
+ padding: 10px 0;
193
+ padding-right: 4px;
194
+ }
195
+
196
+ .annotation-translation {
197
+ display: flex;
198
+ padding-left: 20px;
199
+
200
+ &.pointer {
201
+ cursor: pointer;
202
+ }
203
+
204
+ .icon {
205
+ display: flex;
206
+ }
207
+
208
+ .translation-details {
209
+ display: flex;
210
+ flex-direction: column;
211
+ gap: 8px;
212
+ min-width: 216px;
213
+ text-align: left;
214
+ border-bottom: 1px solid $low-opacity-white;
215
+ padding-bottom: 8px;
216
+ word-wrap: break-all;
217
+ white-space: normal;
218
+
219
+ .translation-title {
220
+ color: $white;
221
+ font-weight: 400;
222
+ font-size: 12px;
223
+ line-height: 18px;
224
+ display: flex;
225
+ flex-direction: row;
226
+ justify-content: space-between;
227
+ .translated-string {
228
+ font-weight: 500;
229
+ text-align: right;
230
+ &.no-translation {
231
+ color: $red;
232
+ font-weight: 400;
233
+ }
234
+ }
235
+ }
236
+ }
237
+ .translation-info {
238
+ padding-top: 8px;
239
+ line-height: 18px;
240
+ font-size: 12px;
241
+ opacity: 0.7;
242
+ color: $white;
243
+ font-weight: 400;
244
+ }
245
+ }
246
+ }
247
+
248
+ .annotation-row-right {
249
+ width: 60%;
250
+ display: flex;
251
+ align-items: center;
252
+
253
+ .notification {
254
+ background-color: transparent;
255
+ }
256
+
257
+ .annotation-content {
258
+ width: 100%;
259
+ font-size: 14px;
260
+ line-height: 20px;
261
+ font-weight: 400;
262
+
263
+ .annotation,
264
+ .empty-annotation {
265
+ min-height: 36px;
266
+ display: flex;
267
+ align-items: center;
268
+ }
269
+
270
+ .loading-container {
271
+ height: 20px;
272
+ display: flex;
273
+ align-items: center;
274
+
275
+ .loading-icon-size {
276
+ width: 13px;
277
+ height: 13px;
278
+ }
279
+ }
280
+
281
+ .spinner {
282
+ color: $grey;
283
+ }
284
+ }
285
+
286
+ .buttons-container {
287
+ display: flex;
288
+ gap: 8px;
289
+ }
290
+
291
+ .annotation-value {
292
+ display: inline-block;
293
+ color: $text;
294
+ padding: 0 8px;
295
+ border: none;
296
+ background-color: transparent;
297
+ inline-size: 100%;
298
+ overflow-wrap: break-word;
299
+ word-break: break-all;
300
+
301
+ &:focus {
302
+ outline: none;
303
+ }
304
+
305
+ &.label-empty {
306
+ font-weight: 500;
307
+ font-size: 14px;
308
+ color: $primary;
309
+
310
+ &.clicked-ann {
311
+ font-weight: 400;
312
+ color: $text-lighter;
313
+ }
314
+ }
315
+ }
316
+ }
317
+
318
+ .empty-annotation {
319
+ display: flex;
320
+ width: 100%;
321
+ justify-content: space-between;
322
+ }
323
+
324
+ &:hover,
325
+ &.selected {
326
+ background-color: $grey-lightest;
327
+ }
328
+
329
+ &.hovered-empty-labels {
330
+ background-color: $grey-lightest;
331
+ border-bottom-color: $grey-detail;
332
+ }
333
+
334
+ &.hovered-pending-annotations {
335
+ position: relative;
336
+ border-bottom-color: $primary;
337
+
338
+ &:before {
339
+ display: block;
340
+ content: "";
341
+ width: 100%;
342
+ height: 100%;
343
+ background: $primary;
344
+ opacity: 0.1;
345
+ position: absolute;
346
+ top: 0;
347
+ left: 0;
348
+ }
349
+ }
350
+
351
+ &.editing {
352
+ background-color: $background;
353
+ border-bottom: 1px solid $primary;
354
+ }
355
+
356
+ .not-found-text {
357
+ color: $grey;
358
+ opacity: 0.3;
359
+ }
360
+
361
+ .saving-changes {
362
+ color: $grey;
363
+ }
364
+
365
+ .error-editing {
366
+ color: $red;
367
+ animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
368
+ transform: translate3d(0, 0, 0);
369
+ }
370
+
371
+ @keyframes shake {
372
+ 10%,
373
+ 90% {
374
+ transform: translate3d(-1px, 0, 0);
375
+ }
376
+
377
+ 20%,
378
+ 80% {
379
+ transform: translate3d(2px, 0, 0);
380
+ }
381
+
382
+ 30%,
383
+ 50%,
384
+ 70% {
385
+ transform: translate3d(-4px, 0, 0);
386
+ }
387
+
388
+ 40%,
389
+ 60% {
390
+ transform: translate3d(4px, 0, 0);
391
+ }
392
+ }
393
+ }
394
+ }
395
+ }
396
+
397
+ .no-labels {
398
+ display: flex;
399
+ gap: 5px;
400
+ padding-left: 28px;
401
+ color: $text-lighter;
402
+ font-size: 14px;
403
+ line-height: 20px;
404
+ min-height: 44px;
405
+
406
+ a {
407
+ color: $white;
408
+ text-decoration: underline;
409
+ font-weight: 500;
410
+ }
411
+ }
412
+ }
413
+ }
414
+
415
+ .action-buttons {
416
+ display: flex;
417
+ gap: 6px;
418
+
419
+ button {
420
+ height: 32px;
421
+
422
+ &.annotation-save-btn {
423
+ cursor: pointer;
424
+ padding: 6px 14px 6px 14px;
425
+ border-radius: 8px;
426
+ font-weight: 500;
427
+ font-size: 14px;
428
+ line-height: 20px;
429
+ width: auto;
430
+ }
431
+
432
+ &.annotation-cancel-btn {
433
+ padding-top: 8px !important;
434
+ border: none !important;
435
+ background-color: transparent !important;
436
+ width: 32px;
437
+ }
438
+
439
+ &.accept-all-btn,
440
+ &.restore-btn {
441
+ color: $primary !important;
442
+ font-size: 14px !important;
443
+ font-weight: 500;
444
+ background-color: transparent !important;
445
+ width: auto;
446
+
447
+ &:hover {
448
+ text-decoration: none !important;
449
+ color: $primary !important;
450
+ filter: $hover-style;
451
+ }
452
+
453
+ &:focus {
454
+ box-shadow: none !important;
455
+ }
456
+ }
457
+
458
+ &.finish-review-btn {
459
+ height: 40px;
460
+
461
+ .icon:last-child:not(:first-child) {
462
+ margin: 0;
463
+ }
464
+ }
465
+
466
+ &.text-btn {
467
+ border-radius: 8px;
468
+ font-weight: 500;
469
+ font-size: 14px;
470
+ line-height: 20px;
471
+ }
472
+
473
+ &.annotation-save-btn {
474
+ padding: 6px 14px 6px 14px;
475
+ }
476
+
477
+ &.annotation-cancel-btn {
478
+ border: none !important;
479
+ background-color: transparent !important;
480
+ width: 32px;
481
+ }
482
+ }
483
+
484
+ .accept-decline-container {
485
+ padding-right: 14px;
486
+ display: flex;
487
+ flex-direction: row;
488
+ justify-content: center;
489
+ button {
490
+ padding: 6px;
491
+
492
+ .decline-icon {
493
+ height: 24px;
494
+ width: 24px;
495
+ padding: 6px;
496
+ color: $red;
497
+ vertical-align: middle;
498
+ }
499
+
500
+ svg {
501
+ vertical-align: middle;
502
+ height: 24px;
503
+ }
504
+ }
505
+ }
506
+
507
+ .missing-button-container {
508
+ background-color: transparent;
509
+
510
+ .missing-btn {
511
+ color: $grey-blue !important;
512
+ font-size: 14px !important;
513
+ font-weight: 500;
514
+ background-color: transparent !important;
515
+ width: auto;
516
+
517
+ &:hover {
518
+ text-decoration: none !important;
519
+ color: $text-color !important;
520
+ }
521
+
522
+ &:focus {
523
+ box-shadow: none !important;
524
+ }
525
+ }
526
+ }
527
+ }
528
+ }
529
+
530
+ .annotation-row {
531
+ display: flex;
532
+ align-items: center;
533
+ .annotation-icon {
534
+ display: flex;
535
+ }
536
+ .annotation-value {
537
+ outline: none;
538
+ }
539
+ }
540
+
541
+ .message {
542
+ .message-container {
543
+ display: flex;
544
+ flex: 1;
545
+ align-items: center;
546
+ justify-content: space-between;
547
+ gap: 15px;
548
+ font-size: 14px !important;
549
+ }
550
+
551
+ .btn-container {
552
+ display: flex;
553
+ }
554
+ }
555
+
556
+ .hidden {
557
+ display: none !important;
558
+ }