@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.
@@ -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,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
- 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 4px rgba(0, 0, 0, 0.1),
2379
- 0 8px 16px rgba(0, 0, 0, 0.15),
2380
- 0 0 1px rgba(0, 0, 0, 0.1);
2381
- transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
2382
- padding: 0;
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-modal.open {
2456
- opacity: 1;
2457
- transform: translate(-50%, -50%) scale(1);
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-panel.size-medium {
2483
- width: 420px;
2383
+ .feedback-trigger-btn:disabled {
2384
+ opacity: 0.7;
2385
+ cursor: not-allowed;
2484
2386
  }
2485
2387
 
2486
- .feedback-panel.size-large {
2487
- width: 520px;
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.4);
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: var(--bg-color, #ffffff);
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: 12px;
2533
- 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;
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 24px 20px 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: var(--text-color, #171717);
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: 20px;
2471
+ font-size: 24px;
2555
2472
  cursor: pointer;
2556
- color: #737373;
2557
- padding: 0;
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: 8px;
2564
- transition: all 0.15s ease;
2480
+ border-radius: 6px;
2481
+ transition: all 0.2s ease;
2565
2482
  }
2566
2483
 
2567
2484
  .feedback-panel-close:hover {
2568
- background: #f5f5f5;
2569
- color: #171717;
2485
+ background: #F3F4F6;
2486
+ color: #111827;
2570
2487
  }
2571
2488
 
2572
2489
  .feedback-panel-close:focus-visible {
2573
- outline: 2px solid var(--primary-color, #21244A);
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: 0 24px 24px 24px;
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
- margin-bottom: 16px;
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
- /* Unified input container */
2598
- .feedback-input-container {
2599
- border: 1px solid #e5e5e5;
2600
- border-radius: 8px;
2601
- padding: 16px;
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-input-container:focus-within {
2607
- border-color: var(--primary-color, #21244A);
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
- .feedback-form-group textarea {
2537
+ .feedback-form-group input {
2538
+ height: 44px;
2613
2539
  width: 100%;
2614
- border: none;
2615
- padding: 0;
2616
- 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;
2617
2547
  font-family: inherit;
2618
- color: var(--text-color, #171717);
2619
- background: transparent;
2620
2548
  outline: none;
2621
- resize: none;
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
- margin-bottom: 12px;
2554
+ color: #9CA3AF;
2628
2555
  }
2629
2556
 
2630
- .feedback-form-group input::placeholder {
2631
- color: #737373;
2632
- 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;
2633
2564
  }
2634
2565
 
2635
2566
  .feedback-form-group textarea {
2636
- 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;
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
- color: #a3a3a3;
2642
- 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;
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.15s ease;
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 #21244A;
2631
+ outline: 2px solid #155EEF;
2669
2632
  outline-offset: 2px;
2670
2633
  }
2671
2634
 
2672
2635
  .feedback-btn-submit {
2673
- background: var(--primary-color, #21244A);
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: #2d3159;
2642
+ background: #1A56DB;
2680
2643
  }
2681
2644
 
2682
2645
  .feedback-btn-submit:active:not(:disabled) {
2683
- 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;
2684
2676
  }
2685
2677
 
2686
2678
  .feedback-error {
2687
- background: #FEF2F2;
2688
- border: 1px solid #FEE2E2;
2689
2679
  color: #DC2626;
2690
- 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;
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 #21244A;
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;