@product7/feedback-sdk 1.3.3 → 1.3.5

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 (39) hide show
  1. package/dist/feedback-sdk.js +2441 -3240
  2. package/dist/feedback-sdk.js.map +1 -1
  3. package/dist/feedback-sdk.min.js +1 -1
  4. package/dist/feedback-sdk.min.js.map +1 -1
  5. package/package.json +1 -1
  6. package/src/api/services/MessengerService.js +76 -0
  7. package/src/core/BaseAPIService.js +4 -0
  8. package/src/index.js +2 -3
  9. package/src/styles/base.js +27 -52
  10. package/src/styles/changelog.js +152 -269
  11. package/src/styles/components.js +489 -0
  12. package/src/styles/design-tokens.js +104 -0
  13. package/src/styles/feedback.js +59 -369
  14. package/src/styles/messenger-core.js +390 -0
  15. package/src/styles/messenger-features.js +347 -0
  16. package/src/styles/messenger-help.js +298 -0
  17. package/src/styles/messenger-themes.js +500 -0
  18. package/src/styles/messenger-views.js +618 -0
  19. package/src/styles/messenger.js +558 -0
  20. package/src/styles/styles.js +24 -2
  21. package/src/styles/surveys.js +354 -0
  22. package/src/widgets/BaseWidget.js +25 -58
  23. package/src/widgets/ButtonWidget.js +3 -18
  24. package/src/widgets/ChangelogWidget.js +7 -48
  25. package/src/widgets/InlineWidget.js +16 -13
  26. package/src/widgets/MessengerWidget.js +37 -51
  27. package/src/widgets/SurveyWidget.js +42 -146
  28. package/src/widgets/TabWidget.js +2 -22
  29. package/src/widgets/messenger/MessengerState.js +49 -46
  30. package/src/widgets/messenger/components/MessengerLauncher.js +10 -5
  31. package/src/widgets/messenger/components/MessengerPanel.js +5 -27
  32. package/src/widgets/messenger/components/NavigationTabs.js +5 -14
  33. package/src/widgets/messenger/views/ChangelogView.js +13 -14
  34. package/src/widgets/messenger/views/ChatView.js +43 -36
  35. package/src/widgets/messenger/views/ConversationsView.js +16 -21
  36. package/src/widgets/messenger/views/HelpView.js +10 -10
  37. package/src/widgets/messenger/views/HomeView.js +11 -16
  38. package/src/widgets/messenger/views/PreChatFormView.js +18 -30
  39. package/src/styles/messengerStyles.js +0 -2328
@@ -0,0 +1,558 @@
1
+ export const messengerStyles = `
2
+ .messenger-widget {
3
+ font-family: inherit;
4
+ font-size: var(--font-size-base);
5
+ line-height: var(--line-height-relaxed);
6
+ }
7
+
8
+ .messenger-launcher {
9
+ position: fixed;
10
+ z-index: var(--z-modal);
11
+ }
12
+
13
+ .messenger-launcher-bottom-right {
14
+ bottom: var(--spacing-5);
15
+ right: var(--spacing-5);
16
+ }
17
+
18
+ .messenger-launcher-bottom-left {
19
+ bottom: var(--spacing-5);
20
+ left: var(--spacing-5);
21
+ }
22
+
23
+ .messenger-launcher-btn {
24
+ width: 60px;
25
+ height: 60px;
26
+ border-radius: var(--radius-full);
27
+ border: none;
28
+ background: var(--color-primary);
29
+ color: var(--color-white);
30
+ cursor: pointer;
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: center;
34
+ box-shadow: var(--shadow-lg);
35
+ transition: all var(--transition-slow);
36
+ position: relative;
37
+ }
38
+
39
+ .messenger-launcher-btn:hover {
40
+ transform: translateY(-2px);
41
+ box-shadow: var(--shadow-xl);
42
+ }
43
+
44
+ .messenger-launcher-btn:active {
45
+ transform: scale(0.95);
46
+ }
47
+
48
+ .messenger-launcher-badge {
49
+ position: absolute;
50
+ top: -4px;
51
+ right: -4px;
52
+ min-width: 20px;
53
+ height: 20px;
54
+ background: var(--color-error);
55
+ color: var(--color-white);
56
+ font-size: var(--font-size-xs);
57
+ font-weight: var(--font-weight-semibold);
58
+ border-radius: var(--radius-full);
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ padding: 0 6px;
63
+ border: 2px solid var(--color-white);
64
+ }
65
+
66
+ .messenger-panel {
67
+ position: fixed;
68
+ z-index: var(--z-popover);
69
+ width: 400px;
70
+ height: 680px;
71
+ max-height: calc(100vh - 100px);
72
+ display: none;
73
+ opacity: 0;
74
+ transform: translateY(20px) scale(0.95);
75
+ transition: all var(--transition-slow);
76
+ }
77
+
78
+ .messenger-panel.open {
79
+ display: block;
80
+ opacity: 1;
81
+ transform: translateY(0) scale(1);
82
+ }
83
+
84
+ .messenger-panel-bottom-right {
85
+ bottom: 90px;
86
+ right: var(--spacing-5);
87
+ }
88
+
89
+ .messenger-panel-bottom-left {
90
+ bottom: 90px;
91
+ left: var(--spacing-5);
92
+ }
93
+
94
+ .messenger-panel-content {
95
+ background: var(--color-white);
96
+ height: 100%;
97
+ border-radius: var(--radius-2xl);
98
+ overflow: hidden;
99
+ display: flex;
100
+ flex-direction: column;
101
+ box-shadow: var(--shadow-2xl);
102
+ border: 1px solid var(--color-border);
103
+ }
104
+
105
+ .messenger-panel-views {
106
+ flex: 1;
107
+ overflow: hidden;
108
+ display: flex;
109
+ flex-direction: column;
110
+ }
111
+
112
+ .messenger-view {
113
+ height: 100%;
114
+ display: flex;
115
+ flex-direction: column;
116
+ overflow: hidden;
117
+ }
118
+
119
+ .messenger-avatar {
120
+ width: 32px;
121
+ height: 32px;
122
+ border-radius: var(--radius-full);
123
+ border: 2px solid var(--color-white);
124
+ background: var(--color-primary);
125
+ color: var(--color-white);
126
+ font-size: var(--font-size-sm);
127
+ font-weight: var(--font-weight-semibold);
128
+ display: flex;
129
+ align-items: center;
130
+ justify-content: center;
131
+ overflow: hidden;
132
+ flex-shrink: 0;
133
+ }
134
+
135
+ .messenger-avatar img {
136
+ width: 100%;
137
+ height: 100%;
138
+ object-fit: cover;
139
+ }
140
+
141
+ .messenger-avatar-stack .messenger-avatar {
142
+ margin-left: -8px;
143
+ }
144
+
145
+ .messenger-avatar-stack .messenger-avatar:first-child {
146
+ margin-left: 0;
147
+ }
148
+
149
+ .messenger-home-view {
150
+ background: linear-gradient(180deg, var(--color-neutral-50) 0%, var(--color-white) 40%);
151
+ }
152
+
153
+ .messenger-home-header {
154
+ padding: var(--spacing-5);
155
+ background: linear-gradient(180deg, var(--color-primary-light) 0%, transparent 100%);
156
+ }
157
+
158
+ .messenger-home-header-top {
159
+ display: flex;
160
+ align-items: center;
161
+ justify-content: space-between;
162
+ margin-bottom: var(--spacing-6);
163
+ }
164
+
165
+ .messenger-home-logo {
166
+ width: 32px;
167
+ height: 32px;
168
+ border-radius: var(--radius-md);
169
+ overflow: hidden;
170
+ }
171
+
172
+ .messenger-home-logo img {
173
+ width: 100%;
174
+ height: 100%;
175
+ object-fit: cover;
176
+ }
177
+
178
+ .messenger-home-avatars {
179
+ flex: 1;
180
+ display: flex;
181
+ justify-content: flex-end;
182
+ margin-right: var(--spacing-3);
183
+ }
184
+
185
+ .messenger-home-welcome {
186
+ display: flex;
187
+ flex-direction: column;
188
+ gap: var(--spacing-1);
189
+ }
190
+
191
+ .messenger-home-greeting {
192
+ font-size: var(--font-size-md);
193
+ color: var(--color-text-secondary);
194
+ }
195
+
196
+ .messenger-home-question {
197
+ font-size: var(--font-size-xl);
198
+ font-weight: var(--font-weight-semibold);
199
+ color: var(--color-text-primary);
200
+ }
201
+
202
+ .messenger-home-body {
203
+ flex: 1;
204
+ padding: var(--spacing-5);
205
+ overflow-y: auto;
206
+ }
207
+
208
+ .messenger-home-message-btn {
209
+ width: 100%;
210
+ display: flex;
211
+ align-items: center;
212
+ justify-content: space-between;
213
+ padding: var(--spacing-4) var(--spacing-5);
214
+ background: var(--color-white);
215
+ border: 1px solid var(--color-border);
216
+ border-radius: var(--radius-3xl);
217
+ color: var(--color-text-primary);
218
+ font-size: var(--font-size-md);
219
+ font-weight: var(--font-weight-medium);
220
+ cursor: pointer;
221
+ transition: all var(--transition-base);
222
+ margin-bottom: var(--spacing-5);
223
+ }
224
+
225
+ .messenger-home-message-btn:hover {
226
+ background: var(--color-neutral-50);
227
+ border-color: var(--color-neutral-300);
228
+ transform: translateX(4px);
229
+ }
230
+
231
+ .messenger-conversations-header {
232
+ display: flex;
233
+ align-items: center;
234
+ justify-content: space-between;
235
+ padding: var(--spacing-5);
236
+ border-bottom: 1px solid var(--color-border);
237
+ }
238
+
239
+ .messenger-conversations-header h2 {
240
+ margin: 0;
241
+ font-size: var(--font-size-2xl);
242
+ font-weight: var(--font-weight-semibold);
243
+ color: var(--color-text-primary);
244
+ }
245
+
246
+ .messenger-conversations-body {
247
+ flex: 1;
248
+ overflow-y: auto;
249
+ padding: var(--spacing-1) var(--spacing-3) var(--spacing-3);
250
+ }
251
+
252
+ .messenger-conversation-item {
253
+ display: flex;
254
+ align-items: flex-start;
255
+ gap: var(--spacing-3);
256
+ padding: 10px var(--spacing-4);
257
+ border-radius: var(--radius-xl);
258
+ cursor: pointer;
259
+ transition: background var(--transition-base);
260
+ }
261
+
262
+ .messenger-conversation-item:hover {
263
+ background: var(--color-neutral-50);
264
+ }
265
+
266
+ .messenger-conversation-content {
267
+ flex: 1;
268
+ min-width: 0;
269
+ }
270
+
271
+ .messenger-conversation-header {
272
+ display: flex;
273
+ align-items: center;
274
+ justify-content: space-between;
275
+ margin-bottom: var(--spacing-1);
276
+ gap: var(--spacing-3);
277
+ }
278
+
279
+ .messenger-conversation-title {
280
+ font-size: var(--font-size-md);
281
+ font-weight: var(--font-weight-medium);
282
+ color: var(--color-text-primary);
283
+ line-height: var(--line-height-snug);
284
+ }
285
+
286
+ .messenger-conversation-time {
287
+ font-size: var(--font-size-sm);
288
+ color: var(--color-text-secondary);
289
+ flex-shrink: 0;
290
+ }
291
+
292
+ .messenger-conversation-message {
293
+ font-size: var(--font-size-base);
294
+ color: var(--color-text-secondary);
295
+ white-space: nowrap;
296
+ overflow: hidden;
297
+ text-overflow: ellipsis;
298
+ line-height: var(--line-height-normal);
299
+ }
300
+
301
+ .messenger-conversation-item.unread .messenger-conversation-message {
302
+ color: var(--color-text-primary);
303
+ font-weight: var(--font-weight-medium);
304
+ }
305
+
306
+ .messenger-unread-dot {
307
+ width: 8px;
308
+ height: 8px;
309
+ background: var(--color-primary);
310
+ border-radius: var(--radius-full);
311
+ flex-shrink: 0;
312
+ margin-right: var(--spacing-2);
313
+ }
314
+
315
+ .messenger-chat-header {
316
+ display: flex;
317
+ align-items: center;
318
+ gap: var(--spacing-3);
319
+ padding: var(--spacing-4) var(--spacing-5);
320
+ border-bottom: 1px solid var(--color-border);
321
+ }
322
+
323
+ .messenger-chat-title {
324
+ font-size: var(--font-size-lg);
325
+ font-weight: var(--font-weight-medium);
326
+ color: var(--color-text-primary);
327
+ }
328
+
329
+ .messenger-chat-messages {
330
+ flex: 1;
331
+ overflow-y: auto;
332
+ padding: var(--spacing-4);
333
+ display: flex;
334
+ flex-direction: column;
335
+ gap: var(--spacing-4);
336
+ }
337
+
338
+ .messenger-message {
339
+ display: flex;
340
+ gap: var(--spacing-2);
341
+ max-width: 85%;
342
+ }
343
+
344
+ .messenger-message-own {
345
+ align-self: flex-end;
346
+ flex-direction: column;
347
+ align-items: flex-end;
348
+ }
349
+
350
+ .messenger-message-received {
351
+ align-self: flex-start;
352
+ }
353
+
354
+ .messenger-message-bubble {
355
+ padding: var(--spacing-3) var(--spacing-4);
356
+ border-radius: var(--radius-2xl);
357
+ word-wrap: break-word;
358
+ }
359
+
360
+ .messenger-message-own .messenger-message-bubble {
361
+ background: var(--color-primary);
362
+ color: var(--color-white);
363
+ border-bottom-right-radius: var(--spacing-1);
364
+ }
365
+
366
+ .messenger-message-received .messenger-message-bubble {
367
+ background: var(--color-neutral-100);
368
+ color: var(--color-text-primary);
369
+ border-bottom-left-radius: var(--spacing-1);
370
+ }
371
+
372
+ .messenger-message-content {
373
+ font-size: var(--font-size-md);
374
+ line-height: var(--line-height-normal);
375
+ }
376
+
377
+ .messenger-message-time {
378
+ font-size: var(--font-size-xs);
379
+ color: var(--color-text-tertiary);
380
+ margin-top: var(--spacing-1);
381
+ padding: 0 var(--spacing-1);
382
+ }
383
+
384
+ .messenger-chat-compose {
385
+ display: flex;
386
+ align-items: center;
387
+ gap: var(--spacing-2);
388
+ padding: var(--spacing-3) var(--spacing-4);
389
+ border-top: 1px solid var(--color-border);
390
+ background: var(--color-white);
391
+ }
392
+
393
+ .messenger-compose-input-wrapper {
394
+ flex: 1;
395
+ background: var(--color-neutral-100);
396
+ border-radius: var(--radius-lg);
397
+ padding: var(--spacing-2) var(--spacing-4);
398
+ }
399
+
400
+ .messenger-compose-input {
401
+ width: 100%;
402
+ background: transparent;
403
+ border: none;
404
+ outline: none;
405
+ color: var(--color-text-primary);
406
+ font-size: var(--font-size-md);
407
+ line-height: var(--line-height-normal);
408
+ resize: none;
409
+ max-height: 120px;
410
+ font-family: inherit;
411
+ }
412
+
413
+ .messenger-compose-input::placeholder {
414
+ color: var(--color-text-tertiary);
415
+ }
416
+
417
+ .messenger-compose-send {
418
+ width: 40px;
419
+ height: 40px;
420
+ background: var(--color-primary);
421
+ border: none;
422
+ border-radius: var(--radius-full);
423
+ color: var(--color-white);
424
+ cursor: pointer;
425
+ display: flex;
426
+ align-items: center;
427
+ justify-content: center;
428
+ transition: all var(--transition-base);
429
+ flex-shrink: 0;
430
+ }
431
+
432
+ .messenger-compose-send:hover:not(:disabled) {
433
+ background: var(--color-primary-hover);
434
+ transform: scale(1.05);
435
+ }
436
+
437
+ .messenger-compose-send:disabled {
438
+ background: var(--color-neutral-300);
439
+ cursor: not-allowed;
440
+ }
441
+
442
+ .messenger-panel-nav {
443
+ border-top: 1px solid var(--color-border);
444
+ background: var(--color-white);
445
+ }
446
+
447
+ .messenger-nav {
448
+ display: flex;
449
+ padding: var(--spacing-1) var(--spacing-2);
450
+ gap: var(--spacing-1);
451
+ }
452
+
453
+ .messenger-nav-tab {
454
+ flex: 1;
455
+ display: flex;
456
+ flex-direction: column;
457
+ align-items: center;
458
+ gap: var(--spacing-1);
459
+ padding: var(--spacing-2) var(--spacing-1);
460
+ background: none;
461
+ border: none;
462
+ cursor: pointer;
463
+ border-radius: var(--radius-md);
464
+ transition: all var(--transition-base);
465
+ position: relative;
466
+ }
467
+
468
+ .messenger-nav-tab:hover {
469
+ background: var(--color-neutral-50);
470
+ }
471
+
472
+ .messenger-nav-icon {
473
+ color: var(--color-text-secondary);
474
+ transition: color var(--transition-base);
475
+ }
476
+
477
+ .messenger-nav-label {
478
+ font-size: var(--font-size-xs);
479
+ font-weight: var(--font-weight-medium);
480
+ color: var(--color-text-secondary);
481
+ transition: color var(--transition-base);
482
+ }
483
+
484
+ .messenger-nav-tab.active .messenger-nav-icon,
485
+ .messenger-nav-tab.active .messenger-nav-label {
486
+ color: var(--color-primary);
487
+ }
488
+
489
+ .messenger-nav-badge {
490
+ position: absolute;
491
+ top: var(--spacing-1);
492
+ right: calc(50% - 16px);
493
+ min-width: 16px;
494
+ height: 16px;
495
+ background: var(--color-error);
496
+ color: var(--color-white);
497
+ font-size: 10px;
498
+ font-weight: var(--font-weight-semibold);
499
+ border-radius: var(--radius-full);
500
+ display: flex;
501
+ align-items: center;
502
+ justify-content: center;
503
+ padding: 0 var(--spacing-1);
504
+ }
505
+
506
+ .messenger-empty-state {
507
+ display: flex;
508
+ flex-direction: column;
509
+ align-items: center;
510
+ justify-content: center;
511
+ height: 100%;
512
+ text-align: center;
513
+ padding: var(--spacing-10);
514
+ }
515
+
516
+ .messenger-empty-state-icon {
517
+ color: var(--color-neutral-300);
518
+ margin-bottom: var(--spacing-4);
519
+ }
520
+
521
+ .messenger-empty-state h3 {
522
+ margin: 0 0 var(--spacing-2);
523
+ font-size: var(--font-size-xl);
524
+ font-weight: var(--font-weight-semibold);
525
+ color: var(--color-text-primary);
526
+ }
527
+
528
+ .messenger-empty-state p {
529
+ margin: 0;
530
+ font-size: var(--font-size-base);
531
+ color: var(--color-text-secondary);
532
+ }
533
+
534
+ @media (max-width: 480px) {
535
+ .messenger-panel {
536
+ width: 100%;
537
+ height: 100%;
538
+ max-height: 100%;
539
+ bottom: 0;
540
+ right: 0;
541
+ left: 0;
542
+ border-radius: 0;
543
+ }
544
+
545
+ .messenger-panel-content {
546
+ border-radius: 0;
547
+ }
548
+
549
+ .messenger-launcher {
550
+ bottom: var(--spacing-4);
551
+ right: var(--spacing-4);
552
+ }
553
+
554
+ .messenger-launcher-bottom-left {
555
+ left: var(--spacing-4);
556
+ }
557
+ }
558
+ `;
@@ -1,7 +1,29 @@
1
1
  import { baseStyles } from './base.js';
2
2
  import { changelogStyles } from './changelog.js';
3
3
  import { feedbackStyles } from './feedback.js';
4
+ import { messengerCoreStyles } from './messenger-core.js';
5
+ import { messengerViewsStyles } from './messenger-views.js';
6
+ import { messengerHelpStyles } from './messenger-help.js';
7
+ import { messengerFeaturesStyles } from './messenger-features.js';
8
+ import { messengerThemesStyles } from './messenger-themes.js';
4
9
 
5
- export const CSS_STYLES = baseStyles + feedbackStyles + changelogStyles;
10
+ export const CSS_STYLES =
11
+ baseStyles +
12
+ feedbackStyles +
13
+ changelogStyles +
14
+ messengerCoreStyles +
15
+ messengerViewsStyles +
16
+ messengerHelpStyles +
17
+ messengerFeaturesStyles +
18
+ messengerThemesStyles;
6
19
 
7
- export { baseStyles, changelogStyles, feedbackStyles };
20
+ export {
21
+ baseStyles,
22
+ changelogStyles,
23
+ feedbackStyles,
24
+ messengerCoreStyles,
25
+ messengerViewsStyles,
26
+ messengerHelpStyles,
27
+ messengerFeaturesStyles,
28
+ messengerThemesStyles
29
+ };