@adzen/doohbot 1.0.5 → 1.0.7

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 (41) hide show
  1. package/fesm2022/adzen-doohbot.mjs +1574 -1193
  2. package/fesm2022/adzen-doohbot.mjs.map +1 -1
  3. package/index.d.ts +100 -109
  4. package/index.d.ts.map +1 -1
  5. package/package.json +1 -1
  6. package/src/lib/app/chat/components/chat-button/chat-button.component.scss +43 -9
  7. package/src/lib/app/chat/components/chat-footer/chat-footer.component.scss +3 -3
  8. package/src/lib/app/chat/components/chat-header/chat-header.component.scss +29 -11
  9. package/src/lib/app/chat/components/{chat-history-sidebar/chat-history-sidebar.component.scss → chat-history/chat-history.component.scss} +46 -34
  10. package/src/lib/app/chat/components/chat-input/chat-input.component.scss +44 -21
  11. package/src/lib/app/chat/components/chat-message/chat-message.component.scss +178 -178
  12. package/src/lib/app/chat/components/chat-message-container/chat-message-container.component.scss +55 -24
  13. package/src/lib/app/chat/components/chat-window/chat-window.component.scss +282 -21
  14. package/src/lib/app/login/login-form.component.scss +24 -24
  15. package/src/lib/app/personalization/personalization-dialog.component.scss +17 -17
  16. package/src/lib/app/personalization/sections/account/account-section.component.scss +167 -166
  17. package/src/lib/app/personalization/sections/instruction/instruction-section.component.scss +47 -46
  18. package/src/lib/app/personalization/sections/preferences/preferences-section.component.scss +172 -170
  19. package/src/lib/app/personalization/sections/terms/terms-section.component.scss +58 -57
  20. package/src/lib/doohbot.component.scss +6 -12
  21. package/src/lib/shared/chips/chips.component.scss +8 -8
  22. package/src/lib/shared/confirmation-dialog/confirmation-dialog.component.scss +24 -0
  23. package/src/lib/shared/dropdown-menu/dropdown-menu.component.scss +5 -5
  24. package/src/lib/shared/input-dialog/input-dialog.component.scss +8 -8
  25. package/src/lib/shared/notification-banner/notification-banner.component.scss +342 -0
  26. package/src/lib/shared/snackbar/snackbar.component.scss +3 -3
  27. package/src/lib/styles/_theme.scss +101 -45
  28. package/src/lib/styles/material-override.scss +36 -26
  29. package/src/lib/styles/utility.scss +64 -12
  30. package/src/lib/theme/index.scss +7 -7
  31. package/src/lib/theme/palettes/aqua.scss +76 -62
  32. package/src/lib/theme/palettes/candy.scss +75 -61
  33. package/src/lib/theme/palettes/doohbot.scss +21 -7
  34. package/src/lib/theme/palettes/forest.scss +75 -61
  35. package/src/lib/theme/palettes/midnight.scss +75 -61
  36. package/src/lib/theme/palettes/slate.scss +75 -61
  37. package/src/lib/theme/palettes/sunset.scss +75 -61
  38. package/src/lib/shared/dialog/dialog.component.scss +0 -90
  39. package/src/lib/shared/menu-item/menu-item.component.scss +0 -0
  40. package/src/lib/theme/themes.scss +0 -7
  41. package/src/lib/theme/tokens/semantic.scss +0 -102
@@ -5,6 +5,130 @@
5
5
  transition: all 0.3s ease-in-out;
6
6
  }
7
7
 
8
+ .chat-logo {
9
+ width: 48px;
10
+ height: 48px;
11
+ object-fit: contain;
12
+ flex-shrink: 0;
13
+ margin-bottom: 20px;
14
+ filter: drop-shadow(0 4px 6px rgba(var(--black-rgb), 0.1));
15
+ animation: float 3s ease-in-out infinite;
16
+ }
17
+
18
+ .auth-loader {
19
+ flex: 1;
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ padding: 40px;
24
+ text-align: center;
25
+ background: var(--db-bg-color);
26
+
27
+ > div {
28
+ max-width: 320px;
29
+ display: flex;
30
+ flex-direction: column;
31
+ align-items: center;
32
+ animation: fade-in-up 0.8s cubic-bezier(0.16, 1, 0.3, 1);
33
+ }
34
+
35
+ h2 {
36
+ font-size: 24px;
37
+ font-weight: 700;
38
+ font-family: var(--db-font);
39
+ color: var(--db-text-primary);
40
+ margin: 0 0 8px 0;
41
+ letter-spacing: -0.5px;
42
+ }
43
+
44
+ h3 {
45
+ margin: 0 0 5px 0;
46
+ color: var(--db-text-primary);
47
+ font-family: var(--db-font);
48
+ font-size: 18px;
49
+ }
50
+
51
+ p {
52
+ margin: 0;
53
+ color: var(--db-text-secondary);
54
+ font-size: 14px;
55
+ font-family: var(--db-font);
56
+ margin-bottom: 30px;
57
+ }
58
+
59
+ .login-redirect-btn {
60
+ display: flex;
61
+ align-items: center;
62
+ gap: 10px;
63
+ padding: 6px 12px;
64
+ background: var(--db-primary);
65
+ color: var(--db-bg-color);
66
+ border: none;
67
+ border-radius: 100px;
68
+ font-size: 15px;
69
+ cursor: pointer;
70
+ transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
71
+ box-shadow: 0 4px 12px rgba(var(--db-primary-rgb), 0.2);
72
+
73
+ &:hover {
74
+ transform: translateY(-2px);
75
+ box-shadow: 0 6px 20px rgba(var(--db-primary-rgb), 0.3);
76
+ background: var(--db-primary);
77
+ }
78
+
79
+ &:active {
80
+ transform: translateY(0);
81
+ }
82
+ }
83
+
84
+ app-login-form {
85
+ width: 100%;
86
+ animation: fade-in 0.5s ease;
87
+ }
88
+
89
+ .session-initializer {
90
+ display: flex;
91
+ flex-direction: column;
92
+ align-items: center;
93
+ justify-content: center;
94
+ gap: 16px;
95
+ animation: fade-in 0.4s ease;
96
+
97
+ mat-progress-spinner {
98
+ filter: drop-shadow(0 4px 12px rgba(var(--db-primary-rgb), 0.2));
99
+ }
100
+
101
+ p {
102
+ margin: 0;
103
+ font-size: 0.9rem;
104
+ font-weight: 500;
105
+ color: var(--db-text-secondary);
106
+ letter-spacing: 0.02em;
107
+ }
108
+ }
109
+ }
110
+
111
+ // @keyframes float {
112
+ // 0%,
113
+ // 100% {
114
+ // transform: translateY(0);
115
+ // }
116
+ // 50% {
117
+ // transform: translateY(-10px);
118
+ // }
119
+ // }
120
+
121
+ // @keyframes fade-in-up {
122
+ // from {
123
+ // opacity: 0;
124
+ // transform: translateY(20px);
125
+ // }
126
+ // to {
127
+ // opacity: 1;
128
+ // transform: translateY(0);
129
+ // }
130
+ // }
131
+
8
132
  /* BASE CHAT WINDOW STYLES */
9
133
  .chat-window {
10
134
  /* Default Popup State */
@@ -17,15 +141,14 @@
17
141
  width: clamp(400px, 30vw, 450px);
18
142
  height: clamp(620px, 70vh, 660px);
19
143
 
20
- background-color: var(--background-color);
144
+ background-color: var(--db-bg-color);
21
145
  border-radius: 20px;
22
- border-color: var(--border-color);
23
- box-shadow: var(--border-shadow-color);
146
+ border: 1px solid var(--db-border-color);
147
+ // box-shadow: var(--db-border-shadow);
24
148
  display: flex;
25
149
  flex-direction: column;
26
150
  overflow: hidden;
27
151
  user-select: none;
28
- cursor: move;
29
152
  animation: slide-in 0.5s ease;
30
153
 
31
154
  /* FULLSCREEN STATE */
@@ -62,22 +185,41 @@
62
185
  cursor: default;
63
186
  }
64
187
 
65
- /* Fullscreen Layout Overrides */
66
- .chat-content-wrapper {
67
- flex-direction: row; // Side-by-side layout
68
- }
188
+ /* Fullscreen Layout Overrides for Tablet and Desktop */
189
+ @media (min-width: 769px) {
190
+ .chat-content-wrapper {
191
+ flex-direction: row; // Side-by-side layout
192
+ }
69
193
 
70
- app-chat-history-sidebar {
71
- width: 260px;
72
- flex: 0 0 260px;
73
- border-right: 1px solid var(--border-color);
74
- display: flex !important;
75
- }
194
+ app-chat-history {
195
+ width: 260px;
196
+ flex: 0 0 260px;
197
+ border-right: 1px solid var(--db-border-color);
198
+ display: flex !important;
76
199
 
77
- .messages-view app-chat-input {
78
- max-width: 800px;
79
- margin: 0 auto;
80
- width: 100%;
200
+ &.sidebar-closed {
201
+ display: none !important;
202
+ }
203
+ }
204
+
205
+ .messages-view app-chat-input {
206
+ max-width: 800px;
207
+ margin: 0 auto;
208
+ width: 100%;
209
+
210
+ ::ng-deep .chat-input {
211
+ padding: 12px;
212
+
213
+ input {
214
+ padding: 14px 60px 14px 20px; // Extra right padding to make room for the button
215
+ font-size: 15px;
216
+ }
217
+
218
+ button {
219
+ right: 15px;
220
+ }
221
+ }
222
+ }
81
223
  }
82
224
  }
83
225
  }
@@ -121,7 +263,7 @@
121
263
  overflow: hidden;
122
264
  position: relative;
123
265
 
124
- app-chat-history-sidebar {
266
+ app-chat-history {
125
267
  height: 100%;
126
268
  width: 100%;
127
269
  display: flex;
@@ -190,8 +332,127 @@
190
332
  width: 90%;
191
333
  height: calc(100% - 40px);
192
334
  }
335
+ }
336
+
337
+ /* --- PROFILE MENU STYLES --- */
338
+ ::ng-deep .profile-menu.mat-mdc-menu-panel {
339
+ min-width: 180px !important;
340
+ max-width: 200px !important;
341
+ border-radius: 16px !important;
342
+ overflow: hidden;
343
+ margin-top: 8px;
344
+ box-shadow: 0 10px 25px rgba(var(--black-rgb), 0.1) !important;
345
+ background-color: var(--db-bg-color) !important;
346
+
347
+ .mat-mdc-menu-content {
348
+ padding: 0 !important;
349
+ }
350
+ }
351
+
352
+ .menu-profile-header {
353
+ padding: 12px 8px;
354
+ display: flex;
355
+ align-items: center;
356
+ gap: 8px;
357
+ background-color: var(--db-bg-color);
358
+
359
+ .avatar-container {
360
+ width: 40px;
361
+ height: 40px;
362
+ border-radius: 50%;
363
+ overflow: hidden;
364
+ background-color: rgba(var(--db-primary-rgb), 0.1);
365
+ display: flex;
366
+ align-items: center;
367
+ justify-content: center;
368
+ flex-shrink: 0;
369
+
370
+ .menu-avatar {
371
+ width: 100%;
372
+ height: 100%;
373
+ object-fit: cover;
374
+ }
375
+
376
+ .menu-avatar-icon {
377
+ font-size: 40px;
378
+ width: 40px;
379
+ height: 40px;
380
+ color: var(--db-text-secondary);
381
+ }
382
+ }
383
+
384
+ .user-info {
385
+ display: flex;
386
+ flex-direction: column;
387
+ overflow: hidden;
388
+
389
+ .name-badge {
390
+ display: flex;
391
+ align-items: center;
392
+ // gap: 8px;
393
+ // margin-bottom: 4px;
394
+
395
+ .user-name {
396
+ font-weight: 600;
397
+ font-size: 0.9rem;
398
+ color: var(--db-text-primary);
399
+ white-space: nowrap;
400
+ overflow: hidden;
401
+ text-overflow: ellipsis;
402
+ }
403
+
404
+ .pro-badge {
405
+ background-color: #e6f7ef;
406
+ color: #10b981;
407
+ font-size: 0.65rem;
408
+ font-weight: 700;
409
+ padding: 2px 8px;
410
+ border-radius: 4px;
411
+ text-transform: uppercase;
412
+ letter-spacing: 0.5px;
413
+ }
414
+ }
415
+
416
+ .user-email {
417
+ color: var(--db-text-secondary);
418
+ font-weight: 300;
419
+ font-size: 0.75rem;
420
+ white-space: nowrap;
421
+ overflow: hidden;
422
+ text-overflow: ellipsis;
423
+ }
424
+ }
425
+ }
426
+
427
+ ::ng-deep .profile-menu {
428
+ .mat-mdc-menu-item {
429
+ height: 40px !important;
430
+ padding: 0 16px !important;
431
+
432
+ .mdc-list-item__label {
433
+ display: flex;
434
+ align-items: center;
435
+ gap: 12px;
436
+ font-size: 0.9rem;
437
+ color: var(--db-text-primary);
438
+ }
439
+
440
+ mat-icon {
441
+ margin: 0 !important;
442
+ color: var(--db-text-secondary);
443
+ font-size: 22px;
444
+ width: 22px;
445
+ height: 22px;
446
+ }
447
+
448
+ &:hover {
449
+ background-color: rgba(var(--db-primary-rgb), 0.04) !important;
450
+ }
451
+ }
193
452
 
194
- .chat-window.fullscreen app-chat-history-sidebar {
195
- display: none !important; // hide sidebar on tiny screens
453
+ mat-divider {
454
+ border-top-color: var(--db-border-color) !important;
455
+ opacity: 0.6;
456
+ margin: 0 !important;
196
457
  }
197
458
  }
@@ -22,8 +22,8 @@
22
22
  text-align: center;
23
23
  margin: 0 0 10px 0;
24
24
  font-size: 1.5em;
25
- color: var(--text-color);
26
- font-family: var(--font-family);
25
+ color: var(--db-text-primary);
26
+ font-family: var(--db-font);
27
27
  font-weight: 600;
28
28
  }
29
29
 
@@ -36,17 +36,17 @@
36
36
  .login-input {
37
37
  padding: 10px 12px;
38
38
  border-radius: 12px !important;
39
- border: 1px solid var(--border-color);
39
+ border: 1px solid var(--db-border-color);
40
40
  font-size: 0.9em;
41
- background: var(--background-color);
42
- color: var(--text-color);
41
+ background: var(--db-bg-color);
42
+ color: var(--db-text-primary);
43
43
  width: 100%; // Full width
44
44
  box-sizing: border-box; // Ensure padding doesn’t increase total width
45
45
 
46
46
  &:focus {
47
47
  outline: none;
48
- background-color: var(--background-color);
49
- border-color: var(--primary-color);
48
+ background-color: var(--db-bg-color);
49
+ border-color: var(--db-primary);
50
50
  }
51
51
  }
52
52
 
@@ -71,7 +71,7 @@
71
71
  align-items: center;
72
72
  justify-content: center;
73
73
  padding: 4px;
74
- color: var(--text-color);
74
+ color: var(--db-text-primary);
75
75
  opacity: 0.6;
76
76
  transition: opacity 0.2s;
77
77
 
@@ -108,8 +108,8 @@
108
108
  height: 14px;
109
109
  cursor: pointer;
110
110
  margin: 0;
111
- background-color: var(--background-color);
112
- border: 1px solid var(--secondary-text-color);
111
+ background-color: var(--db-bg-color);
112
+ border: 1px solid var(--db-text-secondary);
113
113
  border-radius: 4px;
114
114
  display: flex;
115
115
  align-items: center;
@@ -117,26 +117,26 @@
117
117
  transition: all 0.2s;
118
118
 
119
119
  &:checked {
120
- background-color: var(--primary-color);
121
- border-color: var(--primary-color);
120
+ background-color: var(--db-primary);
121
+ border-color: var(--db-primary);
122
122
 
123
123
  &::after {
124
124
  content: '✓';
125
125
  font-size: 12px;
126
- color: var(--white);
126
+ color: var(--db-bg-color);
127
127
  font-weight: bold;
128
128
  }
129
129
  }
130
130
 
131
131
  &:hover {
132
- border-color: var(--primary-color);
132
+ border-color: var(--db-primary);
133
133
  }
134
134
  }
135
135
 
136
136
  .remember-me-text {
137
137
  font-size: 0.8em;
138
- color: var(--text-color);
139
- font-family: var(--font-family);
138
+ color: var(--db-text-primary);
139
+ font-family: var(--db-font);
140
140
  font-weight: 300;
141
141
  }
142
142
  }
@@ -159,8 +159,8 @@
159
159
 
160
160
  .input-label {
161
161
  font-size: 0.85em;
162
- color: var(--text-color);
163
- font-family: var(--font-family);
162
+ color: var(--db-text-primary);
163
+ font-family: var(--db-font);
164
164
  font-weight: 500;
165
165
  margin-left: 2px;
166
166
  }
@@ -170,7 +170,7 @@
170
170
  color: var(--red);
171
171
  margin-top: 2px;
172
172
  margin-left: 2px;
173
- font-family: var(--font-family);
173
+ font-family: var(--db-font);
174
174
  }
175
175
  }
176
176
 
@@ -183,9 +183,9 @@
183
183
  transition: all 0.2s ease;
184
184
 
185
185
  &.primary {
186
- background: var(--primary-color);
187
- color: var(--white);
188
- border: 1px solid var(--primary-color);
186
+ background: var(--db-primary);
187
+ color: var(--db-bg-color);
188
+ border: 1px solid var(--db-primary);
189
189
 
190
190
  &:hover {
191
191
  opacity: 0.9;
@@ -199,8 +199,8 @@
199
199
 
200
200
  &.secondary {
201
201
  background: transparent;
202
- color: var(--text-color);
203
- border: 1px solid var(--primary-color);
202
+ color: var(--db-text-primary);
203
+ border: 1px solid var(--db-primary);
204
204
 
205
205
  &:hover {
206
206
  opacity: 0.9;
@@ -7,11 +7,12 @@
7
7
  height: 90vh;
8
8
  min-height: 500px;
9
9
  max-width: none;
10
- background: var(--background-color);
11
- color: var(--text-color);
10
+ background: var(--db-bg-color);
11
+ color: var(--db-text-primary);
12
+ font-family: var(--db-font, 'Roboto', 'Helvetica Neue', sans-serif);
12
13
  border-radius: 12px;
13
14
  overflow: hidden;
14
- box-shadow: var(--border-shadow-color);
15
+ box-shadow: var(--db-border-shadow);
15
16
 
16
17
  .header {
17
18
  flex: 0 0 auto;
@@ -19,8 +20,8 @@
19
20
  justify-content: space-between;
20
21
  align-items: center;
21
22
  padding: 12px 20px;
22
- border-bottom: 1px solid var(--border-color);
23
- background: var(--background-color);
23
+ border-bottom: 1px solid var(--db-border-color);
24
+ background: var(--db-bg-color);
24
25
 
25
26
  .title-section {
26
27
  display: flex;
@@ -28,7 +29,7 @@
28
29
  gap: 10px;
29
30
 
30
31
  .header-icon {
31
- color: var(--secondary-text-color);
32
+ color: var(--db-text-secondary);
32
33
  font-size: 20px;
33
34
  width: 20px;
34
35
  height: 20px;
@@ -38,7 +39,7 @@
38
39
  margin: 0;
39
40
  font-size: 0.95rem;
40
41
  font-weight: 500;
41
- color: var(--secondary-text-color);
42
+ color: var(--db-text-secondary);
42
43
  }
43
44
  }
44
45
  }
@@ -54,7 +55,7 @@
54
55
  .sidebar {
55
56
  width: 240px;
56
57
  background: rgba(var(--black-rgb), 0.02);
57
- border-right: 1px solid var(--border-color);
58
+ border-right: 1px solid var(--db-border-color);
58
59
  padding: 16px 8px;
59
60
  display: flex;
60
61
  flex-direction: column;
@@ -84,7 +85,7 @@
84
85
  font-size: 0.75rem;
85
86
  font-weight: 600;
86
87
  text-transform: uppercase;
87
- color: var(--secondary-text-color);
88
+ color: var(--db-text-secondary);
88
89
  letter-spacing: 0.5px;
89
90
  }
90
91
 
@@ -96,13 +97,13 @@
96
97
  border-radius: 6px;
97
98
  cursor: pointer;
98
99
  transition: all 0.2s ease;
99
- color: var(--text-color);
100
+ color: var(--db-text-primary);
100
101
 
101
102
  mat-icon {
102
103
  font-size: 18px;
103
104
  width: 18px;
104
105
  height: 18px;
105
- color: var(--secondary-text-color);
106
+ color: var(--db-text-secondary);
106
107
  }
107
108
 
108
109
  span {
@@ -115,12 +116,12 @@
115
116
  }
116
117
 
117
118
  &.active {
118
- background: rgba(var(--primary-color-rgb), 0.1);
119
+ background: rgba(var(--db-primary-rgb), 0.1);
119
120
  font-weight: 500;
120
- color: var(--primary-color);
121
+ color: var(--db-primary);
121
122
 
122
123
  mat-icon {
123
- color: var(--primary-color);
124
+ color: var(--db-primary);
124
125
  }
125
126
  }
126
127
  }
@@ -150,7 +151,6 @@
150
151
  }
151
152
  }
152
153
  }
153
-
154
154
  }
155
155
 
156
156
  .full-width {
@@ -172,6 +172,6 @@
172
172
  // Dark mode overrides
173
173
  :host-context(.dark-theme) {
174
174
  .personalization-container .sidebar {
175
- background: var(--background-color);
175
+ background: var(--db-bg-color);
176
176
  }
177
- }
177
+ }