@product7/product7-js 0.1.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.
Files changed (58) hide show
  1. package/README.md +1025 -0
  2. package/dist/README.md +1025 -0
  3. package/dist/product7-js.js +14658 -0
  4. package/dist/product7-js.js.map +1 -0
  5. package/dist/product7-js.min.js +2 -0
  6. package/dist/product7-js.min.js.map +1 -0
  7. package/package.json +114 -0
  8. package/src/api/mock-data/index.js +360 -0
  9. package/src/api/services/ChangelogService.js +28 -0
  10. package/src/api/services/FeedbackService.js +44 -0
  11. package/src/api/services/HelpService.js +50 -0
  12. package/src/api/services/MessengerService.js +279 -0
  13. package/src/api/services/SurveyService.js +127 -0
  14. package/src/api/utils/helpers.js +30 -0
  15. package/src/core/APIService.js +303 -0
  16. package/src/core/BaseAPIService.js +298 -0
  17. package/src/core/EventBus.js +54 -0
  18. package/src/core/Product7.js +812 -0
  19. package/src/core/WebSocketService.js +275 -0
  20. package/src/docs/api.md +226 -0
  21. package/src/docs/example.md +461 -0
  22. package/src/docs/framework-integrations.md +714 -0
  23. package/src/docs/installation.md +281 -0
  24. package/src/index.js +894 -0
  25. package/src/styles/base.js +50 -0
  26. package/src/styles/changelog.js +665 -0
  27. package/src/styles/components.js +553 -0
  28. package/src/styles/design-tokens.js +124 -0
  29. package/src/styles/feedback.js +325 -0
  30. package/src/styles/messenger-components.js +632 -0
  31. package/src/styles/messenger-core.js +233 -0
  32. package/src/styles/messenger-features.js +169 -0
  33. package/src/styles/messenger-views.js +877 -0
  34. package/src/styles/messenger.js +17 -0
  35. package/src/styles/messengerCustomStyles.js +114 -0
  36. package/src/styles/styles.js +26 -0
  37. package/src/styles/survey.js +894 -0
  38. package/src/utils/errors.js +142 -0
  39. package/src/utils/helpers.js +219 -0
  40. package/src/widgets/BaseWidget.js +548 -0
  41. package/src/widgets/ButtonWidget.js +104 -0
  42. package/src/widgets/ChangelogWidget.js +615 -0
  43. package/src/widgets/InlineWidget.js +148 -0
  44. package/src/widgets/MessengerWidget.js +979 -0
  45. package/src/widgets/SurveyWidget.js +1325 -0
  46. package/src/widgets/TabWidget.js +45 -0
  47. package/src/widgets/WidgetFactory.js +70 -0
  48. package/src/widgets/messenger/MessengerState.js +323 -0
  49. package/src/widgets/messenger/components/MessengerLauncher.js +124 -0
  50. package/src/widgets/messenger/components/MessengerPanel.js +111 -0
  51. package/src/widgets/messenger/components/NavigationTabs.js +130 -0
  52. package/src/widgets/messenger/views/ChangelogView.js +167 -0
  53. package/src/widgets/messenger/views/ChatView.js +592 -0
  54. package/src/widgets/messenger/views/ConversationsView.js +244 -0
  55. package/src/widgets/messenger/views/HelpView.js +239 -0
  56. package/src/widgets/messenger/views/HomeView.js +300 -0
  57. package/src/widgets/messenger/views/PreChatFormView.js +109 -0
  58. package/types/index.d.ts +341 -0
@@ -0,0 +1,877 @@
1
+ export const messengerViewsStyles = `
2
+ /* ========================================
3
+ HOME VIEW
4
+ ======================================== */
5
+
6
+ .messenger-home-view {
7
+ background: var(--msg-bg-header-gradient);
8
+ position: relative;
9
+ overflow: hidden;
10
+ }
11
+
12
+ .messenger-home-view::before {
13
+ content: '';
14
+ position: absolute;
15
+ top: 0;
16
+ left: 0;
17
+ width: 600px;
18
+ height: 600px;
19
+ background: var(--msg-bg-header-glow1);
20
+ filter: blur(60px);
21
+ pointer-events: none;
22
+ z-index: 1;
23
+ }
24
+
25
+ .messenger-home-view::after {
26
+ content: '';
27
+ position: absolute;
28
+ top: 0;
29
+ right: 0;
30
+ width: 500px;
31
+ height: 500px;
32
+ background: var(--msg-bg-header-glow2);
33
+ filter: blur(60px);
34
+ pointer-events: none;
35
+ z-index: 1;
36
+ }
37
+
38
+ .messenger-home-scroll {
39
+ flex: 1;
40
+ overflow-y: auto;
41
+ display: flex;
42
+ flex-direction: column;
43
+ position: relative;
44
+ }
45
+
46
+ .messenger-home-header {
47
+ padding: var(--spacing-6) var(--spacing-5);
48
+ position: relative;
49
+ z-index: 2;
50
+ flex-shrink: 0;
51
+ }
52
+
53
+ .messenger-home-header-top {
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: space-between;
57
+ margin-bottom: var(--spacing-8);
58
+ position: relative;
59
+ z-index: 2;
60
+ }
61
+
62
+ .messenger-home-logo {
63
+ width: 48px;
64
+ height: 48px;
65
+ border-radius: var(--radius-lg);
66
+ overflow: visible;
67
+ flex-shrink: 0;
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ }
72
+
73
+ .messenger-home-logo img {
74
+ width: 100%;
75
+ height: 100%;
76
+ object-fit: contain;
77
+ border-radius: var(--radius-lg);
78
+ }
79
+
80
+ .messenger-home-avatars {
81
+ flex: 1;
82
+ display: flex;
83
+ justify-content: flex-end;
84
+ margin-right: var(--spacing-4);
85
+ margin-left: var(--spacing-4);
86
+ }
87
+
88
+ .messenger-home-welcome {
89
+ display: flex;
90
+ flex-direction: column;
91
+ text-align: left;
92
+ position: relative;
93
+ z-index: 2;
94
+ }
95
+
96
+ .messenger-home-greeting {
97
+ font-size: 34px;
98
+ font-weight: var(--font-weight-bold);
99
+ color: var(--msg-text);
100
+ line-height: var(--line-height-tight);
101
+ }
102
+
103
+ .messenger-home-question {
104
+ font-size: 28px;
105
+ font-weight: var(--font-weight-bold);
106
+ color: var(--msg-text);
107
+ line-height: var(--line-height-tight);
108
+ }
109
+
110
+ .messenger-home-body {
111
+ flex: 1;
112
+ padding: 0 var(--spacing-5) var(--spacing-5);
113
+ position: relative;
114
+ z-index: 2;
115
+ }
116
+
117
+ .messenger-home-message-btn {
118
+ width: 100%;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: space-between;
122
+ padding: var(--spacing-3) var(--spacing-5);
123
+ background: var(--msg-bg-surface);
124
+ border: 1px solid var(--msg-border);
125
+ border-radius: 8px;
126
+ color: var(--msg-text);
127
+ font-size: var(--font-size-base);
128
+ font-weight: var(--font-weight-normal);
129
+ cursor: pointer;
130
+ transition: all var(--transition-base);
131
+ margin-bottom: var(--spacing-2);
132
+ font-family: inherit;
133
+ box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
134
+ }
135
+
136
+ .messenger-home-message-btn:hover {
137
+ background: var(--msg-bg-elevated);
138
+ transform: translateX(4px);
139
+ box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
140
+ }
141
+
142
+ .messenger-home-message-btn:active {
143
+ transform: translateX(4px) translateY(1px);
144
+ transition-duration: 100ms;
145
+ }
146
+
147
+ .messenger-home-continue-btn {
148
+ flex-direction: row;
149
+ align-items: center;
150
+ justify-content: space-between;
151
+ gap: var(--spacing-3);
152
+ }
153
+
154
+ .messenger-home-continue-btn > svg {
155
+ flex-shrink: 0;
156
+ }
157
+
158
+ .messenger-home-continue-info {
159
+ display: flex;
160
+ flex-direction: column;
161
+ gap: var(--spacing-1);
162
+ text-align: left;
163
+ flex: 1;
164
+ }
165
+
166
+ .messenger-home-continue-label {
167
+ font-size: var(--font-size-base);
168
+ font-weight: var(--font-weight-normal);
169
+ }
170
+
171
+ .messenger-home-continue-preview {
172
+ font-size: var(--font-size-sm);
173
+ opacity: 0.6;
174
+ font-weight: var(--font-weight-normal);
175
+ }
176
+
177
+ .messenger-home-featured {
178
+ background: var(--msg-bg);
179
+ border-radius: var(--radius-xl);
180
+ overflow: hidden;
181
+ margin-bottom: var(--spacing-5);
182
+ box-shadow: var(--msg-shadow-card);
183
+ }
184
+
185
+ .messenger-home-featured-image {
186
+ width: 100%;
187
+ height: 160px;
188
+ object-fit: cover;
189
+ display: block;
190
+ }
191
+
192
+ .messenger-home-featured-divider {
193
+ height: 1px;
194
+ background: var(--msg-border);
195
+ }
196
+
197
+ .messenger-home-featured-content {
198
+ padding: var(--spacing-4) var(--spacing-5);
199
+ }
200
+
201
+ .messenger-home-featured-content h3 {
202
+ margin: 0 0 var(--spacing-2);
203
+ font-size: var(--font-size-xl);
204
+ font-weight: var(--font-weight-semibold);
205
+ color: var(--msg-text);
206
+ line-height: var(--line-height-normal);
207
+ }
208
+
209
+ .messenger-home-featured-content p {
210
+ margin: 0;
211
+ font-size: var(--font-size-base);
212
+ color: var(--msg-text-tertiary);
213
+ line-height: var(--line-height-relaxed);
214
+ }
215
+
216
+ .messenger-home-featured-btn {
217
+ margin-top: var(--spacing-3);
218
+ }
219
+
220
+ .messenger-home-changelog-section {
221
+ margin-top: var(--spacing-5);
222
+ display: flex;
223
+ flex-direction: column;
224
+ gap: var(--spacing-4);
225
+ }
226
+
227
+ .messenger-home-changelog-card {
228
+ background: var(--msg-bg-surface);
229
+ border-radius: 8px;
230
+ overflow: hidden;
231
+ cursor: pointer;
232
+ border: 1px solid var(--msg-border);
233
+ transition: all var(--transition-base);
234
+ box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
235
+ }
236
+
237
+ .messenger-home-changelog-card:hover {
238
+ background: var(--msg-bg-hover);
239
+ }
240
+
241
+ .messenger-home-changelog-card:active {
242
+ transform: translateY(1px);
243
+ transition-duration: 100ms;
244
+ }
245
+
246
+ .messenger-home-changelog-cover {
247
+ width: 100%;
248
+ height: 140px;
249
+ overflow: hidden;
250
+ position: relative;
251
+ }
252
+
253
+ .messenger-home-changelog-cover img {
254
+ width: 100%;
255
+ height: 100%;
256
+ object-fit: cover;
257
+ }
258
+
259
+ .messenger-home-changelog-cover-text {
260
+ position: absolute;
261
+ bottom: var(--spacing-3);
262
+ left: var(--spacing-3);
263
+ right: var(--spacing-3);
264
+ color: #ffffff;
265
+ font-size: var(--font-size-md);
266
+ font-weight: var(--font-weight-semibold);
267
+ text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
268
+ line-height: var(--line-height-snug);
269
+ }
270
+
271
+ .messenger-home-changelog-card-content {
272
+ padding: var(--spacing-4);
273
+ border-top: 1px solid var(--msg-border);
274
+ }
275
+
276
+ .messenger-home-changelog-card-title {
277
+ margin: 0 0 var(--spacing-2);
278
+ font-size: var(--font-size-md);
279
+ font-weight: var(--font-weight-semibold);
280
+ color: var(--msg-text);
281
+ line-height: var(--line-height-snug);
282
+ }
283
+
284
+ .messenger-home-changelog-card-desc {
285
+ margin: 0;
286
+ font-size: var(--font-size-base);
287
+ color: var(--msg-text-secondary);
288
+ line-height: var(--line-height-relaxed);
289
+ }
290
+
291
+ .messenger-home-availability,
292
+ .messenger-chat-availability {
293
+ display: flex;
294
+ align-items: center;
295
+ gap: var(--spacing-2);
296
+ margin-top: var(--spacing-2);
297
+ font-size: var(--font-size-sm);
298
+ color: var(--msg-text-secondary);
299
+ }
300
+
301
+ .messenger-availability-dot {
302
+ width: 8px;
303
+ height: 8px;
304
+ border-radius: var(--radius-full);
305
+ flex-shrink: 0;
306
+ }
307
+
308
+ .messenger-availability-online {
309
+ background: var(--color-success);
310
+ box-shadow: 0 0 0 2px var(--color-success-light);
311
+ }
312
+
313
+ .messenger-availability-away {
314
+ background: var(--color-neutral-400);
315
+ }
316
+
317
+ .messenger-availability-text {
318
+ opacity: 0.9;
319
+ }
320
+
321
+ /* ========================================
322
+ CONVERSATIONS VIEW
323
+ ======================================== */
324
+
325
+ .messenger-conversations-header {
326
+ display: flex;
327
+ align-items: center;
328
+ justify-content: space-between;
329
+ padding: var(--spacing-3) var(--spacing-5);
330
+ border-bottom: 1px solid var(--msg-border);
331
+ background: var(--msg-bg-header-gradient);
332
+ position: relative;
333
+ overflow: hidden;
334
+ }
335
+
336
+ .messenger-conversations-header h2 {
337
+ margin: 0;
338
+ font-size: var(--font-size-xl);
339
+ font-weight: var(--font-weight-semibold);
340
+ color: var(--msg-text);
341
+ text-align: center;
342
+ flex: 1;
343
+ }
344
+
345
+ .messenger-conversations-body {
346
+ flex: 1;
347
+ overflow-y: auto;
348
+ padding: 0;
349
+ }
350
+
351
+ .messenger-conversations-list {
352
+ display: flex;
353
+ flex-direction: column;
354
+ }
355
+
356
+ .messenger-conversation-item + .messenger-conversation-item {
357
+ border-top: 1px solid var(--msg-border);
358
+ }
359
+
360
+ .messenger-conversation-item {
361
+ display: flex;
362
+ align-items: flex-start;
363
+ gap: var(--spacing-3);
364
+ padding: 10px var(--spacing-4);
365
+ cursor: pointer;
366
+ transition: background var(--transition-base);
367
+ }
368
+
369
+ .messenger-conversation-item:hover {
370
+ background: var(--msg-bg-hover);
371
+ }
372
+
373
+ .messenger-conversation-item:active {
374
+ transform: translateY(1px);
375
+ transition-duration: 100ms;
376
+ }
377
+
378
+ .messenger-conversation-avatars {
379
+ flex-shrink: 0;
380
+ }
381
+
382
+ .messenger-conversation-content {
383
+ flex: 1;
384
+ min-width: 0;
385
+ }
386
+
387
+ .messenger-conversation-header {
388
+ display: flex;
389
+ align-items: center;
390
+ justify-content: space-between;
391
+ margin-bottom: var(--spacing-1);
392
+ gap: var(--spacing-3);
393
+ }
394
+
395
+ .messenger-conversation-title {
396
+ font-size: var(--font-size-md);
397
+ font-weight: var(--font-weight-medium);
398
+ color: var(--msg-text);
399
+ line-height: var(--line-height-snug);
400
+ }
401
+
402
+ .messenger-conversation-time {
403
+ font-size: var(--font-size-sm);
404
+ color: var(--msg-text-secondary);
405
+ flex-shrink: 0;
406
+ }
407
+
408
+ .messenger-conversation-preview {
409
+ display: flex;
410
+ align-items: center;
411
+ gap: var(--spacing-2);
412
+ }
413
+
414
+ .messenger-conversation-message {
415
+ font-size: var(--font-size-base);
416
+ font-weight: var(--font-weight-normal);
417
+ color: var(--msg-text-tertiary);
418
+ white-space: nowrap;
419
+ overflow: hidden;
420
+ text-overflow: ellipsis;
421
+ line-height: var(--line-height-normal);
422
+ }
423
+
424
+ .messenger-conversation-item.unread .messenger-conversation-message {
425
+ color: var(--msg-text);
426
+ font-weight: var(--font-weight-medium);
427
+ }
428
+
429
+ .messenger-unread-dot {
430
+ width: 8px;
431
+ height: 8px;
432
+ background: var(--color-primary);
433
+ border-radius: var(--radius-full);
434
+ flex-shrink: 0;
435
+ }
436
+
437
+ .messenger-conversations-footer {
438
+ padding: var(--spacing-4);
439
+ border-top: none;
440
+ }
441
+
442
+ .messenger-new-message-btn {
443
+ max-width: 220px;
444
+ margin: 0 auto;
445
+ display: flex;
446
+ align-items: center;
447
+ justify-content: space-between;
448
+ gap: var(--spacing-2);
449
+ padding: var(--spacing-3) var(--spacing-4);
450
+ background: var(--msg-bg);
451
+ border: none;
452
+ border-radius: var(--radius-xl);
453
+ color: var(--msg-text);
454
+ font-size: var(--font-size-base);
455
+ font-weight: var(--font-weight-medium);
456
+ cursor: pointer;
457
+ transition: all var(--transition-base);
458
+ font-family: inherit;
459
+ box-shadow: var(--msg-shadow-card);
460
+ }
461
+
462
+ .messenger-new-message-btn:hover {
463
+ background: var(--msg-bg-hover);
464
+ transform: translateX(4px);
465
+ box-shadow: var(--msg-shadow-card-hover);
466
+ }
467
+
468
+ .messenger-new-message-btn:active {
469
+ transform: translateX(4px) translateY(1px);
470
+ transition-duration: 100ms;
471
+ }
472
+
473
+ .messenger-new-message-btn span {
474
+ flex: 1;
475
+ text-align: left;
476
+ }
477
+
478
+ /* ========================================
479
+ HELP VIEW
480
+ ======================================== */
481
+
482
+ .messenger-help-header {
483
+ display: flex;
484
+ flex-direction: column;
485
+ gap: var(--spacing-2);
486
+ padding: var(--spacing-2) var(--spacing-5) var(--spacing-3);
487
+ border-bottom: 1px solid var(--msg-border);
488
+ flex-shrink: 0;
489
+ background: var(--msg-bg-header-gradient);
490
+ position: relative;
491
+ overflow: hidden;
492
+ }
493
+
494
+ .messenger-help-header::before {
495
+ content: '';
496
+ position: absolute;
497
+ top: -20px;
498
+ left: -20px;
499
+ width: 200px;
500
+ height: 200px;
501
+ background: var(--msg-bg-header-glow1);
502
+ filter: blur(30px);
503
+ pointer-events: none;
504
+ }
505
+
506
+ .messenger-help-header::after {
507
+ content: '';
508
+ position: absolute;
509
+ top: -10px;
510
+ right: -20px;
511
+ width: 150px;
512
+ height: 150px;
513
+ background: var(--msg-bg-header-glow2);
514
+ filter: blur(25px);
515
+ pointer-events: none;
516
+ }
517
+
518
+ .messenger-help-header-top {
519
+ display: flex;
520
+ align-items: center;
521
+ justify-content: center;
522
+ position: relative;
523
+ }
524
+
525
+ .messenger-help-header-top h2 {
526
+ margin: 0;
527
+ font-size: var(--font-size-xl);
528
+ font-weight: var(--font-weight-semibold);
529
+ color: var(--msg-text);
530
+ }
531
+
532
+ .messenger-help-close-btn {
533
+ position: absolute;
534
+ right: 0;
535
+ top: 50%;
536
+ transform: translateY(-50%);
537
+ }
538
+
539
+ .messenger-help-search-wrap {
540
+ position: relative;
541
+ width: 100%;
542
+ }
543
+
544
+ .messenger-help-search-icon {
545
+ position: absolute;
546
+ left: var(--spacing-3);
547
+ top: 50%;
548
+ transform: translateY(-50%);
549
+ color: var(--msg-text-tertiary);
550
+ display: flex;
551
+ align-items: center;
552
+ pointer-events: none;
553
+ }
554
+
555
+ .messenger-help-search-input {
556
+ width: 100%;
557
+ background: var(--msg-bg-input);
558
+ border: 1px solid var(--msg-border);
559
+ border-radius: var(--radius-md);
560
+ padding: var(--spacing-2) var(--spacing-3) var(--spacing-2) calc(var(--spacing-3) + 16px + var(--spacing-2));
561
+ font-size: var(--font-size-base);
562
+ font-weight: var(--font-weight-normal);
563
+ color: var(--msg-text);
564
+ font-family: inherit;
565
+ outline: none;
566
+ transition: border-color var(--transition-base), background var(--transition-base);
567
+ box-sizing: border-box;
568
+ }
569
+
570
+ .messenger-help-search-input:focus {
571
+ border-color: var(--color-primary);
572
+ background: var(--msg-bg);
573
+ }
574
+
575
+ .messenger-help-search-input::placeholder {
576
+ color: var(--msg-text-tertiary);
577
+ }
578
+
579
+ .messenger-help-body {
580
+ flex: 1;
581
+ overflow-y: auto;
582
+ padding: 0;
583
+ }
584
+
585
+ .messenger-help-collections-header {
586
+ display: none;
587
+ }
588
+
589
+ .messenger-help-collections {
590
+ padding: 0;
591
+ }
592
+
593
+ .messenger-help-collection {
594
+ display: flex;
595
+ align-items: center;
596
+ gap: var(--spacing-3);
597
+ padding: var(--spacing-3) var(--spacing-5);
598
+ cursor: pointer;
599
+ transition: background var(--transition-base);
600
+ border-bottom: 1px solid var(--msg-border);
601
+ }
602
+
603
+ .messenger-help-collection:hover {
604
+ background: var(--msg-bg-hover);
605
+ }
606
+
607
+ .messenger-help-collection:active {
608
+ transform: translateY(1px);
609
+ transition-duration: 100ms;
610
+ }
611
+
612
+ .messenger-help-collection-icon {
613
+ flex-shrink: 0;
614
+ width: 2.75rem;
615
+ height: 2.75rem;
616
+ display: flex;
617
+ align-items: center;
618
+ justify-content: center;
619
+ color: var(--msg-text-secondary);
620
+ }
621
+
622
+ .messenger-help-collection-icon svg,
623
+ .messenger-help-collection-icon iconify-icon {
624
+ width: 2rem;
625
+ height: 2rem;
626
+ display: block;
627
+ }
628
+
629
+ .messenger-help-collection-content {
630
+ flex: 1;
631
+ min-width: 0;
632
+ }
633
+
634
+ .messenger-help-collection-title {
635
+ font-size: var(--font-size-base);
636
+ font-weight: var(--font-weight-semibold);
637
+ color: var(--msg-text);
638
+ line-height: var(--line-height-snug);
639
+ white-space: nowrap;
640
+ overflow: hidden;
641
+ text-overflow: ellipsis;
642
+ }
643
+
644
+ .messenger-help-collection-desc {
645
+ margin: 2px 0 var(--spacing-1);
646
+ font-size: var(--font-size-sm);
647
+ color: var(--msg-text-secondary);
648
+ line-height: var(--line-height-normal);
649
+ display: -webkit-box;
650
+ -webkit-line-clamp: 2;
651
+ -webkit-box-orient: vertical;
652
+ white-space: nowrap;
653
+ overflow: hidden;
654
+ text-overflow: ellipsis;
655
+ }
656
+
657
+ .messenger-help-collection-meta {
658
+ display: flex;
659
+ align-items: center;
660
+ gap: var(--spacing-2);
661
+ margin-top: 2px;
662
+ }
663
+
664
+ .messenger-help-collection-avatar {
665
+ display: none;
666
+ }
667
+
668
+ .messenger-help-collection-avatar--initials {
669
+ display: none;
670
+ line-height: 1;
671
+ }
672
+
673
+ .messenger-help-collection-count {
674
+ font-size: var(--font-size-xs);
675
+ font-weight: var(--font-weight-medium);
676
+ color: var(--msg-text-tertiary);
677
+ }
678
+
679
+ .messenger-help-footer {
680
+ padding: var(--spacing-4) var(--spacing-5);
681
+ border-top: 1px solid var(--msg-border);
682
+ text-align: center;
683
+ }
684
+
685
+ .messenger-help-footer-link {
686
+ display: inline-flex;
687
+ align-items: center;
688
+ gap: var(--spacing-2);
689
+ font-size: var(--font-size-base);
690
+ font-weight: var(--font-weight-semibold);
691
+ color: var(--msg-text);
692
+ text-decoration: none;
693
+ cursor: pointer;
694
+ transition: color var(--transition-base);
695
+ }
696
+
697
+ .messenger-help-footer-link:hover {
698
+ color: var(--color-primary);
699
+ }
700
+
701
+ /* ========================================
702
+ CHANGELOG VIEW
703
+ ======================================== */
704
+
705
+ .messenger-changelog-header {
706
+ padding: var(--spacing-2) var(--spacing-5);
707
+ border-bottom: 1px solid var(--msg-border);
708
+ flex-shrink: 0;
709
+ background: var(--msg-bg-header-gradient);
710
+ position: relative;
711
+ overflow: hidden;
712
+ }
713
+
714
+ .messenger-changelog-header::before {
715
+ content: '';
716
+ position: absolute;
717
+ top: -20px;
718
+ left: -20px;
719
+ width: 200px;
720
+ height: 200px;
721
+ background: var(--msg-bg-header-glow1);
722
+ filter: blur(30px);
723
+ pointer-events: none;
724
+ }
725
+
726
+ .messenger-changelog-header::after {
727
+ content: '';
728
+ position: absolute;
729
+ top: -10px;
730
+ right: -20px;
731
+ width: 150px;
732
+ height: 150px;
733
+ background: var(--msg-bg-header-glow2);
734
+ filter: blur(25px);
735
+ pointer-events: none;
736
+ }
737
+
738
+ .messenger-changelog-header-top {
739
+ display: flex;
740
+ align-items: center;
741
+ justify-content: center;
742
+ position: relative;
743
+ }
744
+
745
+ .messenger-changelog-header-top h2 {
746
+ margin: 0;
747
+ font-size: var(--font-size-xl);
748
+ font-weight: var(--font-weight-semibold);
749
+ color: var(--msg-text);
750
+ }
751
+
752
+ .messenger-changelog-close-btn {
753
+ position: absolute;
754
+ right: 0;
755
+ top: 50%;
756
+ transform: translateY(-50%);
757
+ }
758
+
759
+ .messenger-changelog-body {
760
+ flex: 1;
761
+ overflow-y: auto;
762
+ }
763
+
764
+ .messenger-changelog-list {
765
+ display: flex;
766
+ flex-direction: column;
767
+ }
768
+
769
+ .messenger-changelog-card {
770
+ display: flex;
771
+ align-items: center;
772
+ gap: var(--spacing-3);
773
+ padding: var(--spacing-4) var(--spacing-5);
774
+ border-bottom: 1px solid var(--msg-border);
775
+ cursor: pointer;
776
+ transition: background var(--transition-base);
777
+ }
778
+
779
+ .messenger-changelog-card:last-child {
780
+ border-bottom: none;
781
+ }
782
+
783
+ .messenger-changelog-card:hover {
784
+ background: var(--msg-bg-hover);
785
+ }
786
+
787
+ .messenger-changelog-card:hover .messenger-changelog-arrow {
788
+ color: var(--color-primary);
789
+ transform: translateX(3px);
790
+ }
791
+
792
+ .messenger-changelog-card:active {
793
+ transform: translateY(1px);
794
+ transition-duration: 100ms;
795
+ }
796
+
797
+ .messenger-changelog-content {
798
+ flex: 1;
799
+ min-width: 0;
800
+ display: flex;
801
+ flex-direction: column;
802
+ gap: 3px;
803
+ }
804
+
805
+ .messenger-changelog-meta {
806
+ display: flex;
807
+ align-items: center;
808
+ gap: var(--spacing-2);
809
+ flex-wrap: wrap;
810
+ }
811
+
812
+ .messenger-changelog-date {
813
+ font-size: var(--font-size-xs);
814
+ font-weight: var(--font-weight-medium);
815
+ color: var(--msg-text-tertiary);
816
+ }
817
+
818
+ .messenger-changelog-tags {
819
+ display: flex;
820
+ flex-wrap: wrap;
821
+ gap: var(--spacing-1);
822
+ }
823
+
824
+ .messenger-changelog-tag {
825
+ display: inline-flex;
826
+ align-items: center;
827
+ padding: 1px 8px;
828
+ border-radius: var(--radius-full);
829
+ font-size: 11px;
830
+ font-weight: var(--font-weight-medium);
831
+ line-height: 1.5;
832
+ }
833
+
834
+ .messenger-changelog-title {
835
+ margin: 0;
836
+ font-size: var(--font-size-base);
837
+ font-weight: var(--font-weight-semibold);
838
+ color: var(--msg-text);
839
+ line-height: var(--line-height-snug);
840
+ white-space: nowrap;
841
+ overflow: hidden;
842
+ text-overflow: ellipsis;
843
+ }
844
+
845
+ .messenger-changelog-description {
846
+ margin: 0;
847
+ font-size: var(--font-size-sm);
848
+ color: var(--msg-text-secondary);
849
+ line-height: var(--line-height-normal);
850
+ display: -webkit-box;
851
+ -webkit-line-clamp: 2;
852
+ -webkit-box-orient: vertical;
853
+ overflow: hidden;
854
+ }
855
+
856
+ .messenger-changelog-thumb {
857
+ width: 64px;
858
+ height: 64px;
859
+ flex-shrink: 0;
860
+ border-radius: 8px;
861
+ overflow: hidden;
862
+ border: 1px solid var(--msg-border);
863
+ }
864
+
865
+ .messenger-changelog-thumb img {
866
+ width: 100%;
867
+ height: 100%;
868
+ display: block;
869
+ object-fit: cover;
870
+ }
871
+
872
+ .messenger-changelog-arrow {
873
+ flex-shrink: 0;
874
+ color: var(--msg-text-tertiary);
875
+ transition: all var(--transition-base);
876
+ }
877
+ `;