@adzen/doohbot 1.0.1 → 1.0.2

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 (92) hide show
  1. package/README.md +20 -14
  2. package/fesm2022/adzen-doohbot.mjs +4622 -0
  3. package/fesm2022/adzen-doohbot.mjs.map +1 -0
  4. package/index.d.ts +1301 -0
  5. package/index.d.ts.map +1 -0
  6. package/package.json +29 -57
  7. package/src/lib/app/chat/components/chat-button/chat-button.component.scss +115 -0
  8. package/src/lib/app/chat/components/chat-footer/chat-footer.component.scss +14 -0
  9. package/src/lib/app/chat/components/chat-header/chat-header.component.scss +82 -0
  10. package/src/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.scss +369 -0
  11. package/src/lib/app/chat/components/chat-message/chat-message.component.scss +235 -0
  12. package/src/lib/app/chat/components/chat-window/chat-window.component.scss +194 -0
  13. package/src/lib/app/chat/components/message-input/message-input.component.scss +59 -0
  14. package/src/lib/app/chat/components/message-list/message-list.component.scss +258 -0
  15. package/src/lib/app/login/login-form.component.scss +213 -0
  16. package/src/lib/app/personalization/personalization-dialog.component.scss +177 -0
  17. package/src/lib/app/personalization/sections/account/account-section.component.scss +209 -0
  18. package/src/lib/app/personalization/sections/instruction/instruction-section.component.scss +63 -0
  19. package/src/lib/app/personalization/sections/preferences/preferences-section.component.scss +199 -0
  20. package/src/lib/app/personalization/sections/terms/terms-section.component.scss +74 -0
  21. package/src/lib/doohbot.component.scss +18 -0
  22. package/{projects/doohbot/src/lib/shared/chips/chips.scss → src/lib/shared/chips/chips.component.scss} +3 -1
  23. package/src/lib/shared/dialog/dialog.component.scss +90 -0
  24. package/src/lib/shared/dropdown-menu/dropdown-menu.component.scss +53 -0
  25. package/src/lib/shared/input-dialog/input-dialog.component.scss +71 -0
  26. package/src/lib/shared/popout/popout.scss +0 -0
  27. package/src/lib/shared/snackbar/snackbar.component.scss +125 -0
  28. package/src/lib/styles/_theme.scss +69 -0
  29. package/src/lib/styles/material-override.scss +338 -0
  30. package/{projects/doohbot/src/lib/utils → src/lib/styles}/utility.scss +85 -33
  31. package/src/lib/theme/index.scss +8 -0
  32. package/src/lib/theme/palettes/aqua.scss +88 -0
  33. package/src/lib/theme/palettes/candy.scss +88 -0
  34. package/src/lib/theme/palettes/doohbot.scss +88 -0
  35. package/src/lib/theme/palettes/forest.scss +88 -0
  36. package/src/lib/theme/palettes/midnight.scss +88 -0
  37. package/src/lib/theme/palettes/slate.scss +88 -0
  38. package/src/lib/theme/palettes/sunset.scss +86 -0
  39. package/src/lib/theme/themes.scss +7 -0
  40. package/src/lib/theme/tokens/semantic.scss +102 -0
  41. package/.editorconfig +0 -17
  42. package/.vscode/extensions.json +0 -4
  43. package/.vscode/launch.json +0 -26
  44. package/.vscode/settings.json +0 -13
  45. package/.vscode/tasks.json +0 -42
  46. package/adzen-doohbot-0.0.1.tgz +0 -0
  47. package/adzen-doohbot-1.0.0.tgz +0 -0
  48. package/adzen-doohbot-1.0.1.tgz +0 -0
  49. package/angular.json +0 -119
  50. package/projects/doohbot/README.md +0 -63
  51. package/projects/doohbot/ng-package.json +0 -16
  52. package/projects/doohbot/package.json +0 -12
  53. package/projects/doohbot/src/lib/directives/draggable/draggable-dialog.directive.ts +0 -62
  54. package/projects/doohbot/src/lib/directives/draggable/draggable-dialog.module.ts +0 -9
  55. package/projects/doohbot/src/lib/directives/resizable/resizable-dialog.directive.ts +0 -163
  56. package/projects/doohbot/src/lib/directives/resizable/resizable-dialog.module.ts +0 -9
  57. package/projects/doohbot/src/lib/doohbot.html +0 -216
  58. package/projects/doohbot/src/lib/doohbot.scss +0 -568
  59. package/projects/doohbot/src/lib/doohbot.spec.ts +0 -21
  60. package/projects/doohbot/src/lib/doohbot.ts +0 -345
  61. package/projects/doohbot/src/lib/elements/elements.ts +0 -25
  62. package/projects/doohbot/src/lib/helpers/predefined_messages.ts +0 -2
  63. package/projects/doohbot/src/lib/inputs/doohbot-input.ts +0 -25
  64. package/projects/doohbot/src/lib/model/doohbot.intents.ts +0 -24
  65. package/projects/doohbot/src/lib/model/message.ts +0 -13
  66. package/projects/doohbot/src/lib/model/token.ts +0 -3
  67. package/projects/doohbot/src/lib/services/messaging.service.ts +0 -73
  68. package/projects/doohbot/src/lib/shared/chips/chips.html +0 -9
  69. package/projects/doohbot/src/lib/shared/chips/chips.spec.ts +0 -23
  70. package/projects/doohbot/src/lib/shared/chips/chips.ts +0 -18
  71. package/projects/doohbot/src/lib/shared/snackbar/snackbar.html +0 -7
  72. package/projects/doohbot/src/lib/shared/snackbar/snackbar.scss +0 -73
  73. package/projects/doohbot/src/lib/shared/snackbar/snackbar.spec.ts +0 -21
  74. package/projects/doohbot/src/lib/shared/snackbar/snackbar.ts +0 -44
  75. package/projects/doohbot/src/lib/utils/material-override.scss +0 -312
  76. package/projects/doohbot/src/public-api.ts +0 -5
  77. package/projects/doohbot/tsconfig.lib.json +0 -19
  78. package/projects/doohbot/tsconfig.lib.prod.json +0 -11
  79. package/projects/doohbot/tsconfig.spec.json +0 -14
  80. package/projects/doohbot-element/public/favicon.ico +0 -0
  81. package/projects/doohbot-element/src/app/app.config.ts +0 -12
  82. package/projects/doohbot-element/src/app/app.html +0 -1
  83. package/projects/doohbot-element/src/app/app.routes.ts +0 -3
  84. package/projects/doohbot-element/src/app/app.spec.ts +0 -23
  85. package/projects/doohbot-element/src/app/app.ts +0 -10
  86. package/projects/doohbot-element/src/index.html +0 -15
  87. package/projects/doohbot-element/src/main.ts +0 -6
  88. package/projects/doohbot-element/src/styles.scss +0 -15
  89. package/projects/doohbot-element/tsconfig.app.json +0 -15
  90. package/projects/doohbot-element/tsconfig.spec.json +0 -14
  91. package/tsconfig.json +0 -43
  92. /package/{projects/doohbot-element/src/app/app.scss → src/lib/shared/menu-item/menu-item.component.scss} +0 -0
@@ -0,0 +1,258 @@
1
+ /* Chat messages */
2
+ :host {
3
+ display: flex;
4
+ flex-direction: column;
5
+ flex-grow: 1;
6
+ overflow: hidden;
7
+ position: relative;
8
+ }
9
+
10
+ .login-btn {
11
+ padding: 10px 15px;
12
+ border: none;
13
+ border-radius: 20px;
14
+ background-color: var(--primary-color);
15
+ color: var(--user-text-color);
16
+ font-size: 1em;
17
+ cursor: pointer;
18
+ transition: background-color 0.2s ease;
19
+ }
20
+
21
+ .chat-messages {
22
+ flex-grow: 1;
23
+ padding: 20px;
24
+ overflow-y: auto;
25
+ display: flex;
26
+ flex-direction: column;
27
+ gap: 10px;
28
+ scroll-behavior: smooth;
29
+ }
30
+
31
+ /* Webkit browsers (Chrome, Edge, Safari) */
32
+ .chat-messages::-webkit-scrollbar {
33
+ width: 6px;
34
+ }
35
+
36
+ .chat-messages::-webkit-scrollbar-track {
37
+ background: transparent;
38
+ }
39
+
40
+ .chat-messages::-webkit-scrollbar-thumb {
41
+ background: rgba(var(--black-rgb), 0.1);
42
+ border-radius: 10px;
43
+ }
44
+
45
+ .chat-messages::-webkit-scrollbar-thumb:hover {
46
+ background: rgba(var(--black-rgb), 0.1);
47
+ }
48
+
49
+ /* Firefox */
50
+ .chat-messages {
51
+ // scrollbar-width: thin;
52
+ // scrollbar-color: var(--primary-color) var(--background-color);
53
+
54
+ /* Message style delegates to app-chat-message */
55
+ app-chat-message {
56
+ display: block;
57
+ width: 100%;
58
+ }
59
+
60
+ /* Welcome screen */
61
+ .welcome-screen {
62
+ display: flex;
63
+ flex-direction: column;
64
+ justify-content: center;
65
+ align-items: center;
66
+ text-align: center;
67
+ height: 100%;
68
+ padding: 0 20px;
69
+ }
70
+
71
+ .welcome-image {
72
+ width: 80px;
73
+ margin-bottom: 30px;
74
+ }
75
+
76
+ .marquee-container {
77
+ margin-bottom: 12px;
78
+ }
79
+
80
+ .welcome-greeting {
81
+ margin: 0;
82
+ color: var(--text-color);
83
+ font-family: var(--font-family);
84
+ font-size: 24px;
85
+ font-weight: 600;
86
+ background: var(--text-color);
87
+ -webkit-background-clip: text;
88
+ -webkit-text-fill-color: transparent;
89
+ background-clip: text;
90
+ display: inline-block;
91
+ /* Ensure it stays inline for marquee */
92
+ }
93
+
94
+ /* Prevent emoji from inheriting gradient text style */
95
+ .welcome-greeting .emoji {
96
+ background: none;
97
+ -webkit-background-clip: initial;
98
+ -webkit-text-fill-color: initial;
99
+ background-clip: initial;
100
+ // color: var(--text-color); /*apply color here */
101
+ }
102
+
103
+ .welcome-screen h3 {
104
+ margin: 0 0 5px 0;
105
+ color: var(--text-color);
106
+ font-family: var(--font-family);
107
+ font-size: 18px;
108
+ }
109
+
110
+ .welcome-screen p {
111
+ margin: 0;
112
+ color: var(--secondary-text-color);
113
+ font-size: 14px;
114
+ font-family: var(--font-family);
115
+ margin-bottom: 30px;
116
+ }
117
+
118
+ @keyframes fadeIn {
119
+ from {
120
+ opacity: 0;
121
+ transform: translateY(10px);
122
+ }
123
+
124
+ to {
125
+ opacity: 1;
126
+ transform: translateY(0);
127
+ }
128
+ }
129
+
130
+ // Optional: Pulse effect for streaming messages (if supported by class)
131
+ .message-wrapper.streaming .assistant-avatar {
132
+ box-shadow: 0 0 8px rgba(var(--black-rgb), 0.1);
133
+ transition: all 0.3s ease;
134
+ }
135
+
136
+ /* Typing indicator */
137
+ .typing-indicator {
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: flex-start;
141
+ gap: 4px;
142
+ min-height: 20px;
143
+
144
+ .thinking-text {
145
+ font-size: 13px;
146
+ color: var(--secondary-text-color);
147
+ margin-right: 4px;
148
+ font-family: var(--font-family);
149
+ }
150
+ }
151
+
152
+ .typing-indicator span:not(.thinking-text) {
153
+ width: 6px;
154
+ height: 6px;
155
+ background-color: var(--typing-indicator-color);
156
+ border-radius: 50%;
157
+ animation: blink 1.4s infinite both;
158
+ }
159
+
160
+ .typing-indicator span:nth-child(2) {
161
+ animation-delay: 0.2s;
162
+ }
163
+
164
+ .typing-indicator span:nth-child(3) {
165
+ animation-delay: 0.4s;
166
+ }
167
+
168
+ @keyframes blink {
169
+
170
+ 0%,
171
+ 80%,
172
+ 100% {
173
+ opacity: 0.2;
174
+ }
175
+
176
+ 40% {
177
+ opacity: 1;
178
+ }
179
+ }
180
+
181
+ /* Auth Buttons (Primary/Secondary) */
182
+ .auth-buttons-container {
183
+ display: flex;
184
+ flex-direction: row;
185
+ justify-content: center;
186
+ gap: 10px;
187
+ }
188
+
189
+ .auth-btn {
190
+ padding: 8px 16px;
191
+ border-radius: 20px;
192
+ font-size: 0.9em;
193
+ font-weight: 500;
194
+ cursor: pointer;
195
+ transition: all 0.2s ease;
196
+
197
+ &.primary {
198
+ background: var(--primary-color);
199
+ color: var(--white);
200
+ border: 1px solid var(--primary-color);
201
+
202
+ &:hover {
203
+ opacity: 0.9;
204
+ }
205
+
206
+ &:disabled {
207
+ opacity: 0.5;
208
+ cursor: not-allowed;
209
+ }
210
+ }
211
+
212
+ &.secondary {
213
+ background: transparent;
214
+ color: var(--primary-color);
215
+ border: 1px solid var(--primary-color);
216
+
217
+ &:hover {
218
+ opacity: 0.9;
219
+ }
220
+ }
221
+ }
222
+ }
223
+
224
+ /* Scroll to bottom button */
225
+ .scroll-bottom-btn {
226
+ position: absolute;
227
+ bottom: 80px;
228
+ /* Above the input area */
229
+ left: 50%;
230
+ transform: translateX(-50%);
231
+ width: 32px;
232
+ height: 32px;
233
+ border-radius: 50%;
234
+ background-color: var(--background-color);
235
+ border: 1px solid var(--border-color);
236
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
237
+ display: flex;
238
+ align-items: center;
239
+ justify-content: center;
240
+ cursor: pointer;
241
+ z-index: 100;
242
+ animation: fadeIn 0.2s ease-out;
243
+
244
+ mat-icon {
245
+ font-size: 18px;
246
+ width: 18px;
247
+ height: 18px;
248
+ color: var(--secondary-text-color);
249
+ }
250
+
251
+ &:hover {
252
+ background-color: var(--bot-message-color);
253
+
254
+ mat-icon {
255
+ color: var(--text-color);
256
+ }
257
+ }
258
+ }
@@ -0,0 +1,213 @@
1
+ .login-form-container {
2
+ padding: 30px;
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: 20px;
6
+ height: 100%;
7
+ justify-content: center;
8
+ align-items: center;
9
+ margin: 0 auto; // Center horizontally
10
+ box-sizing: border-box; // Include padding/border in width/height
11
+ max-width: 400px; // Set a maximum width
12
+ width: 100%; // Full width up to max-width
13
+ animation: fadeIn 0.3s ease-in-out;
14
+
15
+ .login-title {
16
+ text-align: center;
17
+ margin: 0 0 10px 0;
18
+ font-size: 1.5em;
19
+ color: var(--text-color);
20
+ font-family: var(--font-family);
21
+ font-weight: 600;
22
+ }
23
+
24
+ .login-fields {
25
+ display: flex;
26
+ flex-direction: column;
27
+ gap: 15px;
28
+ width: 100%;
29
+
30
+ .login-input {
31
+ padding: 10px 12px;
32
+ border-radius: 12px !important;
33
+ border: 1px solid var(--border-color);
34
+ font-size: 0.9em;
35
+ background: var(--background-color);
36
+ color: var(--text-color);
37
+ width: 100%; // Full width
38
+ box-sizing: border-box; // Ensure padding doesn’t increase total width
39
+
40
+ &:focus {
41
+ outline: none;
42
+ background-color: var(--background-color);
43
+ border-color: var(--primary-color);
44
+ }
45
+ }
46
+
47
+ .password-wrapper {
48
+ position: relative;
49
+ display: flex;
50
+ align-items: center;
51
+
52
+ .login-input {
53
+ width: 100%;
54
+ padding-right: 40px; // Space for toggle icon
55
+ box-sizing: border-box; // Ensure padding doesn’t increase total width
56
+ }
57
+
58
+ .password-toggle-btn {
59
+ position: absolute;
60
+ right: 8px;
61
+ background: transparent;
62
+ border: none;
63
+ cursor: pointer;
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ padding: 4px;
68
+ color: var(--text-color);
69
+ opacity: 0.6;
70
+ transition: opacity 0.2s;
71
+
72
+ &:hover {
73
+ opacity: 1;
74
+ }
75
+
76
+ mat-icon {
77
+ font-size: 20px;
78
+ width: 20px;
79
+ height: 20px;
80
+ }
81
+ }
82
+ }
83
+
84
+ .remember-me-container {
85
+ display: flex;
86
+ align-items: center;
87
+ margin-top: -5px;
88
+ user-select: none;
89
+
90
+ .remember-me-label {
91
+ display: flex;
92
+ align-items: center;
93
+ gap: 8px;
94
+ cursor: pointer;
95
+ padding: 4px 0;
96
+ }
97
+
98
+ .remember-me-checkbox {
99
+ appearance: none;
100
+ -webkit-appearance: none;
101
+ width: 14px;
102
+ height: 14px;
103
+ cursor: pointer;
104
+ margin: 0;
105
+ background-color: var(--background-color);
106
+ border: 1px solid var(--secondary-text-color);
107
+ border-radius: 4px;
108
+ display: flex;
109
+ align-items: center;
110
+ justify-content: center;
111
+ transition: all 0.2s;
112
+
113
+ &:checked {
114
+ background-color: var(--primary-color);
115
+ border-color: var(--primary-color);
116
+
117
+ &::after {
118
+ content: '✓';
119
+ font-size: 12px;
120
+ color: var(--white);
121
+ font-weight: bold;
122
+ }
123
+ }
124
+
125
+ &:hover {
126
+ border-color: var(--primary-color);
127
+ }
128
+ }
129
+
130
+ .remember-me-text {
131
+ font-size: 0.8em;
132
+ color: var(--text-color);
133
+ font-family: var(--font-family);
134
+ font-weight: 300;
135
+ }
136
+ }
137
+ }
138
+
139
+ .login-actions {
140
+ display: flex;
141
+ justify-content: center;
142
+ gap: 10px;
143
+ margin-top: 10px;
144
+ }
145
+
146
+ .input-group {
147
+ display: flex;
148
+ flex-direction: column;
149
+ gap: 6px; // space between label and input
150
+ text-align: left;
151
+ width: 100%;
152
+ }
153
+
154
+ .input-label {
155
+ font-size: 0.85em;
156
+ color: var(--text-color);
157
+ font-family: var(--font-family);
158
+ font-weight: 500;
159
+ margin-left: 2px;
160
+ }
161
+
162
+ .error-text {
163
+ font-size: 0.6em;
164
+ color: var(--red);
165
+ margin-top: 2px;
166
+ margin-left: 2px;
167
+ font-family: var(--font-family);
168
+ }
169
+ }
170
+
171
+ .auth-btn {
172
+ padding: 8px 18px;
173
+ border-radius: 20px;
174
+ cursor: pointer;
175
+ font-size: 0.9em;
176
+ font-weight: 500;
177
+ transition: all 0.2s ease;
178
+
179
+ &.primary {
180
+ background: var(--primary-color);
181
+ color: var(--white);
182
+ border: 1px solid var(--primary-color);
183
+
184
+ &:hover {
185
+ opacity: 0.9;
186
+ }
187
+
188
+ &:disabled {
189
+ opacity: 0.5;
190
+ cursor: not-allowed;
191
+ }
192
+ }
193
+
194
+ &.secondary {
195
+ background: transparent;
196
+ color: var(--text-color);
197
+ border: 1px solid var(--primary-color);
198
+
199
+ &:hover {
200
+ opacity: 0.9;
201
+ }
202
+ }
203
+ }
204
+
205
+ @keyframes fadeIn {
206
+ from {
207
+ opacity: 0;
208
+ }
209
+
210
+ to {
211
+ opacity: 1;
212
+ }
213
+ }
@@ -0,0 +1,177 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ .personalization-container {
4
+ display: flex;
5
+ flex-direction: column;
6
+ width: 100%;
7
+ height: 90vh;
8
+ min-height: 500px;
9
+ max-width: none;
10
+ background: var(--background-color);
11
+ color: var(--text-color);
12
+ border-radius: 12px;
13
+ overflow: hidden;
14
+ box-shadow: var(--border-shadow-color);
15
+
16
+ .header {
17
+ flex: 0 0 auto;
18
+ display: flex;
19
+ justify-content: space-between;
20
+ align-items: center;
21
+ padding: 12px 20px;
22
+ border-bottom: 1px solid var(--border-color);
23
+ background: var(--background-color);
24
+
25
+ .title-section {
26
+ display: flex;
27
+ align-items: center;
28
+ gap: 10px;
29
+
30
+ .header-icon {
31
+ color: var(--secondary-text-color);
32
+ font-size: 20px;
33
+ width: 20px;
34
+ height: 20px;
35
+ }
36
+
37
+ h2 {
38
+ margin: 0;
39
+ font-size: 0.95rem;
40
+ font-weight: 500;
41
+ color: var(--secondary-text-color);
42
+ }
43
+ }
44
+ }
45
+
46
+ .dialog-content-body {
47
+ display: flex;
48
+ flex: 1;
49
+ overflow: hidden;
50
+ background: rgba(var(--black-rgb), 0.012); // Subtle canvas grey
51
+ }
52
+
53
+ // --- Sidebar ---
54
+ .sidebar {
55
+ width: 240px;
56
+ background: rgba(var(--black-rgb), 0.02);
57
+ border-right: 1px solid var(--border-color);
58
+ padding: 16px 8px;
59
+ display: flex;
60
+ flex-direction: column;
61
+ gap: 2px;
62
+ overflow-y: auto;
63
+ scrollbar-gutter: stable;
64
+
65
+ &::-webkit-scrollbar {
66
+ width: 4px;
67
+ }
68
+
69
+ &::-webkit-scrollbar-track {
70
+ background: transparent;
71
+ }
72
+
73
+ &::-webkit-scrollbar-thumb {
74
+ background: rgba(var(--black-rgb), 0.1);
75
+ border-radius: 10px;
76
+
77
+ &:hover {
78
+ background: rgba(var(--black-rgb), 0.2);
79
+ }
80
+ }
81
+
82
+ .nav-header {
83
+ padding: 12px 12px 6px;
84
+ font-size: 0.75rem;
85
+ font-weight: 600;
86
+ text-transform: uppercase;
87
+ color: var(--secondary-text-color);
88
+ letter-spacing: 0.5px;
89
+ }
90
+
91
+ .nav-item {
92
+ display: flex;
93
+ align-items: center;
94
+ gap: 12px;
95
+ padding: 8px 12px;
96
+ border-radius: 6px;
97
+ cursor: pointer;
98
+ transition: all 0.2s ease;
99
+ color: var(--text-color);
100
+
101
+ mat-icon {
102
+ font-size: 18px;
103
+ width: 18px;
104
+ height: 18px;
105
+ color: var(--secondary-text-color);
106
+ }
107
+
108
+ span {
109
+ font-size: 0.9rem;
110
+ font-weight: 400;
111
+ }
112
+
113
+ &:hover {
114
+ background: rgba(var(--black-rgb), 0.05);
115
+ }
116
+
117
+ &.active {
118
+ background: rgba(var(--primary-color-rgb), 0.1);
119
+ font-weight: 500;
120
+ color: var(--primary-color);
121
+
122
+ mat-icon {
123
+ color: var(--primary-color);
124
+ }
125
+ }
126
+ }
127
+ }
128
+
129
+ // --- Main Content ---
130
+ .main-content {
131
+ flex: 1;
132
+ overflow-y: auto;
133
+ position: relative;
134
+ // content sections inside will have their own white cards
135
+
136
+ &::-webkit-scrollbar {
137
+ width: 6px;
138
+ }
139
+
140
+ &::-webkit-scrollbar-track {
141
+ background: transparent;
142
+ }
143
+
144
+ &::-webkit-scrollbar-thumb {
145
+ background: rgba(var(--black-rgb), 0.1);
146
+ border-radius: 10px;
147
+
148
+ &:hover {
149
+ background: rgba(var(--black-rgb), 0.2);
150
+ }
151
+ }
152
+ }
153
+
154
+ }
155
+
156
+ .full-width {
157
+ width: 100%;
158
+ }
159
+
160
+ @keyframes slideIn {
161
+ from {
162
+ opacity: 0;
163
+ transform: translateY(4px);
164
+ }
165
+
166
+ to {
167
+ opacity: 1;
168
+ transform: translateY(0);
169
+ }
170
+ }
171
+
172
+ // Dark mode overrides
173
+ :host-context(.dark-theme) {
174
+ .personalization-container .sidebar {
175
+ background: var(--background-color);
176
+ }
177
+ }