@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.
@@ -918,41 +918,44 @@
918
918
 
919
919
  _getPanelHTML() {
920
920
  return `
921
- <div class="feedback-panel-content">
922
- <div class="feedback-panel-header">
923
- <h3>Share Your Thoughts</h3>
924
- <button class="feedback-panel-close" type="button" aria-label="Close">&times;</button>
925
- </div>
926
- <div class="feedback-panel-body">
927
- <form class="feedback-form">
928
- <div class="feedback-form-group">
929
- <div class="feedback-input-container">
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">&times;</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="Title"
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's on your mind..."
943
+ placeholder="Tell us what you think..."
941
944
  required
942
945
  >${this.state.content}</textarea>
943
946
  </div>
944
- </div>
945
- <div class="feedback-error" role="alert"></div>
946
- <div class="feedback-form-group">
947
- <button type="submit" class="feedback-btn feedback-btn-submit">
948
- ${this.state.isSubmitting ? 'Sending...' : 'Submit Feedback'}
949
- </button>
950
- </div>
951
- </form>
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
- </div>
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
- <button class="feedback-trigger-btn" type="button" aria-label="Send feedback">
1092
- <svg width="28" height="32" viewBox="0 0 28 32" fill="none" xmlns="http://www.w3.org/2000/svg">
1093
- <path fill-rule="evenodd" clip-rule="evenodd" d="M15.0615 5.28044C8.5161 4.42949 3.30825 11.1456 5.89967 17.6588C6.9321 20.2538 9.06268 22.2644 11.8777 23.1968C16.2682 24.6507 18.4038 22.3222 19.0483 23.9691C19.4055 24.8894 18.7282 25.3209 17.988 25.4938C10.9146 27.15 5.15304 22.7566 3.5869 17.5531C1.52205 10.6941 5.98684 4.6667 11.3483 3.41065C17.8801 1.88094 24.0325 6.19355 24.3926 12.7175C24.7448 19.0921 18.6217 24.5978 11.927 22.2036C10.8789 21.8285 8.8419 20.6682 8.46823 19.858C8.06026 18.9727 8.80261 18.1725 9.68285 18.3576C10.2223 18.4726 10.3116 18.8706 11.3161 19.5372C14.4549 21.6213 19.1276 20.6132 21.2046 17.0972C23.991 12.3817 21.0481 6.05351 15.06 5.27758L15.0615 5.28044Z" fill="#21244A"/>
1094
- <path fill-rule="evenodd" clip-rule="evenodd" d="M15.2492 2.19833C11.944 1.71463 8.88819 3.07214 6.91479 4.49682C2.27067 7.85488 0.76169 14.5038 3.49672 19.8731C4.08535 21.0096 4.84379 22.0497 5.7459 22.9576L7.16343 24.2515C7.67214 24.9131 7.27203 25.7176 6.64115 25.9269C5.13502 26.4271 2.0499 21.8172 1.42044 20.5383C0.0872204 17.8297 -0.312889 14.9047 0.242977 11.503C1.66908 2.77063 11.221 -2.51652 19.7197 1.21021C27.7548 4.73331 30.2733 15.4555 23.9351 22.0773C23.3107 22.7296 21.6352 24.4823 20.6278 23.8907C20.0076 23.5263 19.8933 22.6446 20.5192 22.1238C21.0301 21.6986 21.4759 21.435 21.9896 20.9734C23.6665 19.4688 25.2562 16.8752 25.3477 13.5636C25.4427 10.2055 24.1266 7.5848 22.3904 5.74859C20.6392 3.89665 18.6751 2.69919 15.2456 2.19691L15.2492 2.19833Z" fill="#F69F06"/>
1095
- <path fill-rule="evenodd" clip-rule="evenodd" d="M8.48332 27.2217C7.93817 26.265 8.89987 25.3776 10.1352 25.8641C15.5653 27.9926 18.3081 25.5269 19.0255 27.0823C19.2655 27.6039 19.0448 28.1619 18.7354 28.3863C17.9895 28.9257 14.82 28.9343 13.9262 28.8714C12.9071 28.8053 11.897 28.6377 10.9111 28.3713C10.0888 28.1348 8.88057 27.9247 8.48189 27.2281L8.48332 27.2217Z" fill="#21244A"/>
1096
- <path fill-rule="evenodd" clip-rule="evenodd" d="M15.8722 31.0607C15.7765 32.1381 14.579 32.0331 13.5766 31.9545C12.5742 31.8759 11.5203 31.8502 11.601 30.7013C11.6789 29.5882 12.8035 29.7532 13.8274 29.8332C14.4425 29.8811 15.9951 29.681 15.8722 31.0607Z" fill="#21244A"/>
1097
- </svg>
1098
- </button>
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 = 'scale(1.1)';
1116
+ button.style.transform = 'translateY(-2px)';
1114
1117
  }
1115
1118
  });
1116
1119
 
1117
1120
  button.addEventListener('mouseleave', () => {
1118
- button.style.transform = 'scale(1)';
1121
+ button.style.transform = 'translateY(0)';
1119
1122
  });
1120
1123
  }
1121
1124
 
1122
1125
  updateText(text) {
1123
- console.warn('ButtonWidget: Text display is disabled for circular design');
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: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
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
- width: 52px;
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
- box-shadow:
2378
- 0 2px 8px rgba(0, 0, 0, 0.08),
2379
- 0 4px 16px rgba(0, 0, 0, 0.06);
2380
- transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
2381
- padding: 0;
2382
- }
2383
-
2384
- .feedback-trigger-btn:hover {
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-modal.open {
2452
- opacity: 1;
2453
- transform: translate(-50%, -50%) scale(1);
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-panel.size-medium {
2479
- width: 420px;
2383
+ .feedback-trigger-btn:disabled {
2384
+ opacity: 0.7;
2385
+ cursor: not-allowed;
2480
2386
  }
2481
2387
 
2482
- .feedback-panel.size-large {
2483
- width: 520px;
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.4);
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: var(--bg-color, #ffffff);
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: 12px;
2529
- border: 1px solid #e5e5e5;
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 24px 20px 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: var(--text-color, #171717);
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: 20px;
2471
+ font-size: 24px;
2551
2472
  cursor: pointer;
2552
- color: #737373;
2553
- padding: 0;
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: 8px;
2560
- transition: all 0.15s ease;
2480
+ border-radius: 6px;
2481
+ transition: all 0.2s ease;
2561
2482
  }
2562
2483
 
2563
2484
  .feedback-panel-close:hover {
2564
- background: #f5f5f5;
2565
- color: #171717;
2485
+ background: #F3F4F6;
2486
+ color: #111827;
2566
2487
  }
2567
2488
 
2568
2489
  .feedback-panel-close:focus-visible {
2569
- outline: 2px solid var(--primary-color, #21244A);
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: 0 24px 24px 24px;
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
- margin-bottom: 16px;
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
- /* Unified input container */
2594
- .feedback-input-container {
2595
- border: 1px solid #e5e5e5;
2596
- border-radius: 8px;
2597
- padding: 16px;
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-input-container:focus-within {
2603
- border-color: var(--primary-color, #21244A);
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
- .feedback-form-group textarea {
2537
+ .feedback-form-group input {
2538
+ height: 44px;
2609
2539
  width: 100%;
2610
- border: none;
2611
- padding: 0;
2612
- font-size: 14px;
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
- resize: none;
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
- margin-bottom: 12px;
2554
+ color: #9CA3AF;
2624
2555
  }
2625
2556
 
2626
- .feedback-form-group input::placeholder {
2627
- color: #737373;
2628
- font-weight: 600;
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: 120px;
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
- color: #a3a3a3;
2638
- font-weight: 400;
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.15s ease;
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 #21244A;
2631
+ outline: 2px solid #155EEF;
2665
2632
  outline-offset: 2px;
2666
2633
  }
2667
2634
 
2668
2635
  .feedback-btn-submit {
2669
- background: var(--primary-color, #21244A);
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: #2d3159;
2642
+ background: #1A56DB;
2676
2643
  }
2677
2644
 
2678
2645
  .feedback-btn-submit:active:not(:disabled) {
2679
- transform: scale(0.98);
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
- padding: 12px 14px;
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 #21244A;
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;