@e-llm-studio/feedback-flow 0.0.0-stage → 0.1.31

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.
@@ -0,0 +1,1078 @@
1
+ .cw-feedback-prompt {
2
+ position: relative;
3
+ width: max-content;
4
+ max-width: 100%;
5
+ padding: 9px 14px;
6
+ background: #fff;
7
+ border: 1px solid #c8b6ff;
8
+ border-radius: 8px;
9
+ box-shadow: 0 4px 10px #37128524;
10
+ color: #5725df;
11
+ z-index: 20;
12
+ }
13
+ .cw-feedback-prompt--compact {
14
+ padding: 7px 12px;
15
+ }
16
+ .cw-feedback-prompt--loading > :not(.cw-feedback-prompt__loading) {
17
+ visibility: hidden;
18
+ }
19
+ .cw-feedback-prompt--loading {
20
+ box-sizing: border-box;
21
+ min-width: 0;
22
+ min-height: 58px;
23
+ }
24
+ .cw-feedback-prompt__loading {
25
+ position: absolute;
26
+ inset: 0;
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ gap: 7px;
31
+ box-sizing: border-box;
32
+ min-width: 0;
33
+ width: 100%;
34
+ padding: 0 6px;
35
+ white-space: normal;
36
+ text-align: center;
37
+ background: #fff;
38
+ border-radius: inherit;
39
+ font-size: 11px;
40
+ font-weight: 600;
41
+ color: #5725df;
42
+ z-index: 1;
43
+ }
44
+ .cw-feedback-prompt__spinner {
45
+ width: 14px;
46
+ height: 14px;
47
+ border: 2px solid #d8ccfa;
48
+ border-top-color: #5725df;
49
+ border-radius: 50%;
50
+ animation: cw-feedback-loading-spin .7s linear infinite;
51
+ }
52
+ @keyframes cw-feedback-loading-spin { to { transform: rotate(360deg); } }
53
+ .cw-feedback-prompt__label {
54
+ font-size: 13px;
55
+ font-weight: 600;
56
+ }
57
+ .cw-feedback-stars {
58
+ display: flex;
59
+ gap: 3px;
60
+ }
61
+ .cw-feedback-stars button {
62
+ position: relative;
63
+ display: inline-flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ width: 20px;
67
+ height: 20px;
68
+ border: 0;
69
+ background: none;
70
+ padding: 0;
71
+ cursor: pointer;
72
+ }
73
+ .cw-feedback-stars button svg {
74
+ display: block;
75
+ width: 100%;
76
+ height: 100%;
77
+ }
78
+ .cw-feedback-stars button svg.cw-feedback-stars__filled {
79
+ position: absolute;
80
+ inset: 0;
81
+ }
82
+ .cw-feedback-tooltip {
83
+ position: absolute;
84
+ right: 0;
85
+ top: calc(100% + 7px);
86
+ white-space: nowrap;
87
+ background: #273349;
88
+ color: #fff;
89
+ border-radius: 5px;
90
+ padding: 6px 9px;
91
+ font-size: 11px;
92
+ }
93
+ .cw-feedback-backdrop {
94
+ position: fixed;
95
+ inset: 0;
96
+ background: #11182755;
97
+ display: flex;
98
+ align-items: center;
99
+ justify-content: center;
100
+ padding: 20px;
101
+ z-index: 10000;
102
+ }
103
+ .cw-feedback-dialog {
104
+ width: min(500px, 100%);
105
+ max-height: 90vh;
106
+ overflow: auto;
107
+ background: #fff;
108
+ border: 1px solid #ddd6fe;
109
+ border-radius: 14px;
110
+ padding: 16px;
111
+ box-shadow: 0 18px 50px #11182740;
112
+ color: #172033;
113
+ }
114
+ .cw-feedback-dialog--wide {
115
+ width: min(820px, 100%);
116
+ }
117
+ .cw-feedback-dialog__topbar {
118
+ display: flex;
119
+ justify-content: space-between;
120
+ }
121
+ .cw-feedback-dialog__topbar button {
122
+ border: 0;
123
+ background: none;
124
+ color: #64748b;
125
+ cursor: pointer;
126
+ }
127
+ .cw-feedback-dialog h2 {
128
+ margin: 6px 0;
129
+ font-size: 17px;
130
+ font-weight: 700;
131
+ }
132
+ .cw-feedback-subtitle {
133
+ margin: 0 0 14px;
134
+ color: #718096;
135
+ font-size: 13px;
136
+ }
137
+ .cw-feedback-dialog input[type="range"] {
138
+ width: 100%;
139
+ accent-color: #6025e5;
140
+ }
141
+ .cw-feedback-rating-options,
142
+ .cw-feedback-pills,
143
+ .cw-feedback-severity {
144
+ display: flex;
145
+ gap: 8px;
146
+ flex-wrap: wrap;
147
+ margin: 8px 0 14px;
148
+ }
149
+ .cw-feedback-rating-options button,
150
+ .cw-feedback-pills button,
151
+ .cw-feedback-severity button {
152
+ border: 1px solid #cbd5e1;
153
+ background: #fff;
154
+ border-radius: 8px;
155
+ padding: 7px 13px;
156
+ text-transform: capitalize;
157
+ }
158
+ .cw-feedback-rating-options button.is-selected,
159
+ .cw-feedback-pills button.is-selected {
160
+ background: #6025e5;
161
+ color: #fff;
162
+ border-color: #6025e5;
163
+ }
164
+ .cw-feedback-pills.cw-feedback-time-options {
165
+ display: grid;
166
+ grid-template-columns: repeat(4, minmax(0, 1fr));
167
+ justify-content: start;
168
+ gap: 8px 10px;
169
+ margin-bottom: 0;
170
+ }
171
+ .cw-feedback-time-options button {
172
+ white-space: nowrap;
173
+ }
174
+ .cw-feedback-time-options .cw-feedback-time-custom {
175
+ grid-column: span 2;
176
+ justify-self: start;
177
+ min-width: 120px;
178
+ }
179
+ .cw-feedback-time-hint {
180
+ margin: 22px 0 0;
181
+ color: var(--cw-feedback-muted, #718096);
182
+ font-size: 13px;
183
+ }
184
+ @media (max-width: 480px) {
185
+ .cw-feedback-pills.cw-feedback-time-options {
186
+ grid-template-columns: repeat(2, minmax(0, 1fr));
187
+ }
188
+ .cw-feedback-time-options .cw-feedback-time-custom {
189
+ grid-column: auto;
190
+ }
191
+ }
192
+ .cw-feedback-field {
193
+ display: grid;
194
+ gap: 7px;
195
+ font-weight: 600;
196
+ margin-top: 14px;
197
+ }
198
+ .cw-feedback-field textarea,
199
+ .cw-feedback-gap textarea {
200
+ width: 100%;
201
+ min-height: 58px;
202
+ resize: vertical;
203
+ border: 1px solid #cbd5e1;
204
+ border-radius: 8px;
205
+ padding: 10px;
206
+ font-weight: 400;
207
+ }
208
+ .cw-feedback-number {
209
+ display: inline-flex;
210
+ align-items: center;
211
+ border: 1px solid #cbd5e1;
212
+ border-radius: 8px;
213
+ padding: 4px 8px;
214
+ }
215
+ .cw-feedback-number input {
216
+ width: 64px;
217
+ border: 0;
218
+ outline: 0;
219
+ }
220
+ .cw-feedback-footer {
221
+ display: flex;
222
+ align-items: center;
223
+ justify-content: space-between;
224
+ margin-top: 12px;
225
+ color: #718096;
226
+ font-size: 12px;
227
+ }
228
+ .cw-feedback-primary {
229
+ border: 0;
230
+ border-radius: 7px;
231
+ background: #6025e5;
232
+ color: #fff;
233
+ padding: 8px 18px;
234
+ cursor: pointer;
235
+ }
236
+ .cw-feedback-gap {
237
+ display: grid;
238
+ gap: 11px;
239
+ background: #faf8ff;
240
+ border-radius: 10px;
241
+ padding: 11px;
242
+ margin-top: 12px;
243
+ }
244
+ .cw-feedback-severity {
245
+ margin: 0;
246
+ }
247
+ .cw-feedback-severity .critical.is-selected {
248
+ color: #dc2626;
249
+ border-color: #fca5a5;
250
+ background: #fff1f2;
251
+ }
252
+ .cw-feedback-severity .high.is-selected {
253
+ color: #ea580c;
254
+ border-color: #fdba74;
255
+ background: #fff7ed;
256
+ }
257
+ .cw-feedback-severity .medium.is-selected {
258
+ color: #a16207;
259
+ border-color: #fde68a;
260
+ background: #fefce8;
261
+ }
262
+ .cw-feedback-severity .low.is-selected {
263
+ color: #475569;
264
+ border-color: #94a3b8;
265
+ background: #f8fafc;
266
+ }
267
+ .cw-feedback-upload {
268
+ display: flex;
269
+ align-items: center;
270
+ gap: 6px;
271
+ width: max-content;
272
+ color: #5b21e6;
273
+ border: 1px dashed #c4b5fd;
274
+ border-radius: 7px;
275
+ padding: 8px 11px;
276
+ cursor: pointer;
277
+ }
278
+ .cw-feedback-upload input {
279
+ display: none;
280
+ }
281
+ .cw-feedback-capture-actions {
282
+ display: flex;
283
+ flex-wrap: wrap;
284
+ gap: 8px;
285
+ margin-top: 8px;
286
+ }
287
+ .cw-feedback-capture-actions .cw-feedback-upload {
288
+ background: transparent;
289
+ font: inherit;
290
+ }
291
+ .cw-feedback-capture-error {
292
+ margin: 6px 0 0;
293
+ color: #dc2626;
294
+ font-size: 12px;
295
+ }
296
+ body.cw-feedback-capturing .cw-feedback-prompt {
297
+ visibility: hidden !important;
298
+ }
299
+ .cw-feedback-files {
300
+ display: flex;
301
+ gap: 6px;
302
+ flex-wrap: wrap;
303
+ }
304
+ .cw-feedback-files span {
305
+ font-size: 11px;
306
+ background: #ede9fe;
307
+ padding: 4px 7px;
308
+ border-radius: 5px;
309
+ }
310
+ .cw-feedback-file-item {
311
+ display: flex;
312
+ align-items: center;
313
+ max-width: 190px;
314
+ border: 1px solid var(--cw-feedback-border, #c8b6ff);
315
+ border-radius: 7px;
316
+ background: #ede9fe;
317
+ }
318
+ .cw-feedback-file-preview {
319
+ display: flex;
320
+ align-items: center;
321
+ gap: 7px;
322
+ min-width: 0;
323
+ padding: 4px 7px;
324
+ border: 0;
325
+ background: transparent;
326
+ color: inherit;
327
+ cursor: zoom-in;
328
+ }
329
+ .cw-feedback-file-preview img {
330
+ width: 34px;
331
+ height: 34px;
332
+ flex: 0 0 34px;
333
+ object-fit: cover;
334
+ border-radius: 4px;
335
+ }
336
+ .cw-feedback-file-preview span {
337
+ overflow: hidden;
338
+ padding: 0;
339
+ background: none;
340
+ text-overflow: ellipsis;
341
+ white-space: nowrap;
342
+ }
343
+ .cw-feedback-file-preview:focus-visible {
344
+ outline: 2px solid var(--cw-feedback-accent, #6025e5);
345
+ outline-offset: 2px;
346
+ }
347
+ .cw-feedback-file-retry {
348
+ min-width: 0;
349
+ overflow: hidden;
350
+ padding: 4px 7px;
351
+ border: 0;
352
+ background: transparent;
353
+ color: var(--cw-feedback-accent, #6025e5);
354
+ cursor: pointer;
355
+ text-overflow: ellipsis;
356
+ white-space: nowrap;
357
+ }
358
+ .cw-feedback-file-name {
359
+ min-width: 0;
360
+ overflow: hidden;
361
+ padding: 4px 7px;
362
+ text-overflow: ellipsis;
363
+ white-space: nowrap;
364
+ }
365
+ .cw-feedback-file-remove {
366
+ display: grid;
367
+ flex: 0 0 26px;
368
+ place-items: center;
369
+ width: 26px;
370
+ height: 26px;
371
+ margin: 3px;
372
+ border: 0;
373
+ border-radius: 5px;
374
+ background: transparent;
375
+ color: var(--cw-feedback-muted, #718096);
376
+ cursor: pointer;
377
+ }
378
+ .cw-feedback-file-remove:hover,
379
+ .cw-feedback-file-remove:focus-visible {
380
+ background: #ddd6fe;
381
+ color: var(--cw-feedback-accent, #6025e5);
382
+ }
383
+ .cw-feedback-image-preview-backdrop {
384
+ position: fixed;
385
+ inset: 0;
386
+ z-index: 2147483647;
387
+ display: grid;
388
+ place-items: center;
389
+ padding: 24px;
390
+ background: #111827c7;
391
+ }
392
+ .cw-feedback-image-preview-dialog {
393
+ position: relative;
394
+ max-width: min(92vw, 1000px);
395
+ max-height: 90vh;
396
+ padding: 16px;
397
+ border-radius: 12px;
398
+ background: #fff;
399
+ box-shadow: 0 20px 55px #11182755;
400
+ }
401
+ .cw-feedback-image-preview-dialog img {
402
+ display: block;
403
+ max-width: 100%;
404
+ max-height: calc(90vh - 32px);
405
+ object-fit: contain;
406
+ }
407
+ .cw-feedback-image-preview-close {
408
+ position: absolute;
409
+ top: -12px;
410
+ right: -12px;
411
+ display: grid;
412
+ place-items: center;
413
+ width: 32px;
414
+ height: 32px;
415
+ border: 0;
416
+ border-radius: 50%;
417
+ background: #fff;
418
+ color: #172033;
419
+ cursor: pointer;
420
+ }
421
+ .cw-feedback-add {
422
+ border: 0;
423
+ background: none;
424
+ color: #5b21e6;
425
+ font-weight: 600;
426
+ margin-top: 12px;
427
+ cursor: pointer;
428
+ }
429
+ .cw-feedback-done {
430
+ float: right;
431
+ margin-top: 12px;
432
+ }
433
+ @media (max-width: 600px) {
434
+ .cw-feedback-backdrop {
435
+ align-items: flex-end;
436
+ padding: 0;
437
+ }
438
+ .cw-feedback-dialog {
439
+ border-radius: 16px 16px 0 0;
440
+ max-height: 88vh;
441
+ }
442
+ .cw-feedback-tooltip {
443
+ display: none;
444
+ }
445
+ }
446
+ .cw-feedback-prompt__label {
447
+ display: block;
448
+ border: 0;
449
+ background: none;
450
+ padding: 0;
451
+ color: inherit;
452
+ cursor: pointer;
453
+ }
454
+ .cw-feedback-review {
455
+ position: absolute;
456
+ right: 12px;
457
+ bottom: 11px;
458
+ border: 0;
459
+ background: none;
460
+ color: #5b21e6;
461
+ text-decoration: underline;
462
+ cursor: pointer;
463
+ }
464
+ .cw-feedback-prompt:has(.cw-feedback-review) {
465
+ min-width: 270px;
466
+ }
467
+ .cw-feedback-prompt:has(.cw-feedback-review) .cw-feedback-stars {
468
+ padding-right: 64px;
469
+ }
470
+ .cw-feedback-stars button:disabled {
471
+ cursor: default;
472
+ }
473
+ .cw-feedback-backdrop {
474
+ align-items: flex-end;
475
+ justify-content: flex-end;
476
+ padding: 0 24px 150px;
477
+ }
478
+ .cw-feedback-dialog {
479
+ position: relative;
480
+ margin: 0;
481
+ width: min(500px, calc(100vw - 48px));
482
+ }
483
+ .cw-feedback-dialog--wide {
484
+ width: min(820px, calc(100vw - 48px));
485
+ }
486
+ .cw-feedback-success {
487
+ text-align: center;
488
+ padding: 0;
489
+ }
490
+ .cw-feedback-success__check {
491
+ position: relative;
492
+ display: inline-flex;
493
+ align-items: center;
494
+ justify-content: center;
495
+ width: 66px;
496
+ height: 66px;
497
+ border-radius: 50%;
498
+ background: #bce8ce;
499
+ color: #fff;
500
+ animation: cw-feedback-success-pop 600ms cubic-bezier(.2, 1.5, .35, 1) both;
501
+ }
502
+ .cw-feedback-success__check::after {
503
+ content: "";
504
+ position: absolute;
505
+ inset: -7px;
506
+ border: 2px solid #86d9a5;
507
+ border-radius: 50%;
508
+ opacity: 0;
509
+ pointer-events: none;
510
+ animation: cw-feedback-success-ring 750ms 180ms ease-out both;
511
+ }
512
+ .cw-feedback-success__check svg :is(path, polyline) {
513
+ stroke-dasharray: 60;
514
+ stroke-dashoffset: 60;
515
+ animation: cw-feedback-success-draw 450ms 230ms ease-out forwards;
516
+ }
517
+ @keyframes cw-feedback-success-pop {
518
+ 0% { opacity: 0; transform: scale(.55); }
519
+ 65% { opacity: 1; transform: scale(1.12); }
520
+ 100% { opacity: 1; transform: scale(1); }
521
+ }
522
+ @keyframes cw-feedback-success-ring {
523
+ 0% { opacity: .7; transform: scale(.75); }
524
+ 100% { opacity: 0; transform: scale(1.35); }
525
+ }
526
+ @keyframes cw-feedback-success-draw {
527
+ to { stroke-dashoffset: 0; }
528
+ }
529
+ @media (prefers-reduced-motion: reduce) {
530
+ .cw-feedback-success__check,
531
+ .cw-feedback-success__check::after,
532
+ .cw-feedback-success__check svg :is(path, polyline) {
533
+ animation: none;
534
+ }
535
+ .cw-feedback-success__check svg :is(path, polyline) {
536
+ stroke-dashoffset: 0;
537
+ }
538
+ }
539
+ .cw-feedback-success h2 {
540
+ font-size: 25px;
541
+ color: #16a34a;
542
+ margin-top: 14px;
543
+ }
544
+ .cw-feedback-success p {
545
+ font-size: 15px;
546
+ color: #172033;
547
+ }
548
+ @media (max-width: 600px) {
549
+ .cw-feedback-backdrop {
550
+ align-items: flex-end;
551
+ padding: 0 12px 126px;
552
+ }
553
+ .cw-feedback-dialog,
554
+ .cw-feedback-dialog--wide {
555
+ width: calc(100vw - 24px);
556
+ border-radius: 14px;
557
+ }
558
+ }
559
+ .cw-feedback-backdrop {
560
+ padding: 0;
561
+ align-items: initial;
562
+ justify-content: initial;
563
+ }
564
+ .cw-feedback-dialog {
565
+ position: fixed;
566
+ right: auto;
567
+ bottom: auto;
568
+ max-height: min(78vh, 680px);
569
+ border-radius: 14px;
570
+ }
571
+ .cw-feedback-dialog__topbar:empty {
572
+ display: none;
573
+ }
574
+ .cw-feedback-rating-options {
575
+ justify-content: space-between;
576
+ }
577
+ .cw-feedback-rating-options button {
578
+ padding: 6px 10px;
579
+ }
580
+ .cw-feedback-primary {
581
+ margin-top: 8px;
582
+ }
583
+ .cw-feedback-gap {
584
+ margin-top: 0;
585
+ }
586
+ .cw-feedback-gap textarea {
587
+ min-height: 105px;
588
+ }
589
+ .cw-feedback-gap > strong,
590
+ .cw-feedback-gap > .cw-feedback-severity,
591
+ .cw-feedback-gap > .cw-feedback-upload,
592
+ .cw-feedback-gap > .cw-feedback-files {
593
+ margin-top: 8px;
594
+ }
595
+ .cw-feedback-prompt:has(.cw-feedback-review) .cw-feedback-prompt__label {
596
+ color: #16a34a;
597
+ }
598
+ .cw-feedback-prompt:has(.cw-feedback-review) .cw-feedback-stars {
599
+ padding-right: 76px;
600
+ }
601
+ .cw-feedback-hint {
602
+ font-size: 12px;
603
+ color: #718096;
604
+ margin: 12px 0 0;
605
+ }
606
+ .cw-feedback-dialog {
607
+ box-sizing: border-box;
608
+ }
609
+ .cw-feedback-range {
610
+ position: relative;
611
+ margin-top: 46px;
612
+ }
613
+ .cw-feedback-range input {
614
+ display: block;
615
+ }
616
+ .cw-feedback-range-tooltip {
617
+ position: absolute;
618
+ bottom: calc(100% + 10px);
619
+ transform: translateX(-50%);
620
+ width: max-content;
621
+ max-width: 90%;
622
+ padding: 7px 12px;
623
+ border-radius: 7px;
624
+ background: #344054;
625
+ color: #fff;
626
+ font-size: 13px;
627
+ white-space: nowrap;
628
+ box-shadow: 0 3px 8px #1118272b;
629
+ }
630
+ .cw-feedback-range-tooltip:after {
631
+ content: "";
632
+ position: absolute;
633
+ top: 100%;
634
+ left: 50%;
635
+ transform: translateX(-50%);
636
+ border: 6px solid transparent;
637
+ border-top-color: #344054;
638
+ }
639
+ .cw-feedback-hint-action {
640
+ display: block;
641
+ border: 0;
642
+ background: none;
643
+ padding: 0;
644
+ text-align: left;
645
+ cursor: pointer;
646
+ }
647
+ .cw-feedback-range {
648
+ margin-top: 72px;
649
+ }
650
+ .cw-feedback-range-tooltip {
651
+ box-sizing: border-box;
652
+ width: 300px;
653
+ max-width: calc(100% - 16px);
654
+ white-space: normal;
655
+ text-align: center;
656
+ line-height: 1.35;
657
+ z-index: 2;
658
+ }
659
+ @media (max-width: 360px) {
660
+ .cw-feedback-range-tooltip {
661
+ left: 50% !important;
662
+ }
663
+ }
664
+ .cw-feedback-submit-error {
665
+ clear: both;
666
+ color: #dc2626;
667
+ font-size: 12px;
668
+ padding-top: 8px;
669
+ }
670
+ .cw-feedback-prompt,
671
+ .cw-feedback-dialog {
672
+ background: var(--cw-feedback-surface);
673
+ border-color: var(--cw-feedback-border);
674
+ color: var(--cw-feedback-text);
675
+ }
676
+ .cw-feedback-prompt__label,
677
+ .cw-feedback-review,
678
+ .cw-feedback-add,
679
+ .cw-feedback-upload {
680
+ color: var(--cw-feedback-accent);
681
+ }
682
+ .cw-feedback-prompt:has(.cw-feedback-review) .cw-feedback-prompt__label,
683
+ .cw-feedback-success h2 {
684
+ color: var(--cw-feedback-success);
685
+ }
686
+ .cw-feedback-subtitle,
687
+ .cw-feedback-hint,
688
+ .cw-feedback-footer {
689
+ color: var(--cw-feedback-muted);
690
+ }
691
+ .cw-feedback-primary,
692
+ .cw-feedback-rating-options button.is-selected,
693
+ .cw-feedback-pills button.is-selected {
694
+ background: var(--cw-feedback-accent);
695
+ border-color: var(--cw-feedback-accent);
696
+ color: var(--cw-feedback-surface);
697
+ }
698
+ .cw-feedback-dialog input[type="range"] {
699
+ accent-color: var(--cw-feedback-accent);
700
+ }
701
+ .cw-feedback-gap {
702
+ background: var(--cw-feedback-gap-surface);
703
+ }
704
+ .cw-feedback-tooltip,
705
+ .cw-feedback-range-tooltip {
706
+ background: var(--cw-feedback-tooltip-bg);
707
+ color: var(--cw-feedback-tooltip-text);
708
+ }
709
+ .cw-feedback-range-tooltip:after {
710
+ border-top-color: var(--cw-feedback-tooltip-bg);
711
+ }
712
+ .cw-feedback-rating-options button,
713
+ .cw-feedback-pills button,
714
+ .cw-feedback-severity button,
715
+ .cw-feedback-field textarea,
716
+ .cw-feedback-gap textarea,
717
+ .cw-feedback-number {
718
+ color: var(--cw-feedback-text);
719
+ border-color: var(--cw-feedback-border);
720
+ background: var(--cw-feedback-surface);
721
+ }
722
+ .cw-feedback-field textarea::placeholder,
723
+ .cw-feedback-gap textarea::placeholder {
724
+ color: var(--cw-feedback-muted);
725
+ }
726
+ .cw-feedback-backdrop {
727
+ z-index: 10000;
728
+ }
729
+ .cw-feedback-dialog {
730
+ z-index: 10001;
731
+ }
732
+ .cw-feedback-dialog--success {
733
+ width: min(820px, calc(100vw - 48px));
734
+ }
735
+ .cw-feedback-success__coming-soon {
736
+ display: flex;
737
+ flex-direction: column;
738
+ align-items: center;
739
+ gap: 4px;
740
+ margin: 24px auto 0;
741
+ padding: 20px 22px;
742
+ border: 1px solid #dce1e9;
743
+ border-radius: 18px;
744
+ background: #f5f6f8;
745
+ color: #8791a1;
746
+ font-size: 16px;
747
+ font-weight: 600;
748
+ }
749
+ .cw-feedback-success__leaderboard-icon {
750
+ width: 52px;
751
+ height: 52px;
752
+ opacity: .7;
753
+ }
754
+ .cw-feedback-success__leaderboard-title {
755
+ color: #687386;
756
+ }
757
+ .cw-feedback-success__leaderboard-status {
758
+ font-size: 12px;
759
+ font-weight: 500;
760
+ }
761
+ .cw-feedback-range {
762
+ margin-top: 24px;
763
+ }
764
+ .cw-feedback-low-rating-intro {
765
+ margin: 0 0 10px;
766
+ padding: 14px 12px;
767
+ text-align: center;
768
+ border-radius: 10px;
769
+ background: linear-gradient(135deg, #e9ddff, #f7f2ff);
770
+ color: var(--cw-feedback-accent);
771
+ }
772
+ .cw-feedback-low-rating-intro__emoji {
773
+ font-size: 23px;
774
+ line-height: 1.2;
775
+ margin-bottom: 4px;
776
+ }
777
+ .cw-feedback-low-rating-intro strong {
778
+ display: block;
779
+ font-size: 14px;
780
+ }
781
+ .cw-feedback-low-rating-intro p {
782
+ margin: 4px 0 0;
783
+ font-size: 12px;
784
+ }
785
+ .cw-feedback-useful-prompt {
786
+ margin: 0 0 8px;
787
+ color: var(--cw-feedback-accent);
788
+ font-size: 13px;
789
+ }
790
+ .cw-feedback-inline-detail-prompt {
791
+ margin: 0;
792
+ color: var(--cw-feedback-accent);
793
+ font-size: 13px;
794
+ font-weight: 400;
795
+ line-height: 1.35;
796
+ }
797
+ .cw-feedback-dialog__content > .cw-feedback-inline-detail-prompt {
798
+ margin-bottom: 10px;
799
+ }
800
+ .cw-feedback-useful-field {
801
+ margin-top: 8px;
802
+ }
803
+ .cw-feedback-time-title {
804
+ margin-top: 5px !important;
805
+ }
806
+ .cw-feedback-dialog {
807
+ overflow: hidden;
808
+ }
809
+ .cw-feedback-dialog--wide {
810
+ padding: 16px;
811
+ }
812
+ .cw-feedback-dialog--wide .cw-feedback-dialog__topbar {
813
+ min-height: 18px;
814
+ }
815
+ .cw-feedback-dialog--wide h2 {
816
+ font-size: 16px;
817
+ line-height: 1.25;
818
+ margin: 3px 0 7px;
819
+ }
820
+ .cw-feedback-dialog--wide .cw-feedback-low-rating-intro {
821
+ padding: 8px 10px;
822
+ margin-bottom: 8px;
823
+ }
824
+ .cw-feedback-dialog--wide .cw-feedback-low-rating-intro__emoji {
825
+ font-size: 19px;
826
+ margin-bottom: 2px;
827
+ }
828
+ .cw-feedback-dialog--wide .cw-feedback-low-rating-intro p {
829
+ margin-top: 3px;
830
+ }
831
+ .cw-feedback-dialog--wide .cw-feedback-gap {
832
+ padding: 7px;
833
+ gap: 6px;
834
+ }
835
+ .cw-feedback-dialog--wide .cw-feedback-gap textarea {
836
+ height: 64px;
837
+ min-height: 64px;
838
+ max-height: 64px;
839
+ resize: none;
840
+ padding: 7px 9px;
841
+ }
842
+ .cw-feedback-dialog--wide .cw-feedback-gap > strong {
843
+ font-size: 13px;
844
+ }
845
+ .cw-feedback-dialog--wide .cw-feedback-severity {
846
+ gap: 6px;
847
+ }
848
+ .cw-feedback-dialog--wide .cw-feedback-severity button {
849
+ padding: 5px 9px;
850
+ }
851
+ .cw-feedback-dialog--wide .cw-feedback-upload {
852
+ padding: 6px 9px;
853
+ }
854
+ .cw-feedback-dialog--wide .cw-feedback-files {
855
+ gap: 4px;
856
+ }
857
+ .cw-feedback-dialog--wide {
858
+ padding-bottom: 16px;
859
+ }
860
+ .cw-feedback-dialog--has-action {
861
+ padding-bottom: 16px;
862
+ }
863
+ .cw-feedback-dialog--wide .cw-feedback-done {
864
+ position: absolute;
865
+ right: 16px;
866
+ bottom: 14px;
867
+ float: none;
868
+ margin: 0;
869
+ }
870
+ .cw-feedback-dialog--wide .cw-feedback-gap textarea {
871
+ height: 52px;
872
+ min-height: 52px;
873
+ max-height: 52px;
874
+ }
875
+ .cw-feedback-dialog--wide.cw-feedback-dialog--low-intro .cw-feedback-gap textarea {
876
+ height: 100px;
877
+ min-height: 100px;
878
+ max-height: 100px;
879
+ }
880
+ .cw-feedback-dialog {
881
+ display: flex;
882
+ flex-direction: column;
883
+ overflow: hidden;
884
+ }
885
+ .cw-feedback-dialog__content {
886
+ min-height: 0;
887
+ flex: 0 1 auto;
888
+ overflow-x: hidden;
889
+ overflow-y: auto;
890
+ }
891
+ .cw-feedback-dialog__action {
892
+ display: flex;
893
+ flex: 0 0 auto;
894
+ align-items: center;
895
+ justify-content: space-between;
896
+ gap: 12px;
897
+ padding-top: 8px;
898
+ }
899
+ .cw-feedback-dialog__action .cw-feedback-hint {
900
+ margin: 0;
901
+ }
902
+ .cw-feedback-dialog__action .cw-feedback-primary {
903
+ margin-top: 0;
904
+ margin-left: auto;
905
+ }
906
+ .cw-feedback-footer .cw-feedback-hint-action {
907
+ color: inherit;
908
+ }
909
+ .cw-feedback-hint-action:hover {
910
+ text-decoration: underline;
911
+ }
912
+ .cw-feedback-hint-action:focus-visible {
913
+ outline: 2px solid var(--cw-feedback-accent);
914
+ outline-offset: 3px;
915
+ }
916
+ .cw-feedback-dialog--has-action {
917
+ padding-bottom: 16px;
918
+ }
919
+ .cw-feedback-dialog {
920
+ max-height: min(90vh, 820px);
921
+ }
922
+ /* A federated remote can load an older feedback stylesheet after this one. */
923
+ body .cw-feedback-dialog {
924
+ padding: 16px;
925
+ }
926
+ @media (max-width: 600px) {
927
+ .cw-feedback-dialog,
928
+ .cw-feedback-dialog--wide {
929
+ max-height: 90vh;
930
+ }
931
+ }
932
+ .cw-feedback-review-nav {
933
+ display: flex;
934
+ flex: 0 0 auto;
935
+ justify-content: flex-end;
936
+ gap: 8px;
937
+ padding-top: 12px;
938
+ }
939
+ .cw-feedback-review-nav__button {
940
+ display: inline-flex;
941
+ align-items: center;
942
+ justify-content: center;
943
+ gap: 7px;
944
+ min-width: 36px;
945
+ min-height: 36px;
946
+ padding: 7px 10px;
947
+ border: 0;
948
+ border-radius: 7px;
949
+ background: #ddd6fe;
950
+ color: var(--cw-feedback-accent);
951
+ cursor: pointer;
952
+ }
953
+ .cw-feedback-review-nav__button--next {
954
+ background: var(--cw-feedback-accent);
955
+ color: #fff;
956
+ }
957
+ .cw-feedback-review-nav__button:disabled {
958
+ opacity: 0.55;
959
+ cursor: not-allowed;
960
+ }
961
+ .cw-feedback-review-nav__button:focus-visible {
962
+ outline: 2px solid var(--cw-feedback-accent);
963
+ outline-offset: 2px;
964
+ }
965
+ .cw-feedback-saving-overlay {
966
+ position: absolute;
967
+ inset: 0;
968
+ z-index: 1;
969
+ display: grid;
970
+ place-items: center;
971
+ background: #ffffffdc;
972
+ cursor: wait;
973
+ }
974
+ .cw-feedback-saving-overlay__card {
975
+ display: flex;
976
+ align-items: center;
977
+ justify-content: center;
978
+ gap: 12px;
979
+ min-width: 220px;
980
+ padding: 16px;
981
+ border: 1px solid var(--cw-feedback-border, #c8b6ff);
982
+ border-radius: 12px;
983
+ background: #fff;
984
+ box-shadow: 0 18px 50px #11182740;
985
+ color: var(--cw-feedback-accent);
986
+ font-weight: 600;
987
+ }
988
+ .cw-feedback-saving__spinner {
989
+ width: 24px;
990
+ height: 24px;
991
+ border: 3px solid var(--cw-feedback-border, #c8b6ff);
992
+ border-top-color: var(--cw-feedback-accent);
993
+ border-radius: 50%;
994
+ animation: cw-feedback-spin .7s linear infinite;
995
+ }
996
+ .cw-feedback-primary:disabled,
997
+ .cw-feedback-hint-action:disabled {
998
+ opacity: .55;
999
+ cursor: wait;
1000
+ }
1001
+ @keyframes cw-feedback-spin {
1002
+ to { transform: rotate(360deg); }
1003
+ }
1004
+ .cw-feedback-gap-list {
1005
+ display: grid;
1006
+ gap: 16px;
1007
+ }
1008
+ .cw-feedback-gap__header {
1009
+ display: flex;
1010
+ align-items: center;
1011
+ justify-content: space-between;
1012
+ color: var(--cw-feedback-muted, #718096);
1013
+ font-size: 13px;
1014
+ font-weight: 600;
1015
+ }
1016
+ .cw-feedback-gap--collapsed {
1017
+ padding: 0 !important;
1018
+ }
1019
+ .cw-feedback-gap--collapsed .cw-feedback-gap__header {
1020
+ width: 100%;
1021
+ }
1022
+ .cw-feedback-gap__toggle {
1023
+ display: flex;
1024
+ align-items: center;
1025
+ gap: 8px;
1026
+ flex: 1;
1027
+ min-width: 0;
1028
+ padding: 8px 10px;
1029
+ border: 0;
1030
+ background: transparent;
1031
+ color: inherit;
1032
+ font: inherit;
1033
+ text-align: left;
1034
+ cursor: pointer;
1035
+ }
1036
+ .cw-feedback-gap__toggle svg {
1037
+ margin-left: auto;
1038
+ }
1039
+ .cw-feedback-gap__severity {
1040
+ padding: 2px 6px;
1041
+ border: 1px solid currentColor;
1042
+ border-radius: 6px;
1043
+ font-size: 11px;
1044
+ }
1045
+ .cw-feedback-gap__severity.critical { color: #dc2626; }
1046
+ .cw-feedback-gap__severity.high { color: #ea580c; }
1047
+ .cw-feedback-gap__severity.medium { color: #ca8a04; }
1048
+ .cw-feedback-gap__severity.low { color: #64748b; }
1049
+ .cw-feedback-gap__detail-prompt {
1050
+ margin: 0 0 8px;
1051
+ }
1052
+ .cw-feedback-gap__remove {
1053
+ display: inline-flex;
1054
+ align-items: center;
1055
+ gap: 5px;
1056
+ border: 0;
1057
+ background: transparent;
1058
+ color: #dc2626;
1059
+ cursor: pointer;
1060
+ font: inherit;
1061
+ font-weight: 600;
1062
+ }
1063
+ .cw-feedback-gap__remove:hover {
1064
+ text-decoration: underline;
1065
+ }
1066
+ .cw-feedback-dialog .cw-feedback-severity button {
1067
+ border: 1.5px solid #cbd5e1;
1068
+ border-color: color-mix(in srgb, var(--cw-feedback-severity-color, #64748b) 35%, white);
1069
+ border-radius: 10px;
1070
+ background: #fff;
1071
+ color: var(--cw-feedback-severity-color, #64748b);
1072
+ padding: 6px 12px;
1073
+ font-weight: 500;
1074
+ }
1075
+ .cw-feedback-dialog .cw-feedback-severity button.is-selected {
1076
+ border-width: 2px;
1077
+ font-weight: 600;
1078
+ }