@pheem49/mint 1.7.1 → 1.8.1

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.
Files changed (66) hide show
  1. package/.github/workflows/release.yml +1 -1
  2. package/Cargo.lock +34 -3
  3. package/Cargo.toml +2 -2
  4. package/README.md +40 -0
  5. package/Release_Note.md +95 -0
  6. package/assets/Mint_CLI.png +0 -0
  7. package/crates/mint-cli/Cargo.toml +1 -0
  8. package/crates/mint-cli/src/agent.rs +142 -48
  9. package/crates/mint-cli/src/main.rs +231 -22
  10. package/crates/mint-core/src/api_server.rs +71 -4
  11. package/crates/mint-core/src/browser.rs +401 -0
  12. package/crates/mint-core/src/chat.rs +79 -0
  13. package/crates/mint-core/src/config.rs +69 -1
  14. package/crates/mint-core/src/lib.rs +6 -1
  15. package/crates/mint-core/src/orchestration.rs +137 -1
  16. package/crates/mint-core/src/skills.rs +113 -4
  17. package/crates/mint-core/src/workflows.rs +9 -22
  18. package/package.json +2 -1
  19. package/src/renderer/src/App.tsx +1 -1
  20. package/src/renderer/src/components/ChatPanel.tsx +197 -47
  21. package/src/renderer/src/components/DashboardSidebar.tsx +71 -12
  22. package/src/renderer/src/components/ImageStudioPanel.tsx +18 -4
  23. package/src/renderer/src/components/MintDashboard.tsx +239 -7
  24. package/src/renderer/src/components/PicturesLibrary.tsx +1 -3
  25. package/src/renderer/src/components/Settings/AudioTab.tsx +97 -0
  26. package/src/renderer/src/components/Settings/AutomationTab.tsx +195 -0
  27. package/src/renderer/src/components/Settings/GeneralTab.tsx +950 -0
  28. package/src/renderer/src/components/Settings/MemoryTab.tsx +60 -0
  29. package/src/renderer/src/components/Settings/PluginsTab.tsx +632 -0
  30. package/src/renderer/src/components/Settings/ShortcutsTab.tsx +30 -0
  31. package/src/renderer/src/components/Settings/ThemeTab.tsx +129 -0
  32. package/src/renderer/src/components/SettingsWindow.tsx +175 -970
  33. package/src/renderer/src/components/WorkflowBuilderPanel.tsx +536 -0
  34. package/src/renderer/src/components/WorkflowsWindow.tsx +46 -0
  35. package/src/renderer/src/components/WorkspacePanel.tsx +66 -9
  36. package/src/renderer/src/css/image-studio.css +15 -4
  37. package/src/renderer/src/css/settings.css +75 -6
  38. package/src/renderer/src/css/styles.css +419 -49
  39. package/src/renderer/src/css/workflows.css +542 -0
  40. package/src/renderer/src/env.d.ts +2 -0
  41. package/src/renderer/src/index.css +13 -1
  42. package/src/renderer/src/tauri.ts +140 -2
  43. package/src/renderer/src-web/components/ChatPanel.tsx +190 -46
  44. package/src/renderer/src-web/components/DashboardSidebar.tsx +17 -1
  45. package/src/renderer/src-web/components/ImageStudioPanel.tsx +18 -4
  46. package/src/renderer/src-web/components/MintDashboard.tsx +197 -3
  47. package/src/renderer/src-web/components/PicturesLibrary.tsx +1 -3
  48. package/src/renderer/src-web/components/Settings/AudioTab.tsx +97 -0
  49. package/src/renderer/src-web/components/Settings/AutomationTab.tsx +196 -0
  50. package/src/renderer/src-web/components/Settings/GeneralTab.tsx +948 -0
  51. package/src/renderer/src-web/components/Settings/MemoryTab.tsx +60 -0
  52. package/src/renderer/src-web/components/Settings/PluginsTab.tsx +632 -0
  53. package/src/renderer/src-web/components/Settings/ShortcutsTab.tsx +30 -0
  54. package/src/renderer/src-web/components/Settings/ThemeTab.tsx +129 -0
  55. package/src/renderer/src-web/components/SettingsWindow.tsx +187 -976
  56. package/src/renderer/src-web/css/image-studio.css +15 -4
  57. package/src/renderer/src-web/css/settings.css +75 -6
  58. package/src/renderer/src-web/css/styles.css +394 -50
  59. package/src/renderer/src-web/env.d.ts +2 -0
  60. package/src/renderer/src-web/index.css +12 -1
  61. package/src/renderer/src-web/tauri.ts +60 -2
  62. package/src-tauri/src/browser.rs +1 -141
  63. package/src-tauri/src/headless.rs +3 -2
  64. package/src-tauri/src/lib.rs +195 -111
  65. package/src-tauri/src/workflows.rs +56 -4
  66. package/src-tauri/tauri.conf.json +1 -1
@@ -401,24 +401,24 @@ h1 {
401
401
 
402
402
  .picture-refresh-btn {
403
403
  -webkit-app-region: no-drag;
404
- height: 28px;
405
- min-width: 0;
406
- padding: 0 8px;
404
+ height: 36px;
405
+ width: 36px;
406
+ padding: 0;
407
407
  display: inline-flex;
408
408
  align-items: center;
409
409
  justify-content: center;
410
- gap: 8px;
411
- border-radius: 6px;
412
- background: transparent;
413
- color: var(--text-muted);
414
- border: 1px solid transparent;
410
+ border-radius: 8px;
411
+ background: rgba(255, 255, 255, 0.04);
412
+ color: var(--text-soft);
413
+ border: 1px solid var(--border);
415
414
  cursor: pointer;
415
+ transition: background 0.15s, color 0.15s, border-color 0.15s;
416
416
  }
417
417
 
418
418
  .picture-refresh-btn:hover {
419
- background: color-mix(in srgb, var(--accent) 10%, transparent);
420
- border-color: color-mix(in srgb, var(--accent) 16%, transparent);
421
- color: var(--accent);
419
+ background: rgba(255, 255, 255, 0.08);
420
+ border-color: rgba(255, 255, 255, 0.15);
421
+ color: var(--text-main);
422
422
  }
423
423
 
424
424
  .interaction-guide-btn:hover {
@@ -873,7 +873,7 @@ h1 {
873
873
 
874
874
  .assistant-workspace.model-hidden .conversation-panel {
875
875
  flex: 1;
876
- max-width: 900px;
876
+ max-width: 1100px;
877
877
  margin: 0 auto;
878
878
  }
879
879
 
@@ -1167,6 +1167,51 @@ h1 {
1167
1167
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
1168
1168
  }
1169
1169
 
1170
+ .input-disclaimer {
1171
+ text-align: center;
1172
+ font-size: 0.7rem;
1173
+ color: var(--text-muted);
1174
+ opacity: 0.55;
1175
+ padding: 4px 20px 10px;
1176
+ margin: 0;
1177
+ flex-shrink: 0;
1178
+ line-height: 1.5;
1179
+ user-select: none;
1180
+ }
1181
+
1182
+
1183
+ /* Chat Header (Mint Agent title bar inside panel) */
1184
+ .chat-header {
1185
+ display: flex;
1186
+ align-items: center;
1187
+ gap: 12px;
1188
+ padding: 10px 18px;
1189
+ background: var(--chrome-bg);
1190
+ backdrop-filter: var(--glass-blur);
1191
+ -webkit-backdrop-filter: var(--glass-blur);
1192
+ border-bottom: 1px solid var(--border);
1193
+ position: sticky;
1194
+ top: 0;
1195
+ z-index: 50;
1196
+ height: 52px;
1197
+ flex-shrink: 0;
1198
+ }
1199
+
1200
+ .chat-header-title {
1201
+ display: flex;
1202
+ align-items: center;
1203
+ gap: 8px;
1204
+ font-weight: 600;
1205
+ color: var(--text-main);
1206
+ font-size: 0.92rem;
1207
+ }
1208
+
1209
+ .chat-header-logo {
1210
+ width: 20px;
1211
+ height: 20px;
1212
+ object-fit: contain;
1213
+ }
1214
+
1170
1215
  #chat-form {
1171
1216
  display: flex;
1172
1217
  gap: 12px;
@@ -1428,7 +1473,7 @@ h1 {
1428
1473
  gap: 8px;
1429
1474
  margin-bottom: 8px;
1430
1475
  margin-top: 0;
1431
- max-width: min(680px, 100%);
1476
+ max-width: 100%;
1432
1477
  }
1433
1478
 
1434
1479
  .agent-activity-toggle {
@@ -1463,7 +1508,7 @@ h1 {
1463
1508
  border: 0;
1464
1509
  border-radius: 0;
1465
1510
  color: var(--text-main);
1466
- width: min(680px, 100%);
1511
+ width: 100%;
1467
1512
  max-width: 100%;
1468
1513
  padding: 4px 0;
1469
1514
  box-shadow: none;
@@ -2086,7 +2131,7 @@ input:checked + .slider:before {
2086
2131
  -webkit-backdrop-filter: var(--glass-blur);
2087
2132
  border-right: 1px solid var(--border);
2088
2133
  color: var(--text-muted);
2089
- overflow: hidden;
2134
+ overflow: visible;
2090
2135
  transition: width 0.22s ease, padding 0.22s ease, opacity 0.18s ease, transform 0.22s ease;
2091
2136
  }
2092
2137
 
@@ -2214,6 +2259,56 @@ input:checked + .slider:before {
2214
2259
  margin-bottom: 12px;
2215
2260
  }
2216
2261
 
2262
+ .sidebar-more-container {
2263
+ position: relative;
2264
+ width: 100%;
2265
+ margin-bottom: 12px;
2266
+ }
2267
+
2268
+ .sidebar-more-popover {
2269
+ position: absolute;
2270
+ left: 100%;
2271
+ top: 0;
2272
+ margin-left: 8px;
2273
+ z-index: 1000;
2274
+ background: var(--surface-strong);
2275
+ border: 1px solid var(--border);
2276
+ border-radius: 8px;
2277
+ padding: 6px;
2278
+ min-width: 160px;
2279
+ display: flex;
2280
+ flex-direction: column;
2281
+ gap: 4px;
2282
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
2283
+ backdrop-filter: blur(12px);
2284
+ -webkit-backdrop-filter: blur(12px);
2285
+ }
2286
+
2287
+ .sidebar-more-popover .popover-item {
2288
+ width: 100%;
2289
+ height: 32px;
2290
+ display: flex;
2291
+ align-items: center;
2292
+ gap: 9px;
2293
+ border: 0;
2294
+ border-radius: 6px;
2295
+ background: transparent;
2296
+ color: var(--text-soft);
2297
+ cursor: pointer;
2298
+ padding: 0 10px;
2299
+ text-align: left;
2300
+ font: inherit;
2301
+ font-size: 0.9rem;
2302
+ transition: background 0.16s ease, color 0.16s ease;
2303
+ }
2304
+
2305
+ .sidebar-more-popover .popover-item:hover,
2306
+ .sidebar-more-popover .popover-item.active {
2307
+ background: var(--surface-main);
2308
+ color: var(--text-main);
2309
+ }
2310
+
2311
+
2217
2312
  .sidebar-model-controls {
2218
2313
  display: grid;
2219
2314
  width: 100%;
@@ -2597,6 +2692,18 @@ input:checked + .slider:before {
2597
2692
  grid-template-rows: auto auto minmax(0, 1fr);
2598
2693
  padding: 16px 0 16px 14px;
2599
2694
  color: var(--text-main);
2695
+ animation: panelFadeIn 0.22s cubic-bezier(0.4, 0, 0.2, 1) forwards;
2696
+ }
2697
+
2698
+ @keyframes panelFadeIn {
2699
+ from {
2700
+ opacity: 0;
2701
+ transform: translateY(8px);
2702
+ }
2703
+ to {
2704
+ opacity: 1;
2705
+ transform: translateY(0);
2706
+ }
2600
2707
  }
2601
2708
 
2602
2709
  .workspace-panel-header {
@@ -2643,7 +2750,7 @@ input:checked + .slider:before {
2643
2750
 
2644
2751
  .workspace-panel-actions {
2645
2752
  display: grid;
2646
- grid-template-columns: 1fr 1fr;
2753
+ grid-template-columns: repeat(3, 1fr);
2647
2754
  gap: 8px;
2648
2755
  padding: 0 10px 12px 0;
2649
2756
  }
@@ -2918,11 +3025,15 @@ input:checked + .slider:before {
2918
3025
  color: var(--text-main);
2919
3026
  opacity: 0;
2920
3027
  pointer-events: none;
3028
+ transform: translateY(12px) scale(0.995);
3029
+ transition: opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1), transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
2921
3030
  }
2922
3031
 
2923
- .app-body.pictures-open .pictures-library {
3032
+ .app-body.pictures-open .pictures-library,
3033
+ .pictures-library.is-visible {
2924
3034
  opacity: 1;
2925
3035
  pointer-events: auto;
3036
+ transform: translateY(0) scale(1);
2926
3037
  }
2927
3038
 
2928
3039
  .pictures-library[hidden] {
@@ -2957,19 +3068,30 @@ input:checked + .slider:before {
2957
3068
  }
2958
3069
 
2959
3070
  .pictures-header-actions {
2960
- display: grid;
2961
- gap: 8px;
2962
- width: 130px;
3071
+ display: flex;
3072
+ align-items: center;
3073
+ gap: 10px;
2963
3074
  }
2964
3075
 
2965
3076
  .pictures-close-btn {
2966
- height: 34px;
2967
- padding: 0 14px;
3077
+ height: 36px;
3078
+ padding: 0 16px;
2968
3079
  border: 1px solid var(--border);
2969
3080
  border-radius: 8px;
2970
- background: var(--surface-strong);
3081
+ background: rgba(255, 255, 255, 0.04);
2971
3082
  color: var(--text-main);
3083
+ font-size: 0.82rem;
3084
+ font-weight: 500;
2972
3085
  cursor: pointer;
3086
+ display: inline-flex;
3087
+ align-items: center;
3088
+ justify-content: center;
3089
+ transition: background 0.15s ease, border-color 0.15s ease;
3090
+ }
3091
+
3092
+ .pictures-close-btn:hover {
3093
+ background: rgba(255, 255, 255, 0.08);
3094
+ border-color: rgba(255, 255, 255, 0.15);
2973
3095
  }
2974
3096
 
2975
3097
  .pictures-grid {
@@ -3020,20 +3142,24 @@ input:checked + .slider:before {
3020
3142
  }
3021
3143
 
3022
3144
  .picture-folder-btn {
3023
- width: 100%;
3024
- height: 34px;
3145
+ height: 36px;
3146
+ padding: 0 16px;
3025
3147
  border: 1px solid var(--border);
3026
3148
  border-radius: 8px;
3027
- background: var(--panel-soft);
3028
- color: var(--text);
3029
- font-size: 0.75rem;
3030
- font-weight: 700;
3149
+ background: rgba(255, 255, 255, 0.04);
3150
+ color: var(--text-main);
3151
+ font-size: 0.82rem;
3152
+ font-weight: 500;
3031
3153
  cursor: pointer;
3154
+ display: inline-flex;
3155
+ align-items: center;
3156
+ justify-content: center;
3157
+ transition: background 0.15s ease, border-color 0.15s ease;
3032
3158
  }
3033
3159
 
3034
3160
  .picture-folder-btn:hover {
3035
- border-color: color-mix(in srgb, var(--accent) 48%, var(--border));
3036
- background: color-mix(in srgb, var(--accent) 12%, var(--panel-soft));
3161
+ background: rgba(255, 255, 255, 0.08);
3162
+ border-color: rgba(255, 255, 255, 0.15);
3037
3163
  }
3038
3164
 
3039
3165
  .picture-folder-btn:disabled {
@@ -3240,12 +3366,12 @@ input:checked + .slider:before {
3240
3366
  .assistant-workspace.model-hidden .conversation-panel {
3241
3367
  position: relative;
3242
3368
  display: grid;
3243
- grid-template-rows: minmax(0, 1fr) auto;
3244
- width: min(840px, calc(100% - 64px));
3369
+ grid-template-rows: auto minmax(0, 1fr) auto auto;
3370
+ width: min(1100px, calc(100% - 64px));
3245
3371
  height: 100%;
3246
3372
  max-width: none;
3247
3373
  margin: 0 auto;
3248
- padding: 56px 0 28px;
3374
+ padding: 0 0 8px;
3249
3375
  grid-column: 1 / -1;
3250
3376
  z-index: 1;
3251
3377
  }
@@ -3268,13 +3394,13 @@ input:checked + .slider:before {
3268
3394
  }
3269
3395
 
3270
3396
  .assistant-workspace.model-hidden .conversation-panel.is-empty {
3271
- grid-template-rows: minmax(0, 1fr);
3272
- align-content: center;
3397
+ grid-template-rows: auto minmax(0, 1fr) auto auto;
3398
+ align-content: stretch;
3273
3399
  justify-content: stretch;
3274
- width: min(840px, calc(100% - 64px));
3400
+ width: min(1100px, calc(100% - 64px));
3275
3401
  margin: 0 auto;
3276
3402
  padding-top: 0;
3277
- padding-bottom: 0;
3403
+ padding-bottom: 8px;
3278
3404
  }
3279
3405
 
3280
3406
  .conversation-panel.is-empty .chat-container {
@@ -3517,23 +3643,20 @@ input:checked + .slider:before {
3517
3643
 
3518
3644
  .mint-image-attachment {
3519
3645
  position: relative;
3520
- display: inline-flex;
3521
- width: auto;
3522
- height: auto;
3523
- max-width: min(360px, 72vw);
3524
- max-height: 196px;
3646
+ display: block;
3647
+ width: 80px;
3648
+ height: 80px;
3525
3649
  overflow: hidden;
3526
3650
  border: 1px solid var(--border);
3527
3651
  border-radius: 8px;
3528
3652
  background: color-mix(in srgb, var(--surface-strong) 78%, rgba(0, 0, 0, 0.22));
3529
3653
  }
3530
3654
 
3531
- .mint-image-preview {
3532
- width: auto;
3533
- height: auto;
3534
- max-width: min(360px, 72vw);
3535
- max-height: 196px;
3536
- display: block;
3655
+ .mint-image-attachment img.mint-image-preview {
3656
+ width: 100% !important;
3657
+ height: 100% !important;
3658
+ object-fit: cover !important;
3659
+ display: block !important;
3537
3660
  }
3538
3661
 
3539
3662
  .mint-attachment-remove {
@@ -3922,3 +4045,250 @@ input:checked + .slider:before {
3922
4045
  [data-theme="midnight"] .chat-bold-highlight {
3923
4046
  color: #38bdf8; /* Sky-400 for midnight theme */
3924
4047
  }
4048
+
4049
+ /* System Event Divider with Pill */
4050
+ .system-event-divider {
4051
+ display: flex;
4052
+ align-items: center;
4053
+ justify-content: center;
4054
+ width: 100%;
4055
+ margin: 20px 0;
4056
+ flex-shrink: 0;
4057
+ }
4058
+
4059
+ .system-event-line {
4060
+ flex: 1;
4061
+ height: 1px;
4062
+ border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
4063
+ }
4064
+
4065
+ [data-theme="light"] .system-event-line {
4066
+ border-bottom: 1px dashed rgba(0, 0, 0, 0.1);
4067
+ }
4068
+
4069
+ .system-event-pill {
4070
+ display: flex;
4071
+ align-items: center;
4072
+ gap: 6px;
4073
+ padding: 4px 14px;
4074
+ background: var(--panel-raised, rgba(30, 41, 59, 0.6));
4075
+ border: 1px solid rgba(255, 255, 255, 0.08);
4076
+ border-radius: 9999px;
4077
+ color: var(--text-soft, #94a3b8);
4078
+ font-size: 0.78rem;
4079
+ font-weight: 500;
4080
+ margin: 0 12px;
4081
+ white-space: nowrap;
4082
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
4083
+ }
4084
+
4085
+ [data-theme="light"] .system-event-pill {
4086
+ background: #f1f5f9;
4087
+ border-color: rgba(0, 0, 0, 0.06);
4088
+ color: #475569;
4089
+ }
4090
+
4091
+ .system-event-pill svg {
4092
+ color: var(--accent, #38bdf8);
4093
+ }
4094
+
4095
+ /* Sidebar Search Chats Button */
4096
+ .sidebar-search-btn {
4097
+ margin-top: 4px;
4098
+ }
4099
+
4100
+ /* Sidebar Search Modal Backdrop */
4101
+ .sidebar-search-modal-backdrop {
4102
+ position: fixed;
4103
+ inset: 0;
4104
+ z-index: 10000;
4105
+ background: rgba(0, 0, 0, 0.6);
4106
+ backdrop-filter: blur(8px);
4107
+ -webkit-backdrop-filter: blur(8px);
4108
+ display: flex;
4109
+ align-items: flex-start;
4110
+ justify-content: center;
4111
+ padding-top: 12vh;
4112
+ }
4113
+
4114
+ /* Sidebar Search Modal Box */
4115
+ .sidebar-search-modal {
4116
+ width: 100%;
4117
+ max-width: 520px;
4118
+ background: var(--surface-strong, #1e293b);
4119
+ border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
4120
+ border-radius: 12px;
4121
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
4122
+ display: flex;
4123
+ flex-direction: column;
4124
+ overflow: hidden;
4125
+ animation: modalFadeIn 0.2s cubic-bezier(0.16, 1, 0.3, 1);
4126
+ }
4127
+
4128
+ @keyframes modalFadeIn {
4129
+ from {
4130
+ opacity: 0;
4131
+ transform: translateY(-20px) scale(0.96);
4132
+ }
4133
+ to {
4134
+ opacity: 1;
4135
+ transform: translateY(0) scale(1);
4136
+ }
4137
+ }
4138
+
4139
+ /* Header */
4140
+ .search-modal-header {
4141
+ display: flex;
4142
+ align-items: center;
4143
+ gap: 12px;
4144
+ padding: 14px 16px;
4145
+ border-bottom: 1px solid var(--border, rgba(255, 255, 255, 0.08));
4146
+ position: relative;
4147
+ }
4148
+
4149
+ .search-icon-wrapper {
4150
+ color: var(--text-soft, #94a3b8);
4151
+ display: inline-flex;
4152
+ align-items: center;
4153
+ }
4154
+
4155
+ .search-modal-header input {
4156
+ flex: 1;
4157
+ background: transparent;
4158
+ border: 0;
4159
+ color: var(--text-main, #f8fafc);
4160
+ font: inherit;
4161
+ font-size: 0.95rem;
4162
+ outline: none;
4163
+ }
4164
+
4165
+ .search-modal-header input::placeholder {
4166
+ color: var(--text-muted, #64748b);
4167
+ }
4168
+
4169
+ .search-modal-close {
4170
+ background: transparent;
4171
+ border: 0;
4172
+ color: var(--text-muted, #64748b);
4173
+ cursor: pointer;
4174
+ display: inline-flex;
4175
+ align-items: center;
4176
+ justify-content: center;
4177
+ padding: 4px;
4178
+ border-radius: 4px;
4179
+ transition: color 0.15s ease, background 0.15s ease;
4180
+ }
4181
+
4182
+ .search-modal-close:hover {
4183
+ color: var(--text-main, #f8fafc);
4184
+ background: rgba(255, 255, 255, 0.05);
4185
+ }
4186
+
4187
+ /* Body */
4188
+ .search-modal-body {
4189
+ max-height: 480px;
4190
+ overflow-y: auto;
4191
+ padding: 12px;
4192
+ display: flex;
4193
+ flex-direction: column;
4194
+ gap: 14px;
4195
+ }
4196
+
4197
+ .search-new-chat-btn {
4198
+ display: flex;
4199
+ align-items: center;
4200
+ gap: 10px;
4201
+ background: rgba(255, 255, 255, 0.03);
4202
+ border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
4203
+ border-radius: 8px;
4204
+ color: var(--text-main, #f8fafc);
4205
+ padding: 10px 14px;
4206
+ cursor: pointer;
4207
+ text-align: left;
4208
+ font: inherit;
4209
+ font-size: 0.9rem;
4210
+ transition: background 0.15s ease;
4211
+ }
4212
+
4213
+ .search-new-chat-btn:hover {
4214
+ background: rgba(255, 255, 255, 0.08);
4215
+ }
4216
+
4217
+ .search-modal-results {
4218
+ display: flex;
4219
+ flex-direction: column;
4220
+ gap: 14px;
4221
+ }
4222
+
4223
+ .search-results-group {
4224
+ display: flex;
4225
+ flex-direction: column;
4226
+ gap: 4px;
4227
+ }
4228
+
4229
+ .search-group-title {
4230
+ color: var(--accent, #10b981);
4231
+ font-size: 0.72rem;
4232
+ font-weight: 600;
4233
+ text-transform: uppercase;
4234
+ letter-spacing: 0.05em;
4235
+ padding: 4px 10px;
4236
+ }
4237
+
4238
+ .search-result-item {
4239
+ display: flex;
4240
+ align-items: center;
4241
+ gap: 10px;
4242
+ background: transparent;
4243
+ border: 0;
4244
+ border-radius: 6px;
4245
+ color: var(--text-soft, #94a3b8);
4246
+ padding: 8px 12px;
4247
+ cursor: pointer;
4248
+ text-align: left;
4249
+ font: inherit;
4250
+ font-size: 0.88rem;
4251
+ transition: background 0.15s ease, color 0.15s ease;
4252
+ white-space: nowrap;
4253
+ overflow: hidden;
4254
+ text-overflow: ellipsis;
4255
+ width: 100%;
4256
+ }
4257
+
4258
+ .search-result-item svg {
4259
+ color: var(--text-muted, #64748b);
4260
+ flex-shrink: 0;
4261
+ }
4262
+
4263
+ .search-result-item:hover,
4264
+ .search-result-item.active {
4265
+ background: rgba(255, 255, 255, 0.05);
4266
+ color: var(--text-main, #f8fafc);
4267
+ }
4268
+
4269
+ .search-result-item:hover svg,
4270
+ .search-result-item.active svg {
4271
+ color: var(--text-main, #f8fafc);
4272
+ }
4273
+
4274
+ .search-result-title {
4275
+ overflow: hidden;
4276
+ text-overflow: ellipsis;
4277
+ white-space: nowrap;
4278
+ }
4279
+
4280
+ .search-no-results {
4281
+ color: var(--text-muted, #64748b);
4282
+ text-align: center;
4283
+ padding: 30px 0;
4284
+ font-size: 0.9rem;
4285
+ }
4286
+
4287
+ /* Allow global text selection everywhere */
4288
+ * {
4289
+ user-select: text !important;
4290
+ -webkit-user-select: text !important;
4291
+ -moz-user-select: text !important;
4292
+ -ms-user-select: text !important;
4293
+ }
4294
+