@multiplayer-app/session-recorder-browser 1.2.22 → 1.2.23

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 (166) hide show
  1. package/dist/browser/index.js +48 -104
  2. package/dist/browser/index.js.map +1 -1
  3. package/dist/config/constants.d.ts +19 -0
  4. package/dist/config/constants.js +35 -0
  5. package/dist/config/constants.js.map +1 -0
  6. package/dist/config/defaults.d.ts +5 -0
  7. package/dist/config/defaults.js +60 -0
  8. package/dist/config/defaults.js.map +1 -0
  9. package/dist/config/index.d.ts +6 -0
  10. package/dist/config/index.js +7 -0
  11. package/dist/config/index.js.map +1 -0
  12. package/dist/config/masking.d.ts +3 -0
  13. package/dist/config/masking.js +30 -0
  14. package/dist/config/masking.js.map +1 -0
  15. package/dist/config/session-recorder.d.ts +3 -0
  16. package/dist/config/session-recorder.js +60 -0
  17. package/dist/config/session-recorder.js.map +1 -0
  18. package/dist/config/validators.d.ts +11 -0
  19. package/dist/config/validators.js +25 -0
  20. package/dist/config/validators.js.map +1 -0
  21. package/dist/eventBus.d.ts +3 -0
  22. package/dist/eventBus.js +3 -0
  23. package/dist/eventBus.js.map +1 -0
  24. package/dist/exporters/index.js +1 -1
  25. package/dist/exporters.d.ts +4 -0
  26. package/dist/exporters.js +8 -0
  27. package/dist/exporters.js.map +1 -0
  28. package/dist/index.d.ts +10 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +52 -104
  31. package/dist/index.js.map +1 -1
  32. package/dist/index.umd.js +48 -103
  33. package/dist/index.umd.js.map +1 -1
  34. package/dist/listeners.d.ts +3 -0
  35. package/dist/listeners.js +39 -0
  36. package/dist/listeners.js.map +1 -0
  37. package/dist/navigation/index.d.ts +3 -0
  38. package/dist/navigation/index.js +3 -0
  39. package/dist/navigation/index.js.map +1 -0
  40. package/dist/navigation/navigationRecorder.d.ts +22 -0
  41. package/dist/navigation/navigationRecorder.js +195 -0
  42. package/dist/navigation/navigationRecorder.js.map +1 -0
  43. package/dist/navigation/types.d.ts +32 -0
  44. package/dist/navigation/types.js +2 -0
  45. package/dist/navigation/types.js.map +1 -0
  46. package/dist/otel/helpers.d.ts +46 -0
  47. package/dist/otel/helpers.js +201 -0
  48. package/dist/otel/helpers.js.map +1 -0
  49. package/dist/otel/index.d.ts +18 -0
  50. package/dist/otel/index.js +186 -0
  51. package/dist/otel/index.js.map +1 -0
  52. package/dist/otel/types.d.ts +10 -0
  53. package/dist/otel/types.js +2 -0
  54. package/dist/otel/types.js.map +1 -0
  55. package/dist/patch/configs.d.ts +9 -0
  56. package/dist/patch/configs.js +16 -0
  57. package/dist/patch/configs.js.map +1 -0
  58. package/dist/patch/fetch.d.ts +2 -0
  59. package/dist/patch/fetch.js +123 -0
  60. package/dist/patch/fetch.js.map +1 -0
  61. package/dist/patch/index.d.ts +4 -0
  62. package/dist/patch/index.js +4 -0
  63. package/dist/patch/index.js.map +1 -0
  64. package/dist/patch/xhr.d.ts +2 -0
  65. package/dist/patch/xhr.js +85 -0
  66. package/dist/patch/xhr.js.map +1 -0
  67. package/dist/rrweb/exporter.d.ts +25 -0
  68. package/dist/rrweb/exporter.js +146 -0
  69. package/dist/rrweb/exporter.js.map +1 -0
  70. package/dist/rrweb/index.d.ts +39 -0
  71. package/dist/rrweb/index.js +139 -0
  72. package/dist/rrweb/index.js.map +1 -0
  73. package/dist/rrweb/indexedDbService.d.ts +9 -0
  74. package/dist/rrweb/indexedDbService.js +54 -0
  75. package/dist/rrweb/indexedDbService.js.map +1 -0
  76. package/dist/services/api.service.d.ts +81 -0
  77. package/dist/services/api.service.js +133 -0
  78. package/dist/services/api.service.js.map +1 -0
  79. package/dist/services/messaging.service.d.ts +16 -0
  80. package/dist/services/messaging.service.js +94 -0
  81. package/dist/services/messaging.service.js.map +1 -0
  82. package/dist/sessionRecorder.d.ts +148 -0
  83. package/dist/sessionRecorder.js +555 -0
  84. package/dist/sessionRecorder.js.map +1 -0
  85. package/dist/sessionWidget/UIManager.d.ts +76 -0
  86. package/dist/sessionWidget/UIManager.js +135 -0
  87. package/dist/sessionWidget/UIManager.js.map +1 -0
  88. package/dist/sessionWidget/buttonStateConfigs.d.ts +83 -0
  89. package/dist/sessionWidget/buttonStateConfigs.js +86 -0
  90. package/dist/sessionWidget/buttonStateConfigs.js.map +1 -0
  91. package/dist/sessionWidget/constants.d.ts +5 -0
  92. package/dist/sessionWidget/constants.js +5 -0
  93. package/dist/sessionWidget/constants.js.map +1 -0
  94. package/dist/sessionWidget/dragManager.d.ts +16 -0
  95. package/dist/sessionWidget/dragManager.js +114 -0
  96. package/dist/sessionWidget/dragManager.js.map +1 -0
  97. package/dist/sessionWidget/index.d.ts +86 -0
  98. package/dist/sessionWidget/index.js +564 -0
  99. package/dist/sessionWidget/index.js.map +1 -0
  100. package/dist/sessionWidget/templates/finalPopover.d.ts +3 -0
  101. package/dist/sessionWidget/templates/finalPopover.js +21 -0
  102. package/dist/sessionWidget/templates/finalPopover.js.map +1 -0
  103. package/dist/sessionWidget/templates/icons.d.ts +14 -0
  104. package/dist/sessionWidget/templates/icons.js +50 -0
  105. package/dist/sessionWidget/templates/icons.js.map +1 -0
  106. package/dist/sessionWidget/templates/initialPopover.d.ts +3 -0
  107. package/dist/sessionWidget/templates/initialPopover.js +41 -0
  108. package/dist/sessionWidget/templates/initialPopover.js.map +1 -0
  109. package/dist/sessionWidget/templates/recordingOverlay.d.ts +2 -0
  110. package/dist/sessionWidget/templates/recordingOverlay.js +16 -0
  111. package/dist/sessionWidget/templates/recordingOverlay.js.map +1 -0
  112. package/dist/sessionWidget/templates/submitSessionDialog.d.ts +3 -0
  113. package/dist/sessionWidget/templates/submitSessionDialog.js +17 -0
  114. package/dist/sessionWidget/templates/submitSessionDialog.js.map +1 -0
  115. package/dist/sessionWidget/templates/toast.d.ts +3 -0
  116. package/dist/sessionWidget/templates/toast.js +25 -0
  117. package/dist/sessionWidget/templates/toast.js.map +1 -0
  118. package/dist/types/client-type.enum.d.ts +6 -0
  119. package/dist/types/client-type.enum.js +7 -0
  120. package/dist/types/client-type.enum.js.map +1 -0
  121. package/dist/types/index.d.ts +4 -0
  122. package/dist/types/index.js +4 -0
  123. package/dist/types/index.js.map +1 -0
  124. package/dist/types/session.d.ts +72 -0
  125. package/dist/types/session.js +7 -0
  126. package/dist/types/session.js.map +1 -0
  127. package/dist/types/sessionRecorder.d.ts +369 -0
  128. package/dist/types/sessionRecorder.js +14 -0
  129. package/dist/types/sessionRecorder.js.map +1 -0
  130. package/dist/types/widget.d.ts +11 -0
  131. package/dist/types/widget.js +2 -0
  132. package/dist/types/widget.js.map +1 -0
  133. package/dist/utils/array.d.ts +4 -0
  134. package/dist/utils/array.js +50 -0
  135. package/dist/utils/array.js.map +1 -0
  136. package/dist/utils/dom.d.ts +5 -0
  137. package/dist/utils/dom.js +9 -0
  138. package/dist/utils/dom.js.map +1 -0
  139. package/dist/utils/globals.d.ts +24 -0
  140. package/dist/utils/globals.js +14 -0
  141. package/dist/utils/globals.js.map +1 -0
  142. package/dist/utils/index.d.ts +9 -0
  143. package/dist/utils/index.js +10 -0
  144. package/dist/utils/index.js.map +1 -0
  145. package/dist/utils/navigator.d.ts +3 -0
  146. package/dist/utils/navigator.js +83 -0
  147. package/dist/utils/navigator.js.map +1 -0
  148. package/dist/utils/request-utils.d.ts +10 -0
  149. package/dist/utils/request-utils.js +70 -0
  150. package/dist/utils/request-utils.js.map +1 -0
  151. package/dist/utils/session.d.ts +8 -0
  152. package/dist/utils/session.js +21 -0
  153. package/dist/utils/session.js.map +1 -0
  154. package/dist/utils/storage.d.ts +7 -0
  155. package/dist/utils/storage.js +19 -0
  156. package/dist/utils/storage.js.map +1 -0
  157. package/dist/utils/time.d.ts +7 -0
  158. package/dist/utils/time.js +25 -0
  159. package/dist/utils/time.js.map +1 -0
  160. package/dist/utils/type-utils.d.ts +18 -0
  161. package/dist/utils/type-utils.js +71 -0
  162. package/dist/utils/type-utils.js.map +1 -0
  163. package/package.json +7 -2
  164. package/dist/exports.d.ts.map +0 -1
  165. package/docs/img/header-js.png +0 -0
  166. package/src/index.scss +0 -913
package/src/index.scss DELETED
@@ -1,913 +0,0 @@
1
- // Variables
2
- $font-family-base: "PP Neue Montreal", Montserrat, Roboto, Arial, sans-serif;
3
- $font-family-inter: Inter, sans-serif;
4
-
5
- // Colors
6
- $color-primary: #493bff;
7
- $color-primary-dark: #382be4;
8
- $color-primary-darker: #160d9c;
9
- $color-text-primary: #2d3748;
10
- $color-text-secondary: #718096;
11
- $color-border: #e1e8f1;
12
- $color-background: #ffffff;
13
- $color-overlay: rgba(0, 0, 0, 0.5);
14
-
15
- // Spacing
16
- $spacing-xs: 4px;
17
- $spacing-sm: 8px;
18
- $spacing-md: 12px;
19
- $spacing-lg: 16px;
20
- $spacing-xl: 20px;
21
- $spacing-xxl: 24px;
22
-
23
- // Border radius
24
- $border-radius-sm: 8px;
25
- $border-radius-md: 12px;
26
- $border-radius-lg: 24px;
27
- $border-radius-full: 36px;
28
-
29
- // Z-index layers
30
- $z-index-base: 10000;
31
- $z-index-overlay: 10003;
32
- $z-index-modal: 10004;
33
-
34
- // Mixins
35
- @mixin flex-center {
36
- display: flex;
37
- align-items: center;
38
- justify-content: center;
39
- }
40
-
41
- @mixin flex-between {
42
- display: flex;
43
- align-items: center;
44
- justify-content: space-between;
45
- }
46
-
47
- @mixin button-base {
48
- cursor: pointer;
49
- border-radius: $border-radius-md;
50
- font-family: $font-family-inter;
51
- font-size: 14px;
52
- font-weight: 500;
53
- transition: all 0.2s;
54
- }
55
-
56
- @mixin gradient-primary {
57
- background: linear-gradient(
58
- 180deg,
59
- $color-primary 0%,
60
- $color-primary-dark 100%
61
- );
62
- }
63
-
64
- @mixin box-shadow-sm {
65
- box-shadow: 0 1px 1px -0.5px rgba(0, 0, 0, 0.06),
66
- 0 3px 3px -1.5px rgba(0, 0, 0, 0.06);
67
- }
68
-
69
- // Base styles
70
- .mp-root-wrapper {
71
- * {
72
- font-family: $font-family-base !important;
73
- box-sizing: border-box;
74
- }
75
-
76
- textarea {
77
- background: $color-background;
78
- color: $color-text-primary;
79
- }
80
- }
81
-
82
- // Button styles
83
- .mp-session-debugger-button {
84
- @include button-base;
85
- @include flex-center;
86
- position: fixed;
87
- z-index: 2247483003;
88
- padding: 5px;
89
- background-color: $color-background;
90
- border: solid 1px #bebfc1;
91
- border-radius: $border-radius-full;
92
- color: $color-text-secondary;
93
- transition: background 0.3s;
94
-
95
- width: 42px;
96
- height: 42px;
97
- will-change: right, bottom;
98
-
99
- &.is-started {
100
- color: $color-primary;
101
- }
102
-
103
- // Position variants
104
- &.top-left {
105
- top: $spacing-xxl;
106
- left: $spacing-xxl;
107
- }
108
-
109
- &.top-right {
110
- top: $spacing-xxl;
111
- right: $spacing-xxl;
112
- }
113
-
114
- &.bottom-left {
115
- bottom: $spacing-xxl;
116
- left: $spacing-xxl;
117
- }
118
-
119
- &.bottom-right {
120
- bottom: $spacing-xxl;
121
- right: $spacing-xxl;
122
- }
123
-
124
- &.no-draggable {
125
- position: static;
126
- &::before {
127
- transform: translateY(-18px) !important;
128
- top: -10px !important;
129
- left: 10px !important;
130
- }
131
- &:hover::before {
132
- z-index: 1;
133
- transform: translateY(-18px);
134
- top: -10px;
135
- left: 10px;
136
- right: unset;
137
- }
138
- &.no-tooltip::before {
139
- display: none;
140
- }
141
- }
142
- &.mp-button-blue {
143
- border: 1px rgba(0, 0, 0, 0.2);
144
- background: #493bff;
145
- &::before {
146
- opacity: 1;
147
- transform: translateX(0);
148
- }
149
- }
150
- &:not([data-tooltip=""]) {
151
- &:before {
152
- content: attr(data-tooltip);
153
- position: absolute;
154
- pointer-events: none;
155
- height: 28px;
156
- top: 6px;
157
- padding: 6px 8px 6px 8px;
158
- border-radius: 8px;
159
- font-family: Inter, sans-serif;
160
- font-size: 12px;
161
- font-weight: 500;
162
- line-height: 16px;
163
- opacity: 0;
164
- transition: all 0.3s;
165
- background: #1a202c;
166
- color: white;
167
- white-space: nowrap;
168
- box-sizing: border-box;
169
- z-index: -1;
170
- transform: translateX(-8px);
171
- left: unset;
172
- right: 100%;
173
- }
174
- &.top-left:before,
175
- &.bottom-left:before,
176
- &.button-leftside:before {
177
- transform: translateX(8px);
178
- left: 100%;
179
- right: unset;
180
- }
181
- }
182
- &:not(.no-hover) {
183
- &:hover {
184
- color: #473cfb;
185
- box-shadow: 0 3px 3px -1.5px rgba(0, 0, 0, 0.06),
186
- 0 1px 1px -0.5px rgba(0, 0, 0, 0.06);
187
- &:before {
188
- opacity: 1;
189
- }
190
- &:not(.no-draggable) {
191
- .mp-drag-hint svg {
192
- opacity: 1;
193
- }
194
- }
195
- }
196
- }
197
- svg {
198
- transform: rotate(0deg);
199
- transition: transform 0.3s linear;
200
- }
201
- &.rotate-on-hover {
202
- &:hover {
203
- svg {
204
- transform: rotate(-180deg);
205
- }
206
- }
207
- }
208
- &.animate-rotate svg {
209
- animation: _rotateAnimation 3s linear infinite;
210
- }
211
- }
212
-
213
- .animate-bounce {
214
- animation: _bounceAnimation 1.6s infinite;
215
- animation-timing-function: cubic-bezier(0.87, 0, 0.13, 1);
216
- }
217
-
218
- .mp-drag-hint svg {
219
- position: absolute;
220
- width: 14px;
221
- height: 14px;
222
- top: -3px;
223
- right: -9px;
224
- opacity: 0;
225
- transform: unset !important;
226
- transition: opacity 0.1ms ease-in !important;
227
- cursor: grab;
228
- }
229
-
230
- .mp-session-debugger-popover-textarea {
231
- border: 1px solid #cbd5e0;
232
- box-shadow: 0 12px 12px -12px #0000000f, 0 6px 6px -3px #0000000f,
233
- 0 3px 3px -1.5px #0000000f, 0 1px 1px -0.5px #0000000f;
234
- padding: 10px 13px 10px 13px;
235
- border-radius: 12px;
236
- font-family: Inter, serif;
237
- font-size: 14px;
238
- font-weight: 400;
239
- color: #718096;
240
- margin-bottom: 32px;
241
- width: 100%;
242
- height: 80px;
243
- resize: none;
244
- }
245
-
246
- .mp-session-debugger {
247
- &-popover {
248
- position: fixed;
249
- bottom: 90px;
250
- right: $spacing-xxl;
251
- width: 300px;
252
- background: $color-background;
253
- border-radius: $border-radius-lg;
254
- overflow: hidden;
255
- border: 1px solid rgba(245, 245, 245, 1);
256
- @include box-shadow-sm;
257
- z-index: $z-index-base;
258
-
259
- &.hidden {
260
- display: none;
261
- }
262
-
263
- &-content {
264
- position: relative;
265
- padding: 65px $spacing-lg $spacing-lg;
266
- }
267
-
268
- &-header {
269
- position: absolute;
270
- top: 0;
271
- width: 100%;
272
- right: 0;
273
- @include flex-between;
274
- padding: $spacing-lg;
275
- gap: $spacing-sm;
276
- background: linear-gradient(
277
- 180deg,
278
- rgba(255, 255, 255, 0) 50%,
279
- rgba(255, 255, 255, 1) 100%
280
- ),
281
- linear-gradient(90deg, #d8f3fd 0%, #e3ecfd 100%);
282
-
283
- a {
284
- color: inherit;
285
- margin-right: auto;
286
- text-decoration: none;
287
- }
288
- }
289
-
290
- &-body {
291
- h2 {
292
- margin-bottom: $spacing-xs;
293
- font-size: 18px;
294
- font-weight: 600;
295
- color: $color-text-primary;
296
- font-family: $font-family-base;
297
- }
298
-
299
- p {
300
- font-family: $font-family-base;
301
- font-size: 14px;
302
- font-weight: 400;
303
- color: $color-text-secondary;
304
- margin-bottom: 32px;
305
- }
306
- &:has(#mp-session-debugger-continuous-debugging-checkbox:checked) {
307
- .mp-session-debugger-continuous-debugging-overlay {
308
- display: flex;
309
- }
310
- }
311
- }
312
-
313
- &-footer {
314
- @include flex-between;
315
- gap: $spacing-sm;
316
- }
317
-
318
- &-button {
319
- @include button-base;
320
- border: none;
321
- color: $color-background;
322
- width: 100%;
323
- position: relative;
324
- padding: $spacing-md $spacing-lg;
325
- border-radius: $border-radius-md;
326
- background: transparent;
327
- overflow: hidden;
328
- z-index: 1;
329
-
330
- &::before {
331
- content: "";
332
- position: absolute;
333
- top: 0;
334
- left: 0;
335
- right: 0;
336
- bottom: 0;
337
- @include gradient-primary;
338
- transition: opacity 0.3s linear;
339
- z-index: -1;
340
- }
341
-
342
- &::after {
343
- content: "";
344
- position: absolute;
345
- top: 0;
346
- left: 0;
347
- right: 0;
348
- bottom: 0;
349
- background: linear-gradient(
350
- 180deg,
351
- $color-primary-darker 0%,
352
- #160d9c 100%
353
- );
354
- transition: opacity 0.3s linear;
355
- z-index: -1;
356
- opacity: 0;
357
- }
358
-
359
- &:hover::after {
360
- opacity: 1;
361
- }
362
-
363
- &:disabled,
364
- &.disabled {
365
- pointer-events: none;
366
- opacity: 0.6;
367
- cursor: not-allowed;
368
- transition: opacity 0.2s ease;
369
-
370
- &:hover,
371
- &:focus {
372
- background-color: inherit;
373
- box-shadow: none;
374
- }
375
- }
376
- }
377
- }
378
-
379
- &-continuous-debugging {
380
- position: relative;
381
- z-index: 3;
382
- @include flex-between;
383
- gap: $spacing-sm;
384
- padding: $spacing-md;
385
- border-radius: $border-radius-md;
386
- border: 1px solid $color-border;
387
- @include box-shadow-sm;
388
- margin-bottom: $spacing-xl;
389
-
390
- &-overlay {
391
- position: absolute;
392
- inset: 65px 0 0 0;
393
- z-index: 2;
394
- display: none;
395
- border-radius: $border-radius-md;
396
- backdrop-filter: blur(10px);
397
- background: rgba(255, 255, 255, 0.5);
398
- flex-direction: column;
399
- justify-content: flex-end;
400
- padding: $spacing-md;
401
- gap: $spacing-md;
402
-
403
- &-content {
404
- padding: $spacing-md;
405
- background: $color-background;
406
- border-radius: $border-radius-md;
407
- border: 1px solid $color-border;
408
- @include box-shadow-sm;
409
-
410
- h3 {
411
- @include flex-center;
412
- justify-content: flex-start;
413
- margin: 0;
414
- gap: $spacing-sm;
415
- font-size: 14px;
416
- font-weight: 500;
417
- svg {
418
- width: 20px;
419
- height: 20px;
420
- animation: _bounceAnimation 1.6s infinite;
421
- animation-timing-function: cubic-bezier(0.87, 0, 0.13, 1);
422
- }
423
- }
424
- p {
425
- margin: 0;
426
- }
427
- }
428
- }
429
-
430
- &-label {
431
- gap: $spacing-sm;
432
- display: flex;
433
- font-size: 14px;
434
- color: $color-text-primary;
435
- font-weight: 500;
436
- }
437
-
438
- &-switch {
439
- display: flex;
440
- align-items: center;
441
- width: 44px;
442
- height: 24px;
443
- padding: 2px;
444
- cursor: pointer;
445
- border-radius: $border-radius-full;
446
- background: #e2e8f0;
447
-
448
- &:has(input:checked) {
449
- background: $color-primary;
450
- justify-content: flex-end;
451
- }
452
-
453
- input {
454
- display: none;
455
- }
456
-
457
- span {
458
- width: 20px;
459
- height: 20px;
460
- border-radius: 50%;
461
- background: $color-background;
462
- transition: transform 0.2s;
463
- }
464
- }
465
- }
466
- }
467
-
468
- // Recording overlay
469
- .mp-recording {
470
- &-overlay {
471
- background: #5c5d5d;
472
- color: $color-background;
473
- display: flex;
474
- z-index: 2147483007;
475
- left: 50%;
476
- bottom: $spacing-xl;
477
- position: fixed;
478
- transform: translate(-50%, 0);
479
- border: 0.5px solid #5c5d5d;
480
- border-radius: $border-radius-lg;
481
- font-family: Arial, sans-serif;
482
- flex-direction: row;
483
- font-size: 14px;
484
- box-shadow: 0 1px 1px -0.5px rgba(0, 0, 0, 0.3);
485
-
486
- &.hidden {
487
- display: none;
488
- }
489
- }
490
-
491
- &-status {
492
- gap: $spacing-sm;
493
- display: flex;
494
- padding: $spacing-md $spacing-md;
495
- flex-direction: row;
496
- align-items: center;
497
- }
498
-
499
- &-indicator {
500
- width: 24px;
501
- height: 24px;
502
- animation: pulse 1.5s infinite;
503
- }
504
-
505
- &-controls {
506
- display: flex;
507
- }
508
-
509
- &-btn {
510
- border: none;
511
- border-right: 0.5px solid #5c5d5d;
512
- background: #414141;
513
- padding: 6px $spacing-md;
514
- font-weight: bold;
515
- cursor: pointer;
516
- color: $color-background;
517
- gap: $spacing-sm;
518
- }
519
- }
520
-
521
- .mp-session-debugger-modal.hidden {
522
- display: none;
523
- }
524
-
525
- .mp-session-debugger-popover-logo svg {
526
- width: 30px;
527
- }
528
-
529
- .mp-session-debugger-dismiss-button {
530
- display: flex;
531
- justify-content: center;
532
- align-items: center;
533
- padding: 6px 16px;
534
- background: white;
535
- border: 1px solid #e1e8f1;
536
- box-shadow: 0 3px 3px -1.5px #0000000f, 0 1px 1px -0.5px #0000000f;
537
- border-radius: 12px;
538
- font-size: 14px;
539
- color: #2d3748;
540
- font-weight: 500;
541
- }
542
-
543
- .mp-session-debugger-modal-backdrop {
544
- position: fixed;
545
- top: 0;
546
- left: 0;
547
- width: 100vw;
548
- height: 100vh;
549
- background-color: rgba(0, 0, 0, 0.5);
550
- z-index: 10003;
551
- }
552
-
553
- /* Modal content */
554
- .mp-session-debugger-modal-content {
555
- position: fixed;
556
- top: 50%;
557
- left: 50%;
558
- transform: translate(-50%, -50%);
559
- background: white;
560
- padding: 20px;
561
- border-radius: 8px;
562
- width: 80vw;
563
- min-height: 70vh;
564
- max-height: 90vh;
565
- z-index: 10004;
566
- display: flex;
567
- flex-direction: column;
568
- }
569
-
570
- /* Close button */
571
- .mp-session-debugger-modal-close {
572
- background: none;
573
- border: none;
574
- padding: $spacing-sm;
575
- cursor: pointer;
576
- color: grey;
577
- line-height: 1;
578
- svg {
579
- vertical-align: top;
580
- }
581
- }
582
-
583
- /* Modal body */
584
- .mp-session-debugger-modal-body {
585
- flex: 1;
586
- display: flex;
587
- flex-direction: column;
588
- padding: 20px 0;
589
- height: 100%;
590
- overflow: hidden;
591
- background: white;
592
- .rr-player {
593
- border-radius: 4px;
594
- border: 1px solid #c1c5ca;
595
- box-shadow: unset;
596
- overflow: hidden;
597
- }
598
- }
599
-
600
-
601
- .mp-session-debugger-player-frame {
602
- display: flex;
603
- flex: 1;
604
- overflow: hidden;
605
- .replayer-wrapper {
606
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
607
- }
608
- }
609
-
610
- /* Modal footer */
611
- .mp-session-debugger-modal-footer {
612
- display: flex;
613
- justify-content: flex-end;
614
- gap: 10px;
615
- }
616
-
617
- /* Buttons */
618
- .mp-session-debugger-modal-button {
619
- width: auto;
620
- }
621
-
622
- .mp-dismiss-recording,
623
- .mp-dismiss-recording:before,
624
- .mp-dismiss-recording:after {
625
- background: white;
626
- border: 1px solid #e1e8f1;
627
- color: #2d3748;
628
- }
629
-
630
- @keyframes _rotateAnimation {
631
- 0% {
632
- transform: rotate(0);
633
- }
634
-
635
- 100% {
636
- transform: rotate(360deg);
637
- }
638
- }
639
-
640
- @keyframes _bounceAnimation {
641
- 0%,
642
- 100% {
643
- padding: 3px;
644
- }
645
- 50% {
646
- padding: 0;
647
- }
648
- }
649
-
650
- // Dialog styles
651
- #mp-submission-dialog {
652
- position: fixed;
653
- top: 0;
654
- left: 0;
655
- right: 0;
656
- bottom: 0;
657
- z-index: 99999;
658
- @include flex-center;
659
- font-family: -apple-system, BlinkMacSystemFont, sans-serif;
660
-
661
- &.hidden {
662
- display: none;
663
- }
664
-
665
- .mp-dialog {
666
- &-backdrop {
667
- background: rgba(0, 0, 0, 0.4);
668
- position: fixed;
669
- width: 100%;
670
- height: 100%;
671
- }
672
-
673
- &-content {
674
- top: 30%;
675
- left: 40%;
676
- position: absolute;
677
- background: $color-background;
678
- border-radius: $border-radius-lg;
679
- padding: $spacing-xxl;
680
- width: 90%;
681
- max-width: 450px;
682
- z-index: 100000;
683
- animation: fadeIn 0.3s ease-out;
684
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
685
- }
686
-
687
- &-actions {
688
- @include flex-between;
689
- gap: $spacing-md;
690
- }
691
- }
692
-
693
- h3 {
694
- margin-bottom: $spacing-lg;
695
- font-size: 20px;
696
- color: #2a374a;
697
- }
698
-
699
- .subtitle {
700
- font-size: 12px;
701
- color: #6d8198;
702
- margin-bottom: $spacing-lg;
703
- }
704
-
705
- .form-group {
706
- margin-bottom: $spacing-xl;
707
- }
708
-
709
- label {
710
- display: block;
711
- margin-bottom: $spacing-sm;
712
- color: #555;
713
- font-size: 14px;
714
- }
715
-
716
- textarea {
717
- width: 100%;
718
- padding: $spacing-md;
719
- border: 1px solid #e0e0e0;
720
- border-radius: $border-radius-sm;
721
- resize: vertical;
722
- min-height: 100px;
723
- max-height: 350px;
724
- font-family: inherit;
725
- font-size: 14px;
726
- transition: border 0.2s;
727
-
728
- &:focus {
729
- outline: none;
730
- border-color: $color-primary-dark;
731
- box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
732
- }
733
-
734
- &::placeholder {
735
- color: #6d8198;
736
- opacity: 1;
737
- }
738
- }
739
-
740
- button {
741
- padding: $spacing-md $spacing-lg;
742
- border-radius: $border-radius-md;
743
- cursor: pointer;
744
- font-size: 14px;
745
- font-weight: 500;
746
- transition: all 0.2s;
747
- }
748
-
749
- #mp-cancel-submission {
750
- background: #f5f5f5;
751
- border: 1px solid $color-border;
752
- color: $color-text-primary;
753
- @include box-shadow-sm;
754
- }
755
-
756
- #mp-submit-recording {
757
- @include gradient-primary;
758
- border: none;
759
- color: $color-background;
760
-
761
- &:hover {
762
- background: linear-gradient(
763
- 180deg,
764
- $color-primary 0%,
765
- $color-primary-darker 100%
766
- );
767
- }
768
- }
769
- }
770
-
771
- #mp-confirmation-dialog {
772
- position: fixed;
773
- top: 0;
774
- left: 0;
775
- width: 100%;
776
- height: 100%;
777
- font-size: 14px;
778
- background: rgba(0, 0, 0, 0.4);
779
- @include flex-center;
780
- z-index: 9999;
781
-
782
- .mp-dialog {
783
- &-content {
784
- padding: $spacing-xl;
785
- color: #2a374a;
786
- max-width: 410px;
787
- background: $color-background;
788
- border-radius: $border-radius-lg;
789
- }
790
-
791
- &-buttons {
792
- gap: $spacing-md;
793
- display: flex;
794
- margin-top: $spacing-lg;
795
- justify-content: flex-end;
796
- }
797
- }
798
-
799
- button {
800
- font-weight: 500;
801
- cursor: pointer;
802
- padding: $spacing-md $spacing-lg;
803
- border-radius: $border-radius-md;
804
- transition: all 0.2s;
805
- }
806
-
807
- #mp-dialog-confirm {
808
- background: #dd524c;
809
- color: $color-background;
810
-
811
- &:hover {
812
- background: #c53030;
813
- }
814
- }
815
-
816
- #mp-dialog-cancel {
817
- background: #f5f5f5;
818
- border: 1px solid $color-border;
819
- color: $color-text-primary;
820
- @include box-shadow-sm;
821
- }
822
- }
823
-
824
- // Utility classes
825
- .mp-drag-handle {
826
- padding: $spacing-md $spacing-md;
827
- @include flex-center;
828
- }
829
-
830
-
831
-
832
- // Toast styles
833
- .mp-toast {
834
- left: 50%;
835
- bottom: 40px;
836
- position: fixed;
837
- transform: translateX(-50%);
838
- background: #535454;
839
- z-index: 10001;
840
- padding: 0;
841
- border: none;
842
- border-radius: 14px;
843
- box-shadow: 0 4px 24px rgba(0, 0, 0, 0.18);
844
- display: flex;
845
- font-size: 14px;
846
- font-weight: 500;
847
- animation: slideUpCenter 0.3s cubic-bezier(0.4,0,0.2,1);
848
- &-error {
849
- .mp-toast-icon {
850
- color: #dd524c;
851
- }
852
- }
853
- &.hidden {
854
- display: none;
855
- }
856
-
857
- &-content {
858
- padding: 0;
859
- gap: 12px;
860
- color: white;
861
- display: flex;
862
- align-items: center;
863
- width: 100%;
864
- height: 100%;
865
- white-space: nowrap;
866
- }
867
-
868
- &-icon {
869
- margin-left: 12px;
870
- display: flex;
871
- align-items: center;
872
- justify-content: center;
873
- svg {
874
- width: 20px;
875
- height: 20px;
876
- }
877
- }
878
-
879
- &-message {
880
- flex: 1;
881
- margin-right: 12px;
882
- font-weight: 500;
883
- }
884
-
885
- &-button {
886
- display: flex;
887
- align-items: center;
888
- justify-content: center;
889
- border-top-right-radius: 14px;
890
- border-bottom-right-radius: 14px;
891
- padding: 12px 16px !important;
892
- background: #414141 !important;
893
- font-weight: 500 !important;
894
- border: 0.5px solid #5C5D5D;
895
- cursor: pointer;
896
- text-decoration: none !important;
897
- transition: background 0.18s;
898
- }
899
- &-button:hover, &-button:focus {
900
- background: rgba(255,255,255,0.18);
901
- }
902
- }
903
-
904
- @keyframes slideUpCenter {
905
- from {
906
- transform: translateX(-50%) translateY(40px);
907
- opacity: 0;
908
- }
909
- to {
910
- transform: translateX(-50%) translateY(0);
911
- opacity: 1;
912
- }
913
- }