@product7/feedback-sdk 1.1.7 → 1.1.8
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.
- package/dist/feedback-sdk.js +226 -219
- package/dist/feedback-sdk.js.map +1 -1
- package/dist/feedback-sdk.min.js +1 -1
- package/dist/feedback-sdk.min.js.map +1 -1
- package/package.json +1 -1
- package/src/styles/styles.js +185 -187
- package/src/widgets/BaseWidget.js +24 -21
- package/src/widgets/ButtonWidget.js +19 -13
package/dist/feedback-sdk.js
CHANGED
|
@@ -918,41 +918,44 @@
|
|
|
918
918
|
|
|
919
919
|
_getPanelHTML() {
|
|
920
920
|
return `
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
921
|
+
<div class="feedback-panel-content">
|
|
922
|
+
<div class="feedback-panel-header">
|
|
923
|
+
<h3>Send Feedback</h3>
|
|
924
|
+
<button class="feedback-panel-close" type="button" aria-label="Close">×</button>
|
|
925
|
+
</div>
|
|
926
|
+
<div class="feedback-panel-body">
|
|
927
|
+
<form class="feedback-form">
|
|
928
|
+
<div class="feedback-form-group">
|
|
929
|
+
<label for="feedback-title-${this.id}">Title (optional)</label>
|
|
930
930
|
<input
|
|
931
931
|
type="text"
|
|
932
932
|
id="feedback-title-${this.id}"
|
|
933
933
|
name="title"
|
|
934
|
-
placeholder="
|
|
934
|
+
placeholder="Brief description of your feedback"
|
|
935
935
|
value="${this.state.title}"
|
|
936
936
|
/>
|
|
937
|
+
</div>
|
|
938
|
+
<div class="feedback-form-group">
|
|
939
|
+
<label for="feedback-content-${this.id}">Message *</label>
|
|
937
940
|
<textarea
|
|
938
941
|
id="feedback-content-${this.id}"
|
|
939
942
|
name="content"
|
|
940
|
-
placeholder="Tell us what
|
|
943
|
+
placeholder="Tell us what you think..."
|
|
941
944
|
required
|
|
942
945
|
>${this.state.content}</textarea>
|
|
943
946
|
</div>
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
</
|
|
950
|
-
</
|
|
951
|
-
</
|
|
947
|
+
<div class="feedback-error" role="alert"></div>
|
|
948
|
+
<div class="feedback-form-actions">
|
|
949
|
+
<button type="submit" class="feedback-btn feedback-btn-submit">
|
|
950
|
+
${this.state.isSubmitting ? 'Sending...' : 'Send Feedback'}
|
|
951
|
+
</button>
|
|
952
|
+
</div>
|
|
953
|
+
</form>
|
|
954
|
+
</div>
|
|
952
955
|
</div>
|
|
953
|
-
|
|
954
|
-
`;
|
|
956
|
+
`;
|
|
955
957
|
}
|
|
958
|
+
|
|
956
959
|
_attachPanelEvents() {
|
|
957
960
|
const panel = this.panelElement;
|
|
958
961
|
|
|
@@ -1088,15 +1091,14 @@
|
|
|
1088
1091
|
const button = document.createElement('div');
|
|
1089
1092
|
button.className = `feedback-widget feedback-widget-button theme-${this.options.theme} position-${this.options.position}`;
|
|
1090
1093
|
button.innerHTML = `
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
</
|
|
1098
|
-
|
|
1099
|
-
`;
|
|
1094
|
+
<button class="feedback-trigger-btn" type="button">
|
|
1095
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
|
|
1096
|
+
<path d="M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z"/>
|
|
1097
|
+
<path d="M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z"/>
|
|
1098
|
+
</svg>
|
|
1099
|
+
Feedback
|
|
1100
|
+
</button>
|
|
1101
|
+
`;
|
|
1100
1102
|
|
|
1101
1103
|
if (this.options.customStyles) {
|
|
1102
1104
|
Object.assign(button.style, this.options.customStyles);
|
|
@@ -1104,23 +1106,30 @@
|
|
|
1104
1106
|
|
|
1105
1107
|
return button;
|
|
1106
1108
|
}
|
|
1109
|
+
|
|
1107
1110
|
_attachEvents() {
|
|
1108
1111
|
const button = this.element.querySelector('.feedback-trigger-btn');
|
|
1109
1112
|
button.addEventListener('click', this.openPanel);
|
|
1110
1113
|
|
|
1111
1114
|
button.addEventListener('mouseenter', () => {
|
|
1112
1115
|
if (!this.state.isSubmitting) {
|
|
1113
|
-
button.style.transform = '
|
|
1116
|
+
button.style.transform = 'translateY(-2px)';
|
|
1114
1117
|
}
|
|
1115
1118
|
});
|
|
1116
1119
|
|
|
1117
1120
|
button.addEventListener('mouseleave', () => {
|
|
1118
|
-
button.style.transform = '
|
|
1121
|
+
button.style.transform = 'translateY(0)';
|
|
1119
1122
|
});
|
|
1120
1123
|
}
|
|
1121
1124
|
|
|
1122
1125
|
updateText(text) {
|
|
1123
|
-
|
|
1126
|
+
const button = this.element?.querySelector('.feedback-trigger-btn');
|
|
1127
|
+
if (button) {
|
|
1128
|
+
const textNode = button.childNodes[button.childNodes.length - 1];
|
|
1129
|
+
if (textNode && textNode.nodeType === Node.TEXT_NODE) {
|
|
1130
|
+
textNode.textContent = text;
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1124
1133
|
}
|
|
1125
1134
|
|
|
1126
1135
|
updatePosition(position) {
|
|
@@ -2307,7 +2316,7 @@
|
|
|
2307
2316
|
|
|
2308
2317
|
const CSS_STYLES = `
|
|
2309
2318
|
.feedback-widget {
|
|
2310
|
-
font-family:
|
|
2319
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', Oxygen, Ubuntu, Cantarell, sans-serif;
|
|
2311
2320
|
font-size: 14px;
|
|
2312
2321
|
line-height: 1.4;
|
|
2313
2322
|
z-index: 999999;
|
|
@@ -2345,146 +2354,40 @@
|
|
|
2345
2354
|
left: 20px;
|
|
2346
2355
|
}
|
|
2347
2356
|
|
|
2348
|
-
.feedback-widget-button.position-bottom-center {
|
|
2349
|
-
bottom: 20px;
|
|
2350
|
-
left: 50%;
|
|
2351
|
-
transform: translateX(-50%);
|
|
2352
|
-
}
|
|
2353
|
-
|
|
2354
|
-
.feedback-widget-button.position-top-center {
|
|
2355
|
-
top: 20px;
|
|
2356
|
-
left: 50%;
|
|
2357
|
-
transform: translateX(-50%);
|
|
2358
|
-
}
|
|
2359
|
-
|
|
2360
|
-
.feedback-widget-button.position-center {
|
|
2361
|
-
top: 50%;
|
|
2362
|
-
left: 50%;
|
|
2363
|
-
transform: translate(-50%, -50%);
|
|
2364
|
-
}
|
|
2365
|
-
|
|
2366
|
-
/* New button design - white with elevation */
|
|
2367
2357
|
.feedback-trigger-btn {
|
|
2368
|
-
|
|
2369
|
-
height: 52px;
|
|
2370
|
-
border-radius: 50%;
|
|
2371
|
-
border: none;
|
|
2372
|
-
background: #ffffff;
|
|
2373
|
-
cursor: pointer;
|
|
2358
|
+
position: relative;
|
|
2374
2359
|
display: flex;
|
|
2375
2360
|
align-items: center;
|
|
2376
2361
|
justify-content: center;
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
padding:
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
.feedback-trigger-btn:hover {
|
|
2386
|
-
box-shadow:
|
|
2387
|
-
0 4px 8px rgba(0, 0, 0, 0.12),
|
|
2388
|
-
0 12px 24px rgba(0, 0, 0, 0.2),
|
|
2389
|
-
0 0 1px rgba(0, 0, 0, 0.1);
|
|
2390
|
-
transform: translateY(-2px);
|
|
2391
|
-
}
|
|
2392
|
-
|
|
2393
|
-
.feedback-trigger-btn:active {
|
|
2394
|
-
transform: translateY(0px);
|
|
2395
|
-
box-shadow:
|
|
2396
|
-
0 1px 3px rgba(0, 0, 0, 0.1),
|
|
2397
|
-
0 4px 12px rgba(0, 0, 0, 0.12),
|
|
2398
|
-
0 0 1px rgba(0, 0, 0, 0.1);
|
|
2399
|
-
}
|
|
2400
|
-
|
|
2401
|
-
.feedback-trigger-btn svg {
|
|
2402
|
-
flex-shrink: 0;
|
|
2403
|
-
width: 22px;
|
|
2404
|
-
height: 25px;
|
|
2405
|
-
}
|
|
2406
|
-
|
|
2407
|
-
.feedback-trigger-btn svg path {
|
|
2408
|
-
fill: #21244A;
|
|
2409
|
-
}
|
|
2410
|
-
|
|
2411
|
-
/* Loading Modal */
|
|
2412
|
-
.feedback-loading-modal {
|
|
2413
|
-
position: fixed;
|
|
2414
|
-
top: 50%;
|
|
2415
|
-
left: 50%;
|
|
2416
|
-
transform: translate(-50%, -50%) scale(0.9);
|
|
2417
|
-
z-index: 1000001;
|
|
2418
|
-
opacity: 0;
|
|
2419
|
-
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
2420
|
-
}
|
|
2421
|
-
|
|
2422
|
-
.feedback-loading-modal.show {
|
|
2423
|
-
opacity: 1;
|
|
2424
|
-
transform: translate(-50%, -50%) scale(1);
|
|
2425
|
-
}
|
|
2426
|
-
|
|
2427
|
-
.feedback-loading-spinner {
|
|
2428
|
-
width: 48px;
|
|
2429
|
-
height: 48px;
|
|
2430
|
-
border: 4px solid rgba(0, 0, 0, 0.1);
|
|
2431
|
-
border-top-color: #21244A;
|
|
2432
|
-
border-radius: 50%;
|
|
2433
|
-
animation: spin 0.8s linear infinite;
|
|
2434
|
-
}
|
|
2435
|
-
|
|
2436
|
-
@keyframes spin {
|
|
2437
|
-
to { transform: rotate(360deg); }
|
|
2438
|
-
}
|
|
2439
|
-
|
|
2440
|
-
/* Modal Styles (centered) */
|
|
2441
|
-
.feedback-modal {
|
|
2442
|
-
position: fixed;
|
|
2443
|
-
top: 50%;
|
|
2444
|
-
left: 50%;
|
|
2445
|
-
transform: translate(-50%, -50%) scale(0.9);
|
|
2446
|
-
width: 480px;
|
|
2447
|
-
max-width: 90vw;
|
|
2448
|
-
max-height: 85vh;
|
|
2449
|
-
z-index: 1000000;
|
|
2450
|
-
opacity: 0;
|
|
2451
|
-
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
2362
|
+
gap: 12px;
|
|
2363
|
+
height: 44px;
|
|
2364
|
+
overflow: hidden;
|
|
2365
|
+
border-radius: 0.5rem;
|
|
2366
|
+
border: none;
|
|
2367
|
+
padding: 10px 16px;
|
|
2368
|
+
font-size: 14px;
|
|
2369
|
+
font-weight: 500;
|
|
2452
2370
|
font-family: inherit;
|
|
2371
|
+
cursor: pointer;
|
|
2372
|
+
transition: all 0.3s ease;
|
|
2373
|
+
color: white;
|
|
2374
|
+
background: #155EEF;
|
|
2375
|
+
box-shadow: 0 1px 2px 0 rgba(16, 24, 40, 0.05);
|
|
2453
2376
|
}
|
|
2454
2377
|
|
|
2455
|
-
.feedback-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
}
|
|
2459
|
-
|
|
2460
|
-
.feedback-modal .feedback-panel-content {
|
|
2461
|
-
max-height: 85vh;
|
|
2462
|
-
overflow-y: auto;
|
|
2463
|
-
}
|
|
2464
|
-
|
|
2465
|
-
/* Size variants */
|
|
2466
|
-
.feedback-modal.size-small {
|
|
2467
|
-
width: 360px;
|
|
2468
|
-
}
|
|
2469
|
-
|
|
2470
|
-
.feedback-modal.size-medium {
|
|
2471
|
-
width: 480px;
|
|
2472
|
-
}
|
|
2473
|
-
|
|
2474
|
-
.feedback-modal.size-large {
|
|
2475
|
-
width: 600px;
|
|
2476
|
-
}
|
|
2477
|
-
|
|
2478
|
-
.feedback-panel.size-small {
|
|
2479
|
-
width: 320px;
|
|
2378
|
+
.feedback-trigger-btn:hover:not(:disabled) {
|
|
2379
|
+
background: #004EEB;
|
|
2380
|
+
box-shadow: 0 1px 2px 0 rgba(16, 24, 40, 0.1);
|
|
2480
2381
|
}
|
|
2481
2382
|
|
|
2482
|
-
.feedback-
|
|
2483
|
-
|
|
2383
|
+
.feedback-trigger-btn:disabled {
|
|
2384
|
+
opacity: 0.7;
|
|
2385
|
+
cursor: not-allowed;
|
|
2484
2386
|
}
|
|
2485
2387
|
|
|
2486
|
-
.feedback-
|
|
2487
|
-
|
|
2388
|
+
.feedback-trigger-btn:focus-visible {
|
|
2389
|
+
outline: 2px solid #155EEF;
|
|
2390
|
+
outline-offset: 2px;
|
|
2488
2391
|
}
|
|
2489
2392
|
|
|
2490
2393
|
/* Side Panel Styles */
|
|
@@ -2510,8 +2413,7 @@
|
|
|
2510
2413
|
left: 0;
|
|
2511
2414
|
right: 0;
|
|
2512
2415
|
bottom: 0;
|
|
2513
|
-
background: rgba(0, 0, 0, 0.
|
|
2514
|
-
backdrop-filter: blur(4px);
|
|
2416
|
+
background: rgba(0, 0, 0, 0.1);
|
|
2515
2417
|
opacity: 0;
|
|
2516
2418
|
transition: opacity 0.3s ease;
|
|
2517
2419
|
pointer-events: none;
|
|
@@ -2524,60 +2426,84 @@
|
|
|
2524
2426
|
}
|
|
2525
2427
|
|
|
2526
2428
|
.feedback-panel-content {
|
|
2527
|
-
background:
|
|
2528
|
-
color: var(--text-color, #171717);
|
|
2429
|
+
background: white;
|
|
2529
2430
|
height: 100%;
|
|
2530
2431
|
display: flex;
|
|
2531
2432
|
flex-direction: column;
|
|
2532
|
-
border-radius:
|
|
2533
|
-
|
|
2433
|
+
border-radius: 16px;
|
|
2434
|
+
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1),
|
|
2435
|
+
0 10px 10px -5px rgba(0, 0, 0, 0.04),
|
|
2436
|
+
0 0 0 1px rgba(0, 0, 0, 0.05);
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2439
|
+
.feedback-panel.theme-dark .feedback-panel-content {
|
|
2440
|
+
background: #1F2937;
|
|
2441
|
+
color: white;
|
|
2534
2442
|
}
|
|
2535
2443
|
|
|
2536
2444
|
.feedback-panel-header {
|
|
2537
2445
|
display: flex;
|
|
2538
2446
|
align-items: center;
|
|
2539
2447
|
justify-content: space-between;
|
|
2540
|
-
padding: 24px
|
|
2448
|
+
padding: 24px;
|
|
2449
|
+
border-bottom: 1px solid #E5E7EB;
|
|
2541
2450
|
flex-shrink: 0;
|
|
2542
2451
|
}
|
|
2543
2452
|
|
|
2453
|
+
.feedback-panel.theme-dark .feedback-panel-header {
|
|
2454
|
+
border-bottom-color: #374151;
|
|
2455
|
+
}
|
|
2456
|
+
|
|
2544
2457
|
.feedback-panel-header h3 {
|
|
2545
2458
|
margin: 0;
|
|
2546
2459
|
font-size: 18px;
|
|
2547
2460
|
font-weight: 600;
|
|
2548
|
-
color:
|
|
2461
|
+
color: #111827;
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2464
|
+
.feedback-panel.theme-dark .feedback-panel-header h3 {
|
|
2465
|
+
color: white;
|
|
2549
2466
|
}
|
|
2550
2467
|
|
|
2551
2468
|
.feedback-panel-close {
|
|
2552
2469
|
background: none;
|
|
2553
2470
|
border: none;
|
|
2554
|
-
font-size:
|
|
2471
|
+
font-size: 24px;
|
|
2555
2472
|
cursor: pointer;
|
|
2556
|
-
color: #
|
|
2557
|
-
padding:
|
|
2473
|
+
color: #6B7280;
|
|
2474
|
+
padding: 4px;
|
|
2558
2475
|
width: 32px;
|
|
2559
2476
|
height: 32px;
|
|
2560
2477
|
display: flex;
|
|
2561
2478
|
align-items: center;
|
|
2562
2479
|
justify-content: center;
|
|
2563
|
-
border-radius:
|
|
2564
|
-
transition: all 0.
|
|
2480
|
+
border-radius: 6px;
|
|
2481
|
+
transition: all 0.2s ease;
|
|
2565
2482
|
}
|
|
2566
2483
|
|
|
2567
2484
|
.feedback-panel-close:hover {
|
|
2568
|
-
background: #
|
|
2569
|
-
color: #
|
|
2485
|
+
background: #F3F4F6;
|
|
2486
|
+
color: #111827;
|
|
2570
2487
|
}
|
|
2571
2488
|
|
|
2572
2489
|
.feedback-panel-close:focus-visible {
|
|
2573
|
-
outline: 2px solid
|
|
2490
|
+
outline: 2px solid #155EEF;
|
|
2574
2491
|
outline-offset: 2px;
|
|
2575
2492
|
}
|
|
2576
2493
|
|
|
2494
|
+
.feedback-panel.theme-dark .feedback-panel-close {
|
|
2495
|
+
color: #9CA3AF;
|
|
2496
|
+
}
|
|
2497
|
+
|
|
2498
|
+
.feedback-panel.theme-dark .feedback-panel-close:hover {
|
|
2499
|
+
background: #374151;
|
|
2500
|
+
color: white;
|
|
2501
|
+
}
|
|
2502
|
+
|
|
2577
2503
|
.feedback-panel-body {
|
|
2578
2504
|
flex: 1;
|
|
2579
2505
|
overflow-y: auto;
|
|
2580
|
-
padding:
|
|
2506
|
+
padding: 24px;
|
|
2581
2507
|
}
|
|
2582
2508
|
|
|
2583
2509
|
.feedback-form {
|
|
@@ -2587,59 +2513,96 @@
|
|
|
2587
2513
|
}
|
|
2588
2514
|
|
|
2589
2515
|
.feedback-form-group {
|
|
2590
|
-
|
|
2516
|
+
display: flex;
|
|
2517
|
+
flex-direction: column;
|
|
2518
|
+
gap: 8px;
|
|
2519
|
+
margin-bottom: 20px;
|
|
2591
2520
|
}
|
|
2592
2521
|
|
|
2593
2522
|
.feedback-form-group:last-child {
|
|
2594
2523
|
margin-bottom: 0;
|
|
2595
2524
|
}
|
|
2596
2525
|
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
background: #ffffff;
|
|
2603
|
-
transition: all 0.15s ease;
|
|
2526
|
+
.feedback-form-group label {
|
|
2527
|
+
font-size: 14px;
|
|
2528
|
+
font-weight: 500;
|
|
2529
|
+
line-height: 1.25;
|
|
2530
|
+
color: #374151;
|
|
2604
2531
|
}
|
|
2605
2532
|
|
|
2606
|
-
.feedback-
|
|
2607
|
-
|
|
2608
|
-
box-shadow: 0 0 0 3px rgba(33, 36, 74, 0.08);
|
|
2533
|
+
.feedback-panel.theme-dark .feedback-form-group label {
|
|
2534
|
+
color: #D1D5DB;
|
|
2609
2535
|
}
|
|
2610
2536
|
|
|
2611
|
-
.feedback-form-group input
|
|
2612
|
-
|
|
2537
|
+
.feedback-form-group input {
|
|
2538
|
+
height: 44px;
|
|
2613
2539
|
width: 100%;
|
|
2614
|
-
border:
|
|
2615
|
-
|
|
2616
|
-
|
|
2540
|
+
border-radius: 8px;
|
|
2541
|
+
border: 1px solid #D1D5DB;
|
|
2542
|
+
padding: 10px 14px;
|
|
2543
|
+
font-size: 15px;
|
|
2544
|
+
font-weight: 400;
|
|
2545
|
+
line-height: 1.5;
|
|
2546
|
+
color: #1F2937;
|
|
2617
2547
|
font-family: inherit;
|
|
2618
|
-
color: var(--text-color, #171717);
|
|
2619
|
-
background: transparent;
|
|
2620
2548
|
outline: none;
|
|
2621
|
-
|
|
2549
|
+
transition: all 0.2s ease;
|
|
2622
2550
|
}
|
|
2623
2551
|
|
|
2624
|
-
.feedback-form-group input {
|
|
2625
|
-
font-weight: 600;
|
|
2552
|
+
.feedback-form-group input::placeholder {
|
|
2626
2553
|
font-size: 15px;
|
|
2627
|
-
|
|
2554
|
+
color: #9CA3AF;
|
|
2628
2555
|
}
|
|
2629
2556
|
|
|
2630
|
-
.feedback-form-group input
|
|
2631
|
-
color: #
|
|
2632
|
-
|
|
2557
|
+
.feedback-form-group input:focus {
|
|
2558
|
+
border-color: #155EEF;
|
|
2559
|
+
box-shadow: 0 0 0 3px rgba(21, 94, 239, 0.1);
|
|
2560
|
+
}
|
|
2561
|
+
|
|
2562
|
+
.feedback-form-group input:focus-visible {
|
|
2563
|
+
outline: none;
|
|
2633
2564
|
}
|
|
2634
2565
|
|
|
2635
2566
|
.feedback-form-group textarea {
|
|
2636
|
-
min-height:
|
|
2567
|
+
min-height: 200px;
|
|
2568
|
+
width: 100%;
|
|
2569
|
+
resize: vertical;
|
|
2570
|
+
border-radius: 8px;
|
|
2571
|
+
border: 1px solid #D1D5DB;
|
|
2572
|
+
padding: 10px 14px;
|
|
2573
|
+
font-size: 15px;
|
|
2637
2574
|
font-weight: 400;
|
|
2575
|
+
line-height: 1.5;
|
|
2576
|
+
color: #1F2937;
|
|
2577
|
+
font-family: inherit;
|
|
2578
|
+
outline: none;
|
|
2579
|
+
transition: all 0.2s ease;
|
|
2638
2580
|
}
|
|
2639
2581
|
|
|
2640
2582
|
.feedback-form-group textarea::placeholder {
|
|
2641
|
-
|
|
2642
|
-
|
|
2583
|
+
font-size: 15px;
|
|
2584
|
+
color: #9CA3AF;
|
|
2585
|
+
}
|
|
2586
|
+
|
|
2587
|
+
.feedback-form-group textarea:focus {
|
|
2588
|
+
border-color: #155EEF;
|
|
2589
|
+
box-shadow: 0 0 0 3px rgba(21, 94, 239, 0.1);
|
|
2590
|
+
}
|
|
2591
|
+
|
|
2592
|
+
.feedback-form-group textarea:focus-visible {
|
|
2593
|
+
outline: none;
|
|
2594
|
+
}
|
|
2595
|
+
|
|
2596
|
+
.feedback-panel.theme-dark .feedback-form-group input,
|
|
2597
|
+
.feedback-panel.theme-dark .feedback-form-group textarea {
|
|
2598
|
+
background: #374151;
|
|
2599
|
+
border-color: #4B5563;
|
|
2600
|
+
color: white;
|
|
2601
|
+
}
|
|
2602
|
+
|
|
2603
|
+
.feedback-panel.theme-dark .feedback-form-group input::placeholder,
|
|
2604
|
+
.feedback-panel.theme-dark .feedback-form-group textarea::placeholder {
|
|
2605
|
+
color: #6B7280;
|
|
2643
2606
|
}
|
|
2644
2607
|
|
|
2645
2608
|
.feedback-btn {
|
|
@@ -2656,7 +2619,7 @@
|
|
|
2656
2619
|
font-weight: 500;
|
|
2657
2620
|
font-family: inherit;
|
|
2658
2621
|
cursor: pointer;
|
|
2659
|
-
transition: all 0.
|
|
2622
|
+
transition: all 0.2s ease;
|
|
2660
2623
|
}
|
|
2661
2624
|
|
|
2662
2625
|
.feedback-btn:disabled {
|
|
@@ -2665,32 +2628,62 @@
|
|
|
2665
2628
|
}
|
|
2666
2629
|
|
|
2667
2630
|
.feedback-btn:focus-visible {
|
|
2668
|
-
outline: 2px solid #
|
|
2631
|
+
outline: 2px solid #155EEF;
|
|
2669
2632
|
outline-offset: 2px;
|
|
2670
2633
|
}
|
|
2671
2634
|
|
|
2672
2635
|
.feedback-btn-submit {
|
|
2673
|
-
background:
|
|
2636
|
+
background: #155EEF;
|
|
2674
2637
|
color: white;
|
|
2675
2638
|
width: 100%;
|
|
2676
2639
|
}
|
|
2677
2640
|
|
|
2678
2641
|
.feedback-btn-submit:hover:not(:disabled) {
|
|
2679
|
-
background: #
|
|
2642
|
+
background: #1A56DB;
|
|
2680
2643
|
}
|
|
2681
2644
|
|
|
2682
2645
|
.feedback-btn-submit:active:not(:disabled) {
|
|
2683
|
-
|
|
2646
|
+
background: #1E429F;
|
|
2647
|
+
}
|
|
2648
|
+
|
|
2649
|
+
.feedback-btn-cancel {
|
|
2650
|
+
background: transparent;
|
|
2651
|
+
color: #6B7280;
|
|
2652
|
+
border: 1px solid #D1D5DB;
|
|
2653
|
+
}
|
|
2654
|
+
|
|
2655
|
+
.feedback-btn-cancel:hover:not(:disabled) {
|
|
2656
|
+
background: #F9FAFB;
|
|
2657
|
+
border-color: #9CA3AF;
|
|
2658
|
+
color: #374151;
|
|
2659
|
+
}
|
|
2660
|
+
|
|
2661
|
+
.feedback-panel.theme-dark .feedback-btn-cancel {
|
|
2662
|
+
color: #D1D5DB;
|
|
2663
|
+
border-color: #4B5563;
|
|
2664
|
+
}
|
|
2665
|
+
|
|
2666
|
+
.feedback-panel.theme-dark .feedback-btn-cancel:hover:not(:disabled) {
|
|
2667
|
+
background: #374151;
|
|
2668
|
+
}
|
|
2669
|
+
|
|
2670
|
+
.feedback-form-actions {
|
|
2671
|
+
display: flex;
|
|
2672
|
+
flex-direction: column;
|
|
2673
|
+
gap: 12px;
|
|
2674
|
+
margin-top: auto;
|
|
2675
|
+
padding-top: 24px;
|
|
2684
2676
|
}
|
|
2685
2677
|
|
|
2686
2678
|
.feedback-error {
|
|
2687
|
-
background: #FEF2F2;
|
|
2688
|
-
border: 1px solid #FEE2E2;
|
|
2689
2679
|
color: #DC2626;
|
|
2690
|
-
|
|
2680
|
+
font-size: 14px;
|
|
2681
|
+
font-weight: 400;
|
|
2682
|
+
margin-top: 8px;
|
|
2683
|
+
padding: 12px;
|
|
2684
|
+
background: #FEE2E2;
|
|
2685
|
+
border: 1px solid #FECACA;
|
|
2691
2686
|
border-radius: 8px;
|
|
2692
|
-
font-size: 13px;
|
|
2693
|
-
margin-top: 12px;
|
|
2694
2687
|
display: none;
|
|
2695
2688
|
}
|
|
2696
2689
|
|
|
@@ -2698,6 +2691,12 @@
|
|
|
2698
2691
|
display: block;
|
|
2699
2692
|
}
|
|
2700
2693
|
|
|
2694
|
+
.feedback-panel.theme-dark .feedback-error {
|
|
2695
|
+
background: #7F1D1D;
|
|
2696
|
+
border-color: #991B1B;
|
|
2697
|
+
color: #FCA5A5;
|
|
2698
|
+
}
|
|
2699
|
+
|
|
2701
2700
|
.feedback-success-notification {
|
|
2702
2701
|
position: fixed;
|
|
2703
2702
|
top: 24px;
|
|
@@ -2762,7 +2761,7 @@
|
|
|
2762
2761
|
}
|
|
2763
2762
|
|
|
2764
2763
|
.feedback-success-close:focus-visible {
|
|
2765
|
-
outline: 2px solid #
|
|
2764
|
+
outline: 2px solid #155EEF;
|
|
2766
2765
|
outline-offset: 2px;
|
|
2767
2766
|
}
|
|
2768
2767
|
|
|
@@ -2824,10 +2823,18 @@
|
|
|
2824
2823
|
border-radius: 2px;
|
|
2825
2824
|
}
|
|
2826
2825
|
|
|
2826
|
+
.feedback-panel.theme-dark .feedback-panel-header::before {
|
|
2827
|
+
background: #4B5563;
|
|
2828
|
+
}
|
|
2829
|
+
|
|
2827
2830
|
.feedback-panel-body {
|
|
2828
2831
|
padding: 20px;
|
|
2829
2832
|
}
|
|
2830
2833
|
|
|
2834
|
+
.feedback-form-group textarea {
|
|
2835
|
+
min-height: 150px;
|
|
2836
|
+
}
|
|
2837
|
+
|
|
2831
2838
|
.feedback-widget-button {
|
|
2832
2839
|
bottom: 16px;
|
|
2833
2840
|
right: 16px;
|