@product7/feedback-sdk 1.1.6 → 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 -215
- 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 -183
- 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,142 +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
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
box-shadow:
|
|
2386
|
-
0 4px 12px rgba(0, 0, 0, 0.1),
|
|
2387
|
-
0 8px 24px rgba(0, 0, 0, 0.08);
|
|
2388
|
-
transform: translateY(-2px);
|
|
2389
|
-
}
|
|
2390
|
-
|
|
2391
|
-
.feedback-trigger-btn:active {
|
|
2392
|
-
transform: translateY(0px);
|
|
2393
|
-
box-shadow:
|
|
2394
|
-
0 2px 6px rgba(0, 0, 0, 0.08),
|
|
2395
|
-
0 1px 4px rgba(0, 0, 0, 0.06);
|
|
2396
|
-
}
|
|
2397
|
-
.feedback-trigger-btn svg {
|
|
2398
|
-
flex-shrink: 0;
|
|
2399
|
-
width: 22px;
|
|
2400
|
-
height: 25px;
|
|
2401
|
-
}
|
|
2402
|
-
|
|
2403
|
-
.feedback-trigger-btn svg path {
|
|
2404
|
-
fill: #21244A;
|
|
2405
|
-
}
|
|
2406
|
-
|
|
2407
|
-
/* Loading Modal */
|
|
2408
|
-
.feedback-loading-modal {
|
|
2409
|
-
position: fixed;
|
|
2410
|
-
top: 50%;
|
|
2411
|
-
left: 50%;
|
|
2412
|
-
transform: translate(-50%, -50%) scale(0.9);
|
|
2413
|
-
z-index: 1000001;
|
|
2414
|
-
opacity: 0;
|
|
2415
|
-
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
2416
|
-
}
|
|
2417
|
-
|
|
2418
|
-
.feedback-loading-modal.show {
|
|
2419
|
-
opacity: 1;
|
|
2420
|
-
transform: translate(-50%, -50%) scale(1);
|
|
2421
|
-
}
|
|
2422
|
-
|
|
2423
|
-
.feedback-loading-spinner {
|
|
2424
|
-
width: 48px;
|
|
2425
|
-
height: 48px;
|
|
2426
|
-
border: 4px solid rgba(0, 0, 0, 0.1);
|
|
2427
|
-
border-top-color: #21244A;
|
|
2428
|
-
border-radius: 50%;
|
|
2429
|
-
animation: spin 0.8s linear infinite;
|
|
2430
|
-
}
|
|
2431
|
-
|
|
2432
|
-
@keyframes spin {
|
|
2433
|
-
to { transform: rotate(360deg); }
|
|
2434
|
-
}
|
|
2435
|
-
|
|
2436
|
-
/* Modal Styles (centered) */
|
|
2437
|
-
.feedback-modal {
|
|
2438
|
-
position: fixed;
|
|
2439
|
-
top: 50%;
|
|
2440
|
-
left: 50%;
|
|
2441
|
-
transform: translate(-50%, -50%) scale(0.9);
|
|
2442
|
-
width: 480px;
|
|
2443
|
-
max-width: 90vw;
|
|
2444
|
-
max-height: 85vh;
|
|
2445
|
-
z-index: 1000000;
|
|
2446
|
-
opacity: 0;
|
|
2447
|
-
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;
|
|
2448
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);
|
|
2449
2376
|
}
|
|
2450
2377
|
|
|
2451
|
-
.feedback-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
}
|
|
2455
|
-
|
|
2456
|
-
.feedback-modal .feedback-panel-content {
|
|
2457
|
-
max-height: 85vh;
|
|
2458
|
-
overflow-y: auto;
|
|
2459
|
-
}
|
|
2460
|
-
|
|
2461
|
-
/* Size variants */
|
|
2462
|
-
.feedback-modal.size-small {
|
|
2463
|
-
width: 360px;
|
|
2464
|
-
}
|
|
2465
|
-
|
|
2466
|
-
.feedback-modal.size-medium {
|
|
2467
|
-
width: 480px;
|
|
2468
|
-
}
|
|
2469
|
-
|
|
2470
|
-
.feedback-modal.size-large {
|
|
2471
|
-
width: 600px;
|
|
2472
|
-
}
|
|
2473
|
-
|
|
2474
|
-
.feedback-panel.size-small {
|
|
2475
|
-
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);
|
|
2476
2381
|
}
|
|
2477
2382
|
|
|
2478
|
-
.feedback-
|
|
2479
|
-
|
|
2383
|
+
.feedback-trigger-btn:disabled {
|
|
2384
|
+
opacity: 0.7;
|
|
2385
|
+
cursor: not-allowed;
|
|
2480
2386
|
}
|
|
2481
2387
|
|
|
2482
|
-
.feedback-
|
|
2483
|
-
|
|
2388
|
+
.feedback-trigger-btn:focus-visible {
|
|
2389
|
+
outline: 2px solid #155EEF;
|
|
2390
|
+
outline-offset: 2px;
|
|
2484
2391
|
}
|
|
2485
2392
|
|
|
2486
2393
|
/* Side Panel Styles */
|
|
@@ -2506,8 +2413,7 @@
|
|
|
2506
2413
|
left: 0;
|
|
2507
2414
|
right: 0;
|
|
2508
2415
|
bottom: 0;
|
|
2509
|
-
background: rgba(0, 0, 0, 0.
|
|
2510
|
-
backdrop-filter: blur(4px);
|
|
2416
|
+
background: rgba(0, 0, 0, 0.1);
|
|
2511
2417
|
opacity: 0;
|
|
2512
2418
|
transition: opacity 0.3s ease;
|
|
2513
2419
|
pointer-events: none;
|
|
@@ -2520,60 +2426,84 @@
|
|
|
2520
2426
|
}
|
|
2521
2427
|
|
|
2522
2428
|
.feedback-panel-content {
|
|
2523
|
-
background:
|
|
2524
|
-
color: var(--text-color, #171717);
|
|
2429
|
+
background: white;
|
|
2525
2430
|
height: 100%;
|
|
2526
2431
|
display: flex;
|
|
2527
2432
|
flex-direction: column;
|
|
2528
|
-
border-radius:
|
|
2529
|
-
|
|
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;
|
|
2530
2442
|
}
|
|
2531
2443
|
|
|
2532
2444
|
.feedback-panel-header {
|
|
2533
2445
|
display: flex;
|
|
2534
2446
|
align-items: center;
|
|
2535
2447
|
justify-content: space-between;
|
|
2536
|
-
padding: 24px
|
|
2448
|
+
padding: 24px;
|
|
2449
|
+
border-bottom: 1px solid #E5E7EB;
|
|
2537
2450
|
flex-shrink: 0;
|
|
2538
2451
|
}
|
|
2539
2452
|
|
|
2453
|
+
.feedback-panel.theme-dark .feedback-panel-header {
|
|
2454
|
+
border-bottom-color: #374151;
|
|
2455
|
+
}
|
|
2456
|
+
|
|
2540
2457
|
.feedback-panel-header h3 {
|
|
2541
2458
|
margin: 0;
|
|
2542
2459
|
font-size: 18px;
|
|
2543
2460
|
font-weight: 600;
|
|
2544
|
-
color:
|
|
2461
|
+
color: #111827;
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2464
|
+
.feedback-panel.theme-dark .feedback-panel-header h3 {
|
|
2465
|
+
color: white;
|
|
2545
2466
|
}
|
|
2546
2467
|
|
|
2547
2468
|
.feedback-panel-close {
|
|
2548
2469
|
background: none;
|
|
2549
2470
|
border: none;
|
|
2550
|
-
font-size:
|
|
2471
|
+
font-size: 24px;
|
|
2551
2472
|
cursor: pointer;
|
|
2552
|
-
color: #
|
|
2553
|
-
padding:
|
|
2473
|
+
color: #6B7280;
|
|
2474
|
+
padding: 4px;
|
|
2554
2475
|
width: 32px;
|
|
2555
2476
|
height: 32px;
|
|
2556
2477
|
display: flex;
|
|
2557
2478
|
align-items: center;
|
|
2558
2479
|
justify-content: center;
|
|
2559
|
-
border-radius:
|
|
2560
|
-
transition: all 0.
|
|
2480
|
+
border-radius: 6px;
|
|
2481
|
+
transition: all 0.2s ease;
|
|
2561
2482
|
}
|
|
2562
2483
|
|
|
2563
2484
|
.feedback-panel-close:hover {
|
|
2564
|
-
background: #
|
|
2565
|
-
color: #
|
|
2485
|
+
background: #F3F4F6;
|
|
2486
|
+
color: #111827;
|
|
2566
2487
|
}
|
|
2567
2488
|
|
|
2568
2489
|
.feedback-panel-close:focus-visible {
|
|
2569
|
-
outline: 2px solid
|
|
2490
|
+
outline: 2px solid #155EEF;
|
|
2570
2491
|
outline-offset: 2px;
|
|
2571
2492
|
}
|
|
2572
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
|
+
|
|
2573
2503
|
.feedback-panel-body {
|
|
2574
2504
|
flex: 1;
|
|
2575
2505
|
overflow-y: auto;
|
|
2576
|
-
padding:
|
|
2506
|
+
padding: 24px;
|
|
2577
2507
|
}
|
|
2578
2508
|
|
|
2579
2509
|
.feedback-form {
|
|
@@ -2583,59 +2513,96 @@
|
|
|
2583
2513
|
}
|
|
2584
2514
|
|
|
2585
2515
|
.feedback-form-group {
|
|
2586
|
-
|
|
2516
|
+
display: flex;
|
|
2517
|
+
flex-direction: column;
|
|
2518
|
+
gap: 8px;
|
|
2519
|
+
margin-bottom: 20px;
|
|
2587
2520
|
}
|
|
2588
2521
|
|
|
2589
2522
|
.feedback-form-group:last-child {
|
|
2590
2523
|
margin-bottom: 0;
|
|
2591
2524
|
}
|
|
2592
2525
|
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
background: #ffffff;
|
|
2599
|
-
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;
|
|
2600
2531
|
}
|
|
2601
2532
|
|
|
2602
|
-
.feedback-
|
|
2603
|
-
|
|
2604
|
-
box-shadow: 0 0 0 3px rgba(33, 36, 74, 0.08);
|
|
2533
|
+
.feedback-panel.theme-dark .feedback-form-group label {
|
|
2534
|
+
color: #D1D5DB;
|
|
2605
2535
|
}
|
|
2606
2536
|
|
|
2607
|
-
.feedback-form-group input
|
|
2608
|
-
|
|
2537
|
+
.feedback-form-group input {
|
|
2538
|
+
height: 44px;
|
|
2609
2539
|
width: 100%;
|
|
2610
|
-
border:
|
|
2611
|
-
|
|
2612
|
-
|
|
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;
|
|
2613
2547
|
font-family: inherit;
|
|
2614
|
-
color: var(--text-color, #171717);
|
|
2615
|
-
background: transparent;
|
|
2616
2548
|
outline: none;
|
|
2617
|
-
|
|
2549
|
+
transition: all 0.2s ease;
|
|
2618
2550
|
}
|
|
2619
2551
|
|
|
2620
|
-
.feedback-form-group input {
|
|
2621
|
-
font-weight: 600;
|
|
2552
|
+
.feedback-form-group input::placeholder {
|
|
2622
2553
|
font-size: 15px;
|
|
2623
|
-
|
|
2554
|
+
color: #9CA3AF;
|
|
2624
2555
|
}
|
|
2625
2556
|
|
|
2626
|
-
.feedback-form-group input
|
|
2627
|
-
color: #
|
|
2628
|
-
|
|
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;
|
|
2629
2564
|
}
|
|
2630
2565
|
|
|
2631
2566
|
.feedback-form-group textarea {
|
|
2632
|
-
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;
|
|
2633
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;
|
|
2634
2580
|
}
|
|
2635
2581
|
|
|
2636
2582
|
.feedback-form-group textarea::placeholder {
|
|
2637
|
-
|
|
2638
|
-
|
|
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;
|
|
2639
2606
|
}
|
|
2640
2607
|
|
|
2641
2608
|
.feedback-btn {
|
|
@@ -2652,7 +2619,7 @@
|
|
|
2652
2619
|
font-weight: 500;
|
|
2653
2620
|
font-family: inherit;
|
|
2654
2621
|
cursor: pointer;
|
|
2655
|
-
transition: all 0.
|
|
2622
|
+
transition: all 0.2s ease;
|
|
2656
2623
|
}
|
|
2657
2624
|
|
|
2658
2625
|
.feedback-btn:disabled {
|
|
@@ -2661,32 +2628,62 @@
|
|
|
2661
2628
|
}
|
|
2662
2629
|
|
|
2663
2630
|
.feedback-btn:focus-visible {
|
|
2664
|
-
outline: 2px solid #
|
|
2631
|
+
outline: 2px solid #155EEF;
|
|
2665
2632
|
outline-offset: 2px;
|
|
2666
2633
|
}
|
|
2667
2634
|
|
|
2668
2635
|
.feedback-btn-submit {
|
|
2669
|
-
background:
|
|
2636
|
+
background: #155EEF;
|
|
2670
2637
|
color: white;
|
|
2671
2638
|
width: 100%;
|
|
2672
2639
|
}
|
|
2673
2640
|
|
|
2674
2641
|
.feedback-btn-submit:hover:not(:disabled) {
|
|
2675
|
-
background: #
|
|
2642
|
+
background: #1A56DB;
|
|
2676
2643
|
}
|
|
2677
2644
|
|
|
2678
2645
|
.feedback-btn-submit:active:not(:disabled) {
|
|
2679
|
-
|
|
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;
|
|
2680
2676
|
}
|
|
2681
2677
|
|
|
2682
2678
|
.feedback-error {
|
|
2683
|
-
background: #FEF2F2;
|
|
2684
|
-
border: 1px solid #FEE2E2;
|
|
2685
2679
|
color: #DC2626;
|
|
2686
|
-
|
|
2680
|
+
font-size: 14px;
|
|
2681
|
+
font-weight: 400;
|
|
2682
|
+
margin-top: 8px;
|
|
2683
|
+
padding: 12px;
|
|
2684
|
+
background: #FEE2E2;
|
|
2685
|
+
border: 1px solid #FECACA;
|
|
2687
2686
|
border-radius: 8px;
|
|
2688
|
-
font-size: 13px;
|
|
2689
|
-
margin-top: 12px;
|
|
2690
2687
|
display: none;
|
|
2691
2688
|
}
|
|
2692
2689
|
|
|
@@ -2694,6 +2691,12 @@
|
|
|
2694
2691
|
display: block;
|
|
2695
2692
|
}
|
|
2696
2693
|
|
|
2694
|
+
.feedback-panel.theme-dark .feedback-error {
|
|
2695
|
+
background: #7F1D1D;
|
|
2696
|
+
border-color: #991B1B;
|
|
2697
|
+
color: #FCA5A5;
|
|
2698
|
+
}
|
|
2699
|
+
|
|
2697
2700
|
.feedback-success-notification {
|
|
2698
2701
|
position: fixed;
|
|
2699
2702
|
top: 24px;
|
|
@@ -2758,7 +2761,7 @@
|
|
|
2758
2761
|
}
|
|
2759
2762
|
|
|
2760
2763
|
.feedback-success-close:focus-visible {
|
|
2761
|
-
outline: 2px solid #
|
|
2764
|
+
outline: 2px solid #155EEF;
|
|
2762
2765
|
outline-offset: 2px;
|
|
2763
2766
|
}
|
|
2764
2767
|
|
|
@@ -2820,10 +2823,18 @@
|
|
|
2820
2823
|
border-radius: 2px;
|
|
2821
2824
|
}
|
|
2822
2825
|
|
|
2826
|
+
.feedback-panel.theme-dark .feedback-panel-header::before {
|
|
2827
|
+
background: #4B5563;
|
|
2828
|
+
}
|
|
2829
|
+
|
|
2823
2830
|
.feedback-panel-body {
|
|
2824
2831
|
padding: 20px;
|
|
2825
2832
|
}
|
|
2826
2833
|
|
|
2834
|
+
.feedback-form-group textarea {
|
|
2835
|
+
min-height: 150px;
|
|
2836
|
+
}
|
|
2837
|
+
|
|
2827
2838
|
.feedback-widget-button {
|
|
2828
2839
|
bottom: 16px;
|
|
2829
2840
|
right: 16px;
|