@weni/unnnic-system 3.25.6 → 3.26.0
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.
- package/dist/{es-CNigXHb1.mjs → es-Dhz_Vb5J.mjs} +1 -1
- package/dist/{index-B-PMK0Fu.mjs → index-CyIfw1Zx.mjs} +6972 -6910
- package/dist/index.d.ts +60 -2
- package/dist/{pt-br-D4aJiC1v.mjs → pt-br-LgmWO25q.mjs} +1 -1
- package/dist/style.css +1 -1
- package/dist/tokens/colors.d.ts +2 -0
- package/dist/tokens/colors.mjs +2 -0
- package/dist/unnnic.mjs +18 -17
- package/dist/unnnic.umd.js +29 -29
- package/package.json +2 -1
- package/src/assets/scss/colors-hsl.scss +2 -0
- package/src/assets/scss/colors.scss +0 -43
- package/src/assets/scss/deprecated/colors.scss +1 -0
- package/src/assets/scss/scheme-colors.scss +3 -0
- package/src/assets/scss/semantic-colors.scss +48 -0
- package/src/assets/scss/semantic-text-utilities.scss +9 -0
- package/src/assets/scss/tailwind.scss +1 -1
- package/src/assets/scss/theme.scss +98 -0
- package/src/assets/scss/unnnic.scss +2 -0
- package/src/assets/tokens/colors-primitives.json +155 -0
- package/src/assets/tokens/colors-semantic-dark.json +55 -0
- package/src/assets/tokens/colors-semantic.json +55 -0
- package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +1 -1
- package/src/components/AudioRecorder/AudioTranscriptionButton.vue +3 -1
- package/src/components/Button/Button.vue +17 -18
- package/src/components/Card/CardCompany.vue +1 -1
- package/src/components/CardNumber/CardNumber.vue +1 -1
- package/src/components/CardProject/CardProject.vue +4 -4
- package/src/components/Carousel/TagCarousel.vue +2 -2
- package/src/components/ChartRainbow/ChartRainbow.vue +2 -2
- package/src/components/ChatsContact/ChatsContact.vue +70 -10
- package/src/components/ChatsContact/__tests__/ChatsContact.spec.js +119 -0
- package/src/components/ChatsContact/__tests__/__snapshots__/ChatsContact.spec.js.snap +1 -1
- package/src/components/ChatsMessage/ChatsMessage.vue +6 -7
- package/src/components/ChatsMessage/ChatsMessageStatusBackdrop.vue +1 -1
- package/src/components/ChatsMessage/ReplyMessage.vue +4 -4
- package/src/components/ChatsNavbar/ChatsNavbar.vue +1 -1
- package/src/components/ChatsUserAvatar/ChatsUserAvatar.vue +3 -3
- package/src/components/Chip/Chip.vue +20 -26
- package/src/components/Chip/__tests__/Chip.spec.js +3 -3
- package/src/components/DataTable/index.vue +2 -2
- package/src/components/DatePicker/DatePicker.vue +4 -4
- package/src/components/EmojiPicker/EmojiPicker.vue +40 -4
- package/src/components/EmojiPicker/__tests__/EmojiPicker.spec.js +1 -1
- package/src/components/FormElement/FormElement.vue +1 -1
- package/src/components/Input/Input.scss +2 -2
- package/src/components/Input/TextInput.vue +1 -1
- package/src/components/SelectTime/index.vue +1 -1
- package/src/components/Sidebar/index.vue +1 -1
- package/src/components/SkeletonLoading/skeletonTheme.vue +2 -4
- package/src/components/Table/Table.vue +1 -1
- package/src/components/Tag/DefaultTag.vue +9 -11
- package/src/components/TemplatePreview/TemplatePreview.vue +1 -1
- package/src/components/Toast/Toast.vue +4 -4
- package/src/components/Toast/__tests__/Toast.spec.js +5 -5
- package/src/components/ToolTip/ToolTip.vue +1 -1
- package/src/components/Tour/TourMask.vue +1 -1
- package/src/components/ui/dialog/DialogContent.vue +1 -1
- package/src/components/ui/popover/PopoverContent.vue +1 -1
- package/src/components/ui/popover/PopoverOption.vue +2 -2
- package/src/components/ui/tooltip/TooltipContent.vue +5 -4
- package/src/composables/useTheme.ts +67 -0
- package/src/index.ts +2 -0
- package/src/stories/ChatsContact.stories.js +53 -0
- package/src/stories/Colors.stories.js +6 -1
- package/src/stories/Icon.stories.js +1 -0
- package/src/stories/IconLoading.stories.js +1 -0
- package/src/types/scheme-colors.d.ts +2 -0
- package/src/assets/tokens/colors.json +0 -552
|
@@ -115,14 +115,14 @@ const iconScheme = computed((): SchemeColor => {
|
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
const typeToSchemeMap: Record<ButtonType, SchemeColor> = {
|
|
118
|
-
primary: 'fg-
|
|
118
|
+
primary: 'fg-on-primary',
|
|
119
119
|
secondary: 'fg-emphasized',
|
|
120
120
|
tertiary: 'fg-emphasized',
|
|
121
|
-
warning: 'fg-
|
|
122
|
-
attention: 'fg-
|
|
121
|
+
warning: 'fg-on-primary',
|
|
122
|
+
attention: 'fg-on-primary',
|
|
123
123
|
};
|
|
124
124
|
|
|
125
|
-
return typeToSchemeMap[buttonType.value] || 'fg-
|
|
125
|
+
return typeToSchemeMap[buttonType.value] || 'fg-on-primary';
|
|
126
126
|
});
|
|
127
127
|
|
|
128
128
|
const isSizePropValid = computed(() => {
|
|
@@ -228,7 +228,7 @@ watch(
|
|
|
228
228
|
&--primary,
|
|
229
229
|
&--warning,
|
|
230
230
|
&--attention {
|
|
231
|
-
color: $unnnic-color-fg-
|
|
231
|
+
color: $unnnic-color-fg-on-primary;
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
&--secondary,
|
|
@@ -237,15 +237,15 @@ watch(
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
&--primary {
|
|
240
|
-
background-color: $unnnic-color-bg-
|
|
240
|
+
background-color: $unnnic-color-bg-accent-strong;
|
|
241
241
|
|
|
242
242
|
&:hover:enabled {
|
|
243
|
-
background-color: $unnnic-color-teal-
|
|
243
|
+
background-color: $unnnic-color-teal-11;
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
&:active:enabled,
|
|
247
247
|
&.unnnic-button--pressed {
|
|
248
|
-
background-color: $unnnic-color-teal-
|
|
248
|
+
background-color: $unnnic-color-teal-12;
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
|
|
@@ -254,12 +254,12 @@ watch(
|
|
|
254
254
|
box-shadow: inset 0 0 0 1px $unnnic-color-border-base;
|
|
255
255
|
|
|
256
256
|
&:hover:enabled {
|
|
257
|
-
background-color: $unnnic-color-
|
|
257
|
+
background-color: $unnnic-color-bg-base-soft;
|
|
258
258
|
}
|
|
259
259
|
|
|
260
260
|
&:active:enabled,
|
|
261
261
|
&.unnnic-button--pressed {
|
|
262
|
-
background-color: $unnnic-color-
|
|
262
|
+
background-color: $unnnic-color-bg-muted;
|
|
263
263
|
}
|
|
264
264
|
|
|
265
265
|
&:disabled {
|
|
@@ -271,39 +271,38 @@ watch(
|
|
|
271
271
|
background-color: transparent;
|
|
272
272
|
|
|
273
273
|
&:hover:enabled {
|
|
274
|
-
background-color:
|
|
274
|
+
background-color: $unnnic-color-bg-base-soft;
|
|
275
275
|
}
|
|
276
276
|
|
|
277
277
|
&:active:enabled,
|
|
278
278
|
&.unnnic-button--pressed {
|
|
279
|
-
background-color:
|
|
279
|
+
background-color: $unnnic-color-bg-muted;
|
|
280
280
|
}
|
|
281
281
|
}
|
|
282
282
|
|
|
283
283
|
&--warning {
|
|
284
284
|
background-color: $unnnic-color-bg-red-strong;
|
|
285
|
-
color: $unnnic-color-fg-inverted;
|
|
286
285
|
|
|
287
286
|
&:hover:enabled {
|
|
288
|
-
background-color: $unnnic-color-red-
|
|
287
|
+
background-color: $unnnic-color-red-11;
|
|
289
288
|
}
|
|
290
289
|
|
|
291
290
|
&:active:enabled,
|
|
292
291
|
&.unnnic-button--pressed {
|
|
293
|
-
background-color: $unnnic-color-red-
|
|
292
|
+
background-color: $unnnic-color-red-12;
|
|
294
293
|
}
|
|
295
294
|
}
|
|
296
295
|
|
|
297
296
|
&--attention {
|
|
298
|
-
background-color: $unnnic-color-yellow-
|
|
297
|
+
background-color: $unnnic-color-bg-yellow-strong;
|
|
299
298
|
|
|
300
299
|
&:hover:enabled {
|
|
301
|
-
background-color: $unnnic-color-yellow-
|
|
300
|
+
background-color: $unnnic-color-yellow-11;
|
|
302
301
|
}
|
|
303
302
|
|
|
304
303
|
&:active:enabled,
|
|
305
304
|
&.unnnic-button--pressed {
|
|
306
|
-
background-color: $unnnic-color-yellow-
|
|
305
|
+
background-color: $unnnic-color-yellow-12;
|
|
307
306
|
}
|
|
308
307
|
}
|
|
309
308
|
|
|
@@ -54,7 +54,7 @@ export default {
|
|
|
54
54
|
span {
|
|
55
55
|
font-weight: $unnnic-font-weight-black;
|
|
56
56
|
font-size: $unnnic-font-size-title-lg;
|
|
57
|
-
color: $unnnic-color-
|
|
57
|
+
color: $unnnic-color-fg-emphasized;
|
|
58
58
|
line-height: $unnnic-font-size-title-lg + $unnnic-line-height-md;
|
|
59
59
|
}
|
|
60
60
|
}
|
|
@@ -302,13 +302,13 @@ export default {
|
|
|
302
302
|
}
|
|
303
303
|
|
|
304
304
|
&--ACTIVE {
|
|
305
|
-
background-color: $unnnic-color-green-
|
|
306
|
-
color: $unnnic-color-
|
|
305
|
+
background-color: $unnnic-color-bg-green-plain;
|
|
306
|
+
color: $unnnic-color-fg-success;
|
|
307
307
|
}
|
|
308
308
|
|
|
309
309
|
&--IN_TEST {
|
|
310
|
-
background-color: $unnnic-color-orange-
|
|
311
|
-
color: $unnnic-color-
|
|
310
|
+
background-color: $unnnic-color-bg-orange-plain;
|
|
311
|
+
color: $unnnic-color-fg-warning;
|
|
312
312
|
}
|
|
313
313
|
|
|
314
314
|
&--INACTIVE {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<UnnnicIcon
|
|
8
8
|
icon="arrow-left-1-1"
|
|
9
9
|
size="sm"
|
|
10
|
-
:scheme="hasPrev ? '
|
|
10
|
+
:scheme="hasPrev ? 'fg-emphasized' : 'fg-muted'"
|
|
11
11
|
clickable
|
|
12
12
|
@click="previous()"
|
|
13
13
|
/>
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
<UnnnicIcon
|
|
50
50
|
icon="arrow-right-1-1"
|
|
51
51
|
size="sm"
|
|
52
|
-
:scheme="hasNext ? '
|
|
52
|
+
:scheme="hasNext ? 'fg-emphasized' : 'fg-muted'"
|
|
53
53
|
clickable
|
|
54
54
|
@click="next()"
|
|
55
55
|
/>
|
|
@@ -176,13 +176,13 @@ export default {
|
|
|
176
176
|
font-weight: $unnnic-font-weight-black;
|
|
177
177
|
|
|
178
178
|
.number {
|
|
179
|
-
color: $unnnic-color-
|
|
179
|
+
color: $unnnic-color-fg-emphasized;
|
|
180
180
|
font-size: $unnnic-font-size-h3;
|
|
181
181
|
line-height: $unnnic-font-size-h3 + $unnnic-line-height-md;
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
.symbol {
|
|
185
|
-
color: $unnnic-color-
|
|
185
|
+
color: $unnnic-color-fg-muted;
|
|
186
186
|
font-size: $unnnic-font-size-h4;
|
|
187
187
|
line-height: $unnnic-font-size-h4 + $unnnic-line-height-md;
|
|
188
188
|
}
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
<slot name="avatar">
|
|
23
23
|
<UserAvatar
|
|
24
24
|
v-if="discussionGoal"
|
|
25
|
-
scheme="purple-
|
|
25
|
+
scheme="bg-purple-plain"
|
|
26
26
|
>
|
|
27
27
|
<template #content>
|
|
28
28
|
<UnnnicIcon
|
|
29
29
|
icon="communication"
|
|
30
|
-
scheme="
|
|
30
|
+
scheme="fg-base"
|
|
31
31
|
/>
|
|
32
32
|
</template>
|
|
33
33
|
</UserAvatar>
|
|
@@ -36,6 +36,8 @@
|
|
|
36
36
|
:username="title"
|
|
37
37
|
:photoUrl="userPhoto"
|
|
38
38
|
:active="isHovered || selected"
|
|
39
|
+
scheme="bg-muted"
|
|
40
|
+
textColor="fg-emphasized"
|
|
39
41
|
/>
|
|
40
42
|
</slot>
|
|
41
43
|
<div class="chats-contact__infos">
|
|
@@ -67,6 +69,13 @@
|
|
|
67
69
|
</p>
|
|
68
70
|
<template v-else-if="lastMessageMedia.isMedia">
|
|
69
71
|
<section class="chats-contact__infos__media">
|
|
72
|
+
<p
|
|
73
|
+
v-if="lastMessage.isFromUser"
|
|
74
|
+
class="chats-contact__infos__media__sender-prefix"
|
|
75
|
+
data-testid="media-sender-prefix"
|
|
76
|
+
>
|
|
77
|
+
{{ i18n('you_message_prefix') }}
|
|
78
|
+
</p>
|
|
70
79
|
<UnnnicIcon
|
|
71
80
|
:icon="lastMessageMedia.mediaIcon"
|
|
72
81
|
scheme="fg-base"
|
|
@@ -135,6 +144,18 @@
|
|
|
135
144
|
:scheme="schemePin"
|
|
136
145
|
/>
|
|
137
146
|
</button>
|
|
147
|
+
<UnnnicTooltip
|
|
148
|
+
v-else-if="newMessageIndicator"
|
|
149
|
+
class="chats-contact__infos__new-message-indicator-tooltip"
|
|
150
|
+
:enabled="!!newMessageIndicatorTooltip"
|
|
151
|
+
:text="newMessageIndicatorTooltip"
|
|
152
|
+
side="top"
|
|
153
|
+
>
|
|
154
|
+
<span
|
|
155
|
+
class="chats-contact__infos__new-message-indicator"
|
|
156
|
+
data-testid="new-message-indicator"
|
|
157
|
+
/>
|
|
158
|
+
</UnnnicTooltip>
|
|
138
159
|
<p
|
|
139
160
|
v-else-if="(unreadMessages && !selected) || forceShowUnreadMessages"
|
|
140
161
|
class="chats-contact__infos__unread-messages"
|
|
@@ -249,7 +270,7 @@ export default {
|
|
|
249
270
|
},
|
|
250
271
|
schemePin: {
|
|
251
272
|
type: String,
|
|
252
|
-
default: '
|
|
273
|
+
default: 'fg-emphasized',
|
|
253
274
|
},
|
|
254
275
|
pendingResponse: {
|
|
255
276
|
type: Boolean,
|
|
@@ -259,6 +280,14 @@ export default {
|
|
|
259
280
|
type: String,
|
|
260
281
|
default: '',
|
|
261
282
|
},
|
|
283
|
+
newMessageIndicator: {
|
|
284
|
+
type: Boolean,
|
|
285
|
+
default: false,
|
|
286
|
+
},
|
|
287
|
+
newMessageIndicatorTooltip: {
|
|
288
|
+
type: String,
|
|
289
|
+
default: '',
|
|
290
|
+
},
|
|
262
291
|
},
|
|
263
292
|
|
|
264
293
|
emits: ['click', 'clickPin'],
|
|
@@ -309,12 +338,18 @@ export default {
|
|
|
309
338
|
en: 'Video',
|
|
310
339
|
es: 'Video',
|
|
311
340
|
},
|
|
341
|
+
you_message_prefix: {
|
|
342
|
+
'pt-br': 'Você:',
|
|
343
|
+
en: 'You:',
|
|
344
|
+
es: 'Tú:',
|
|
345
|
+
},
|
|
312
346
|
},
|
|
313
347
|
};
|
|
314
348
|
},
|
|
315
349
|
|
|
316
350
|
computed: {
|
|
317
351
|
messageInfoAlign() {
|
|
352
|
+
if (this.newMessageIndicator) return 'space-between';
|
|
318
353
|
return this.unreadMessages && this.selected ? 'center' : 'flex-start';
|
|
319
354
|
},
|
|
320
355
|
messageInfoMarginTop() {
|
|
@@ -539,19 +574,23 @@ export default {
|
|
|
539
574
|
&__project-tag {
|
|
540
575
|
display: block;
|
|
541
576
|
flex-shrink: 1;
|
|
542
|
-
|
|
577
|
+
background: $unnnic-color-bg-muted;
|
|
543
578
|
|
|
544
579
|
font: $unnnic-font-caption-1;
|
|
545
580
|
color: $unnnic-color-fg-emphasized;
|
|
546
581
|
|
|
547
|
-
border-radius: $unnnic-radius-
|
|
548
|
-
padding:
|
|
582
|
+
border-radius: $unnnic-radius-full;
|
|
583
|
+
padding: $unnnic-space-05 $unnnic-space-3;
|
|
549
584
|
}
|
|
550
585
|
|
|
551
586
|
&__media {
|
|
552
587
|
display: flex;
|
|
553
588
|
align-items: center;
|
|
554
589
|
gap: $unnnic-spacing-nano;
|
|
590
|
+
|
|
591
|
+
&__sender-prefix {
|
|
592
|
+
color: $unnnic-color-fg-base;
|
|
593
|
+
}
|
|
555
594
|
}
|
|
556
595
|
|
|
557
596
|
&__title,
|
|
@@ -568,7 +607,7 @@ export default {
|
|
|
568
607
|
&__additional-information {
|
|
569
608
|
width: 100%; // important to ellipsis work
|
|
570
609
|
|
|
571
|
-
color: $unnnic-color-fg-
|
|
610
|
+
color: $unnnic-color-fg-base;
|
|
572
611
|
}
|
|
573
612
|
|
|
574
613
|
&__pending-response {
|
|
@@ -624,7 +663,7 @@ export default {
|
|
|
624
663
|
line-height: $unnnic-font-size-body-lg;
|
|
625
664
|
|
|
626
665
|
&--active {
|
|
627
|
-
color: $unnnic-color-
|
|
666
|
+
color: $unnnic-color-fg-info;
|
|
628
667
|
font-weight: $unnnic-font-weight-bold;
|
|
629
668
|
}
|
|
630
669
|
}
|
|
@@ -635,7 +674,7 @@ export default {
|
|
|
635
674
|
align-items: center;
|
|
636
675
|
|
|
637
676
|
border-radius: 50%;
|
|
638
|
-
background: $unnnic-color-
|
|
677
|
+
background: $unnnic-color-bg-info;
|
|
639
678
|
|
|
640
679
|
width: 1.25rem;
|
|
641
680
|
min-width: 1.25rem;
|
|
@@ -644,7 +683,28 @@ export default {
|
|
|
644
683
|
font-size: $unnnic-font-size-body-md;
|
|
645
684
|
font-weight: $unnnic-font-weight-bold;
|
|
646
685
|
line-height: $unnnic-line-height-small;
|
|
647
|
-
color: $unnnic-color-
|
|
686
|
+
color: $unnnic-color-fg-info;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
&__new-message-indicator {
|
|
690
|
+
display: flex;
|
|
691
|
+
justify-content: center;
|
|
692
|
+
align-items: center;
|
|
693
|
+
|
|
694
|
+
width: $unnnic-space-5;
|
|
695
|
+
min-width: $unnnic-space-5;
|
|
696
|
+
height: $unnnic-space-5;
|
|
697
|
+
|
|
698
|
+
&::before {
|
|
699
|
+
content: '';
|
|
700
|
+
display: block;
|
|
701
|
+
|
|
702
|
+
width: $unnnic-space-2;
|
|
703
|
+
height: $unnnic-space-2;
|
|
704
|
+
|
|
705
|
+
border-radius: 50%;
|
|
706
|
+
background-color: $unnnic-color-bg-blue-strong;
|
|
707
|
+
}
|
|
648
708
|
}
|
|
649
709
|
|
|
650
710
|
.ellipsis {
|
|
@@ -259,6 +259,125 @@ describe('UnnnicChatsContact', () => {
|
|
|
259
259
|
});
|
|
260
260
|
});
|
|
261
261
|
|
|
262
|
+
describe('Media "You:" prefix', () => {
|
|
263
|
+
const imageMedia = {
|
|
264
|
+
media: [
|
|
265
|
+
{
|
|
266
|
+
content_type: 'image/jpeg',
|
|
267
|
+
message: 'a997421d-6238-4bef-912d-e689c1c0db3f',
|
|
268
|
+
url: 'https://example.com/photo.jpg',
|
|
269
|
+
created_on: '2025-04-15T14:58:56.163027-03:00',
|
|
270
|
+
},
|
|
271
|
+
],
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
it('should not render the prefix on a media message when isFromUser is falsy', async () => {
|
|
275
|
+
await wrapper.setProps({ lastMessage: imageMedia });
|
|
276
|
+
|
|
277
|
+
const prefix = wrapper.find('[data-testid="media-sender-prefix"]');
|
|
278
|
+
expect(prefix.exists()).toBe(false);
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
it('should render the EN "You:" prefix when isFromUser is true', async () => {
|
|
282
|
+
await wrapper.setProps({
|
|
283
|
+
lastMessage: { ...imageMedia, isFromUser: true },
|
|
284
|
+
locale: 'en',
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
const prefix = wrapper.find('[data-testid="media-sender-prefix"]');
|
|
288
|
+
expect(prefix.exists()).toBe(true);
|
|
289
|
+
expect(prefix.text()).toBe('You:');
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
it('should render the PT-BR "Você:" prefix when isFromUser is true', async () => {
|
|
293
|
+
await wrapper.setProps({
|
|
294
|
+
lastMessage: { ...imageMedia, isFromUser: true },
|
|
295
|
+
locale: 'pt-br',
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
const prefix = wrapper.find('[data-testid="media-sender-prefix"]');
|
|
299
|
+
expect(prefix.exists()).toBe(true);
|
|
300
|
+
expect(prefix.text()).toBe('Você:');
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
it('should render the ES "Tú:" prefix when isFromUser is true', async () => {
|
|
304
|
+
await wrapper.setProps({
|
|
305
|
+
lastMessage: { ...imageMedia, isFromUser: true },
|
|
306
|
+
locale: 'es',
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
const prefix = wrapper.find('[data-testid="media-sender-prefix"]');
|
|
310
|
+
expect(prefix.exists()).toBe(true);
|
|
311
|
+
expect(prefix.text()).toBe('Tú:');
|
|
312
|
+
});
|
|
313
|
+
|
|
314
|
+
it('should not render the prefix for non-media messages even when isFromUser is true', async () => {
|
|
315
|
+
await wrapper.setProps({
|
|
316
|
+
lastMessage: { text: 'Hello there', isFromUser: true },
|
|
317
|
+
});
|
|
318
|
+
|
|
319
|
+
const prefix = wrapper.find('[data-testid="media-sender-prefix"]');
|
|
320
|
+
expect(prefix.exists()).toBe(false);
|
|
321
|
+
});
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
describe('New message indicator', () => {
|
|
325
|
+
it('should not render the dot by default', () => {
|
|
326
|
+
const indicator = wrapper.find('[data-testid="new-message-indicator"]');
|
|
327
|
+
expect(indicator.exists()).toBe(false);
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
it('should render the dot when newMessageIndicator is true', async () => {
|
|
331
|
+
await wrapper.setProps({ newMessageIndicator: true });
|
|
332
|
+
|
|
333
|
+
const indicator = wrapper.find('[data-testid="new-message-indicator"]');
|
|
334
|
+
expect(indicator.exists()).toBe(true);
|
|
335
|
+
});
|
|
336
|
+
|
|
337
|
+
it('should hide the unread-count circle when newMessageIndicator and unreadMessages are both set', async () => {
|
|
338
|
+
await wrapper.setProps({
|
|
339
|
+
newMessageIndicator: true,
|
|
340
|
+
unreadMessages: 5,
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
const indicator = wrapper.find('[data-testid="new-message-indicator"]');
|
|
344
|
+
const unreadCount = wrapper.find(
|
|
345
|
+
'.chats-contact__infos__unread-messages',
|
|
346
|
+
);
|
|
347
|
+
|
|
348
|
+
expect(indicator.exists()).toBe(true);
|
|
349
|
+
expect(unreadCount.exists()).toBe(false);
|
|
350
|
+
});
|
|
351
|
+
|
|
352
|
+
it('should keep tooltip disabled when newMessageIndicatorTooltip is empty', async () => {
|
|
353
|
+
await wrapper.setProps({
|
|
354
|
+
newMessageIndicator: true,
|
|
355
|
+
newMessageIndicatorTooltip: '',
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
const tooltip = wrapper.findComponent({ name: 'UnnnicTooltip' });
|
|
359
|
+
|
|
360
|
+
expect(tooltip.exists()).toBe(true);
|
|
361
|
+
expect(tooltip.props('enabled')).toBe(false);
|
|
362
|
+
expect(tooltip.props('text')).toBe('');
|
|
363
|
+
});
|
|
364
|
+
|
|
365
|
+
it('should enable tooltip with the provided text when newMessageIndicatorTooltip is set', async () => {
|
|
366
|
+
const tooltipText = 'New chats received';
|
|
367
|
+
|
|
368
|
+
await wrapper.setProps({
|
|
369
|
+
newMessageIndicator: true,
|
|
370
|
+
newMessageIndicatorTooltip: tooltipText,
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
const tooltip = wrapper.findComponent({ name: 'UnnnicTooltip' });
|
|
374
|
+
|
|
375
|
+
expect(tooltip.exists()).toBe(true);
|
|
376
|
+
expect(tooltip.props('enabled')).toBe(true);
|
|
377
|
+
expect(tooltip.props('text')).toBe(tooltipText);
|
|
378
|
+
});
|
|
379
|
+
});
|
|
380
|
+
|
|
262
381
|
describe('Pending response', () => {
|
|
263
382
|
it('should not render the pending response icon by default', () => {
|
|
264
383
|
const icon = wrapper.find('[data-testid="pending-response-icon"]');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`UnnnicChatsContact > should match snapshot 1`] = `
|
|
4
4
|
"<div data-v-8ce6efd5="" class="chats-contact" tabindex="0" style="position: relative; overflow: hidden;">
|
|
5
|
-
<section data-v-c735998e="" data-v-8ce6efd5="" class="user-avatar user-avatar--xl user-avatar--
|
|
5
|
+
<section data-v-c735998e="" data-v-8ce6efd5="" class="user-avatar user-avatar--xl user-avatar--bg-muted"><span data-v-c735998e="" class="text-fg-emphasized">C</span></section>
|
|
6
6
|
<div data-v-8ce6efd5="" class="chats-contact__infos">
|
|
7
7
|
<section data-v-8ce6efd5="" class="chats-contact__infos__title-container">
|
|
8
8
|
<h1 data-v-8ce6efd5="" class="chats-contact__infos__title ellipsis" title="Contact Name">Contact Name</h1>
|
|
@@ -321,7 +321,7 @@ $defaultLineHeight: $unnnic-font-size-body-gt + $unnnic-line-height-medium;
|
|
|
321
321
|
|
|
322
322
|
background-color: $unnnic-color-bg-base;
|
|
323
323
|
|
|
324
|
-
font
|
|
324
|
+
font: $unnnic-font-body;
|
|
325
325
|
|
|
326
326
|
box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.1);
|
|
327
327
|
|
|
@@ -342,10 +342,10 @@ $defaultLineHeight: $unnnic-font-size-body-gt + $unnnic-line-height-medium;
|
|
|
342
342
|
}
|
|
343
343
|
|
|
344
344
|
&.sent {
|
|
345
|
-
background-color:
|
|
345
|
+
background-color: $unnnic-color-bg-accent-plain;
|
|
346
346
|
|
|
347
347
|
&.automatic {
|
|
348
|
-
background-color: $unnnic-color-
|
|
348
|
+
background-color: $unnnic-color-bg-info;
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
351
|
|
|
@@ -430,7 +430,7 @@ $defaultLineHeight: $unnnic-font-size-body-gt + $unnnic-line-height-medium;
|
|
|
430
430
|
padding: $unnnic-spacing-nano 0;
|
|
431
431
|
|
|
432
432
|
font-size: $unnnic-font-size-body-gt;
|
|
433
|
-
color: $unnnic-color-fg-
|
|
433
|
+
color: $unnnic-color-fg-emphasized;
|
|
434
434
|
line-height: $defaultLineHeight;
|
|
435
435
|
word-break: break-word;
|
|
436
436
|
}
|
|
@@ -450,9 +450,8 @@ $defaultLineHeight: $unnnic-font-size-body-gt + $unnnic-line-height-medium;
|
|
|
450
450
|
}
|
|
451
451
|
|
|
452
452
|
&__time {
|
|
453
|
-
font
|
|
454
|
-
|
|
455
|
-
color: $unnnic-color-fg-muted;
|
|
453
|
+
font: $unnnic-font-caption-2;
|
|
454
|
+
color: $unnnic-color-fg-base;
|
|
456
455
|
margin: 0;
|
|
457
456
|
padding: 0;
|
|
458
457
|
|
|
@@ -196,10 +196,10 @@ onUpdated(() => {
|
|
|
196
196
|
background: rgba(8, 103, 102, 0.1);
|
|
197
197
|
}
|
|
198
198
|
&--you {
|
|
199
|
-
border-left: 2px solid $unnnic-color-
|
|
199
|
+
border-left: 2px solid $unnnic-color-bg-teal-strong;
|
|
200
200
|
}
|
|
201
201
|
&--contact {
|
|
202
|
-
border-left: 2px solid $unnnic-color-purple-
|
|
202
|
+
border-left: 2px solid $unnnic-color-bg-purple-strong;
|
|
203
203
|
}
|
|
204
204
|
&__message-container {
|
|
205
205
|
display: flex;
|
|
@@ -212,10 +212,10 @@ onUpdated(() => {
|
|
|
212
212
|
font-weight: $unnnic-font-weight-bold;
|
|
213
213
|
line-height: $unnnic-font-size-body-gt + $unnnic-line-height-md;
|
|
214
214
|
&--you {
|
|
215
|
-
color: $unnnic-color-
|
|
215
|
+
color: $unnnic-color-bg-teal-strong;
|
|
216
216
|
}
|
|
217
217
|
&--contact {
|
|
218
|
-
color: $unnnic-color-purple-
|
|
218
|
+
color: $unnnic-color-bg-purple-strong;
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
&__content {
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
v-if="username === 'Agent'"
|
|
17
17
|
icon="single-neutral-actions-1"
|
|
18
18
|
size="sm"
|
|
19
|
-
:scheme="disabled ? 'fg-
|
|
19
|
+
:scheme="disabled ? 'fg-on-primary' : ''"
|
|
20
20
|
/>
|
|
21
21
|
<UnnnicIcon
|
|
22
22
|
v-else-if="username === 'Bot'"
|
|
23
23
|
icon="science-fiction-robot-2"
|
|
24
24
|
size="sm"
|
|
25
|
-
:scheme="disabled ? 'fg-
|
|
25
|
+
:scheme="disabled ? 'fg-on-primary' : ''"
|
|
26
26
|
/>
|
|
27
27
|
<img
|
|
28
28
|
v-else-if="!!photoUrl"
|
|
@@ -119,7 +119,7 @@ $avatar-sizes:
|
|
|
119
119
|
|
|
120
120
|
&.disabled {
|
|
121
121
|
background: $unnnic-color-gray-7;
|
|
122
|
-
color: $unnnic-color-fg-
|
|
122
|
+
color: $unnnic-color-fg-on-primary;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
&.clickable {
|