@hef2024/llmasaservice-ui 0.25.2 → 0.26.0

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.
@@ -979,6 +979,243 @@
979
979
  border-color: var(--ai-chat-input-focus-border);
980
980
  }
981
981
 
982
+ .ai-chat-user-input-popover {
983
+ position: absolute;
984
+ bottom: calc(100% + 10px);
985
+ left: 0;
986
+ right: 0;
987
+ z-index: 1002;
988
+ display: flex;
989
+ flex-direction: column;
990
+ gap: 10px;
991
+ padding: 12px;
992
+ background: var(--ai-chat-input-bg);
993
+ border: 1px solid var(--ai-chat-input-border);
994
+ border-radius: 12px;
995
+ box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
996
+ max-height: min(58vh, 520px);
997
+ overflow: auto;
998
+ animation: aiUserInputPopoverSlideUp 0.16s ease-out;
999
+ }
1000
+
1001
+ @keyframes aiUserInputPopoverSlideUp {
1002
+ from {
1003
+ opacity: 0;
1004
+ transform: translateY(6px);
1005
+ }
1006
+ to {
1007
+ opacity: 1;
1008
+ transform: translateY(0);
1009
+ }
1010
+ }
1011
+
1012
+ .ai-chat-user-input-popover__header {
1013
+ display: flex;
1014
+ align-items: center;
1015
+ justify-content: space-between;
1016
+ gap: 10px;
1017
+ }
1018
+
1019
+ .ai-chat-user-input-popover__header-meta {
1020
+ display: inline-flex;
1021
+ align-items: center;
1022
+ gap: 8px;
1023
+ }
1024
+
1025
+ .ai-chat-user-input-popover__progress {
1026
+ display: inline-flex;
1027
+ align-items: center;
1028
+ justify-content: center;
1029
+ border-radius: 999px;
1030
+ border: 1px solid var(--ai-chat-input-border);
1031
+ padding: 2px 8px;
1032
+ font-size: 11px;
1033
+ font-weight: 600;
1034
+ color: var(--ai-chat-input-placeholder);
1035
+ }
1036
+
1037
+ .ai-chat-user-input-popover__title {
1038
+ font-size: 13px;
1039
+ font-weight: 600;
1040
+ color: var(--ai-chat-input-text);
1041
+ }
1042
+
1043
+ .ai-chat-user-input-popover__instructions {
1044
+ font-size: 12px;
1045
+ line-height: 1.45;
1046
+ color: var(--ai-chat-input-placeholder);
1047
+ }
1048
+
1049
+ .ai-chat-user-input-popover__cancel-inline {
1050
+ border: none;
1051
+ background: transparent;
1052
+ color: var(--ai-chat-input-placeholder);
1053
+ font-size: 11px;
1054
+ font-weight: 600;
1055
+ cursor: pointer;
1056
+ padding: 2px 4px;
1057
+ }
1058
+
1059
+ .ai-chat-user-input-popover__cancel-inline:hover {
1060
+ color: var(--ai-chat-input-text);
1061
+ }
1062
+
1063
+ .ai-chat-user-input-popover__questions {
1064
+ display: flex;
1065
+ flex-direction: column;
1066
+ gap: 10px;
1067
+ }
1068
+
1069
+ .ai-chat-user-input-popover__question {
1070
+ border: 1px solid var(--ai-chat-suggestion-border, #e5e7eb);
1071
+ border-radius: 10px;
1072
+ padding: 10px;
1073
+ background: var(--ai-chat-suggestion-bg, #f8fafc);
1074
+ }
1075
+
1076
+ .ai-chat-user-input-popover__question-header {
1077
+ display: flex;
1078
+ align-items: center;
1079
+ gap: 6px;
1080
+ margin-bottom: 6px;
1081
+ }
1082
+
1083
+ .ai-chat-user-input-popover__question-index {
1084
+ width: 18px;
1085
+ height: 18px;
1086
+ border-radius: 999px;
1087
+ background: rgba(59, 130, 246, 0.12);
1088
+ color: #2563eb;
1089
+ font-size: 11px;
1090
+ font-weight: 700;
1091
+ display: inline-flex;
1092
+ align-items: center;
1093
+ justify-content: center;
1094
+ }
1095
+
1096
+ .ai-chat-user-input-popover__question-title {
1097
+ font-size: 11px;
1098
+ font-weight: 600;
1099
+ letter-spacing: 0.02em;
1100
+ color: var(--ai-chat-input-placeholder);
1101
+ text-transform: uppercase;
1102
+ }
1103
+
1104
+ .ai-chat-user-input-popover__question-text {
1105
+ font-size: 13px;
1106
+ color: var(--ai-chat-input-text);
1107
+ margin-bottom: 8px;
1108
+ line-height: 1.45;
1109
+ }
1110
+
1111
+ .ai-chat-user-input-popover__options {
1112
+ display: flex;
1113
+ flex-direction: column;
1114
+ gap: 6px;
1115
+ }
1116
+
1117
+ .ai-chat-user-input-popover__option {
1118
+ display: flex;
1119
+ align-items: flex-start;
1120
+ gap: 8px;
1121
+ padding: 7px 8px;
1122
+ border: 1px solid var(--ai-chat-suggestion-border, #e5e7eb);
1123
+ border-radius: 8px;
1124
+ background: var(--ai-chat-input-bg, #fff);
1125
+ cursor: pointer;
1126
+ }
1127
+
1128
+ .ai-chat-user-input-popover__option input[type='radio'] {
1129
+ margin-top: 2px;
1130
+ }
1131
+
1132
+ .ai-chat-user-input-popover__option-content {
1133
+ display: flex;
1134
+ flex-direction: column;
1135
+ gap: 2px;
1136
+ }
1137
+
1138
+ .ai-chat-user-input-popover__option-label {
1139
+ font-size: 12px;
1140
+ font-weight: 600;
1141
+ color: var(--ai-chat-input-text);
1142
+ }
1143
+
1144
+ .ai-chat-user-input-popover__option-description {
1145
+ font-size: 11px;
1146
+ color: var(--ai-chat-input-placeholder);
1147
+ line-height: 1.4;
1148
+ }
1149
+
1150
+ .ai-chat-user-input-popover__writein {
1151
+ width: 100%;
1152
+ margin-top: 8px;
1153
+ min-height: 56px;
1154
+ border: 1px solid var(--ai-chat-input-border);
1155
+ border-radius: 8px;
1156
+ background: var(--ai-chat-input-bg);
1157
+ color: var(--ai-chat-input-text);
1158
+ padding: 8px 10px;
1159
+ resize: vertical;
1160
+ font-family: inherit;
1161
+ font-size: 12px;
1162
+ line-height: 1.45;
1163
+ }
1164
+
1165
+ .ai-chat-user-input-popover__writein:focus {
1166
+ outline: none;
1167
+ border-color: var(--ai-chat-input-focus-border);
1168
+ box-shadow: 0 0 0 3px var(--ai-chat-input-focus-ring);
1169
+ }
1170
+
1171
+ .ai-chat-user-input-popover__error {
1172
+ font-size: 12px;
1173
+ color: #dc2626;
1174
+ }
1175
+
1176
+ .ai-chat-user-input-popover__actions {
1177
+ display: flex;
1178
+ justify-content: space-between;
1179
+ align-items: center;
1180
+ gap: 8px;
1181
+ }
1182
+
1183
+ .ai-chat-user-input-popover__actions-left,
1184
+ .ai-chat-user-input-popover__actions-right {
1185
+ display: inline-flex;
1186
+ align-items: center;
1187
+ gap: 8px;
1188
+ }
1189
+
1190
+ .ai-chat-user-input-popover__button {
1191
+ border-radius: 8px;
1192
+ font-size: 12px;
1193
+ font-weight: 600;
1194
+ padding: 7px 10px;
1195
+ border: 1px solid transparent;
1196
+ cursor: pointer;
1197
+ }
1198
+
1199
+ .ai-chat-user-input-popover__button--secondary {
1200
+ background: transparent;
1201
+ border-color: var(--ai-chat-input-border);
1202
+ color: var(--ai-chat-input-placeholder);
1203
+ }
1204
+
1205
+ .ai-chat-user-input-popover__button--secondary:hover {
1206
+ border-color: var(--ai-chat-input-focus-border);
1207
+ color: var(--ai-chat-input-text);
1208
+ }
1209
+
1210
+ .ai-chat-user-input-popover__button--primary {
1211
+ background: #2563eb;
1212
+ color: #fff;
1213
+ }
1214
+
1215
+ .ai-chat-user-input-popover__button--primary:hover {
1216
+ background: #1d4ed8;
1217
+ }
1218
+
982
1219
  .ai-chat-panel__input-container .ai-chat-panel__input {
983
1220
  border-top: none;
984
1221
  padding: 8px 8px 4px 8px;
@@ -1113,12 +1350,19 @@
1113
1350
  .ai-chat-panel__input-footer {
1114
1351
  display: flex;
1115
1352
  align-items: center;
1116
- justify-content: space-between;
1353
+ justify-content: flex-start;
1117
1354
  gap: 8px;
1118
1355
  padding: 0 8px 8px 8px;
1119
1356
  flex-shrink: 0;
1120
1357
  }
1121
1358
 
1359
+ .ai-chat-input-footer__left {
1360
+ display: inline-flex;
1361
+ align-items: center;
1362
+ gap: 6px;
1363
+ min-width: 0;
1364
+ }
1365
+
1122
1366
  .ai-chat-panel__input-footer-spacer {
1123
1367
  flex: 1;
1124
1368
  }
@@ -1533,10 +1777,97 @@
1533
1777
 
1534
1778
  /* Pill Wrapper - positions the popover */
1535
1779
  .ai-chat-context-pill-wrapper {
1780
+ display: flex;
1781
+ align-items: center;
1782
+ gap: 4px;
1783
+ flex-shrink: 0;
1784
+ margin-left: auto;
1785
+ }
1786
+
1787
+ .ai-chat-context-pill-anchor {
1536
1788
  position: relative;
1537
1789
  flex-shrink: 0;
1538
1790
  }
1539
1791
 
1792
+ /* Agent Mode trigger in composer footer */
1793
+ .ai-chat-agent-mode-trigger {
1794
+ display: inline-flex;
1795
+ align-items: center;
1796
+ gap: 0;
1797
+ min-height: 30px;
1798
+ padding: 2px 6px;
1799
+ border: 1px solid transparent;
1800
+ border-radius: 8px;
1801
+ background: transparent;
1802
+ color: var(--ai-chat-footer-text, #6b7280);
1803
+ font-size: 12px;
1804
+ font-family: inherit;
1805
+ cursor: pointer;
1806
+ transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
1807
+ }
1808
+
1809
+ .ai-chat-agent-mode-trigger:hover {
1810
+ background: var(--ai-button-ghost-hover, rgba(0, 0, 0, 0.04));
1811
+ color: var(--ai-chat-input-text, #1f2937);
1812
+ }
1813
+
1814
+ .ai-chat-agent-mode-trigger:disabled {
1815
+ opacity: 0.6;
1816
+ cursor: default;
1817
+ }
1818
+
1819
+ .ai-chat-agent-mode-trigger--active:disabled {
1820
+ opacity: 1;
1821
+ }
1822
+
1823
+ .ai-chat-agent-mode-trigger__icon {
1824
+ display: inline-flex;
1825
+ align-items: center;
1826
+ justify-content: center;
1827
+ width: 24px;
1828
+ height: 24px;
1829
+ }
1830
+
1831
+ .ai-chat-agent-mode-trigger__icon .ai-chat-icon-sm {
1832
+ width: 24px;
1833
+ height: 24px;
1834
+ }
1835
+
1836
+ .ai-chat-agent-mode-trigger__label {
1837
+ max-width: 0;
1838
+ margin-left: 0;
1839
+ opacity: 0;
1840
+ overflow: hidden;
1841
+ white-space: nowrap;
1842
+ text-transform: lowercase;
1843
+ font-weight: 500;
1844
+ transition: max-width 0.2s ease, opacity 0.2s ease, margin-left 0.2s ease;
1845
+ }
1846
+
1847
+ .ai-chat-agent-mode-trigger--expanded,
1848
+ .ai-chat-agent-mode-trigger--active {
1849
+ border-color: var(--ai-chat-input-border, #d1d5db);
1850
+ background: rgba(148, 163, 184, 0.1);
1851
+ }
1852
+
1853
+ .ai-chat-agent-mode-trigger--active {
1854
+ border-color: rgba(139, 92, 246, 0.55);
1855
+ background: rgba(139, 92, 246, 0.16);
1856
+ color: #6d28d9;
1857
+ box-shadow: inset 0 0 0 1px rgba(139, 92, 246, 0.24);
1858
+ }
1859
+
1860
+ .ai-chat-agent-mode-trigger--active .ai-chat-agent-mode-trigger__icon svg {
1861
+ transform-origin: center;
1862
+ }
1863
+
1864
+ .ai-chat-agent-mode-trigger--expanded .ai-chat-agent-mode-trigger__label,
1865
+ .ai-chat-agent-mode-trigger--active .ai-chat-agent-mode-trigger__label {
1866
+ max-width: 170px;
1867
+ margin-left: 4px;
1868
+ opacity: 1;
1869
+ }
1870
+
1540
1871
  /* Context Pill - Cursor style */
1541
1872
  .ai-chat-context-pill {
1542
1873
  display: flex;
@@ -1959,7 +2290,59 @@
1959
2290
  overflow-y: auto;
1960
2291
  }
1961
2292
 
2293
+ .dark-theme .ai-chat-user-input-popover {
2294
+ box-shadow: 0 10px 28px rgba(0, 0, 0, 0.42);
2295
+ }
2296
+
2297
+ .dark-theme .ai-chat-user-input-popover__question {
2298
+ background: rgba(2, 6, 23, 0.55);
2299
+ }
2300
+
2301
+ .dark-theme .ai-chat-user-input-popover__question-index {
2302
+ background: rgba(96, 165, 250, 0.2);
2303
+ color: #93c5fd;
2304
+ }
2305
+
2306
+ .dark-theme .ai-chat-user-input-popover__progress {
2307
+ border-color: rgba(148, 163, 184, 0.45);
2308
+ color: rgba(203, 213, 225, 0.9);
2309
+ }
2310
+
2311
+ .dark-theme .ai-chat-user-input-popover__option {
2312
+ background: rgba(15, 23, 42, 0.7);
2313
+ }
2314
+
2315
+ .dark-theme .ai-chat-user-input-popover__button--primary {
2316
+ background: #3b82f6;
2317
+ }
2318
+
2319
+ .dark-theme .ai-chat-user-input-popover__button--primary:hover {
2320
+ background: #2563eb;
2321
+ }
2322
+
1962
2323
  /* Dark Theme */
2324
+ .dark-theme .ai-chat-agent-mode-trigger {
2325
+ color: var(--ai-chat-footer-text, #9ca3af);
2326
+ }
2327
+
2328
+ .dark-theme .ai-chat-agent-mode-trigger:hover {
2329
+ background: rgba(156, 163, 175, 0.16);
2330
+ color: var(--ai-chat-input-text, #f9fafb);
2331
+ }
2332
+
2333
+ .dark-theme .ai-chat-agent-mode-trigger--expanded,
2334
+ .dark-theme .ai-chat-agent-mode-trigger--active {
2335
+ border-color: rgba(148, 163, 184, 0.36);
2336
+ background: rgba(148, 163, 184, 0.18);
2337
+ }
2338
+
2339
+ .dark-theme .ai-chat-agent-mode-trigger--active {
2340
+ border-color: rgba(167, 139, 250, 0.7);
2341
+ background: rgba(139, 92, 246, 0.28);
2342
+ color: #c4b5fd;
2343
+ box-shadow: inset 0 0 0 1px rgba(167, 139, 250, 0.35);
2344
+ }
2345
+
1963
2346
  .dark-theme .ai-chat-context-pill {
1964
2347
  background: var(--ai-chat-suggestion-bg, #374151);
1965
2348
  }
@@ -1985,6 +2368,15 @@
1985
2368
 
1986
2369
  /* Responsive */
1987
2370
  @container chat-panel (max-width: 380px) {
2371
+ .ai-chat-user-input-popover {
2372
+ max-height: min(62vh, 420px);
2373
+ padding: 10px;
2374
+ }
2375
+
2376
+ .ai-chat-user-input-popover__question {
2377
+ padding: 8px;
2378
+ }
2379
+
1988
2380
  .ai-chat-context-pill__label {
1989
2381
  font-size: 11px;
1990
2382
  }
@@ -2091,6 +2483,110 @@
2091
2483
  background: rgba(252, 165, 165, 0.1);
2092
2484
  }
2093
2485
 
2486
+ /* ============================================================================
2487
+ Context Compaction Banner
2488
+ ============================================================================ */
2489
+
2490
+ .ai-chat-compaction-inline-status {
2491
+ display: flex;
2492
+ align-items: center;
2493
+ gap: 12px;
2494
+ padding: 8px 16px 4px;
2495
+ color: #64748b;
2496
+ font-size: 12px;
2497
+ font-weight: 500;
2498
+ letter-spacing: 0.01em;
2499
+ }
2500
+
2501
+ .ai-chat-compaction-inline-status::before,
2502
+ .ai-chat-compaction-inline-status::after {
2503
+ content: '';
2504
+ flex: 1;
2505
+ height: 1px;
2506
+ background: rgba(100, 116, 139, 0.35);
2507
+ }
2508
+
2509
+ .dark-theme .ai-chat-compaction-inline-status {
2510
+ color: #cbd5e1;
2511
+ }
2512
+
2513
+ .dark-theme .ai-chat-compaction-inline-status::before,
2514
+ .dark-theme .ai-chat-compaction-inline-status::after {
2515
+ background: rgba(148, 163, 184, 0.4);
2516
+ }
2517
+
2518
+ .ai-chat-compaction-banner {
2519
+ display: flex;
2520
+ align-items: center;
2521
+ justify-content: space-between;
2522
+ gap: 12px;
2523
+ padding: 10px 14px;
2524
+ margin: 8px 16px 0;
2525
+ border-radius: 8px;
2526
+ border: 1px solid transparent;
2527
+ animation: slideDown 0.2s ease-out;
2528
+ }
2529
+
2530
+ .ai-chat-compaction-banner--info {
2531
+ background: #eff6ff;
2532
+ border-color: #bfdbfe;
2533
+ }
2534
+
2535
+ .ai-chat-compaction-banner--warning {
2536
+ background: #fffbeb;
2537
+ border-color: #fde68a;
2538
+ }
2539
+
2540
+ .ai-chat-compaction-banner--success {
2541
+ background: #ecfdf3;
2542
+ border-color: #86efac;
2543
+ }
2544
+
2545
+ .ai-chat-compaction-banner__message {
2546
+ color: #0f172a;
2547
+ font-size: 13px;
2548
+ line-height: 1.45;
2549
+ }
2550
+
2551
+ .ai-chat-compaction-banner__close {
2552
+ flex-shrink: 0;
2553
+ background: none;
2554
+ border: none;
2555
+ color: #334155;
2556
+ cursor: pointer;
2557
+ border-radius: 4px;
2558
+ padding: 4px;
2559
+ transition: background-color 0.15s;
2560
+ }
2561
+
2562
+ .ai-chat-compaction-banner__close:hover {
2563
+ background: rgba(15, 23, 42, 0.08);
2564
+ }
2565
+
2566
+ .dark-theme .ai-chat-compaction-banner--info {
2567
+ background: rgba(30, 64, 175, 0.22);
2568
+ border-color: rgba(96, 165, 250, 0.45);
2569
+ }
2570
+
2571
+ .dark-theme .ai-chat-compaction-banner--warning {
2572
+ background: rgba(120, 53, 15, 0.35);
2573
+ border-color: rgba(251, 191, 36, 0.5);
2574
+ }
2575
+
2576
+ .dark-theme .ai-chat-compaction-banner--success {
2577
+ background: rgba(20, 83, 45, 0.35);
2578
+ border-color: rgba(74, 222, 128, 0.5);
2579
+ }
2580
+
2581
+ .dark-theme .ai-chat-compaction-banner__message,
2582
+ .dark-theme .ai-chat-compaction-banner__close {
2583
+ color: #e2e8f0;
2584
+ }
2585
+
2586
+ .dark-theme .ai-chat-compaction-banner__close:hover {
2587
+ background: rgba(226, 232, 240, 0.12);
2588
+ }
2589
+
2094
2590
  @keyframes slideDown {
2095
2591
  from {
2096
2592
  opacity: 0;