@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,50 @@
1
+ export const baseStyles = `
2
+ .feedback-widget,
3
+ .messenger-widget,
4
+ .changelog-widget,
5
+ .feedback-survey {
6
+ box-sizing: border-box;
7
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', Oxygen, Ubuntu, Cantarell, sans-serif;
8
+ }
9
+
10
+ .feedback-widget *,
11
+ .feedback-widget *::before,
12
+ .feedback-widget *::after,
13
+ .messenger-widget *,
14
+ .messenger-widget *::before,
15
+ .messenger-widget *::after,
16
+ .changelog-widget *,
17
+ .changelog-widget *::before,
18
+ .changelog-widget *::after,
19
+ .feedback-survey *,
20
+ .feedback-survey *::before,
21
+ .feedback-survey *::after {
22
+ box-sizing: border-box;
23
+ }
24
+
25
+ @media (prefers-reduced-motion: reduce) {
26
+ .feedback-widget *,
27
+ .messenger-widget *,
28
+ .changelog-widget *,
29
+ .feedback-survey * {
30
+ transition: none !important;
31
+ animation: none !important;
32
+ }
33
+ }
34
+
35
+ @media print {
36
+ .feedback-widget,
37
+ .feedback-panel,
38
+ .sdk-modal-backdrop,
39
+ .sdk-notification,
40
+ .changelog-widget,
41
+ .changelog-modal,
42
+ .messenger-widget,
43
+ .messenger-launcher,
44
+ .messenger-panel,
45
+ .feedback-survey,
46
+ .feedback-survey-backdrop {
47
+ display: none !important;
48
+ }
49
+ }
50
+ `;
@@ -0,0 +1,665 @@
1
+ export const changelogStyles = `
2
+ .changelog-widget {
3
+ position: fixed;
4
+ z-index: var(--z-modal);
5
+ }
6
+
7
+ .changelog-widget.position-right {
8
+ bottom: var(--spacing-5);
9
+ right: var(--spacing-5);
10
+ }
11
+
12
+ .changelog-widget.position-left {
13
+ bottom: var(--spacing-5);
14
+ left: var(--spacing-5);
15
+ }
16
+
17
+ .changelog-trigger-btn {
18
+ position: relative;
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+ gap: var(--spacing-2);
23
+ height: 48px;
24
+ border-radius: var(--radius-full);
25
+ border: none;
26
+ padding: var(--spacing-3) var(--spacing-5);
27
+ font-size: var(--font-size-base);
28
+ font-weight: var(--font-weight-medium);
29
+ font-family: inherit;
30
+ cursor: pointer;
31
+ transition: all var(--transition-slow);
32
+ color: #ffffff;
33
+ background: var(--color-primary);
34
+ box-shadow: var(--shadow-md);
35
+ width: fit-content;
36
+ }
37
+
38
+ .changelog-trigger-btn:hover {
39
+ box-shadow: var(--shadow-lg);
40
+ }
41
+
42
+ .changelog-trigger-btn:active {
43
+ transform: translateY(1px);
44
+ box-shadow: var(--shadow-md);
45
+ transition-duration: 100ms;
46
+ }
47
+
48
+ .changelog-trigger-btn:focus-visible {
49
+ outline: 2px solid var(--color-primary);
50
+ outline-offset: 2px;
51
+ }
52
+
53
+ .changelog-icon {
54
+ flex-shrink: 0;
55
+ }
56
+
57
+ .changelog-confetti-emoji {
58
+ font-size: var(--font-size-base);
59
+ margin-left: 2px;
60
+ }
61
+
62
+ .changelog-badge {
63
+ position: absolute;
64
+ top: -4px;
65
+ right: -4px;
66
+ width: 12px;
67
+ height: 12px;
68
+ background: var(--color-error);
69
+ border-radius: var(--radius-full);
70
+ border: 2px solid var(--color-white);
71
+ }
72
+
73
+ /* ========================================
74
+ CONFETTI
75
+ ======================================== */
76
+
77
+ .changelog-confetti-container {
78
+ position: fixed;
79
+ top: 0;
80
+ left: 0;
81
+ width: 100%;
82
+ height: 100%;
83
+ pointer-events: none;
84
+ z-index: var(--z-notification);
85
+ overflow: hidden;
86
+ }
87
+
88
+ .changelog-confetti {
89
+ position: absolute;
90
+ top: -20px;
91
+ opacity: 0;
92
+ animation: confettiFall 2s ease-out forwards;
93
+ }
94
+
95
+ @keyframes confettiFall {
96
+ 0% {
97
+ opacity: 1;
98
+ transform: translateY(0) rotate(0deg) scale(1);
99
+ }
100
+ 10% {
101
+ opacity: 1;
102
+ }
103
+ 100% {
104
+ opacity: 0;
105
+ transform: translateY(100vh) rotate(720deg) scale(0.5);
106
+ }
107
+ }
108
+
109
+ /* ========================================
110
+ POPUP MODAL
111
+ ======================================== */
112
+
113
+ .changelog-modal {
114
+ position: fixed;
115
+ top: 0;
116
+ left: 0;
117
+ right: 0;
118
+ bottom: 0;
119
+ z-index: var(--z-modal);
120
+ display: flex;
121
+ align-items: center;
122
+ justify-content: center;
123
+ padding: var(--spacing-5);
124
+ pointer-events: none;
125
+ font-family: inherit;
126
+ }
127
+
128
+ .changelog-modal-backdrop,
129
+ .changelog-list-modal-backdrop {
130
+ position: fixed;
131
+ inset: 0;
132
+ background: rgba(0, 0, 0, 0.5);
133
+ opacity: 0;
134
+ pointer-events: none;
135
+ transition: opacity var(--transition-slow);
136
+ z-index: var(--z-modal-backdrop);
137
+ }
138
+
139
+ .changelog-modal-backdrop.show,
140
+ .changelog-list-modal-backdrop.show {
141
+ opacity: 1;
142
+ pointer-events: auto;
143
+ }
144
+
145
+ .changelog-modal.open {
146
+ pointer-events: auto;
147
+ }
148
+
149
+ .changelog-modal-container {
150
+ position: relative;
151
+ width: 100%;
152
+ max-width: 480px;
153
+ max-height: 90vh;
154
+ background: var(--color-white);
155
+ border-radius: 12px;
156
+ overflow: hidden;
157
+ box-shadow: var(--shadow-xl);
158
+ transform: scale(0.95) translateY(20px);
159
+ opacity: 0;
160
+ transition: all var(--transition-slow);
161
+ }
162
+
163
+ .changelog-modal.open .changelog-modal-container {
164
+ transform: scale(1) translateY(0);
165
+ opacity: 1;
166
+ }
167
+
168
+ .changelog-modal-close {
169
+ position: absolute;
170
+ top: var(--spacing-4);
171
+ right: var(--spacing-4);
172
+ background: none;
173
+ border: none;
174
+ cursor: pointer;
175
+ color: var(--color-neutral-500);
176
+ padding: 0;
177
+ width: 28px;
178
+ height: 28px;
179
+ display: flex;
180
+ align-items: center;
181
+ justify-content: center;
182
+ border-radius: 8px;
183
+ transition: all var(--transition-base);
184
+ line-height: 1;
185
+ z-index: 10;
186
+ }
187
+
188
+ .changelog-modal-close:hover {
189
+ background: var(--color-neutral-100);
190
+ color: var(--color-neutral-900);
191
+ }
192
+
193
+ .changelog-modal-close:active {
194
+ transform: translateY(1px);
195
+ transition-duration: 100ms;
196
+ }
197
+
198
+ .changelog-modal-content {
199
+ overflow-y: auto;
200
+ max-height: 90vh;
201
+ }
202
+
203
+ .changelog-loading {
204
+ display: flex;
205
+ align-items: center;
206
+ justify-content: center;
207
+ padding: 80px var(--spacing-5);
208
+ }
209
+
210
+ .changelog-empty {
211
+ display: flex;
212
+ flex-direction: column;
213
+ align-items: center;
214
+ justify-content: center;
215
+ padding: 80px var(--spacing-5);
216
+ text-align: center;
217
+ color: var(--color-text-tertiary);
218
+ }
219
+
220
+ .changelog-empty svg {
221
+ margin-bottom: var(--spacing-4);
222
+ stroke: var(--color-neutral-300);
223
+ }
224
+
225
+ .changelog-empty p {
226
+ margin: 0;
227
+ font-size: var(--font-size-md);
228
+ }
229
+
230
+ /* ========================================
231
+ POPUP ITEM
232
+ ======================================== */
233
+
234
+ .changelog-popup-item {
235
+ display: flex;
236
+ flex-direction: column;
237
+ }
238
+
239
+ .changelog-popup-image {
240
+ width: 100%;
241
+ padding: var(--spacing-6) var(--spacing-6) 0;
242
+ }
243
+
244
+ .changelog-popup-image img {
245
+ width: 100%;
246
+ height: auto;
247
+ display: block;
248
+ object-fit: cover;
249
+ border-radius: 8px;
250
+ border: 1px solid var(--color-border);
251
+ }
252
+
253
+ .changelog-popup-body {
254
+ padding: var(--spacing-6) var(--spacing-8) var(--spacing-8);
255
+ text-align: center;
256
+ }
257
+
258
+ .changelog-popup-title {
259
+ margin: 0 0 var(--spacing-3);
260
+ font-size: var(--font-size-xl);
261
+ font-weight: var(--font-weight-semibold);
262
+ line-height: var(--line-height-snug);
263
+ color: var(--color-text-primary);
264
+ }
265
+
266
+ .changelog-popup-description {
267
+ margin: 0 0 var(--spacing-6);
268
+ font-size: var(--font-size-md);
269
+ line-height: var(--line-height-loose);
270
+ color: var(--color-text-secondary);
271
+ }
272
+
273
+ .changelog-popup-btn {
274
+ display: inline-flex;
275
+ align-items: center;
276
+ justify-content: center;
277
+ padding: var(--spacing-3) var(--spacing-8);
278
+ font-size: var(--font-size-base);
279
+ font-weight: var(--font-weight-medium);
280
+ color: #ffffff;
281
+ background: var(--color-primary);
282
+ border: 1px solid var(--color-primary);
283
+ border-radius: 8px;
284
+ cursor: pointer;
285
+ transition: all var(--transition-base);
286
+ font-family: inherit;
287
+ height: 40px;
288
+ }
289
+
290
+ .changelog-popup-btn:hover:not(:disabled) {
291
+ background: var(--color-primary-hover);
292
+ }
293
+
294
+ .changelog-popup-btn:active:not(:disabled) {
295
+ transform: translateY(1px);
296
+ transition-duration: 100ms;
297
+ }
298
+
299
+ .changelog-popup-btn:focus-visible {
300
+ outline: 2px solid var(--color-primary);
301
+ outline-offset: 2px;
302
+ }
303
+
304
+ /* ========================================
305
+ POPUP FOOTER / DOTS
306
+ ======================================== */
307
+
308
+ .changelog-popup-footer {
309
+ padding: 0 var(--spacing-8) var(--spacing-6);
310
+ display: flex;
311
+ flex-direction: column;
312
+ align-items: center;
313
+ gap: var(--spacing-4);
314
+ }
315
+
316
+ .changelog-popup-dots {
317
+ display: flex;
318
+ gap: var(--spacing-2);
319
+ }
320
+
321
+ .changelog-dot {
322
+ width: 8px;
323
+ height: 8px;
324
+ border-radius: var(--radius-full);
325
+ background: var(--color-neutral-300);
326
+ cursor: pointer;
327
+ transition: all var(--transition-base);
328
+ }
329
+
330
+ .changelog-dot:hover {
331
+ background: var(--color-neutral-400);
332
+ }
333
+
334
+ .changelog-dot.active {
335
+ background: var(--color-primary);
336
+ transform: scale(1.2);
337
+ }
338
+
339
+ .changelog-view-all-btn {
340
+ display: inline-flex;
341
+ align-items: center;
342
+ gap: 6px;
343
+ background: none;
344
+ border: none;
345
+ color: var(--color-primary);
346
+ font-size: var(--font-size-base);
347
+ font-weight: var(--font-weight-medium);
348
+ cursor: pointer;
349
+ padding: var(--spacing-2) var(--spacing-3);
350
+ border-radius: 8px;
351
+ transition: all var(--transition-base);
352
+ font-family: inherit;
353
+ }
354
+
355
+ .changelog-view-all-btn:hover {
356
+ background: var(--color-primary-light);
357
+ }
358
+
359
+ .changelog-view-all-btn:active {
360
+ transform: translateY(1px);
361
+ transition-duration: 100ms;
362
+ }
363
+
364
+ /* ========================================
365
+ LIST MODAL
366
+ ======================================== */
367
+
368
+ .changelog-list-modal {
369
+ position: fixed;
370
+ top: 0;
371
+ left: 0;
372
+ right: 0;
373
+ bottom: 0;
374
+ z-index: var(--z-modal);
375
+ display: flex;
376
+ align-items: center;
377
+ justify-content: center;
378
+ padding: var(--spacing-5);
379
+ pointer-events: none;
380
+ font-family: inherit;
381
+ }
382
+
383
+ .changelog-list-modal.open {
384
+ pointer-events: auto;
385
+ }
386
+
387
+ .changelog-list-modal-container {
388
+ position: relative;
389
+ width: 100%;
390
+ max-width: 460px;
391
+ max-height: 85vh;
392
+ background: var(--color-white);
393
+ border-radius: 12px;
394
+ overflow: hidden;
395
+ box-shadow: var(--shadow-lg);
396
+ transform: scale(0.95) translateY(20px);
397
+ opacity: 0;
398
+ transition: all var(--transition-slow);
399
+ display: flex;
400
+ flex-direction: column;
401
+ }
402
+
403
+ .changelog-list-modal.open .changelog-list-modal-container {
404
+ transform: scale(1) translateY(0);
405
+ opacity: 1;
406
+ }
407
+
408
+ .changelog-list-modal-header {
409
+ display: flex;
410
+ align-items: center;
411
+ justify-content: space-between;
412
+ padding: var(--spacing-4) var(--spacing-5);
413
+ border-bottom: 1px solid var(--color-border);
414
+ flex-shrink: 0;
415
+ }
416
+
417
+ .changelog-list-modal-header h2 {
418
+ margin: 0;
419
+ font-size: var(--font-size-md);
420
+ font-weight: var(--font-weight-semibold);
421
+ color: var(--color-text-primary);
422
+ }
423
+
424
+ .changelog-list-modal-close {
425
+ background: none;
426
+ border: none;
427
+ cursor: pointer;
428
+ color: var(--color-neutral-500);
429
+ padding: 0;
430
+ width: 28px;
431
+ height: 28px;
432
+ display: flex;
433
+ align-items: center;
434
+ justify-content: center;
435
+ border-radius: 8px;
436
+ transition: all var(--transition-base);
437
+ }
438
+
439
+ .changelog-list-modal-close:hover {
440
+ background: var(--color-neutral-100);
441
+ color: var(--color-neutral-900);
442
+ }
443
+
444
+ .changelog-list-modal-close:active {
445
+ transform: translateY(1px);
446
+ transition-duration: 100ms;
447
+ }
448
+
449
+ .changelog-list-modal-body {
450
+ flex: 1;
451
+ overflow-y: auto;
452
+ }
453
+
454
+ /* ========================================
455
+ LIST ITEMS
456
+ ======================================== */
457
+
458
+ .changelog-list {
459
+ display: flex;
460
+ flex-direction: column;
461
+ }
462
+
463
+ .changelog-list-item {
464
+ display: flex;
465
+ align-items: center;
466
+ gap: var(--spacing-3);
467
+ padding: var(--spacing-4) var(--spacing-5);
468
+ border-bottom: 1px solid var(--color-border);
469
+ cursor: pointer;
470
+ transition: background var(--transition-base);
471
+ }
472
+
473
+ .changelog-list-item:hover {
474
+ background: var(--color-neutral-50);
475
+ }
476
+
477
+ .changelog-list-item:last-child {
478
+ border-bottom: none;
479
+ }
480
+
481
+ .changelog-list-item-content {
482
+ flex: 1;
483
+ min-width: 0;
484
+ display: flex;
485
+ flex-direction: column;
486
+ gap: 3px;
487
+ }
488
+
489
+ .changelog-list-item-meta {
490
+ display: flex;
491
+ align-items: center;
492
+ gap: var(--spacing-2);
493
+ flex-wrap: wrap;
494
+ }
495
+
496
+ .changelog-list-item-date {
497
+ font-size: var(--font-size-xs);
498
+ color: var(--color-text-tertiary);
499
+ font-weight: var(--font-weight-medium);
500
+ }
501
+
502
+ .changelog-list-item-labels {
503
+ display: flex;
504
+ flex-wrap: wrap;
505
+ gap: var(--spacing-1);
506
+ }
507
+
508
+ .changelog-label {
509
+ display: inline-flex;
510
+ align-items: center;
511
+ padding: 1px 8px;
512
+ border-radius: var(--radius-full);
513
+ font-size: var(--font-size-xs);
514
+ font-weight: var(--font-weight-medium);
515
+ line-height: 1.5;
516
+ }
517
+
518
+ .changelog-list-item-title {
519
+ margin: 0;
520
+ font-size: var(--font-size-base);
521
+ font-weight: var(--font-weight-semibold);
522
+ line-height: var(--line-height-snug);
523
+ color: var(--color-text-primary);
524
+ white-space: nowrap;
525
+ overflow: hidden;
526
+ text-overflow: ellipsis;
527
+ }
528
+
529
+ .changelog-list-item-description {
530
+ margin: 0;
531
+ font-size: var(--font-size-sm);
532
+ line-height: var(--line-height-normal);
533
+ color: var(--color-text-secondary);
534
+ display: -webkit-box;
535
+ -webkit-line-clamp: 2;
536
+ -webkit-box-orient: vertical;
537
+ overflow: hidden;
538
+ }
539
+
540
+ .changelog-list-item-image {
541
+ width: 64px;
542
+ height: 64px;
543
+ flex-shrink: 0;
544
+ border-radius: 8px;
545
+ overflow: hidden;
546
+ border: 1px solid var(--color-border);
547
+ }
548
+
549
+ .changelog-list-item-image img {
550
+ width: 100%;
551
+ height: 100%;
552
+ display: block;
553
+ object-fit: cover;
554
+ }
555
+
556
+ .changelog-list-item-arrow {
557
+ flex-shrink: 0;
558
+ color: var(--color-text-tertiary);
559
+ transition: all var(--transition-base);
560
+ }
561
+
562
+ .changelog-list-item:hover .changelog-list-item-arrow {
563
+ color: var(--color-primary);
564
+ transform: translateX(3px);
565
+ }
566
+
567
+ /* ========================================
568
+ DARK THEME — scoped variable overrides
569
+ ======================================== */
570
+
571
+ .changelog-theme-dark.changelog-widget .changelog-trigger-btn {
572
+ background: #1a1e24;
573
+ color: #e8e8e8;
574
+ border: 1px solid #232930;
575
+ }
576
+
577
+ .changelog-theme-dark.changelog-modal-backdrop,
578
+ .changelog-theme-dark.changelog-list-modal-backdrop {
579
+ background: rgba(2, 6, 23, 0.72);
580
+ }
581
+
582
+ .changelog-theme-dark .changelog-modal-container,
583
+ .changelog-theme-dark .changelog-list-modal-container {
584
+ --color-white: #1a1e24;
585
+ --color-border: #232930;
586
+ --color-neutral-50: #232930;
587
+ --color-neutral-100: #2d343c;
588
+ --color-neutral-300: #2d343c;
589
+ --color-neutral-400: #555555;
590
+ --color-neutral-500: #777777;
591
+ --color-neutral-900: #e8e8e8;
592
+ --color-text-primary: #e8e8e8;
593
+ --color-text-secondary: #999999;
594
+ --color-text-tertiary: #666666;
595
+ }
596
+
597
+ /* ========================================
598
+ RESPONSIVE
599
+ ======================================== */
600
+
601
+ @media (max-width: 768px) {
602
+ .changelog-widget {
603
+ bottom: var(--spacing-4);
604
+ right: var(--spacing-4);
605
+ }
606
+
607
+ .changelog-widget.position-left {
608
+ left: var(--spacing-4);
609
+ }
610
+
611
+ .changelog-modal {
612
+ padding: var(--spacing-4);
613
+ }
614
+
615
+ .changelog-modal-container {
616
+ max-width: 100%;
617
+ border-radius: 12px;
618
+ }
619
+
620
+ .changelog-popup-image {
621
+ padding: var(--spacing-5) var(--spacing-5) 0;
622
+ }
623
+
624
+ .changelog-popup-body {
625
+ padding: var(--spacing-5) var(--spacing-6) var(--spacing-6);
626
+ }
627
+
628
+ .changelog-popup-title {
629
+ font-size: var(--font-size-lg);
630
+ }
631
+
632
+ .changelog-popup-description {
633
+ font-size: var(--font-size-base);
634
+ }
635
+
636
+ .changelog-popup-btn {
637
+ padding: var(--spacing-3) var(--spacing-7);
638
+ font-size: var(--font-size-base);
639
+ width: 100%;
640
+ }
641
+
642
+ .changelog-popup-footer {
643
+ padding: 0 var(--spacing-6) var(--spacing-5);
644
+ }
645
+
646
+ .changelog-list-modal {
647
+ padding: var(--spacing-4);
648
+ }
649
+
650
+ .changelog-list-modal-container {
651
+ max-width: 100%;
652
+ max-height: 90vh;
653
+ border-radius: 12px;
654
+ }
655
+
656
+ .changelog-list-item {
657
+ padding: var(--spacing-3) var(--spacing-4);
658
+ }
659
+
660
+ .changelog-list-item-image {
661
+ width: 56px;
662
+ height: 56px;
663
+ }
664
+ }
665
+ `;